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