Changeset 1203 for proto/RE2PBS/re2pbs.g


Ignore:
Timestamp:
Jul 4, 2011, 7:36:05 AM (8 years ago)
Author:
ksherdy
Message:

General commit. Last commit over two months prior and details are fuzzy at this point.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • proto/RE2PBS/re2pbs.g

    r1167 r1203  
    125125                        # initialize an object
    126126                        object.concatenation_list.append(c0)
    127 
    128127                }
    129128                (
     
    158157        :
    159158        (
    160         single  {
    161                         symbol.add_codepoint($single.object.codepoint)
    162                         object.strm_name = symbol.key()
    163                 }
    164         |
    165         characterClass 
    166                 {       
    167                         for obj in $characterClass.object.single_or_range:
    168                                 if isinstance(obj,Single):
    169                                         symbol.add_codepoint(obj.codepoint, $characterClass.object.invert)
    170                                 elif isinstance(obj,Range):
    171                                         symbol.add_codepoint_range(obj.codepoint_lower, obj.codepoint_upper, $characterClass.object.invert)
    172                         object.strm_name = symbol.key()
    173                 }
     159                group   
     160                (q0 = QuestionMark      {object.quantifier = $q0.text} )?
     161                |
     162                (
     163                        single  {
     164                                        symbol.add_codepoint($single.object.codepoint)
     165                                        object.strm_name = symbol.key()
     166                                }
     167                        |
     168                        characterClass 
     169                                {       
     170                                        for obj in $characterClass.object.single_or_range:
     171                                                if isinstance(obj,Single):
     172                                                        symbol.add_codepoint(obj.codepoint, $characterClass.object.invert)
     173                                                elif isinstance(obj,Range):
     174                                                        symbol.add_codepoint_range(obj.codepoint_lower, obj.codepoint_upper, $characterClass.object.invert)
     175                                        object.strm_name = symbol.key()
     176                                }
     177                )
     178                ( q1 = QuestionMark     {object.quantifier = $q1.text}
     179                | Star                  {object.quantifier = $Star.text}
     180                | Cross                 {object.quantifier = $Cross.text} )?
    174181        )
    175         (Quantifier {object.quantifier = $Quantifier.text})?
    176         ;
     182        ;
     183       
     184group   :
     185        RoundBracketStart
     186        re
     187        RoundBracketEnd
     188        ;       
    177189       
    178190characterClass  returns [object]
     
    232244Escape             :  '\\'     ;
    233245Or                 :  '|'      ;
     246RoundBracketStart  :  '('       ;       
     247RoundBracketEnd    :  ')'       ;       
    234248SquareBracketStart :  '['      ;       
    235249Hyphen             :  '-'      ;       
     
    263277        : (QuestionMark | Star | Cross | Or | SquareBracketStart | SquareBracketEnd | Hyphen | Escape | Caret)
    264278        ;
    265        
     279
     280/*     
    266281Quantifier
    267282        :  QuestionMark
     
    269284        |  Cross
    270285        ;       
    271 
    272 fragment
     286*/
    273287QuestionMark       :  '?'      ;       
    274 
    275 fragment
    276288Star               :  '*'      ;       
    277 
    278 fragment
    279289Cross              :  '+'      ;       
    280290
Note: See TracChangeset for help on using the changeset viewer.