parsers/smalltalk/tests/PPSmalltalkParserTests.st
changeset 385 44a36ed4e484
child 386 a409905f7f2d
equal deleted inserted replaced
384:a613ecf5d2a1 385:44a36ed4e484
       
     1 "{ Package: 'stx:goodies/petitparser/parsers/smalltalk/tests' }"
       
     2 
       
     3 PPSmalltalkGrammarTests subclass:#PPSmalltalkParserTests
       
     4 	instanceVariableNames:''
       
     5 	classVariableNames:''
       
     6 	poolDictionaries:''
       
     7 	category:'PetitSmalltalk-Tests'
       
     8 !
       
     9 
       
    10 PPSmalltalkParserTests comment:''
       
    11 !
       
    12 
       
    13 !PPSmalltalkParserTests methodsFor:'accessing'!
       
    14 
       
    15 parserClass
       
    16 	^ PPSmalltalkParser
       
    17 ! !
       
    18 
       
    19 !PPSmalltalkParserTests methodsFor:'private'!
       
    20 
       
    21 assert: aNode format: aString
       
    22 	aNode isCollection
       
    23 		ifFalse: [ ^ self assert: (Array with: aNode) format: (Array with: aString) ].
       
    24 	self assert: aNode size equals: aString size.
       
    25 	aNode with: aString do: [ :node :string | self assert: (RBConfigurableFormatter format: node) equals: string ]
       
    26 ! !
       
    27 
       
    28 !PPSmalltalkParserTests methodsFor:'testing'!
       
    29 
       
    30 testArray1
       
    31 	super testArray1.
       
    32 	self assert: result isArray.
       
    33 	self assert: result statements isEmpty.
       
    34 	self assert: result periods isEmpty
       
    35 !
       
    36 
       
    37 testArray2
       
    38 	super testArray2.
       
    39 	self assert: result isArray.
       
    40 	self assert: result periods isEmpty.
       
    41 	self assert: result statements size equals: 1.
       
    42 	self assert: result statements first isMessage.
       
    43 	self assert: result statements first selector equals: #foo
       
    44 !
       
    45 
       
    46 testArray3
       
    47 	super testArray3.
       
    48 	self assert: result isArray.
       
    49 	self assert: result periods size equals: 1.
       
    50 	self assert: result statements size equals: 2.
       
    51 	self assert: result statements first isMessage.
       
    52 	self assert: result statements first selector equals: #foo.
       
    53 	self assert: result statements last isMessage.
       
    54 	self assert: result statements last selector equals: #bar
       
    55 !
       
    56 
       
    57 testArray4
       
    58 	super testArray4.
       
    59 	self assert: result isArray.
       
    60 	self assert: result periods size equals: 2.
       
    61 	self assert: result statements size equals: 2.
       
    62 	self assert: result statements first isMessage.
       
    63 	self assert: result statements first selector equals: #foo.
       
    64 	self assert: result statements last isMessage.
       
    65 	self assert: result statements last selector equals: #bar
       
    66 !
       
    67 
       
    68 testAssignment1
       
    69 	super testAssignment1.
       
    70 	self assert: result isLiteralNode.
       
    71 	self assert: result value equals: 1
       
    72 !
       
    73 
       
    74 testAssignment2
       
    75 	super testAssignment2.
       
    76 	self assert: result isAssignment.
       
    77 	self assert: result variable isVariable.
       
    78 	self assert: result variable name equals: 'a'.
       
    79 	self assert: result value isLiteralNode.
       
    80 	self assert: result value value equals: 1
       
    81 !
       
    82 
       
    83 testAssignment3
       
    84 	super testAssignment3.
       
    85 	self assert: result isAssignment.
       
    86 	self assert: result variable isVariable.
       
    87 	self assert: result variable name equals: 'a'.
       
    88 	self assert: result value isAssignment.
       
    89 	self assert: result value variable isVariable.
       
    90 	self assert: result value variable name equals: 'b'.
       
    91 	self assert: result value value isLiteralNode.
       
    92 	self assert: result value value value equals: 1
       
    93 !
       
    94 
       
    95 testAssignment4
       
    96 	super testAssignment4.
       
    97 	PPSmalltalkGrammar allowUnderscoreAssignment
       
    98 		ifFalse: [ ^ self ].
       
    99 	self assert: result isAssignment.
       
   100 	self assert: result variable isVariable.
       
   101 	self assert: result variable name equals: 'a'.
       
   102 	self assert: result value isLiteralNode.
       
   103 	self assert: result value value equals: 1
       
   104 !
       
   105 
       
   106 testAssignment5
       
   107 	super testAssignment5.
       
   108 	PPSmalltalkGrammar allowUnderscoreAssignment
       
   109 		ifFalse: [ ^ self ].
       
   110 	self assert: result isAssignment.
       
   111 	self assert: result variable isVariable.
       
   112 	self assert: result variable name equals: 'a'.
       
   113 	self assert: result value isAssignment.
       
   114 	self assert: result value variable isVariable.
       
   115 	self assert: result value variable name equals: 'b'.
       
   116 	self assert: result value value isLiteralNode.
       
   117 	self assert: result value value value equals: 1
       
   118 !
       
   119 
       
   120 testAssignment6
       
   121 	super testAssignment6.
       
   122 	self assert: result isAssignment.
       
   123 	self assert: result variable isVariable.
       
   124 	self assert: result variable name equals: 'a'.
       
   125 	self assert: result value isAssignment.
       
   126 	self assert: result value variable isVariable.
       
   127 	self assert: result value variable name equals: 'b'.
       
   128 	self assert: result value value isVariable.
       
   129 	self assert: result value value name equals: 'c'
       
   130 !
       
   131 
       
   132 testComment1
       
   133 	super testComment1.
       
   134 	self assert: result isMessage.
       
   135 	self assert: result receiver isValue.
       
   136 	self assert: result selector equals: #+.
       
   137 	self assert: result arguments first isValue
       
   138 !
       
   139 
       
   140 testComment2
       
   141 	super testComment2.
       
   142 	self assert: result isMessage.
       
   143 	self assert: result receiver isValue.
       
   144 	self assert: result selector equals: #+.
       
   145 	self assert: result arguments first isValue
       
   146 !
       
   147 
       
   148 testComment3
       
   149 	super testComment3.
       
   150 	self assert: result isMessage.
       
   151 	self assert: result receiver isValue.
       
   152 	self assert: result selector equals: #+.
       
   153 	self assert: result arguments first isValue
       
   154 !
       
   155 
       
   156 testComment4
       
   157 	super testComment4.
       
   158 	self assert: result isMessage.
       
   159 	self assert: result receiver isValue.
       
   160 	self assert: result selector equals: #+.
       
   161 	self assert: result arguments first isValue
       
   162 !
       
   163 
       
   164 testComment5
       
   165 	super testComment5.
       
   166 	self assert: result isMessage.
       
   167 	self assert: result receiver isValue.
       
   168 	self assert: result selector equals: #+.
       
   169 	self assert: result arguments first isValue
       
   170 !
       
   171 
       
   172 testMethod1
       
   173 	super testMethod1.
       
   174 	self assert: result isMethod.
       
   175 	self assert: result arguments isEmpty.
       
   176 	self assert: result body temporaries isEmpty.
       
   177 	self assert: result body statements size equals: 1.
       
   178 	self assert: result body statements first isReturn.
       
   179 	self assert: result body statements first value isMessage.
       
   180 	self assert: result body statements first value receiver isLiteralNode.
       
   181 	self assert: result body statements first value selector equals: #-.
       
   182 	self assert: result body statements first value arguments size equals: 1.
       
   183 	self assert: result body statements first value arguments first isVariable
       
   184 !
       
   185 
       
   186 testMethod2
       
   187 	super testMethod2.
       
   188 	self assert: result isMethod.
       
   189 	self assert: result arguments isEmpty.
       
   190 	self assert: result body temporaries isEmpty.
       
   191 	self assert: result body statements size equals: 1.
       
   192 	self assert: result body statements first isReturn.
       
   193 	self assert: result body statements first value isMessage.
       
   194 	self assert: result body statements first value receiver isLiteralNode.
       
   195 	self assert: result body statements first value selector equals: #-.
       
   196 	self assert: result body statements first value arguments size equals: 1.
       
   197 	self assert: result body statements first value arguments first isVariable
       
   198 !
       
   199 
       
   200 testMethod3
       
   201 	super testMethod3.
       
   202 	self assert: result isMethod.
       
   203 	self assert: result arguments isEmpty.
       
   204 	self assert: result body temporaries isEmpty.
       
   205 	self assert: result body statements size equals: 1.
       
   206 	self assert: result body statements first isReturn.
       
   207 	self assert: result body statements first value isMessage.
       
   208 	self assert: result body statements first value receiver isLiteralNode.
       
   209 	self assert: result body statements first value selector equals: #-.
       
   210 	self assert: result body statements first value arguments size equals: 1.
       
   211 	self assert: result body statements first value arguments first isVariable
       
   212 !
       
   213 
       
   214 testSequence1
       
   215 	super testSequence1.
       
   216 	self assert: result isSequence.
       
   217 	self assert: result temporaries size equals: 1.
       
   218 	self assert: result temporaries first isVariable.
       
   219 	self assert: result temporaries first name equals: 'a'.
       
   220 	self assert: result statements size equals: 2.
       
   221 	self assert: result statements first isLiteralNode.
       
   222 	self assert: result statements first value equals: 1.
       
   223 	self assert: result statements second isLiteralNode.
       
   224 	self assert: result statements second value equals: 2
       
   225 !
       
   226 
       
   227 testStatements1
       
   228 	super testStatements1.
       
   229 	self assert: result isSequence.
       
   230 	self assert: result temporaries isEmpty.
       
   231 	self assert: result statements size equals: 1.
       
   232 	self assert: result statements first isLiteralNode.
       
   233 	self assert: result statements first value equals: 1.
       
   234 	self assert: result statements first value isInteger
       
   235 !
       
   236 
       
   237 testStatements2
       
   238 	super testStatements2.
       
   239 	self assert: result isSequence.
       
   240 	self assert: result temporaries isEmpty.
       
   241 	self assert: result statements size equals: 2.
       
   242 	self assert: result statements first isLiteralNode.
       
   243 	self assert: result statements first value equals: 1.
       
   244 	self assert: result statements first value isInteger.
       
   245 	self assert: result statements second isLiteralNode.
       
   246 	self assert: result statements second value equals: 2.
       
   247 	self assert: result statements second value isInteger
       
   248 !
       
   249 
       
   250 testStatements3
       
   251 	super testStatements3.
       
   252 	self assert: result isSequence.
       
   253 	self assert: result temporaries isEmpty.
       
   254 	self assert: result statements size equals: 3.
       
   255 	self assert: result statements first isLiteralNode.
       
   256 	self assert: result statements first value equals: 1.
       
   257 	self assert: result statements first value isInteger.
       
   258 	self assert: result statements second isLiteralNode.
       
   259 	self assert: result statements second value equals: 2.
       
   260 	self assert: result statements second value isInteger.
       
   261 	self assert: result statements third isLiteralNode.
       
   262 	self assert: result statements third value equals: 3.
       
   263 	self assert: result statements third value isInteger
       
   264 !
       
   265 
       
   266 testStatements4
       
   267 	super testStatements4.
       
   268 	self assert: result isSequence.
       
   269 	self assert: result temporaries isEmpty.
       
   270 	self assert: result statements size equals: 3.
       
   271 	self assert: result statements first isLiteralNode.
       
   272 	self assert: result statements first value equals: 1.
       
   273 	self assert: result statements first value isInteger.
       
   274 	self assert: result statements second isLiteralNode.
       
   275 	self assert: result statements second value equals: 2.
       
   276 	self assert: result statements second value isInteger.
       
   277 	self assert: result statements third isLiteralNode.
       
   278 	self assert: result statements third value equals: 3.
       
   279 	self assert: result statements third value isInteger
       
   280 !
       
   281 
       
   282 testStatements5
       
   283 	super testStatements5.
       
   284 	self assert: result isSequence.
       
   285 	self assert: result temporaries isEmpty.
       
   286 	self assert: result statements size equals: 2.
       
   287 	self assert: result statements first isLiteralNode.
       
   288 	self assert: result statements first value equals: 1.
       
   289 	self assert: result statements first value isInteger.
       
   290 	self assert: result statements second isLiteralNode.
       
   291 	self assert: result statements second value equals: 2.
       
   292 	self assert: result statements second value isInteger
       
   293 !
       
   294 
       
   295 testStatements6
       
   296 	super testStatements6.
       
   297 	self assert: result isSequence.
       
   298 	self assert: result temporaries isEmpty.
       
   299 	self assert: result statements size equals: 2.
       
   300 	self assert: result statements first isLiteralNode.
       
   301 	self assert: result statements first value equals: 1.
       
   302 	self assert: result statements first value isInteger.
       
   303 	self assert: result statements second isLiteralNode.
       
   304 	self assert: result statements second value equals: 2.
       
   305 	self assert: result statements second value isInteger
       
   306 !
       
   307 
       
   308 testStatements7
       
   309 	super testStatements7.
       
   310 	self assert: result isSequence.
       
   311 	self assert: result temporaries isEmpty.
       
   312 	self assert: result statements size equals: 1.
       
   313 	self assert: result statements first isLiteralNode.
       
   314 	self assert: result statements first value equals: 1.
       
   315 	self assert: result statements first value isInteger
       
   316 !
       
   317 
       
   318 testStatements8
       
   319 	super testStatements8.
       
   320 	self assert: result isSequence.
       
   321 	self assert: result temporaries isEmpty.
       
   322 	self assert: result statements size equals: 1.
       
   323 	self assert: result statements first isLiteralNode.
       
   324 	self assert: result statements first value equals: 1.
       
   325 	self assert: result statements first value isInteger
       
   326 !
       
   327 
       
   328 testTemporaries1
       
   329 	super testTemporaries1.
       
   330 	self assert: result isSequence.
       
   331 	self assert: result temporaries size equals: 1.
       
   332 	self assert: result temporaries first isVariable.
       
   333 	self assert: result temporaries first name equals: 'a'.
       
   334 	self assert: result statements isEmpty
       
   335 !
       
   336 
       
   337 testTemporaries2
       
   338 	super testTemporaries2.
       
   339 	self assert: result isSequence.
       
   340 	self assert: result temporaries size equals: 2.
       
   341 	self assert: result temporaries first isVariable.
       
   342 	self assert: result temporaries first name equals: 'a'.
       
   343 	self assert: result temporaries second isVariable.
       
   344 	self assert: result temporaries second name equals: 'b'.
       
   345 	self assert: result statements isEmpty
       
   346 !
       
   347 
       
   348 testTemporaries3
       
   349 	super testTemporaries3.
       
   350 	self assert: result isSequence.
       
   351 	self assert: result temporaries size equals: 3.
       
   352 	self assert: result temporaries first isVariable.
       
   353 	self assert: result temporaries first name equals: 'a'.
       
   354 	self assert: result temporaries second isVariable.
       
   355 	self assert: result temporaries second name equals: 'b'.
       
   356 	self assert: result temporaries third isVariable.
       
   357 	self assert: result temporaries third name equals: 'c'.
       
   358 	self assert: result statements isEmpty
       
   359 !
       
   360 
       
   361 testVariable1
       
   362 	super testVariable1.
       
   363 	self assert: result isVariable.
       
   364 	self assert: result name equals: 'trueBinding'
       
   365 !
       
   366 
       
   367 testVariable2
       
   368 	super testVariable2.
       
   369 	self assert: result isVariable.
       
   370 	self assert: result name equals: 'falseBinding'
       
   371 !
       
   372 
       
   373 testVariable3
       
   374 	super testVariable3.
       
   375 	self assert: result isVariable.
       
   376 	self assert: result name equals: 'nilly'
       
   377 !
       
   378 
       
   379 testVariable4
       
   380 	super testVariable4.
       
   381 	self assert: result isVariable.
       
   382 	self assert: result name equals: 'selfish'
       
   383 !
       
   384 
       
   385 testVariable5
       
   386 	super testVariable5.
       
   387 	self assert: result isVariable.
       
   388 	self assert: result name equals: 'supernanny'
       
   389 !
       
   390 
       
   391 testVariable6
       
   392 	super testVariable6.
       
   393 	PPSmalltalkGrammar allowUnderscoreAssignment
       
   394 		ifTrue: [ ^ self ].
       
   395 	self assert: result isVariable.
       
   396 	self assert: result name equals: 'super_nanny'
       
   397 !
       
   398 
       
   399 testVariable7
       
   400 	super testVariable7.
       
   401 	PPSmalltalkGrammar allowUnderscoreAssignment
       
   402 		ifTrue: [ ^ self ].
       
   403 	self assert: result isVariable.
       
   404 	self assert: result name equals: '__gen_var_123__'
       
   405 ! !
       
   406 
       
   407 !PPSmalltalkParserTests methodsFor:'testing-blocks'!
       
   408 
       
   409 testArgumentsBlock1
       
   410 	super testArgumentsBlock1.
       
   411 	self assert: result isBlock.
       
   412 	self assert: result arguments size equals: 1.
       
   413 	self assert: result arguments first isVariable.
       
   414 	self assert: result arguments first name equals: 'a'.
       
   415 	self assert: result body temporaries isEmpty.
       
   416 	self assert: result body statements isEmpty
       
   417 !
       
   418 
       
   419 testArgumentsBlock2
       
   420 	super testArgumentsBlock2.
       
   421 	self assert: result isBlock.
       
   422 	self assert: result arguments size equals: 2.
       
   423 	self assert: result arguments first isVariable.
       
   424 	self assert: result arguments first name equals: 'a'.
       
   425 	self assert: result arguments second isVariable.
       
   426 	self assert: result arguments second name equals: 'b'.
       
   427 	self assert: result body temporaries isEmpty.
       
   428 	self assert: result body statements isEmpty
       
   429 !
       
   430 
       
   431 testArgumentsBlock3
       
   432 	super testArgumentsBlock3.
       
   433 	self assert: result isBlock.
       
   434 	self assert: result arguments size equals: 3.
       
   435 	self assert: result arguments first isVariable.
       
   436 	self assert: result arguments first name equals: 'a'.
       
   437 	self assert: result arguments second isVariable.
       
   438 	self assert: result arguments second name equals: 'b'.
       
   439 	self assert: result arguments third isVariable.
       
   440 	self assert: result arguments third name equals: 'c'.
       
   441 	self assert: result body temporaries isEmpty.
       
   442 	self assert: result body statements isEmpty
       
   443 !
       
   444 
       
   445 testComplexBlock1
       
   446 	super testComplexBlock1.
       
   447 	self assert: result isBlock.
       
   448 	self assert: result arguments size equals: 1.
       
   449 	self assert: result body temporaries size equals: 1.
       
   450 	self assert: result body statements size equals: 1
       
   451 !
       
   452 
       
   453 testComplexBlock2
       
   454 	super testComplexBlock2.
       
   455 	self assert: result isBlock.
       
   456 	self assert: result arguments size equals: 1.
       
   457 	self assert: result body temporaries size equals: 1.
       
   458 	self assert: result body statements size equals: 1
       
   459 !
       
   460 
       
   461 testSimpleBlock1
       
   462 	super testSimpleBlock1.
       
   463 	self assert: result isBlock.
       
   464 	self assert: result arguments isEmpty.
       
   465 	self assert: result body temporaries isEmpty.
       
   466 	self assert: result body statements isEmpty
       
   467 !
       
   468 
       
   469 testSimpleBlock2
       
   470 	super testSimpleBlock2.
       
   471 	self assert: result isBlock.
       
   472 	self assert: result arguments isEmpty.
       
   473 	self assert: result body temporaries isEmpty.
       
   474 	self assert: result body statements size equals: 1
       
   475 !
       
   476 
       
   477 testSimpleBlock3
       
   478 	super testSimpleBlock3.
       
   479 	self assert: result isBlock.
       
   480 	self assert: result arguments size equals: 1.
       
   481 	self assert: result body temporaries isEmpty.
       
   482 	self assert: result body statements isEmpty
       
   483 !
       
   484 
       
   485 testStatementBlock1
       
   486 	super testStatementBlock1.
       
   487 	self assert: result isBlock.
       
   488 	self assert: result arguments isEmpty.
       
   489 	self assert: result body temporaries isEmpty.
       
   490 	self assert: result body statements size equals: 1
       
   491 !
       
   492 
       
   493 testStatementBlock2
       
   494 	super testStatementBlock2.
       
   495 	self assert: result isBlock.
       
   496 	self assert: result arguments isEmpty.
       
   497 	self assert: result body temporaries size equals: 1.
       
   498 	self assert: result body statements size equals: 1
       
   499 !
       
   500 
       
   501 testStatementBlock3
       
   502 	super testStatementBlock3.
       
   503 	self assert: result isBlock.
       
   504 	self assert: result arguments isEmpty.
       
   505 	self assert: result body temporaries size equals: 2.
       
   506 	self assert: result body statements size equals: 1
       
   507 ! !
       
   508 
       
   509 !PPSmalltalkParserTests methodsFor:'testing-literals'!
       
   510 
       
   511 testArrayLiteral1
       
   512 	super testArrayLiteral1.
       
   513 	self assert: result isLiteralNode.
       
   514 	self assert: result value equals: #()
       
   515 !
       
   516 
       
   517 testArrayLiteral10
       
   518 	super testArrayLiteral10.
       
   519 	self assert: result isLiteralNode.
       
   520 	self assert: result value equals: #(#(1 2) #(1 2 3))
       
   521 !
       
   522 
       
   523 testArrayLiteral11
       
   524 	super testArrayLiteral11.
       
   525 	self assert: result isLiteralNode.
       
   526 	self assert: result value size equals: 2.
       
   527 	self assert: (result value first isKindOf: ByteArray).
       
   528 	self assert: result value first size equals: 2.
       
   529 	self assert: (result value last isKindOf: ByteArray).
       
   530 	self assert: result value last size equals: 3
       
   531 !
       
   532 
       
   533 testArrayLiteral2
       
   534 	super testArrayLiteral2.
       
   535 	self assert: result isLiteralNode.
       
   536 	self assert: result value equals: #(1)
       
   537 !
       
   538 
       
   539 testArrayLiteral3
       
   540 	super testArrayLiteral3.
       
   541 	self assert: result isLiteralNode.
       
   542 	self assert: result value equals: #(1 2)
       
   543 !
       
   544 
       
   545 testArrayLiteral4
       
   546 	super testArrayLiteral4.
       
   547 	self assert: result isLiteralNode.
       
   548 	self assert: result value equals: #(true false nil)
       
   549 !
       
   550 
       
   551 testArrayLiteral5
       
   552 	super testArrayLiteral5.
       
   553 	self assert: result isLiteralNode.
       
   554 	self assert: result value equals: #($a)
       
   555 !
       
   556 
       
   557 testArrayLiteral6
       
   558 	super testArrayLiteral6.
       
   559 	self assert: result isLiteralNode.
       
   560 	self assert: result value equals: #(1.2)
       
   561 !
       
   562 
       
   563 testArrayLiteral7
       
   564 	super testArrayLiteral7.
       
   565 	self assert: result isLiteralNode.
       
   566 	self assert: result value equals: #(#size #at: #at:put: #==).
       
   567 	result value do: [ :each | self assert: each isSymbol ]
       
   568 !
       
   569 
       
   570 testArrayLiteral8
       
   571 	super testArrayLiteral8.
       
   572 	self assert: result isLiteralNode.
       
   573 	self assert: result value equals: #('baz').
       
   574 	self assert: result value first isString.
       
   575 	self assert: result value first isSymbol not
       
   576 !
       
   577 
       
   578 testArrayLiteral9
       
   579 	super testArrayLiteral9.
       
   580 	self assert: result isLiteralNode.
       
   581 	self assert: result value equals: #(#(1) 2)
       
   582 !
       
   583 
       
   584 testByteLiteral1
       
   585 	super testByteLiteral1.
       
   586 	self assert: result isLiteralNode.
       
   587 	self assert: (result value isKindOf: ByteArray).
       
   588 	self assert: result value isEmpty
       
   589 !
       
   590 
       
   591 testByteLiteral2
       
   592 	super testByteLiteral2.
       
   593 	self assert: result isLiteralNode.
       
   594 	self assert: (result value isKindOf: ByteArray).
       
   595 	self assert: result value size equals: 1.
       
   596 	self assert: result value first equals: 0
       
   597 !
       
   598 
       
   599 testByteLiteral3
       
   600 	super testByteLiteral3.
       
   601 	self assert: result isLiteralNode.
       
   602 	self assert: (result value isKindOf: ByteArray).
       
   603 	self assert: result value size equals: 1.
       
   604 	self assert: result value first equals: 255
       
   605 !
       
   606 
       
   607 testByteLiteral4
       
   608 	super testByteLiteral4.
       
   609 	self assert: result isLiteralNode.
       
   610 	self assert: (result value isKindOf: ByteArray).
       
   611 	self assert: result value size equals: 2.
       
   612 	self assert: result value first equals: 1.
       
   613 	self assert: result value last equals: 2
       
   614 !
       
   615 
       
   616 testByteLiteral5
       
   617 	super testByteLiteral5.
       
   618 	self assert: result isLiteralNode.
       
   619 	self assert: (result value isKindOf: ByteArray).
       
   620 	self assert: result value size equals: 3.
       
   621 	self assert: result value first equals: 10.
       
   622 	self assert: result value second equals: 63.
       
   623 	self assert: result value last equals: 255
       
   624 !
       
   625 
       
   626 testCharLiteral1
       
   627 	super testCharLiteral1.
       
   628 	self assert: result isLiteralNode.
       
   629 	self assert: result value equals: $a
       
   630 !
       
   631 
       
   632 testCharLiteral2
       
   633 	super testCharLiteral2.
       
   634 	self assert: result isLiteralNode.
       
   635 	self assert: result value equals: Character space
       
   636 !
       
   637 
       
   638 testCharLiteral3
       
   639 	super testCharLiteral3.
       
   640 	self assert: result isLiteralNode.
       
   641 	self assert: result value equals: $$
       
   642 !
       
   643 
       
   644 testNumberLiteral1
       
   645 	super testNumberLiteral1.
       
   646 	self assert: result isLiteralNode.
       
   647 	self assert: result value equals: 0.
       
   648 	self assert: result value isInteger
       
   649 !
       
   650 
       
   651 testNumberLiteral10
       
   652 	super testNumberLiteral10.
       
   653 	self assert: result isLiteralNode.
       
   654 	self assert: result value equals: 10.
       
   655 	self assert: result value isInteger
       
   656 !
       
   657 
       
   658 testNumberLiteral11
       
   659 	super testNumberLiteral11.
       
   660 	self assert: result isLiteralNode.
       
   661 	self assert: result value equals: 511.
       
   662 	self assert: result value isInteger
       
   663 !
       
   664 
       
   665 testNumberLiteral12
       
   666 	super testNumberLiteral12.
       
   667 	self assert: result isLiteralNode.
       
   668 	self assert: result value equals: 175.
       
   669 	self assert: result value isInteger
       
   670 !
       
   671 
       
   672 testNumberLiteral13
       
   673 	super testNumberLiteral13.
       
   674 	self assert: result isLiteralNode.
       
   675 	self assert: result value equals: 202.9921875.
       
   676 	self assert: result value isFloat
       
   677 !
       
   678 
       
   679 testNumberLiteral14
       
   680 	super testNumberLiteral14.
       
   681 	self assert: result isLiteralNode.
       
   682 	self assert: result value floor equals: -9.
       
   683 	self assert: result value isFloat
       
   684 !
       
   685 
       
   686 testNumberLiteral15
       
   687 	super testNumberLiteral15.
       
   688 	self assert: result isLiteralNode.
       
   689 	self assert: result value equals: 1 / 2
       
   690 !
       
   691 
       
   692 testNumberLiteral2
       
   693 	super testNumberLiteral2.
       
   694 	self assert: result isLiteralNode.
       
   695 	self assert: result value equals: 0.1.
       
   696 	self assert: result value isFloat
       
   697 !
       
   698 
       
   699 testNumberLiteral3
       
   700 	super testNumberLiteral3.
       
   701 	self assert: result isLiteralNode.
       
   702 	self assert: result value equals: 123.
       
   703 	self assert: result value isInteger
       
   704 !
       
   705 
       
   706 testNumberLiteral4
       
   707 	super testNumberLiteral4.
       
   708 	self assert: result isLiteralNode.
       
   709 	self assert: result value equals: 123.456.
       
   710 	self assert: result value isFloat
       
   711 !
       
   712 
       
   713 testNumberLiteral5
       
   714 	super testNumberLiteral5.
       
   715 	self assert: result isLiteralNode.
       
   716 	self assert: result value equals: 0.
       
   717 	self assert: result value isInteger
       
   718 !
       
   719 
       
   720 testNumberLiteral6
       
   721 	super testNumberLiteral6.
       
   722 	self assert: result isLiteralNode.
       
   723 	self assert: result value equals: -0.1.
       
   724 	self assert: result value isFloat
       
   725 !
       
   726 
       
   727 testNumberLiteral7
       
   728 	super testNumberLiteral7.
       
   729 	self assert: result isLiteralNode.
       
   730 	self assert: result value equals: -123.
       
   731 	self assert: result value isInteger
       
   732 !
       
   733 
       
   734 testNumberLiteral8
       
   735 	super testNumberLiteral8.
       
   736 	self assert: result isLiteralNode.
       
   737 	self assert: result value equals: -123.
       
   738 	self assert: result value isInteger
       
   739 !
       
   740 
       
   741 testNumberLiteral9
       
   742 	super testNumberLiteral9.
       
   743 	self assert: result isLiteralNode.
       
   744 	self assert: result value equals: -123.456.
       
   745 	self assert: result value isFloat
       
   746 !
       
   747 
       
   748 testSpecialLiteral1
       
   749 	super testSpecialLiteral1.
       
   750 	self assert: result isLiteralNode.
       
   751 	self assert: result value equals: true
       
   752 !
       
   753 
       
   754 testSpecialLiteral2
       
   755 	super testSpecialLiteral2.
       
   756 	self assert: result isLiteralNode.
       
   757 	self assert: result value equals: false
       
   758 !
       
   759 
       
   760 testSpecialLiteral3
       
   761 	super testSpecialLiteral3.
       
   762 	self assert: result isLiteralNode.
       
   763 	self assert: result value equals: nil
       
   764 !
       
   765 
       
   766 testStringLiteral1
       
   767 	super testStringLiteral1.
       
   768 	self assert: result isLiteralNode.
       
   769 	self assert: result value equals: ''
       
   770 !
       
   771 
       
   772 testStringLiteral2
       
   773 	super testStringLiteral2.
       
   774 	self assert: result isLiteralNode.
       
   775 	self assert: result value equals: 'ab'
       
   776 !
       
   777 
       
   778 testStringLiteral3
       
   779 	super testStringLiteral3.
       
   780 	self assert: result isLiteralNode.
       
   781 	self assert: result value equals: 'ab''cd'
       
   782 !
       
   783 
       
   784 testSymbolLiteral1
       
   785 	super testSymbolLiteral1.
       
   786 	self assert: result isLiteralNode.
       
   787 	self assert: result value equals: #foo.
       
   788 	self assert: result value isSymbol
       
   789 !
       
   790 
       
   791 testSymbolLiteral2
       
   792 	super testSymbolLiteral2.
       
   793 	self assert: result isLiteralNode.
       
   794 	self assert: result value equals: #+.
       
   795 	self assert: result value isSymbol
       
   796 !
       
   797 
       
   798 testSymbolLiteral3
       
   799 	super testSymbolLiteral3.
       
   800 	self assert: result isLiteralNode.
       
   801 	self assert: result value equals: #key:.
       
   802 	self assert: result value isSymbol
       
   803 !
       
   804 
       
   805 testSymbolLiteral4
       
   806 	super testSymbolLiteral4.
       
   807 	self assert: result isLiteralNode.
       
   808 	self assert: result value equals: #key:value:.
       
   809 	self assert: result value isSymbol
       
   810 !
       
   811 
       
   812 testSymbolLiteral5
       
   813 	super testSymbolLiteral5.
       
   814 	self assert: result isLiteralNode.
       
   815 	self assert: result value equals: #'testing-result'.
       
   816 	self assert: result value isSymbol
       
   817 !
       
   818 
       
   819 testSymbolLiteral6
       
   820 	super testSymbolLiteral6.
       
   821 	PPSmalltalkGrammar allowUnderscoreAssignment
       
   822 		ifTrue: [ ^ self ].
       
   823 	self assert: result isLiteralNode.
       
   824 	self assert: result value equals: #'__gen__binding'.
       
   825 	self assert: result value isSymbol
       
   826 !
       
   827 
       
   828 testSymbolLiteral7
       
   829 	super testSymbolLiteral7.
       
   830 	self assert: result isLiteralNode.
       
   831 	self assert: result value equals: #fucker.
       
   832 	self assert: result value isSymbol
       
   833 !
       
   834 
       
   835 testSymbolLiteral8
       
   836 	super testSymbolLiteral8.
       
   837 	self assert: result isLiteralNode.
       
   838 	self assert: result value equals: #fucker.
       
   839 	self assert: result value isSymbol
       
   840 !
       
   841 
       
   842 testSymbolLiteral9
       
   843 	super testSymbolLiteral9.
       
   844 	self assert: result isLiteralNode.
       
   845 	self assert: result value equals: #fucker.
       
   846 	self assert: result value isSymbol
       
   847 ! !
       
   848 
       
   849 !PPSmalltalkParserTests methodsFor:'testing-messages'!
       
   850 
       
   851 testBinaryExpression1
       
   852 	super testBinaryExpression1.
       
   853 	self assert: result isMessage.
       
   854 	self assert: result receiver isLiteralNode.
       
   855 	self assert: result receiver value equals: 1.
       
   856 	self assert: result arguments size equals: 1.
       
   857 	self assert: result arguments first isLiteralNode.
       
   858 	self assert: result arguments first value equals: 2
       
   859 !
       
   860 
       
   861 testBinaryExpression2
       
   862 	super testBinaryExpression2.
       
   863 	self assert: result isMessage.
       
   864 	self assert: result receiver isMessage.
       
   865 	self assert: result receiver receiver isLiteralNode.
       
   866 	self assert: result receiver receiver value equals: 1.
       
   867 	self assert: result receiver arguments size equals: 1.
       
   868 	self assert: result receiver arguments first isLiteralNode.
       
   869 	self assert: result receiver arguments first value equals: 2.
       
   870 	self assert: result arguments size equals: 1.
       
   871 	self assert: result arguments first isLiteralNode.
       
   872 	self assert: result arguments first value equals: 3
       
   873 !
       
   874 
       
   875 testBinaryExpression3
       
   876 	super testBinaryExpression3.
       
   877 	self assert: result isMessage.
       
   878 	self assert: result receiver isLiteralNode.
       
   879 	self assert: result receiver value equals: 1.
       
   880 	self assert: result selector equals: #//.
       
   881 	self assert: result arguments size equals: 1.
       
   882 	self assert: result arguments first isLiteralNode.
       
   883 	self assert: result arguments first value equals: 2
       
   884 !
       
   885 
       
   886 testBinaryExpression4
       
   887 	super testBinaryExpression4.
       
   888 	self assert: result isMessage.
       
   889 	self assert: result receiver isLiteralNode.
       
   890 	self assert: result receiver value equals: 1.
       
   891 	self assert: result selector equals: #--.
       
   892 	self assert: result arguments size equals: 1.
       
   893 	self assert: result arguments first isLiteralNode.
       
   894 	self assert: result arguments first value equals: 2
       
   895 !
       
   896 
       
   897 testBinaryExpression5
       
   898         super testBinaryExpression5.
       
   899         self assert: result isMessage.
       
   900         self assert: result receiver isLiteralNode.
       
   901         self assert: result receiver value equals: 1.
       
   902         self assert: result selector equals: #'==>'.
       
   903         self assert: result arguments size equals: 1.
       
   904         self assert: result arguments first isLiteralNode.
       
   905         self assert: result arguments first value equals: 2
       
   906 
       
   907     "Created: / 07-10-2014 / 00:22:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
   908 !
       
   909 
       
   910 testBinaryMethod1
       
   911 	super testBinaryMethod1.
       
   912 	self assert: result isMethod.
       
   913 	self assert: result selector equals: #+.
       
   914 	self assert: result arguments size equals: 1.
       
   915 	self assert: result arguments first isVariable.
       
   916 	self assert: result arguments first name equals: 'a'.
       
   917 	self assert: result body temporaries isEmpty.
       
   918 	self assert: result body statements isEmpty
       
   919 !
       
   920 
       
   921 testBinaryMethod2
       
   922 	super testBinaryMethod2.
       
   923 	self assert: result isMethod.
       
   924 	self assert: result selector equals: #+.
       
   925 	self assert: result arguments size equals: 1.
       
   926 	self assert: result arguments first isVariable.
       
   927 	self assert: result arguments first name equals: 'a'.
       
   928 	self assert: result body temporaries size equals: 1.
       
   929 	self assert: result body statements isEmpty
       
   930 !
       
   931 
       
   932 testBinaryMethod3
       
   933 	super testBinaryMethod3.
       
   934 	self assert: result isMethod.
       
   935 	self assert: result selector equals: #+.
       
   936 	self assert: result arguments size equals: 1.
       
   937 	self assert: result arguments first isVariable.
       
   938 	self assert: result arguments first name equals: 'a'.
       
   939 	self assert: result body temporaries isEmpty.
       
   940 	self assert: result body statements size equals: 1
       
   941 !
       
   942 
       
   943 testBinaryMethod4
       
   944 	super testBinaryMethod4.
       
   945 	self assert: result isMethod.
       
   946 	self assert: result selector equals: #+.
       
   947 	self assert: result arguments size equals: 1.
       
   948 	self assert: result arguments first isVariable.
       
   949 	self assert: result arguments first name equals: 'a'.
       
   950 	self assert: result body temporaries size equals: 1.
       
   951 	self assert: result body statements size equals: 1
       
   952 !
       
   953 
       
   954 testBinaryMethod5
       
   955 	super testBinaryMethod5.
       
   956 	self assert: result isMethod.
       
   957 	self assert: result selector equals: #--.
       
   958 	self assert: result arguments size equals: 1.
       
   959 	self assert: result arguments first isVariable.
       
   960 	self assert: result arguments first name equals: 'a'.
       
   961 	self assert: result body temporaries isEmpty.
       
   962 	self assert: result body statements isEmpty
       
   963 !
       
   964 
       
   965 testCascadeExpression1
       
   966 	super testCascadeExpression1.
       
   967 	self assert: result isCascade.
       
   968 	self assert: result receiver isLiteralNode.
       
   969 	self assert: result messages size equals: 2.
       
   970 	self assert: result messages first receiver equals: result receiver.
       
   971 	self assert: result messages first selector equals: #abs.
       
   972 	self assert: result messages second receiver equals: result receiver.
       
   973 	self assert: result messages second selector equals: #negated
       
   974 !
       
   975 
       
   976 testCascadeExpression2
       
   977 	super testCascadeExpression2.
       
   978 	self assert: result isCascade.
       
   979 	self assert: result receiver isMessage.
       
   980 	self assert: result receiver receiver isLiteralNode.
       
   981 	self assert: result receiver receiver value equals: 1.
       
   982 	self assert: result receiver selector equals: #abs.
       
   983 	self assert: result messages size equals: 3.
       
   984 	self assert: result messages first receiver equals: result receiver.
       
   985 	self assert: result messages first selector equals: #negated.
       
   986 	self assert: result messages second receiver equals: result receiver.
       
   987 	self assert: result messages second selector equals: #raisedTo:.
       
   988 	self assert: result messages third receiver equals: result receiver.
       
   989 	self assert: result messages third selector equals: #negated
       
   990 !
       
   991 
       
   992 testCascadeExpression3
       
   993 	super testCascadeExpression3.
       
   994 	self assert: result isCascade.
       
   995 	self assert: result receiver isLiteralNode.
       
   996 	self assert: result receiver value equals: 1.
       
   997 	self assert: result messages size equals: 2.
       
   998 	self assert: result messages first receiver equals: result receiver.
       
   999 	self assert: result messages first selector equals: #+.
       
  1000 	self assert: result messages first arguments size equals: 1.
       
  1001 	self assert: result messages second receiver equals: result receiver.
       
  1002 	self assert: result messages second selector equals: #-.
       
  1003 	self assert: result messages second arguments size equals: 1
       
  1004 !
       
  1005 
       
  1006 testKeywordExpression1
       
  1007 	super testKeywordExpression1.
       
  1008 	self assert: result isMessage.
       
  1009 	self assert: result receiver isLiteralNode.
       
  1010 	self assert: result receiver value equals: 1.
       
  1011 	self assert: result selector equals: #to:.
       
  1012 	self assert: result arguments size equals: 1.
       
  1013 	self assert: result arguments first isLiteralNode.
       
  1014 	self assert: result arguments first value equals: 2
       
  1015 !
       
  1016 
       
  1017 testKeywordExpression2
       
  1018 	super testKeywordExpression2.
       
  1019 	self assert: result isMessage.
       
  1020 	self assert: result receiver isLiteralNode.
       
  1021 	self assert: result selector equals: #to:by:.
       
  1022 	self assert: result arguments size equals: 2.
       
  1023 	self assert: result arguments first isLiteralNode.
       
  1024 	self assert: result arguments first value equals: 2.
       
  1025 	self assert: result arguments second isLiteralNode.
       
  1026 	self assert: result arguments second value equals: 3
       
  1027 !
       
  1028 
       
  1029 testKeywordExpression3
       
  1030 	super testKeywordExpression3.
       
  1031 	self assert: result isMessage.
       
  1032 	self assert: result receiver isLiteralNode.
       
  1033 	self assert: result selector equals: #to:by:do:.
       
  1034 	self assert: result arguments size equals: 3.
       
  1035 	self assert: result arguments first isLiteralNode.
       
  1036 	self assert: result arguments first value equals: 2.
       
  1037 	self assert: result arguments second isLiteralNode.
       
  1038 	self assert: result arguments second value equals: 3.
       
  1039 	self assert: result arguments third isLiteralNode.
       
  1040 	self assert: result arguments third value equals: 4
       
  1041 !
       
  1042 
       
  1043 testKeywordMethod1
       
  1044 	super testKeywordMethod1.
       
  1045 	self assert: result isMethod.
       
  1046 	self assert: result selector equals: #to:.
       
  1047 	self assert: result arguments size equals: 1.
       
  1048 	self assert: result arguments first isVariable.
       
  1049 	self assert: result arguments first name equals: 'a'.
       
  1050 	self assert: result body temporaries isEmpty.
       
  1051 	self assert: result body statements isEmpty
       
  1052 !
       
  1053 
       
  1054 testKeywordMethod2
       
  1055 	super testKeywordMethod2.
       
  1056 	self assert: result isMethod.
       
  1057 	self assert: result selector equals: #to:do:.
       
  1058 	self assert: result arguments size equals: 2.
       
  1059 	self assert: result arguments first isVariable.
       
  1060 	self assert: result arguments first name equals: 'a'.
       
  1061 	self assert: result arguments second isVariable.
       
  1062 	self assert: result arguments second name equals: 'b'.
       
  1063 	self assert: result body temporaries size equals: 1.
       
  1064 	self assert: result body statements isEmpty
       
  1065 !
       
  1066 
       
  1067 testKeywordMethod3
       
  1068 	super testKeywordMethod3.
       
  1069 	self assert: result isMethod.
       
  1070 	self assert: result selector equals: #to:do:by:.
       
  1071 	self assert: result arguments size equals: 3.
       
  1072 	self assert: result arguments first isVariable.
       
  1073 	self assert: result arguments first name equals: 'a'.
       
  1074 	self assert: result arguments second isVariable.
       
  1075 	self assert: result arguments second name equals: 'b'.
       
  1076 	self assert: result arguments third isVariable.
       
  1077 	self assert: result arguments third name equals: 'c'.
       
  1078 	self assert: result body temporaries isEmpty.
       
  1079 	self assert: result body statements size equals: 1
       
  1080 !
       
  1081 
       
  1082 testKeywordMethod4
       
  1083 	super testKeywordMethod4.
       
  1084 	self assert: result isMethod.
       
  1085 	self assert: result selector equals: #to:do:by:.
       
  1086 	self assert: result arguments size equals: 3.
       
  1087 	self assert: result arguments first isVariable.
       
  1088 	self assert: result arguments first name equals: 'a'.
       
  1089 	self assert: result arguments second isVariable.
       
  1090 	self assert: result arguments second name equals: 'b'.
       
  1091 	self assert: result arguments third isVariable.
       
  1092 	self assert: result arguments third name equals: 'c'.
       
  1093 	self assert: result body temporaries size equals: 1.
       
  1094 	self assert: result body statements size equals: 1
       
  1095 !
       
  1096 
       
  1097 testUnaryExpression1
       
  1098 	super testUnaryExpression1.
       
  1099 	self assert: result isMessage.
       
  1100 	self assert: result receiver isLiteralNode.
       
  1101 	self assert: result selector equals: #abs.
       
  1102 	self assert: result arguments isEmpty
       
  1103 !
       
  1104 
       
  1105 testUnaryExpression2
       
  1106 	super testUnaryExpression2.
       
  1107 	self assert: result isMessage.
       
  1108 	self assert: result receiver isMessage.
       
  1109 	self assert: result receiver receiver isLiteralNode.
       
  1110 	self assert: result receiver receiver value equals: 1.
       
  1111 	self assert: result receiver selector equals: #abs.
       
  1112 	self assert: result receiver arguments isEmpty.
       
  1113 	self assert: result selector equals: #negated.
       
  1114 	self assert: result arguments isEmpty
       
  1115 !
       
  1116 
       
  1117 testUnaryMethod1
       
  1118 	super testUnaryMethod1.
       
  1119 	self assert: result isMethod.
       
  1120 	self assert: result selector equals: #abs.
       
  1121 	self assert: result arguments isEmpty.
       
  1122 	self assert: result body temporaries isEmpty.
       
  1123 	self assert: result body statements isEmpty
       
  1124 !
       
  1125 
       
  1126 testUnaryMethod2
       
  1127 	super testUnaryMethod2.
       
  1128 	self assert: result isMethod.
       
  1129 	self assert: result selector equals: #abs.
       
  1130 	self assert: result arguments isEmpty.
       
  1131 	self assert: result body temporaries size equals: 1.
       
  1132 	self assert: result body statements isEmpty
       
  1133 !
       
  1134 
       
  1135 testUnaryMethod3
       
  1136 	super testUnaryMethod3.
       
  1137 	self assert: result isMethod.
       
  1138 	self assert: result selector equals: #abs.
       
  1139 	self assert: result arguments isEmpty.
       
  1140 	self assert: result body temporaries isEmpty.
       
  1141 	self assert: result body statements size equals: 1
       
  1142 !
       
  1143 
       
  1144 testUnaryMethod4
       
  1145 	super testUnaryMethod4.
       
  1146 	self assert: result isMethod.
       
  1147 	self assert: result selector equals: #abs.
       
  1148 	self assert: result arguments isEmpty.
       
  1149 	self assert: result body temporaries size equals: 1.
       
  1150 	self assert: result body statements size equals: 1
       
  1151 !
       
  1152 
       
  1153 testUnaryMethod5
       
  1154 	super testUnaryMethod5.
       
  1155 	self assert: result isMethod.
       
  1156 	self assert: result selector equals: #abs.
       
  1157 	self assert: result arguments isEmpty.
       
  1158 	self assert: result body temporaries size equals: 1.
       
  1159 	self assert: result body statements isEmpty
       
  1160 ! !
       
  1161 
       
  1162 !PPSmalltalkParserTests methodsFor:'testing-pragmas'!
       
  1163 
       
  1164 testPragma1
       
  1165 	super testPragma1.
       
  1166 	self 
       
  1167 		assert: result pragmas
       
  1168 		format: #('<foo>' ).
       
  1169 	self assert: result body temporaries isEmpty.
       
  1170 	self assert: result body statements isEmpty
       
  1171 !
       
  1172 
       
  1173 testPragma10
       
  1174 	super testPragma10.
       
  1175 	self 
       
  1176 		assert: result pragmas
       
  1177 		format: #('<foo: #bar>' ).
       
  1178 	self assert: result body temporaries isEmpty.
       
  1179 	self assert: result body statements isEmpty
       
  1180 !
       
  1181 
       
  1182 testPragma11
       
  1183 	super testPragma11.
       
  1184 	self 
       
  1185 		assert: result pragmas
       
  1186 		format: #('<foo: true>' ).
       
  1187 	self assert: result body temporaries isEmpty.
       
  1188 	self assert: result body statements isEmpty
       
  1189 !
       
  1190 
       
  1191 testPragma12
       
  1192 	super testPragma12.
       
  1193 	self 
       
  1194 		assert: result pragmas
       
  1195 		format: #('<foo: false>' ).
       
  1196 	self assert: result body temporaries isEmpty.
       
  1197 	self assert: result body statements isEmpty
       
  1198 !
       
  1199 
       
  1200 testPragma13
       
  1201 	super testPragma13.
       
  1202 	self 
       
  1203 		assert: result pragmas
       
  1204 		format: #('<foo: nil>' ).
       
  1205 	self assert: result body temporaries isEmpty.
       
  1206 	self assert: result body statements isEmpty
       
  1207 !
       
  1208 
       
  1209 testPragma14
       
  1210 	super testPragma14.
       
  1211 	self 
       
  1212 		assert: result pragmas
       
  1213 		format: #('<foo: #()>' ).
       
  1214 	self assert: result body temporaries isEmpty.
       
  1215 	self assert: result body statements isEmpty
       
  1216 !
       
  1217 
       
  1218 testPragma15
       
  1219 	super testPragma15.
       
  1220 	self 
       
  1221 		assert: result pragmas
       
  1222 		format: #('<foo: #()>' ).
       
  1223 	self assert: result body temporaries isEmpty.
       
  1224 	self assert: result body statements isEmpty
       
  1225 !
       
  1226 
       
  1227 testPragma16
       
  1228 	super testPragma16.
       
  1229 	self 
       
  1230 		assert: result pragmas
       
  1231 		format: #('< + 1>' ).
       
  1232 	self assert: result body temporaries isEmpty.
       
  1233 	self assert: result body statements isEmpty
       
  1234 !
       
  1235 
       
  1236 testPragma2
       
  1237 	super testPragma2.
       
  1238 	self 
       
  1239 		assert: result pragmas
       
  1240 		format: #('<foo>' '<bar>' ).
       
  1241 	self assert: result body temporaries isEmpty.
       
  1242 	self assert: result body statements isEmpty
       
  1243 !
       
  1244 
       
  1245 testPragma3
       
  1246 	super testPragma3.
       
  1247 	self assert: result pragmas format: #('<foo>').
       
  1248 	self assert: result body temporaries size equals: 1.
       
  1249 	self assert: result body statements isEmpty
       
  1250 !
       
  1251 
       
  1252 testPragma4
       
  1253 	super testPragma4.
       
  1254 	self assert: result pragmas format: #('<foo>').
       
  1255 	self assert: result body temporaries size equals: 1.
       
  1256 	self assert: result body statements isEmpty
       
  1257 !
       
  1258 
       
  1259 testPragma5
       
  1260 	super testPragma5.
       
  1261 	self assert: result pragmas format: #('<foo>' '<bar>').
       
  1262 	self assert: result body temporaries size equals: 1.
       
  1263 	self assert: result body statements isEmpty
       
  1264 !
       
  1265 
       
  1266 testPragma6
       
  1267 	super testPragma6.
       
  1268 	self 
       
  1269 		assert: result pragmas
       
  1270 		format: #('<foo: 1>' ).
       
  1271 	self assert: result body temporaries isEmpty.
       
  1272 	self assert: result body statements isEmpty
       
  1273 !
       
  1274 
       
  1275 testPragma7
       
  1276 	super testPragma7.
       
  1277 	self 
       
  1278 		assert: result pragmas
       
  1279 		format: #('<foo: 1.2>' ).
       
  1280 	self assert: result body temporaries isEmpty.
       
  1281 	self assert: result body statements isEmpty
       
  1282 !
       
  1283 
       
  1284 testPragma8
       
  1285 	super testPragma8.
       
  1286 	self 
       
  1287 		assert: result pragmas
       
  1288 		format: #('<foo: ''bar''>' ).
       
  1289 	self assert: result body temporaries isEmpty.
       
  1290 	self assert: result body statements isEmpty
       
  1291 !
       
  1292 
       
  1293 testPragma9
       
  1294 	super testPragma9.
       
  1295 	self 
       
  1296 		assert: result pragmas
       
  1297 		format: #('<foo: #bar>' ).
       
  1298 	self assert: result body temporaries isEmpty.
       
  1299 	self assert: result body statements isEmpty
       
  1300 ! !
       
  1301