compiler/PPMappedActionParser.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 03 Jun 2015 06:23:49 +0100
changeset 481 34ee0d3c72e7
parent 480 5b0254cca4db
child 501 e29bd90f388e
permissions -rw-r--r--
Introduced PPCMappedActionNode for PPMappedActionParser. It's compilation is not yet ideal, bot works for now.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
480
5b0254cca4db Introduced PPMappedActionParser, a specialized parser for map:ped actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/petitparser/compiler' }"
5b0254cca4db Introduced PPMappedActionParser, a specialized parser for map:ped actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
5b0254cca4db Introduced PPMappedActionParser, a specialized parser for map:ped actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: Smalltalk }"
5b0254cca4db Introduced PPMappedActionParser, a specialized parser for map:ped actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
5b0254cca4db Introduced PPMappedActionParser, a specialized parser for map:ped actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
PPActionParser subclass:#PPMappedActionParser
5b0254cca4db Introduced PPMappedActionParser, a specialized parser for map:ped actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:''
5b0254cca4db Introduced PPMappedActionParser, a specialized parser for map:ped actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
5b0254cca4db Introduced PPMappedActionParser, a specialized parser for map:ped actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
5b0254cca4db Introduced PPMappedActionParser, a specialized parser for map:ped actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'PetitParser-Parsers'
5b0254cca4db Introduced PPMappedActionParser, a specialized parser for map:ped actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
5b0254cca4db Introduced PPMappedActionParser, a specialized parser for map:ped actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
481
34ee0d3c72e7 Introduced PPCMappedActionNode for PPMappedActionParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 480
diff changeset
    12
!PPMappedActionParser methodsFor:'*petitcompiler'!
34ee0d3c72e7 Introduced PPCMappedActionNode for PPMappedActionParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 480
diff changeset
    13
34ee0d3c72e7 Introduced PPCMappedActionNode for PPMappedActionParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 480
diff changeset
    14
asCompilerNode
34ee0d3c72e7 Introduced PPCMappedActionNode for PPMappedActionParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 480
diff changeset
    15
    ^ PPCMappedActionNode new
34ee0d3c72e7 Introduced PPCMappedActionNode for PPMappedActionParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 480
diff changeset
    16
        name: self name;
34ee0d3c72e7 Introduced PPCMappedActionNode for PPMappedActionParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 480
diff changeset
    17
        block: block;
34ee0d3c72e7 Introduced PPCMappedActionNode for PPMappedActionParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 480
diff changeset
    18
        child: parser;
34ee0d3c72e7 Introduced PPCMappedActionNode for PPMappedActionParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 480
diff changeset
    19
        properties: properties;
34ee0d3c72e7 Introduced PPCMappedActionNode for PPMappedActionParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 480
diff changeset
    20
        parser: self;
34ee0d3c72e7 Introduced PPCMappedActionNode for PPMappedActionParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 480
diff changeset
    21
        yourself
34ee0d3c72e7 Introduced PPCMappedActionNode for PPMappedActionParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 480
diff changeset
    22
34ee0d3c72e7 Introduced PPCMappedActionNode for PPMappedActionParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 480
diff changeset
    23
    "Created: / 02-06-2015 / 17:27:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
34ee0d3c72e7 Introduced PPCMappedActionNode for PPMappedActionParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 480
diff changeset
    24
! !
34ee0d3c72e7 Introduced PPCMappedActionNode for PPMappedActionParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 480
diff changeset
    25
480
5b0254cca4db Introduced PPMappedActionParser, a specialized parser for map:ped actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
!PPMappedActionParser methodsFor:'parsing'!
5b0254cca4db Introduced PPMappedActionParser, a specialized parser for map:ped actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
5b0254cca4db Introduced PPMappedActionParser, a specialized parser for map:ped actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
parseOn: aPPContext
5b0254cca4db Introduced PPMappedActionParser, a specialized parser for map:ped actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
    | element |
5b0254cca4db Introduced PPMappedActionParser, a specialized parser for map:ped actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
    ^ (element := parser parseOn: aPPContext) isPetitFailure
5b0254cca4db Introduced PPMappedActionParser, a specialized parser for map:ped actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
            ifFalse: [ block valueWithArguments: element ]
5b0254cca4db Introduced PPMappedActionParser, a specialized parser for map:ped actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
            ifTrue: [ element ]
5b0254cca4db Introduced PPMappedActionParser, a specialized parser for map:ped actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
5b0254cca4db Introduced PPMappedActionParser, a specialized parser for map:ped actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
    "Created: / 02-06-2015 / 17:15:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5b0254cca4db Introduced PPMappedActionParser, a specialized parser for map:ped actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
! !
5b0254cca4db Introduced PPMappedActionParser, a specialized parser for map:ped actions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36