[Newcompiler] SmaCC error again: subscript is out of bounds
suen mathieu
mathieusuen at yahoo.fr
Wed Jul 19 13:44:38 UTC 2006
Hi squeakers;
Ok I guess my previous question wasn't clear.
So could you try to compile the SqueakParser with the
grammar following.
>From time to time I have got an error saying :
"subscript is out of bounds: ..." :( and I don't know
why.
Also could you tell me who are able to answer me?
Thanks for your attention
===================================================
%id <name> <number> <negativeNumber> <binarySymbol>
<period>;
%start Sequence MethodPattern;
Method:
MethodPattern Sequence {#method:}
| MethodPattern Pragmas Sequence {#methodPragma:}
| MethodPattern Pragmas Temporaries Pragmas Statements
{#methodPragmaTempsPragma:}
| MethodPattern Temporaries Pragmas Statements
{#methodTempsPragma:};
MethodPattern:
<name> {#unaryMessage:}
| <binarySymbol> Variable {#messagePart:}
| KeywordMethodPattern {#first:};
KeywordMethodPattern:
<keyword> Variable {#messagePart:}
| KeywordMethodPattern <keyword> Variable
{#addMessagePart:};
Pragmas:
"<" PragmaMessage ">" {#pragmaMessage:}
| Pragmas "<" PragmaMessage ">" {#pragmas:};
Sequence:
Statements {#sequence:}
| Temporaries Statements {#sequenceWithTemps:};
Temporaries:
"||" {#array}
| "|" TemporaryVariables "|" {#second:};
TemporaryVariables:
{#array}
| TemporaryVariables Variable {#add:};
Statements:
{#array}
| StatementList <period>? {#first:}
| StatementList <period> "^" Expression <period>?
{#returnAdd:}
| "^" Expression <period>? {#return:};
StatementList:
Expression {#firstIn:}
| StatementList <period> Expression {#add3:};
Block:
"[" BlockArgs "|" Sequence "]" {#blockWithArgs:}
| "[" Sequence "]" {#blockNoArgs:}
| "[" BlockArgs "]" {#blockArgs:}
| "[" BlockArgs "||" TemporaryVariables "|" Statements
"]" {#blockWithTemps:};
BlockArgs:
":" Variable {#secondIn:}
| BlockArgs ":" Variable {#add3:};
Expression:
Assignment {#first:}
| Cascade {#first:}
| Primary {#first:};
Primary:
"(" Expression ")" {#second:}
| Array {#first:}
| Block {#first:}
| Literal {#first:}
| Variable {#first:};
Assignment:
Variable <assignment> Expression {#assignment:};
Cascade:
MessageSend {#first:}
| Cascade ";" Message {#cascade:};
MessageSend:
KeywordMessageSend {#first:}
| BinaryMessageSend {#first:}
| UnaryMessageSend {#first:};
Message:
UnaryMessage {#first:}
| BinaryMessage {#first:}
| KeywordMessage {#first:};
KeywordMessageSend:
BinaryMessageSend KeywordMessage {#messageSend:}
| UnaryMessageSend KeywordMessage {#messageSend:}
| Primary KeywordMessage {#messageSend:};
KeywordMessage:
<keyword> KeywordArgument {#messagePart:}
| KeywordMessage <keyword> KeywordArgument
{#addMessagePart:};
KeywordArgument:
BinaryMessageSend {#first:}
| UnaryMessageSend {#first:}
| Primary {#first:};
BinaryMessageSend:
BinaryMessageSend BinaryMessage {#messageSend:}
| UnaryMessageSend BinaryMessage {#messageSend:}
| Primary BinaryMessage {#messageSend:};
BinaryMessage :
<binarySymbol> BinaryArgument {#messagePart:};
BinaryArgument:
UnaryMessageSend {#first:}
| Primary {#first:};
UnaryMessageSend :
UnaryMessageSend UnaryMessage {#messageSend:}
| Primary UnaryMessage {#messageSend:};
UnaryMessage :
<name> {#unaryMessage:};
Array:
"{" Statements "}" {#array:};
Variable:
<name> {#variable:};
Literal:
"true" {#litTrue:}
| "false" {#litFalse:}
| "nil" {#litNil:}
| <number> {#litNumber:}
| <negativeNumber> {#litNumber:}
| <character> {#litChar:}
| <string> {#litString:}
| "#" <string> {#litStringSymbol:}
| "#" <name> {#litSymbol:}
| "#" <binarySymbol> {#litSymbol:}
| "#" <keyword> {#litSymbol:}
| "#" <multikeyword> {#litSymbol:}
| "#" <alternateKeyword> {#litSymbol:}
| "#" "[" ByteArray "]" {#litArray:}
| "#" "(" LiteralArray ")" {#litArray:}
| "#:" {#litString:};
ByteArray:
{#byteStream}
| ByteArray <number> {#byteStreamPut:};
LiteralArray:
{#stream}
| LiteralArray ArrayLiteral {#streamPut:};
ArrayLiteral:
Literal {#value:}
| <name> {#valueSymbol:}
| <binarySymbol> {#valueSymbol:}
| <keyword> {#valueSymbol:}
| <multikeyword> {#valueSymbol:}
| <alternateKeyword> {#valueSymbol:}
| "(" LiteralArray ")" {#contents2:}
| "[" ByteArray "]" {#contents2:}
| <anyChar> {#valueSymbol:};
PragmaMessage:
Message
| Apicall;
Apicall:
TypeCall ExternalType <string> "(" ParameterApicall
")" "module:" <string>;
TypeCall:
"apicall:"
| "cdecl:";
ExternalType:
<name>
| <name> "*";
ParameterApicall:
ExternalType
| ParameterApicall ExternalType;
===================================================
Math
___________________________________________________________________________
Découvrez un nouveau moyen de poser toutes vos questions quelque soit le sujet !
Yahoo! Questions/Réponses pour partager vos connaissances, vos opinions et vos expériences.
http://fr.answers.yahoo.com
More information about the Newcompiler
mailing list