tools/JavaParser.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Sat, 24 Aug 2013 17:11:15 +0100
branchdevelopment
changeset 2667 5daa560d20d8
parent 2501 53d731454d43
child 2672 5e4a61287345
permissions -rw-r--r--
More work on Java code partitioner.
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
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    74
packageDeclaration 
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    75
    "
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    76
        ^ (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
    77
    "
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    78
    ^super packageDeclaration ==> [:nodes |
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    79
        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
    80
    ]
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    81
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    82
    "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
    83
!
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    84
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    85
typeDeclaration
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    86
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    87
        ^ ((self tokenFor: ';') ==> nil) / classOrInterfaceDeclaration
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    88
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    89
    "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
    90
! !
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    91
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    92
!JavaParser methodsFor:'grammar-classes'!
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
    93
2667
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
    94
classBody 
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
    95
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
    96
    ^ 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
    97
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
    98
    "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
    99
!
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   100
2482
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   101
normalClassDeclaration 
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
        ^ 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
   104
                typeParameters optional,
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   105
                jsuper optional,
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   106
                interfaces optional ,
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   107
                classBody
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   108
    "
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   109
    ^ super normalClassDeclaration ==> [:nodes|
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   110
        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
   111
                    name: (nodes at:3)
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   112
                    typeParameters: (nodes at:4)
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   113
                    superclass: (nodes at:5)
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   114
                    interfaces: (nodes at:6)
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   115
                    members: (nodes at:7)
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   116
    ]
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   117
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   118
    "Created: / 04-04-2013 / 00:04:00 / 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
   119
! !
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   120
2667
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   121
!JavaParser methodsFor:'grammar-classes-method'!
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   122
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   123
constructorDeclaration
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   124
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   125
"/        ^ constructorModifiers optional , 
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   126
"/           typeParameters optional , 
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   127
"/           self constructorNameIdentifier,
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   128
"/           formalParameters ,
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   129
"/           throws optional , 
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   130
"/           block
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   131
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   132
    ^ super constructorDeclaration ==> [:nodes |
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   133
        builder newConstructorDeclaration_modifiers: (nodes at:1)
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   134
                    typeParameters: (nodes at: 2)
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   135
                        parameters: (nodes at: 4)
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   136
                        exceptions: (nodes at: 5)
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   137
                              body: (nodes at: 6)
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   138
    ]
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   139
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   140
    "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
   141
!
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   142
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   143
methodNotConstructorDeclaration
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   144
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   145
"/        ^ methodModifiers,
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   146
"/           typeParameters optional,
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   147
"/           ((self  voidKW) / type),
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   148
"/           self methodNameIdentifier,
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   149
"/           formalParameters ,
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   150
"/           emptySquaredParenthesis star ,
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   151
"/           throws optional,
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   152
"/           (block / (self tokenFor: ';'))
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   153
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   154
    ^ super methodNotConstructorDeclaration ==> [:nodes |
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   155
        builder newMethodDeclaration_modifiers: (nodes at:1)
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   156
                    typeParameters: (nodes at: 2)
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   157
                        returnType: (nodes at: 3)
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   158
                              name: (nodes at: 4)
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   159
                        parameters: (nodes at: 5)
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   160
                        exceptions: (nodes at: 7)
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   161
                              body: (nodes at: 8)      
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   162
    ]
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   163
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   164
    "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
   165
! !
5daa560d20d8 More work on Java code partitioner.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2501
diff changeset
   166
2482
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   167
!JavaParser methodsFor:'initialization'!
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   168
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   169
initialize
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   170
    super initialize.
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   171
    builder := JavaParseNodeBuilder new.
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   172
109ed9ecf4f7 Some more work on parser, AST and partitioner...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2429
diff changeset
   173
    "Created: / 03-04-2013 / 23:52:36 / 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
   174
! !
2396
fadc6d7a2f5b Updated to rev 009a0df3afce
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2353
diff changeset
   175
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
!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
   177
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
version_CVS
2396
fadc6d7a2f5b Updated to rev 009a0df3afce
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2353
diff changeset
   179
    ^ '$Header: /cvs/stx/stx/libjava/tools/JavaParser.st,v 1.2 2013-02-25 11:15:35 vrany Exp $'
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   180
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   181
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
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
   183
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   184
    ^ '$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
   185
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   186
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   187
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
   188
    ^ '§Id§'
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   189
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   190