parsers/java/PJPackageDeclarationNode.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 16 Jun 2015 06:45:26 +0100
changeset 489 0ca7a70db0f5
parent 454 a9cd5ea7cc36
permissions -rw-r--r--
Fix in codegen for inlined sequence nodes. For inlined sequence nodes, generate nested ifs rather than sequential code which does not work when inlined. The reason is that #codeReturn: in inline generates instvar assignment, not method return, so in sequential code the next child of a sequence will be probed even if previous failed. If that happends, the whole sequence fail and therefore we must generate nested ifs to correctly handle this w.r.t. inlining.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
435
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/petitparser/parsers/java' }"
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: Smalltalk }"
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
PJASTNode subclass:#PJPackageDeclarationNode
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:'nameNode'
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'PetitJava-AST'
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
454
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 436
diff changeset
    12
435
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
!PJPackageDeclarationNode methodsFor:'accessing'!
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
nameNode
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
	^ nameNode
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
!
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
nameNode: anObject
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
	nameNode := anObject
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
! !
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
!PJPackageDeclarationNode methodsFor:'visiting'!
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
acceptVisitor: aVisitor
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
	aVisitor visitPackageDeclarationNode: self
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
! !
3bc08fb90133 Initial commit of PetitJava
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
454
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 436
diff changeset
    30
!PJPackageDeclarationNode class methodsFor:'documentation'!
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 436
diff changeset
    31
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 436
diff changeset
    32
version_HG
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 436
diff changeset
    33
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 436
diff changeset
    34
    ^ '$Changeset: <not expanded> $'
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 436
diff changeset
    35
! !
a9cd5ea7cc36 Portability: fixes for Smalltalk/X
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 436
diff changeset
    36