[Newcompiler] SmaCC error again: subscript is out of bounds

suen mathieu mathieusuen at yahoo.fr
Thu Jul 20 08:41:02 UTC 2006


+1
ok thanks a lote :)
I have been searching for 2 days 


----- Message d'origine ----
De : Andrew Tween <amtween at hotmail.com>
À : "The New Compiler, AST, IRBuilder, Closures..." <newcompiler at lists.squeakfoundation.org>
Envoyé le : Jeudi, 20 Juillet 2006, 10h27mn 17s
Objet : Re: [Newcompiler] SmaCC error again: subscript is out of bounds

Hi,
I have also seen this when using Smacc.
I found that although the problem was intermittent, I could prevent it occuring
most of the time by doing a full garbage collect before generating i.e. ...
    Smalltalk garbageCollect.

I spent some time trying to fix DependentsArray, but only made things worse. And
then I was sidetracked away from my Smacc project, and so I never did solve it.

I see that you have also posted to the main list, and I'll post some more there.
Cheers,
Andy

----- Original Message ----- 
From: "suen mathieu" <mathieusuen at yahoo.fr>
To: <newcompiler at lists.squeakfoundation.org>
Sent: Wednesday, July 19, 2006 2:44 PM
Subject: [Newcompiler] SmaCC error again: subscript is out of bounds


> 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