On 11/16/2011 12:02 AM, Voelkel, Andy wrote: > > array: '[' FLOAT+ | STRING+ ']' -> ^(ARRAY FLOAT+ STRING+) ; > > the separate lists on the right of the -> work because your syntax > specifies separate lists. > > [Andy - this approach doesn't work - I get exceptions thrown. I haven't > debugged that yet.]
yes. sorry. I got the cardinality on the right of the -> wrong. it should be (i think): array: '[' FLOAT+ | STRING+ ']' -> ^(ARRAY FLOAT* STRING* ) ; because when specifying an array of floats, the list of FLOATs is full the list of STRINGs is empty and so we must have STRING* on the right hand side. similar reasoning for FLOAT*. > > array: '[' (t+=FLOAT)+ | (t+=STRING)+ ']' -> ^(ARRAY $t+) ; > > [Andy - that doesn't work either. I don't get exceptions, but I get errors > and non-sensical output] not enough information here for me to be of any help to you, sorry. as far as i recall this works in the Java target, maybe something is different with the C# target. or more likely i have mis-remembered it... > > array > : ( l='[' (f+=FLOAT)+ ']' -> ^(ARRAY_FLOAT ["FLT ARY",$l] $f+) ) > | ( l='[' (s+=STRING)+ ']' -> ^(ARRAY_STRING["STR ARY",$l] $s+) ) > ; > > [Andy - This causes compiler errors, and I'm really not sure what you are > getting at. compiler errors are odd here, maybe the C# target does not support the [ ] notation for initializing an imaginary token? > i think this last form will simplify subsequent processing of the tree. > note also the proper initialization of the imaginary tokens. > > [Andy - what do you mean "proper initialization of the imaginary tokens"] the stuff between the [ ] on the right hand side of the -> is information used to initialize the imaginary token. in Java, they get translated into parameters to its constructor. i refer you to Dr. Parr's book to find out more about this feature. seems like i probably wasn't very helpful to you after all, sorry about that... -jbb List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address -- You received this message because you are subscribed to the Google Groups "il-antlr-interest" group. To post to this group, send email to il-antlr-inter...@googlegroups.com. To unsubscribe from this group, send email to il-antlr-interest+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.