SmallSense__TokenPatternParser.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 09 May 2014 17:29:26 +0100
changeset 204 190357b490fd
parent 203 c70b7351eda6
child 249 8bc64027b189
child 346 88c1d211f9be
permissions -rw-r--r--
Allow for spaces in token patterns to increase readibility.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
199
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'jv:smallsense' }"
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: SmallSense }"
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
203
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
     5
Regex::RxParser subclass:#TokenPatternParser
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
     6
	instanceVariableNames:''
199
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'SmallSense-Utils-Matcher'
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
203
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    12
Regex::RxCharSetParser subclass:#TokenSpecParser
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    13
	instanceVariableNames:''
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    14
	classVariableNames:''
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    15
	poolDictionaries:''
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    16
	privateIn:TokenPatternParser
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    17
!
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    18
202
5c8610dad14c TokenExpression* renamed to TokenPattern*
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 200
diff changeset
    19
!TokenPatternParser class methodsFor:'documentation'!
199
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
documentation
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
"
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
    A parser to parse token patterns
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
    [author:]
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
        Jan Vrany <jan.vrany@fit.cvut.cz>
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
    [instance variables:]
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
    [class variables:]
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
    [see also:]
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
"
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
! !
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
202
5c8610dad14c TokenExpression* renamed to TokenPattern*
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 200
diff changeset
    37
!TokenPatternParser class methodsFor:'parsing'!
199
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
parse: anArrayOrStream
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
    ^ self new parse: anArrayOrStream
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
    "Created: / 02-05-2014 / 18:56:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
! !
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
203
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    45
!TokenPatternParser methodsFor:'private'!
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    46
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    47
characterSetFrom: setSpec
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    48
        "<setSpec> is what goes between the brackets in a charset regex
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    49
        (a String). Make a string containing all characters the spec specifies.
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    50
        Spec is never empty."
199
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
203
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    52
        | negated spec |
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    53
        spec := ReadStream on: setSpec.
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    54
        spec peek = $^
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    55
                ifTrue:         [negated := true.
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    56
                                spec next]
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    57
                ifFalse:        [negated := false].
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    58
        ^ TokenPatternTokenSet new
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    59
                initializeElements: (TokenSpecParser on: spec) parse
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    60
                negated: negated
199
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
203
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    62
    "Created: / 09-05-2014 / 15:48:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
204
190357b490fd Allow for spaces in token patterns to increase readibility.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 203
diff changeset
    63
!
190357b490fd Allow for spaces in token patterns to increase readibility.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 203
diff changeset
    64
190357b490fd Allow for spaces in token patterns to increase readibility.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 203
diff changeset
    65
next
190357b490fd Allow for spaces in token patterns to increase readibility.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 203
diff changeset
    66
    "Advance the input storing the just read character
190357b490fd Allow for spaces in token patterns to increase readibility.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 203
diff changeset
    67
    as the lookahead."
190357b490fd Allow for spaces in token patterns to increase readibility.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 203
diff changeset
    68
190357b490fd Allow for spaces in token patterns to increase readibility.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 203
diff changeset
    69
    "/ Overriden here to allow for spaces (to increase readability)
190357b490fd Allow for spaces in token patterns to increase readibility.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 203
diff changeset
    70
190357b490fd Allow for spaces in token patterns to increase readibility.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 203
diff changeset
    71
    input atEnd ifTrue: [
190357b490fd Allow for spaces in token patterns to increase readibility.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 203
diff changeset
    72
        lookahead := #epsilon.
190357b490fd Allow for spaces in token patterns to increase readibility.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 203
diff changeset
    73
    ] ifFalse:[ 
190357b490fd Allow for spaces in token patterns to increase readibility.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 203
diff changeset
    74
        input skipSeparators.
190357b490fd Allow for spaces in token patterns to increase readibility.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 203
diff changeset
    75
        lookahead := input next
190357b490fd Allow for spaces in token patterns to increase readibility.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 203
diff changeset
    76
    ].
190357b490fd Allow for spaces in token patterns to increase readibility.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 203
diff changeset
    77
190357b490fd Allow for spaces in token patterns to increase readibility.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 203
diff changeset
    78
    "Created: / 09-05-2014 / 17:24:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
199
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
! !
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
203
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    81
!TokenPatternParser methodsFor:'recursive descent'!
199
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
203
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    83
atom
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    84
    | atom |
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    85
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    86
    atom := super atom.
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    87
    (atom isKindOf:Regex::RxsCharacter) ifTrue:[
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    88
        atom := TokenPatternToken new type:atom character.
199
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
    ].
203
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    90
    ^ atom
199
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
203
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    92
    "Created: / 09-05-2014 / 15:56:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    93
! !
199
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
203
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    95
!TokenPatternParser::TokenSpecParser methodsFor:'parsing'!
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    96
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    97
parseNamedSet
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
    98
    | type value done out |
199
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
203
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   100
    self
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   101
        match:$[;
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   102
        match:$:.
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   103
    done := false.
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   104
    out := '' writeStream.
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   105
    [ done ] whileFalse:[ 
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   106
        lookahead == $\ ifTrue:[ 
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   107
            "/ Escape sequence
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   108
            lookahead := source next.
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   109
            out nextPut: lookahead.
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   110
        ] ifFalse:[ 
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   111
            lookahead == $: ifTrue:[ 
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   112
                done := true.
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   113
            ] ifFalse:[ 
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   114
                lookahead == $= ifTrue:[ 
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   115
                    type := out contents.
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   116
                    out reset.
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   117
                ] ifFalse:[ 
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   118
                    out nextPut: lookahead.
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   119
                ].
199
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
            ].
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
        ].
203
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   122
        lookahead := source next.
199
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
    ].
203
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   124
    type isNil ifTrue:[ 
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   125
        type := out contents.
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   126
    ] ifFalse:[
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   127
        value := out contents.
200
12d6a2f82d95 Fixed basic token expression matching.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 199
diff changeset
   128
    ].
203
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   129
    self match:$].
199
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
203
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   131
    elements add:((TokenPatternToken new)
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   132
                type:type;
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   133
                value:value)
199
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
203
c70b7351eda6 Changed TokenPatternParser to parse from string rather from literal array.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 202
diff changeset
   135
    "Modified: / 09-05-2014 / 16:35:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
199
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
! !
c2d7421cb317 Initial work on token stream matcher
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137