tools/JavaParser.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 06 Sep 2013 00:16:38 +0100
branchdevelopment
changeset 2711 a00302fe5083
parent 2702 e6ebebcddbec
child 2731 13f5be2bf83b
permissions -rw-r--r--
Added version_CVS to all classes and build files regenerated & cleaned. This is necessary step before updating CVS.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:libjava/tools' }"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
JavaParserII subclass:#JavaParser
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
	instanceVariableNames:'builder'
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
	classVariableNames:''
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	poolDictionaries:''
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	category:'Languages-Java-Parser'
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!JavaParser class methodsFor:'documentation'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
documentation
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
    PetitParser based parser for Java. One may pass in a builder, that
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
    is called whenever a rule is parsed. Builder can build AST or do
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
    some analysis. 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
    Unfinished.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
    [author:]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
        Jan Vrany <jan.vrany@fit.cvut.cz>
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
    [instance variables:]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
    [class variables:]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
    [see also:]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
2482
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    32
!JavaParser class methodsFor:'accessing'!
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    33
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    34
namesToIgnore
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    35
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    36
        ^super namesToIgnore ,
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    37
        #(builder)
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    38
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    39
    "Created: / 03-04-2013 / 23:51:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    40
! !
2396
fadc6d7a2f5b Updated to rev 009a0df3afce
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2353
diff changeset
    41
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
!JavaParser methodsFor:'accessing'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
builder
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
    ^ builder
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
builder:aJavaParseNodeBuilder
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
    builder := aJavaParseNodeBuilder.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
2482
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    52
!JavaParser methodsFor:'grammar'!
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    53
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    54
compilationUnit 
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    55
        "
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    56
        ^ 
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    57
        (annotations optional, packageDeclaration) optional , 
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    58
        importDeclaration star , 
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    59
        typeDeclaration star ,
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    60
        (self tokenParserFor:#EOF) end
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    61
        "
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    62
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    63
        ^super compilationUnit ==> [:nodes |
2501
53d731454d43 A bunch of fixes to allow accepting classes in smalltalk browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2482
diff changeset
    64
            | pkg |
53d731454d43 A bunch of fixes to allow accepting classes in smalltalk browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2482
diff changeset
    65
53d731454d43 A bunch of fixes to allow accepting classes in smalltalk browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2482
diff changeset
    66
            pkg := (nodes at:1) notNil ifTrue:[(nodes at:1) second] ifFalse:[nil].
53d731454d43 A bunch of fixes to allow accepting classes in smalltalk browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2482
diff changeset
    67
            builder newSourceFile_package: pkg imports: (nodes at:2) types: (nodes at:3)            
2482
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    68
        ]
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    69
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    70
    "Created: / 03-04-2013 / 23:18:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2501
53d731454d43 A bunch of fixes to allow accepting classes in smalltalk browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2482
diff changeset
    71
    "Modified: / 12-04-2013 / 20:24:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2482
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    72
!
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    73
2672
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
    74
importDeclaration
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
    75
    "
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
    76
    ^ ((self importKW) , (self staticKW) optional , qualifiedNameForImport 
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
    77
        , (self tokenFor:';')).
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
    78
    "
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
    79
    ^ super importDeclaration ==> [:nodes|
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
    80
        builder newImportDeclaration: (nodes at: 3)
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
    81
    ]
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
    82
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
    83
    "Created: / 25-08-2013 / 11:45:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
    84
!
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
    85
2482
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    86
packageDeclaration 
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    87
    "
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    88
        ^ (self  packageKW) , qualifiedName , (self tokenFor:';')
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    89
    "
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    90
    ^super packageDeclaration ==> [:nodes |
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    91
        builder newPackageDeclaration: (nodes at:2)
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    92
    ]
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    93
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    94
    "Created: / 03-04-2013 / 23:48:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    95
!
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    96
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    97
typeDeclaration
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    98
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    99
        ^ ((self tokenFor: ';') ==> nil) / classOrInterfaceDeclaration
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   100
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   101
    "Created: / 03-04-2013 / 23:58:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   102
! !
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   103
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   104
!JavaParser methodsFor:'grammar-classes'!
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   105
2667
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   106
classBody 
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   107
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   108
    ^ super classBody ==> [:nodes | nodes second reject:[:e|e isNil] ]
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   109
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   110
    "Created: / 24-08-2013 / 01:40:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   111
!
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   112
2702
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   113
formalParameters 
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   114
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   115
"/        ^ (self tokenFor: '(') ,
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   116
"/        formalParameterDecls optional ,
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   117
"/        (self tokenFor: ')')
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   118
    ^ super formalParameters ==> [:nodes | nodes second ]
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   119
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   120
    "Created: / 31-08-2013 / 23:09:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   121
!
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   122
2482
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   123
normalClassDeclaration 
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   124
    "
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   125
        ^ classModifiers , (self  classKW) , self typeNameIdentifier ,
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   126
                typeParameters optional,
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   127
                jsuper optional,
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   128
                interfaces optional ,
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   129
                classBody
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   130
    "
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   131
    ^ super normalClassDeclaration ==> [:nodes|
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   132
        builder newClassDeclaration_modifiers: (nodes at:1)
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   133
                    name: (nodes at:3)
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   134
                    typeParameters: (nodes at:4)
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   135
                    superclass: (nodes at:5)
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   136
                    interfaces: (nodes at:6)
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   137
                    members: (nodes at:7)
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   138
    ]
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   139
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   140
    "Created: / 04-04-2013 / 00:04:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2702
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   141
!
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   142
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   143
normalParameterDecls
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   144
"/    ^ normalParameterDecl , ((self tokenFor: ',') , normalParameterDecl) star
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   145
    ^ super normalParameterDecls ==> [:nodes|
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   146
"/        | params |
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   147
"/
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   148
"/        params := OrderedCollection new.
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   149
"/        params add: nodes first.
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   150
"/        nodes second do:[:pair|
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   151
"/            params add: pair second
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   152
"/        ].
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   153
"/        params.
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   154
        nodes.
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   155
    ].
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   156
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   157
    "Created: / 01-09-2013 / 09:30:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   158
!
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   159
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   160
normalParameterDeclsAndEllipsisParameterDecl
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   161
"/    ^ normalParameterDecls , (self tokenFor: ',') , ellipsisParameterDecl
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   162
    ^ super normalParameterDeclsAndEllipsisParameterDecl ==> [:nodes |
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   163
        nodes first copyWith: nodes third.
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   164
    ]
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   165
e6ebebcddbec Minor refactoring of Parser (formal parameters)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2697
diff changeset
   166
    "Created: / 01-09-2013 / 09:29:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2482
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   167
! !
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   168
2667
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   169
!JavaParser methodsFor:'grammar-classes-method'!
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   170
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   171
constructorDeclaration
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   172
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   173
"/        ^ constructorModifiers optional , 
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   174
"/           typeParameters optional , 
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   175
"/           self constructorNameIdentifier,
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   176
"/           formalParameters ,
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   177
"/           throws optional , 
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   178
"/           block
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   179
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   180
    ^ super constructorDeclaration ==> [:nodes |
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   181
        builder newConstructorDeclaration_modifiers: (nodes at:1)
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   182
                    typeParameters: (nodes at: 2)
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   183
                        parameters: (nodes at: 4)
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   184
                        exceptions: (nodes at: 5)
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   185
                              body: (nodes at: 6)
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   186
    ]
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   187
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   188
    "Created: / 24-08-2013 / 01:57:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   189
!
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   190
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   191
methodNotConstructorDeclaration
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   192
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   193
"/        ^ methodModifiers,
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   194
"/           typeParameters optional,
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   195
"/           ((self  voidKW) / type),
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   196
"/           self methodNameIdentifier,
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   197
"/           formalParameters ,
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   198
"/           emptySquaredParenthesis star ,
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   199
"/           throws optional,
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   200
"/           (block / (self tokenFor: ';'))
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   201
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   202
    ^ super methodNotConstructorDeclaration ==> [:nodes |
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   203
        builder newMethodDeclaration_modifiers: (nodes at:1)
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   204
                    typeParameters: (nodes at: 2)
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   205
                        returnType: (nodes at: 3)
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   206
                              name: (nodes at: 4)
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   207
                        parameters: (nodes at: 5)
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   208
                        exceptions: (nodes at: 7)
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   209
                              body: (nodes at: 8)      
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   210
    ]
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   211
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   212
    "Created: / 24-08-2013 / 02:00:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   213
! !
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   214
2482
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   215
!JavaParser methodsFor:'initialization'!
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   216
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   217
initialize
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   218
    super initialize.
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   219
    builder := JavaParseNodeBuilder new.
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   220
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   221
    "Created: / 03-04-2013 / 23:52:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2672
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   222
!
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   223
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   224
initializeProduction: name
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   225
    "Given a production name, return it a PPParser for it"
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   226
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   227
    | production |
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   228
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   229
    production := super initializeProduction: name.
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   230
    "Ugly!!"
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   231
    (production class == PPActionParser) ifTrue:[
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   232
        | oldBlock |
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   233
        oldBlock := production block.
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   234
        production setBlock:[:nodes|
2697
d5110c6822c6 Introducion a JavaSourceDocument.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   235
            | first last start stop node |
2672
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   236
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   237
            first := nodes.
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   238
            [ first isSequenceable and:[first notEmpty] ] whileTrue:[
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   239
                first := first first
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   240
            ].
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   241
            last := nodes.
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   242
            [ last isSequenceable and:[last notEmpty] ] whileTrue:[
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   243
                last := last last
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   244
            ].
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   245
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   246
            start := first perform: #startPosition ifNotUnderstood:[nil].
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   247
            stop := last perform: #endPosition ifNotUnderstood:[nil].
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   248
            builder start: start stop: stop.
2697
d5110c6822c6 Introducion a JavaSourceDocument.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   249
            node := oldBlock value: nodes.
d5110c6822c6 Introducion a JavaSourceDocument.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   250
"/            (node isKindOf: JavaDeclarationNode) ifTrue:[
d5110c6822c6 Introducion a JavaSourceDocument.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   251
"/                | comments javadoc streamPos |
d5110c6822c6 Introducion a JavaSourceDocument.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   252
"/
d5110c6822c6 Introducion a JavaSourceDocument.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   253
"/                comments := scanner comments.
d5110c6822c6 Introducion a JavaSourceDocument.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   254
"/                javadoc := comments detectLast:[:comment|comment last < start] ifNone:nil.
d5110c6822c6 Introducion a JavaSourceDocument.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   255
"/                javadoc notNil ifTrue:[
d5110c6822c6 Introducion a JavaSourceDocument.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   256
"/                    streamPos := scanner sourceStream position.
d5110c6822c6 Introducion a JavaSourceDocument.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   257
"/                    scanner sourceStream position: javadoc first.
d5110c6822c6 Introducion a JavaSourceDocument.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   258
"/                    (scanner sourceStream next: 3) = '/**' ifTrue:[
d5110c6822c6 Introducion a JavaSourceDocument.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   259
"/                        node javadoc: javadoc.
d5110c6822c6 Introducion a JavaSourceDocument.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   260
"/                    ].
d5110c6822c6 Introducion a JavaSourceDocument.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   261
"/                    scanner sourceStream position: streamPos
d5110c6822c6 Introducion a JavaSourceDocument.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   262
"/                ].
d5110c6822c6 Introducion a JavaSourceDocument.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   263
"/            ].
d5110c6822c6 Introducion a JavaSourceDocument.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   264
            node
2672
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   265
        ].
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   266
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   267
    ].
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   268
    ^ production
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   269
5e4a61287345 More work on Java parser (position, support for node inspector)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2667
diff changeset
   270
    "Created: / 25-08-2013 / 11:00:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2697
d5110c6822c6 Introducion a JavaSourceDocument.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2672
diff changeset
   271
    "Modified: / 30-08-2013 / 03:00:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2482
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   272
! !
2396
fadc6d7a2f5b Updated to rev 009a0df3afce
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2353
diff changeset
   273
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   274
!JavaParser class methodsFor:'documentation'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   275
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   276
version_CVS
2711
a00302fe5083 Added version_CVS to all classes and build files regenerated & cleaned.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2702
diff changeset
   277
    ^ '$Header$'
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   278
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   279
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   280
version_HG
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   281
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   282
    ^ '$Changeset: <not expanded> $'
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   283
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   284
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   285
version_SVN
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   286
    ^ '§Id§'
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   287
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   288