Scanner.st
changeset 1291 917f975e3e7e
parent 1290 ec07b4b3740e
child 1292 380fa6f65268
equal deleted inserted replaced
1290:ec07b4b3740e 1291:917f975e3e7e
  1519             token := '#{'.
  1519             token := '#{'.
  1520             tokenType := #HashLeftBrace.
  1520             tokenType := #HashLeftBrace.
  1521             ^ tokenType
  1521             ^ tokenType
  1522         ].
  1522         ].
  1523 
  1523 
  1524         (nextChar == $< ) ifTrue:[
       
  1525             "ST/X experimental: lazy values as #<...>"
       
  1526             source next.
       
  1527             token := '#<'.
       
  1528             tokenType := #HashLeftAngle.
       
  1529             ^ tokenType
       
  1530         ].
       
  1531 
       
  1532         (nextChar == $' ) ifTrue:[
  1524         (nextChar == $' ) ifTrue:[
  1533             "ST-80 and ST/X support arbitrary symbols as #'...'"
  1525             "ST-80 and ST/X support arbitrary symbols as #'...'"
  1534             self nextString.
  1526             self nextString.
  1535             self markSymbolFrom:tokenPosition to:(source position-1).
  1527             self markSymbolFrom:tokenPosition to:(source position-1).
  1536             tokenValue := token := tokenValue asSymbol.
  1528             tokenValue := token := tokenValue asSymbol.
  1539         ].
  1531         ].
  1540 
  1532 
  1541         (nextChar == $#) ifTrue:[
  1533         (nextChar == $#) ifTrue:[
  1542             AllowDolphinExtensions ifTrue:[
  1534             AllowDolphinExtensions ifTrue:[
  1543                 "dolphin does computed literals as ##( ... )"
  1535                 "dolphin does computed literals as ##( ... )"
  1544 
       
  1545                 nextChar := source nextPeek.
  1536                 nextChar := source nextPeek.
  1546                 nextChar == $( ifTrue:[
  1537                 nextChar == $( ifTrue:[
  1547                     source next.    
  1538                     source next.    
  1548                     token := '##('.
  1539                     token := '##('.
  1549                     tokenType := #HashHashLeftParen.
  1540                     tokenType := #HashHashLeftParen.
  1550                     ^ tokenType
  1541                     ^ tokenType
  1551                 ].
  1542                 ].
  1552                 token := '##'.
  1543                 token := '##'.
  1553                 tokenType := #HashHash.
  1544                 tokenType := #HashHash.
  1554                 ^ tokenType
  1545                 ^ tokenType
  1555             ]
  1546             ] ifFalse:[
       
  1547                 nextChar := source nextPeek.
       
  1548                 nextChar == $[ ifTrue:[
       
  1549                     source next.    
       
  1550                     token := '##('.
       
  1551                     tokenType := #HashHashLeftBracket.
       
  1552                     ^ tokenType
       
  1553                 ].
       
  1554                 token := '##'.
       
  1555                 tokenType := #HashHash.
       
  1556                 ^ tokenType
       
  1557             ].
  1556         ].
  1558         ].
  1557 
  1559 
  1558         ((typeArray at:(nextChar asciiValue)) == #special) ifTrue:[
  1560         ((typeArray at:(nextChar asciiValue)) == #special) ifTrue:[
  1559             string := source next asString.
  1561             string := source next asString.
  1560             nextChar := source peek.
  1562             nextChar := source peek.
  2279 ! !
  2281 ! !
  2280 
  2282 
  2281 !Scanner class methodsFor:'documentation'!
  2283 !Scanner class methodsFor:'documentation'!
  2282 
  2284 
  2283 version
  2285 version
  2284     ^ '$Header: /cvs/stx/stx/libcomp/Scanner.st,v 1.144 2002-07-24 10:17:48 cg Exp $'
  2286     ^ '$Header: /cvs/stx/stx/libcomp/Scanner.st,v 1.145 2002-07-25 13:20:33 cg Exp $'
  2285 ! !
  2287 ! !
  2286 Scanner initialize!
  2288 Scanner initialize!