[squeak-dev] The Trunk: Compiler-nice.98.mcz
Eliot Miranda
eliot.miranda at gmail.com
Fri Nov 27 22:08:25 UTC 2009
Hi Nicholas,
how about renaming scanLitByte to scanLitByteVec?
On Fri, Nov 27, 2009 at 3:54 AM, <commits at source.squeak.org> wrote:
> Nicolas Cellier uploaded a new version of Compiler to project The Trunk:
> http://source.squeak.org/trunk/Compiler-nice.98.mcz
>
> ==================== Summary ====================
>
> Name: Compiler-nice.98
> Author: nice
> Time: 27 November 2009, 12:54:16 pm
> UUID: 4853aa4f-5bcb-e242-a130-f41f2c4d09ae
> Ancestors: Compiler-cwp.97
>
> Add support for literal ByteArray #[1 2 3]
>
> =============== Diff against Compiler-cwp.97 ===============
>
> Item was added:
> + ----- Method: Scanner>>scanLitByte (in category 'expression types') -----
> + scanLitByte
> + | stream |
> + stream := (ByteArray new: 16) writeStream.
> + [ tokenType = #rightBracket or: [ tokenType = #doIt ] ] whileFalse:
> [
> + tokenType = #word
> + ifTrue: [ self scanLitWord ].
> + (token isInteger and: [ token between: 0 and: 255 ])
> + ifFalse: [ ^ self offEnd: '8-bit integer or right
> bracket expected' ].
> + stream nextPut: token.
> + self scanToken ].
> + token := stream contents!
>
> Item was changed:
> + ----- Method: Scanner class>>initialize (in category 'initialization')
> -----
> - ----- Method: Scanner class>>initialize (in category 'class
> initialization') -----
> initialize
> | newTable |
> + newTable := Array new: 256 withAll: #xBinary. "default"
> - newTable _ Array new: 256 withAll: #xBinary. "default"
> newTable atAll: #(9 10 12 13 32 ) put: #xDelimiter. "tab lf ff cr
> space"
> newTable atAll: ($0 asciiValue to: $9 asciiValue) put: #xDigit.
>
> 1 to: 255
> do: [:index |
> (Character value: index) isLetter
> ifTrue: [newTable at: index put: #xLetter]].
>
> newTable at: 30 put: #doIt.
> newTable at: $" asciiValue put: #xDoubleQuote.
> newTable at: $# asciiValue put: #xLitQuote.
> newTable at: $$ asciiValue put: #xDollar.
> newTable at: $' asciiValue put: #xSingleQuote.
> newTable at: $: asciiValue put: #xColon.
> newTable at: $( asciiValue put: #leftParenthesis.
> newTable at: $) asciiValue put: #rightParenthesis.
> newTable at: $. asciiValue put: #period.
> newTable at: $; asciiValue put: #semicolon.
> newTable at: $[ asciiValue put: #leftBracket.
> newTable at: $] asciiValue put: #rightBracket.
> newTable at: ${ asciiValue put: #leftBrace.
> newTable at: $} asciiValue put: #rightBrace.
> newTable at: $^ asciiValue put: #upArrow.
> newTable at: $_ asciiValue put: #leftArrow.
> newTable at: $| asciiValue put: #verticalBar.
> + TypeTable := newTable "bon voyage!!"
> - TypeTable _ newTable "bon voyage!!"
>
> "Scanner initialize"!
>
> Item was changed:
> ----- Method: Scanner>>xLitQuote (in category 'multi-character scans')
> -----
> xLitQuote
> "Symbols and vectors: #(1 (4 5) 2 3) #ifTrue:ifFalse: #'abc'."
> -
> | start |
> start := mark.
> self step. "litQuote"
> self scanToken.
> tokenType = #leftParenthesis
> + ifTrue: [self scanToken; scanLitVec.
> + mark := start + 1.
> - ifTrue:
> - [self scanToken; scanLitVec.
> - mark := start+1.
> tokenType == #doIt
> ifTrue: [self offEnd: 'Unmatched
> parenthesis']]
> + ifFalse: [tokenType = #leftBracket
> + ifTrue: [self scanToken; scanLitByte.
> + mark := start + 1.
> + tokenType == #doIt
> + ifTrue: [self offEnd:
> 'Unmatched bracket']]
> + ifFalse: [(#(#word #keyword #colon )
> includes: tokenType)
> + ifTrue: [self scanLitWord]
> + ifFalse: [tokenType ==
> #literal
> + ifTrue:
> [token isSymbol
> +
> ifTrue: ["##word"
> +
> token := token
> +
> "May want to move toward ANSI
> +
> here "]]
> + ifFalse:
> [tokenType == #string
> +
> ifTrue: [token := token asSymbol]]]]].
> - ifFalse:
> - [(#(word keyword colon ) includes: tokenType)
> - ifTrue:
> - [self scanLitWord]
> - ifFalse:
> - [(tokenType==#literal)
> - ifTrue:
> - [(token isSymbol)
> - ifTrue:
> "##word"
> -
> [token := token "May want to move toward ANSI here"]]
> - ifFalse:
> - [tokenType==#string
> ifTrue: [token := token asSymbol]]]].
> mark := start.
> tokenType := #literal
>
> + "#(Pen)
> - " #(Pen)
> #Pen
> #'Pen'
> ##Pen
> ###Pen
> + "!
> - "!
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20091127/cd71d1f3/attachment.htm
More information about the Squeak-dev
mailing list
|