Changeset 1203


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.

Location:
proto/RE2PBS
Files:
2 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • proto/RE2PBS/Makefile

    r1171 r1203  
    55RE2PBS_PROTO_FILE       = prototype.py
    66RE2PBS_COMP_FILE        = compilable.py
    7 RE2PBS_DEF_FILE         = test/HexCharRefDef.txt
    8 RE2PBS_TEST_FILE        = test/CharRefTest.txt
     7RE2PBS_DEF_FILE         = test/generic/HexCharRefDef.txt
     8RE2PBS_TEST_FILE        = test/generic/CharRefTest.txt
    99
    1010PABLO_SRC_FILE  = $(RE2PBS_COMP_FILE)
     
    1313PABLO_OUT_FILE  = src/demo.cpp
    1414
     15# Add code to compile C/C++ source to object code.
    1516all:    pablo
    1617       
     18
    1719proto:  re2pbs
    1820        python $(RE2PBS_PROTO_FILE) $(RE2PBS_TEST_FILE)
     
    3335        rm -f $(RE2PBS_OUT_DIR)/$(GRAMMAR_NAME)Lexer.py $(RE2PBS_OUT_DIR)/$(GRAMMAR_NAME)Parser.py $(RE2PBS_OUT_DIR)/$(GRAMMAR_NAME).tokens $(PABLO_OUT_FILE) $(RE2PBS_COMP_FILE) $(RE2PBS_PROTO_FILE)
    3436
     37help:
     38        @echo '  Makefile --- Regular Expression to Parallel Bit Stream compilation.'
     39        @echo ''
     40        @echo '  all     - Compile Pablo generated C/C++ source code to object code.'
     41        @echo '  proto   - Run generated Python prototype.'
     42        @echo '  pablo   - Compile AnTLR generated Python compilable to C/C++ source code using Pablo.'
     43        @echo '  re2pbs  - Run Python regular expression parser and generate Python 'protoype' and 'compilable' source. '
     44        @echo '  grammar - Generate Python regular expression parser using AnTLR.'
     45        @echo '  ide     - Launch the AnTLRWorks IDE. '
     46        @echo '  clean   - Delete generated files.'
     47        @echo '  help    - Display help.'
     48        @echo ''
     49       
  • proto/RE2PBS/compilable_template.py

    r1167 r1203  
    3838        Classify_bytes(basis_bits, lex)
    3939        Demo(lex, scope1)
    40    
  • 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
  • proto/RE2PBS/re2pbsj.g

    r1130 r1203  
    1919}
    2020
    21 @header {
    22 
    23 }
    24 
    25 @members {
    26 
    27 }
    28 
    29 @lexer::header {
    30 }
    31 
    32 @lexer::members {
    33 
    34 }
     21@header {}
     22@members {}
     23
     24@lexer::header {}
     25@lexer::members {}
    3526
    3627prog    :       re EOF
     
    4738        ;       
    4839
    49 atom   
    50 @init {
    51    
    52 }
    53 @after {
    54 
    55 }
    56         :
    57         (       
    58 //      character       
    59         single
    60         |
    61         characterClass 
     40atom    :
     41        group (QuestionMark)?
     42        |
     43        (
     44          (     
     45          single
     46          |
     47          characterClass       
     48          )
     49          (QuestionMark | Star | Cross)?
    6250        )
    63         (Quantifier)?
     51        ;
     52
     53group   :
     54        RoundBracketStart
     55        re
     56        RoundBracketEnd
    6457        ;
    6558       
    6659characterClass
    67 @init {
    68        
    69 }
    7060        :
    7161        SquareBracketStart                     
     
    7969        ;
    8070
    81 /*     
    82 range   : 
    83         characterClassCharacter Hyphen characterClassCharacter                                                         
    84         ;       
    85        
    86 single  :
    87         characterClassCharacter
    88         ;
    89 */     
    90 
    9171range   : 
    9272        single Hyphen single
    9373        ;       
    9474               
    95 single
    96         : UnicodeCharacter     
     75single  : UnicodeCharacter     
    9776                                                                       
    9877        | SmallHexNumber       
     
    10180
    10281        | NotSuperMetaCharacter
    103        
    10482        ;
    10583
     
    11391        | EscapeMetaCharacter   
    11492       
    115         | NotMetaCharacter             
    116                                                                                                                                        
     93        | NotMetaCharacter                                                                                                     
    11794        ;       
    11895*/
     
    136113
    137114// metacharacters
    138 Or                 :  '|'      ;
     115Or                 :  '|'       ;
     116RoundBracketStart  :  '('       ;       
     117RoundBracketEnd    :  ')'       ;       
    139118
    140119// character class metacharacters       
     
    205184fragment
    206185SuperMetaCharacters
    207         : (QuestionMark | Star | Cross | Or | SquareBracketStart | SquareBracketEnd | Escape | Hyphen | Escape | Caret)
     186        : (QuestionMark | Star | Cross | Or | SquareBracketStart | SquareBracketEnd | Escape | Hyphen | Escape | Caret | RoundBracketStart | RoundBracketEnd)
    208187        ;
    209188
     
    222201//      ;       
    223202
    224 Quantifier
    225         :  QuestionMark
    226         |  Star
    227         |  Cross
    228         ;       
     203//Quantifier
     204//      :  QuestionMark
     205//      |  Star
     206//      |  Cross
     207//      ;       
    229208       
    230209// repetition
    231 fragment       
    232210QuestionMark       :  '?'      ;       
    233 
    234 fragment       
    235211Star               :  '*'      ;       
    236 
    237 fragment       
    238 Cross               :  '+'      ;       
     212Cross              :  '+'      ;       
    239213
    240214/*
     
    309283<set-items>     ::=     <range> | <char>
    310284<range>         ::=     <char> "-" <char>
    311 
    312 */
     285*/
Note: See TracChangeset for help on using the changeset viewer.