compiler/tests/extras/PPCompiledSmalltalkGrammarTests.st
changeset 515 b5316ef15274
parent 502 1e45d3c96ec5
child 516 3b81c9e53352
child 524 f6f68d32de73
equal deleted inserted replaced
502:1e45d3c96ec5 515:b5316ef15274
     1 "{ Package: 'stx:goodies/petitparser/compiler/tests/extras' }"
       
     2 
       
     3 "{ NameSpace: Smalltalk }"
       
     4 
       
     5 PPCompositeParserTest subclass:#PPCompiledSmalltalkGrammarTests
       
     6 	instanceVariableNames:''
       
     7 	classVariableNames:''
       
     8 	poolDictionaries:''
       
     9 	category:'PetitCompiler-Extras-Tests-Smalltalk'
       
    10 !
       
    11 
       
    12 
       
    13 !PPCompiledSmalltalkGrammarTests class methodsFor:'accessing'!
       
    14 
       
    15 resources
       
    16     ^ (OrderedCollection with: PPCompiledSmalltalkGrammarResource)
       
    17         addAll: super resources;
       
    18         yourself
       
    19 ! !
       
    20 
       
    21 !PPCompiledSmalltalkGrammarTests methodsFor:'accessing'!
       
    22 
       
    23 context
       
    24     ^ PPCContext new
       
    25 !
       
    26 
       
    27 parserClass
       
    28     ^ Smalltalk at: #PPCompiledSmalltalkGrammar
       
    29 !
       
    30 
       
    31 parserInstanceFor: aSymbol
       
    32     ^ (Smalltalk at: #PPCompiledSmalltalkGrammar) new startSymbol: aSymbol
       
    33 ! !
       
    34 
       
    35 !PPCompiledSmalltalkGrammarTests methodsFor:'testing'!
       
    36 
       
    37 testArray1
       
    38     self 
       
    39         parse: '{}'
       
    40         rule: #array
       
    41 !
       
    42 
       
    43 testArray2
       
    44     self 
       
    45         parse: '{self foo}'
       
    46         rule: #array
       
    47 !
       
    48 
       
    49 testArray3
       
    50     self 
       
    51         parse: '{self foo. self bar}'
       
    52         rule: #array
       
    53 !
       
    54 
       
    55 testArray4
       
    56     self 
       
    57         parse: '{self foo. self bar.}'
       
    58         rule: #array
       
    59 !
       
    60 
       
    61 testAssignment1
       
    62     self 
       
    63         parse: '1'
       
    64         rule: #expression
       
    65 !
       
    66 
       
    67 testAssignment2
       
    68     self 
       
    69         parse: 'a := 1'
       
    70         rule: #expression
       
    71 !
       
    72 
       
    73 testAssignment3
       
    74     self 
       
    75         parse: 'a := b := 1'
       
    76         rule: #expression
       
    77 !
       
    78 
       
    79 testAssignment4
       
    80     PPSmalltalkGrammar allowUnderscoreAssignment
       
    81         ifTrue: [ self parse: 'a _ 1' rule: #expression ]
       
    82         ifFalse: [ self fail: 'a _ 1' rule: #expression ]
       
    83 !
       
    84 
       
    85 testAssignment5
       
    86     PPSmalltalkGrammar allowUnderscoreAssignment
       
    87         ifTrue: [ self parse: 'a _ b _ 1' rule: #expression ]
       
    88         ifFalse: [ self fail: 'a _ b _ 1' rule: #expression ]
       
    89 !
       
    90 
       
    91 testAssignment6
       
    92     self 
       
    93         parse: 'a := (b := c)'
       
    94         rule: #expression
       
    95 !
       
    96 
       
    97 testComment1
       
    98     self 
       
    99         parse: '1"one"+2'
       
   100         rule: #expression
       
   101 !
       
   102 
       
   103 testComment2
       
   104     self 
       
   105         parse: '1 "one" +2'
       
   106         rule: #expression
       
   107 !
       
   108 
       
   109 testComment3
       
   110     self 
       
   111         parse: '1"one"+"two"2'
       
   112         rule: #expression
       
   113 !
       
   114 
       
   115 testComment4
       
   116     self 
       
   117         parse: '1"one""two"+2'
       
   118         rule: #expression
       
   119 !
       
   120 
       
   121 testComment5
       
   122     self 
       
   123         parse: '1"one"	"two"+2'
       
   124         rule: #expression
       
   125 !
       
   126 
       
   127 testCompleteness
       
   128     "This test asserts that all subclasses override all test methods."
       
   129     
       
   130     self class allSubclasses do: [ :subclass |
       
   131         self class testSelectors do: [ :selector |
       
   132             self 
       
   133                 assert: (selector = #testCompleteness or: [ subclass selectors includes: selector ])
       
   134                 description: subclass printString , ' does not test ' , selector printString ] ]
       
   135 !
       
   136 
       
   137 testMethod1
       
   138     self 
       
   139         parse: 'negated ^ 0 - self'
       
   140         rule: #method
       
   141 !
       
   142 
       
   143 testMethod2
       
   144     "Spaces at the beginning of the method."
       
   145     self 
       
   146         parse: '	  negated ^ 0 - self'
       
   147         rule: #method
       
   148 !
       
   149 
       
   150 testMethod3
       
   151     "Spaces at the end of the method."
       
   152     self 
       
   153         parse: '	negated ^ 0 - self  '
       
   154         rule: #method
       
   155 !
       
   156 
       
   157 testSequence1
       
   158     self 
       
   159         parse: '| a | 1 . 2'
       
   160         rule: #sequence
       
   161 !
       
   162 
       
   163 testStatements1
       
   164     self 
       
   165         parse: '1'
       
   166         rule: #sequence
       
   167 !
       
   168 
       
   169 testStatements2
       
   170     self 
       
   171         parse: '1 . 2'
       
   172         rule: #sequence
       
   173 !
       
   174 
       
   175 testStatements3
       
   176     self 
       
   177         parse: '1 . 2 . 3'
       
   178         rule: #sequence
       
   179 !
       
   180 
       
   181 testStatements4
       
   182     self 
       
   183         parse: '1 . 2 . 3 .'
       
   184         rule: #sequence
       
   185 !
       
   186 
       
   187 testStatements5
       
   188     self 
       
   189         parse: '1 . . 2'
       
   190         rule: #sequence
       
   191 !
       
   192 
       
   193 testStatements6
       
   194     self 
       
   195         parse: '1. 2'
       
   196         rule: #sequence
       
   197 !
       
   198 
       
   199 testStatements7
       
   200     self 
       
   201         parse: '. 1'
       
   202         rule: #sequence
       
   203 !
       
   204 
       
   205 testStatements8
       
   206     self 
       
   207         parse: '.1'
       
   208         rule: #sequence
       
   209 !
       
   210 
       
   211 testStatements9
       
   212     self 
       
   213         parse: ''
       
   214         rule: #statements
       
   215 !
       
   216 
       
   217 testTemporaries1
       
   218     self 
       
   219         parse: '| a |'
       
   220         rule: #sequence
       
   221 !
       
   222 
       
   223 testTemporaries2
       
   224     self 
       
   225         parse: '| a b |'
       
   226         rule: #sequence
       
   227 !
       
   228 
       
   229 testTemporaries3
       
   230     self 
       
   231         parse: '| a b c |'
       
   232         rule: #sequence
       
   233 !
       
   234 
       
   235 testVariable1
       
   236     self 
       
   237         parse: 'trueBinding'
       
   238         rule: #primary
       
   239 !
       
   240 
       
   241 testVariable2
       
   242     self 
       
   243         parse: 'falseBinding'
       
   244         rule: #primary
       
   245 !
       
   246 
       
   247 testVariable3
       
   248     self 
       
   249         parse: 'nilly'
       
   250         rule: #primary
       
   251 !
       
   252 
       
   253 testVariable4
       
   254     self 
       
   255         parse: 'selfish'
       
   256         rule: #primary
       
   257 !
       
   258 
       
   259 testVariable5
       
   260     self 
       
   261         parse: 'supernanny'
       
   262         rule: #primary
       
   263 !
       
   264 
       
   265 testVariable6
       
   266     PPSmalltalkGrammar allowUnderscoreAssignment ifFalse: [
       
   267         self 
       
   268             parse: 'super_nanny'
       
   269             rule: #primary ]
       
   270 !
       
   271 
       
   272 testVariable7
       
   273     PPSmalltalkGrammar allowUnderscoreAssignment ifFalse: [
       
   274         self 
       
   275             parse: '__gen_var_123__'
       
   276             rule: #primary ]
       
   277 ! !
       
   278 
       
   279 !PPCompiledSmalltalkGrammarTests methodsFor:'testing-blocks'!
       
   280 
       
   281 testArgumentsBlock1
       
   282     self 
       
   283         parse: '[ :a | ]'
       
   284         rule: #block
       
   285 !
       
   286 
       
   287 testArgumentsBlock2
       
   288     self 
       
   289         parse: '[ :a :b | ]'
       
   290         rule: #block
       
   291 !
       
   292 
       
   293 testArgumentsBlock3
       
   294     self 
       
   295         parse: '[ :a :b :c | ]'
       
   296         rule: #block
       
   297 !
       
   298 
       
   299 testBlock1
       
   300     self 
       
   301         parse: '[]'
       
   302         rule: #block
       
   303 !
       
   304 
       
   305 testComplexBlock1
       
   306     self 
       
   307         parse: '[ :a | | b | c ]'
       
   308         rule: #block
       
   309 !
       
   310 
       
   311 testComplexBlock2
       
   312     self 
       
   313         parse: '[:a||b|c]'
       
   314         rule: #block
       
   315 !
       
   316 
       
   317 testSimpleBlock1
       
   318     self 
       
   319         parse: '[ ]'
       
   320         rule: #block
       
   321 !
       
   322 
       
   323 testSimpleBlock2
       
   324     self 
       
   325         parse: '[ nil ]'
       
   326         rule: #block
       
   327 !
       
   328 
       
   329 testSimpleBlock3
       
   330     self 
       
   331         parse: '[ :a ]'
       
   332         rule: #block
       
   333 !
       
   334 
       
   335 testStatementBlock1
       
   336     self 
       
   337         parse: '[ nil ]'
       
   338         rule: #block
       
   339 !
       
   340 
       
   341 testStatementBlock2
       
   342     self 
       
   343         parse: '[ | a | nil ]'
       
   344         rule: #block
       
   345 !
       
   346 
       
   347 testStatementBlock3
       
   348     self 
       
   349         parse: '[ | a b | nil ]'
       
   350         rule: #block
       
   351 ! !
       
   352 
       
   353 !PPCompiledSmalltalkGrammarTests methodsFor:'testing-literals'!
       
   354 
       
   355 testArrayLiteral1
       
   356     self 
       
   357         parse: '#()'
       
   358         rule: #arrayLiteral
       
   359 !
       
   360 
       
   361 testArrayLiteral10
       
   362     self 
       
   363         parse: '#((1 2) #(1 2 3))'
       
   364         rule: #arrayLiteral
       
   365 !
       
   366 
       
   367 testArrayLiteral11
       
   368     self 
       
   369         parse: '#([1 2] #[1 2 3])'
       
   370         rule: #arrayLiteral
       
   371 !
       
   372 
       
   373 testArrayLiteral2
       
   374     self 
       
   375         parse: '#(1)'
       
   376         rule: #arrayLiteral
       
   377 !
       
   378 
       
   379 testArrayLiteral3
       
   380     self 
       
   381         parse: '#(1 2)'
       
   382         rule: #arrayLiteral
       
   383 !
       
   384 
       
   385 testArrayLiteral4
       
   386     self 
       
   387         parse: '#(true false nil)'
       
   388         rule: #arrayLiteral
       
   389 !
       
   390 
       
   391 testArrayLiteral5
       
   392     self 
       
   393         parse: '#($a)'
       
   394         rule: #arrayLiteral
       
   395 !
       
   396 
       
   397 testArrayLiteral6
       
   398     self 
       
   399         parse: '#(1.2)'
       
   400         rule: #arrayLiteral
       
   401 !
       
   402 
       
   403 testArrayLiteral7
       
   404     self 
       
   405         parse: '#(size #at: at:put: #''=='')'
       
   406         rule: #arrayLiteral
       
   407 !
       
   408 
       
   409 testArrayLiteral8
       
   410     self 
       
   411         parse: '#(''baz'')'
       
   412         rule: #arrayLiteral
       
   413 !
       
   414 
       
   415 testArrayLiteral9
       
   416     self 
       
   417         parse: '#((1) 2)'
       
   418         rule: #arrayLiteral
       
   419 !
       
   420 
       
   421 testByteLiteral1
       
   422     self 
       
   423         parse: '#[]'
       
   424         rule: #byteLiteral
       
   425 !
       
   426 
       
   427 testByteLiteral2
       
   428     self 
       
   429         parse: '#[0]'
       
   430         rule: #byteLiteral
       
   431 !
       
   432 
       
   433 testByteLiteral3
       
   434     self 
       
   435         parse: '#[255]'
       
   436         rule: #byteLiteral
       
   437 !
       
   438 
       
   439 testByteLiteral4
       
   440     self 
       
   441         parse: '#[ 1 2 ]'
       
   442         rule: #byteLiteral
       
   443 !
       
   444 
       
   445 testByteLiteral5
       
   446     self 
       
   447         parse: '#[ 2r1010 8r77 16rFF ]'
       
   448         rule: #byteLiteral
       
   449 !
       
   450 
       
   451 testCharLiteral1
       
   452     self 
       
   453         parse: '$a'
       
   454         rule: #charLiteral
       
   455 !
       
   456 
       
   457 testCharLiteral2
       
   458     self 
       
   459         parse: '$ '
       
   460         rule: #charLiteral
       
   461 !
       
   462 
       
   463 testCharLiteral3
       
   464     self 
       
   465         parse: '$$'
       
   466         rule: #charLiteral
       
   467 !
       
   468 
       
   469 testNumberLiteral1
       
   470     self 
       
   471         parse: '0'
       
   472         rule: #numberLiteral
       
   473 !
       
   474 
       
   475 testNumberLiteral10
       
   476     self 
       
   477         parse: '10r10'
       
   478         rule: #numberLiteral
       
   479 !
       
   480 
       
   481 testNumberLiteral11
       
   482     self 
       
   483         parse: '8r777'
       
   484         rule: #numberLiteral
       
   485 !
       
   486 
       
   487 testNumberLiteral12
       
   488     self 
       
   489         parse: '16rAF'
       
   490         rule: #numberLiteral
       
   491 !
       
   492 
       
   493 testNumberLiteral13
       
   494     self 
       
   495         parse: '16rCA.FE'
       
   496         rule: #numberLiteral
       
   497 !
       
   498 
       
   499 testNumberLiteral14
       
   500     self 
       
   501         parse: '3r-22.2'
       
   502         rule: #numberLiteral
       
   503 !
       
   504 
       
   505 testNumberLiteral15
       
   506     self 
       
   507         parse: '0.50s2'
       
   508         rule: #numberLiteral
       
   509 !
       
   510 
       
   511 testNumberLiteral2
       
   512     self 
       
   513         parse: '0.1'
       
   514         rule: #numberLiteral
       
   515 !
       
   516 
       
   517 testNumberLiteral3
       
   518     self 
       
   519         parse: '123'
       
   520         rule: #numberLiteral
       
   521 !
       
   522 
       
   523 testNumberLiteral4
       
   524     self 
       
   525         parse: '123.456'
       
   526         rule: #numberLiteral
       
   527 !
       
   528 
       
   529 testNumberLiteral5
       
   530     self 
       
   531         parse: '-0'
       
   532         rule: #numberLiteral
       
   533 !
       
   534 
       
   535 testNumberLiteral6
       
   536     self 
       
   537         parse: '-0.1'
       
   538         rule: #numberLiteral
       
   539 !
       
   540 
       
   541 testNumberLiteral7
       
   542     self 
       
   543         parse: '-123'
       
   544         rule: #numberLiteral
       
   545 !
       
   546 
       
   547 testNumberLiteral8
       
   548     self 
       
   549         parse: '-125'
       
   550         rule: #numberLiteral
       
   551 !
       
   552 
       
   553 testNumberLiteral9
       
   554     self 
       
   555         parse: '-123.456'
       
   556         rule: #numberLiteral
       
   557 !
       
   558 
       
   559 testSpecialLiteral1
       
   560     self 
       
   561         parse: 'true'
       
   562         rule: #trueLiteral
       
   563 !
       
   564 
       
   565 testSpecialLiteral2
       
   566     self 
       
   567         parse: 'false'
       
   568         rule: #falseLiteral
       
   569 !
       
   570 
       
   571 testSpecialLiteral3
       
   572     self 
       
   573         parse: 'nil'
       
   574         rule: #nilLiteral
       
   575 !
       
   576 
       
   577 testStringLiteral1
       
   578     self 
       
   579         parse: ''''''
       
   580         rule: #stringLiteral
       
   581 !
       
   582 
       
   583 testStringLiteral2
       
   584     self 
       
   585         parse: '''ab'''
       
   586         rule: #stringLiteral
       
   587 !
       
   588 
       
   589 testStringLiteral3
       
   590     self 
       
   591         parse: '''ab''''cd'''
       
   592         rule: #stringLiteral
       
   593 !
       
   594 
       
   595 testSymbolLiteral1
       
   596     self 
       
   597         parse: '#foo'
       
   598         rule: #symbolLiteral
       
   599 !
       
   600 
       
   601 testSymbolLiteral2
       
   602     self 
       
   603         parse: '#+'
       
   604         rule: #symbolLiteral
       
   605 !
       
   606 
       
   607 testSymbolLiteral3
       
   608     self 
       
   609         parse: '#key:'
       
   610         rule: #symbolLiteral
       
   611 !
       
   612 
       
   613 testSymbolLiteral4
       
   614     self 
       
   615         parse: '#key:value:'
       
   616         rule: #symbolLiteral
       
   617 !
       
   618 
       
   619 testSymbolLiteral5
       
   620     self 
       
   621         parse: '#''testing-result'''
       
   622         rule: #symbolLiteral
       
   623 !
       
   624 
       
   625 testSymbolLiteral6
       
   626     PPSmalltalkGrammar allowUnderscoreAssignment ifFalse: [
       
   627         self 
       
   628             parse: '#__gen__binding'
       
   629             rule: #symbolLiteral ]
       
   630 !
       
   631 
       
   632 testSymbolLiteral7
       
   633     self 
       
   634         parse: '# fucker'
       
   635         rule: #symbolLiteral
       
   636 !
       
   637 
       
   638 testSymbolLiteral8
       
   639     self 
       
   640         parse: '##fucker'
       
   641         rule: #symbolLiteral
       
   642 !
       
   643 
       
   644 testSymbolLiteral9
       
   645     self 
       
   646         parse: '## fucker'
       
   647         rule: #symbolLiteral
       
   648 ! !
       
   649 
       
   650 !PPCompiledSmalltalkGrammarTests methodsFor:'testing-messages'!
       
   651 
       
   652 testBinaryExpression1
       
   653     self 
       
   654         parse: '1 + 2'
       
   655         rule: #expression
       
   656 !
       
   657 
       
   658 testBinaryExpression2
       
   659     self 
       
   660         parse: '1 + 2 + 3'
       
   661         rule: #expression
       
   662 !
       
   663 
       
   664 testBinaryExpression3
       
   665     self 
       
   666         parse: '1 // 2'
       
   667         rule: #expression
       
   668 !
       
   669 
       
   670 testBinaryExpression4
       
   671     self 
       
   672         parse: '1 -- 2'
       
   673         rule: #expression
       
   674 !
       
   675 
       
   676 testBinaryExpression5
       
   677     self 
       
   678         parse: '1 ==> 2'
       
   679         rule: #expression.
       
   680 !
       
   681 
       
   682 testBinaryMethod1
       
   683     self 
       
   684         parse: '+ a'
       
   685         rule: #method
       
   686 !
       
   687 
       
   688 testBinaryMethod2
       
   689     self 
       
   690         parse: '+ a | b |'
       
   691         rule: #method
       
   692 !
       
   693 
       
   694 testBinaryMethod3
       
   695     self 
       
   696         parse: '+ a b'
       
   697         rule: #method
       
   698 !
       
   699 
       
   700 testBinaryMethod4
       
   701     self 
       
   702         parse: '+ a | b | c'
       
   703         rule: #method
       
   704 !
       
   705 
       
   706 testBinaryMethod5
       
   707     self 
       
   708         parse: '-- a'
       
   709         rule: #method
       
   710 !
       
   711 
       
   712 testCascadeExpression1
       
   713     self 
       
   714         parse: '1 abs; negated'
       
   715         rule: #expression
       
   716 !
       
   717 
       
   718 testCascadeExpression2
       
   719     self 
       
   720         parse: '1 abs negated; raisedTo: 12; negated'
       
   721         rule: #expression
       
   722 !
       
   723 
       
   724 testCascadeExpression3
       
   725     self 
       
   726         parse: '1 + 2; - 3'
       
   727         rule: #expression
       
   728 !
       
   729 
       
   730 testIdentifierToken
       
   731     self 
       
   732         parse: 'foo'
       
   733         rule: #identifierToken
       
   734 !
       
   735 
       
   736 testIdentifierToken2
       
   737     self
       
   738         parse: '  foo'
       
   739         rule: #identifierToken
       
   740 !
       
   741 
       
   742 testKeywordExpression1
       
   743     self 
       
   744         parse: '1 to: 2'
       
   745         rule: #expression
       
   746 !
       
   747 
       
   748 testKeywordExpression2
       
   749     self 
       
   750         parse: '1 to: 2 by: 3'
       
   751         rule: #expression
       
   752 !
       
   753 
       
   754 testKeywordExpression3
       
   755     self 
       
   756         parse: '1 to: 2 by: 3 do: 4'
       
   757         rule: #expression
       
   758 !
       
   759 
       
   760 testKeywordMethod1
       
   761     self 
       
   762         parse: 'to: a'
       
   763         rule: #method
       
   764 !
       
   765 
       
   766 testKeywordMethod2
       
   767     self 
       
   768         parse: 'to: a do: b | c |'
       
   769         rule: #method
       
   770 !
       
   771 
       
   772 testKeywordMethod3
       
   773     self 
       
   774         parse: 'to: a do: b by: c d'
       
   775         rule: #method
       
   776 !
       
   777 
       
   778 testKeywordMethod4
       
   779     self 
       
   780         parse: 'to: a do: b by: c | d | e'
       
   781         rule: #method
       
   782 !
       
   783 
       
   784 testUnaryExpression1
       
   785     self 
       
   786         parse: '1 abs'
       
   787         rule: #expression
       
   788 !
       
   789 
       
   790 testUnaryExpression2
       
   791     self 
       
   792         parse: '1 abs negated'
       
   793         rule: #expression
       
   794 !
       
   795 
       
   796 testUnaryMethod1
       
   797     self 
       
   798         parse: 'abs'
       
   799         rule: #method
       
   800 !
       
   801 
       
   802 testUnaryMethod2
       
   803     self 
       
   804         parse: 'abs | a |'
       
   805         rule: #method
       
   806 !
       
   807 
       
   808 testUnaryMethod3
       
   809     self 
       
   810         parse: 'abs a'
       
   811         rule: #method
       
   812 !
       
   813 
       
   814 testUnaryMethod4
       
   815     self 
       
   816         parse: 'abs | a | b'
       
   817         rule: #method
       
   818 !
       
   819 
       
   820 testUnaryMethod5
       
   821     self 
       
   822         parse: 'abs | a |'
       
   823         rule: #method
       
   824 ! !
       
   825 
       
   826 !PPCompiledSmalltalkGrammarTests methodsFor:'testing-pragmas'!
       
   827 
       
   828 testPragma1
       
   829     self 
       
   830         parse: 'method <foo>'
       
   831         rule: #method
       
   832 !
       
   833 
       
   834 testPragma10
       
   835     self 
       
   836         parse: 'method <foo: bar>'
       
   837         rule: #method
       
   838 !
       
   839 
       
   840 testPragma11
       
   841     self 
       
   842         parse: 'method <foo: true>'
       
   843         rule: #method
       
   844 !
       
   845 
       
   846 testPragma12
       
   847     self 
       
   848         parse: 'method <foo: false>'
       
   849         rule: #method
       
   850 !
       
   851 
       
   852 testPragma13
       
   853     self 
       
   854         parse: 'method <foo: nil>'
       
   855         rule: #method
       
   856 !
       
   857 
       
   858 testPragma14
       
   859     self 
       
   860         parse: 'method <foo: ()>'
       
   861         rule: #method
       
   862 !
       
   863 
       
   864 testPragma15
       
   865     self 
       
   866         parse: 'method <foo: #()>'
       
   867         rule: #method
       
   868 !
       
   869 
       
   870 testPragma16
       
   871     self 
       
   872         parse: 'method < + 1 >'
       
   873         rule: #method
       
   874 !
       
   875 
       
   876 testPragma2
       
   877     self 
       
   878         parse: 'method <foo> <bar>'
       
   879         rule: #method
       
   880 !
       
   881 
       
   882 testPragma3
       
   883     self 
       
   884         parse: 'method | a | <foo>'
       
   885         rule: #method
       
   886 !
       
   887 
       
   888 testPragma4
       
   889     self 
       
   890         parse: 'method <foo> | a |'
       
   891         rule: #method
       
   892 !
       
   893 
       
   894 testPragma5
       
   895     self 
       
   896         parse: 'method <foo> | a | <bar>'
       
   897         rule: #method
       
   898 !
       
   899 
       
   900 testPragma6
       
   901     self 
       
   902         parse: 'method <foo: 1>'
       
   903         rule: #method
       
   904 !
       
   905 
       
   906 testPragma7
       
   907     self 
       
   908         parse: 'method <foo: 1.2>'
       
   909         rule: #method
       
   910 !
       
   911 
       
   912 testPragma8
       
   913     self 
       
   914         parse: 'method <foo: ''bar''>'
       
   915         rule: #method
       
   916 !
       
   917 
       
   918 testPragma9
       
   919     self 
       
   920         parse: 'method <foo: #''bar''>'
       
   921         rule: #method
       
   922 ! !
       
   923 
       
   924 !PPCompiledSmalltalkGrammarTests class methodsFor:'documentation'!
       
   925 
       
   926 version_HG
       
   927 
       
   928     ^ '$Changeset: <not expanded> $'
       
   929 ! !
       
   930