[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
SableCC-2.6 bug?
Package simple;
Helpers
cr = 13;
lf = 10;
tab = 9;
digit = ['0' .. '9'];
alpha = [['a' .. 'z'] + ['A'.. 'Z']];
ad = (digit | alpha);
Tokens
/* alpa = alpha | alpha ( '-' | ad )* ad; */
dot = '.';
blank = (cr | lf | tab | ' ')+;
letter = alpha+;
number = digit+;
Ignored Tokens
blank;
Productions
test = letter dot? number?;
The above grammar passes with the following values:
aaa
aaa.
aaa.1
----------------------------------------------------------------
Package simple;
Helpers
cr = 13;
lf = 10;
tab = 9;
digit = ['0' .. '9'];
alpha = [['a' .. 'z'] + ['A'.. 'Z']];
ad = (digit | alpha);
Tokens
alpa = alpha | alpha ( '-' | ad )* ad;
dot = '.';
blank = (cr | lf | tab | ' ')+;
letter = alpha+;
number = digit+;
Ignored Tokens
blank;
Productions
test = letter dot? alpa?;
-------------------------------------------------------------------
Failes to recognize:
aaa
simple.parser.ParserException: [1,1] TLetter expected.
at simple.parser.Parser.parse(Parser.java:184)
at Main.compile(Main.java:118)
at Main.compile(Main.java:95)
at Main.main(Main.java:77)
aaa.
simple.parser.ParserException: [1,1] TLetter expected.
at simple.parser.Parser.parse(Parser.java:184)
at Main.compile(Main.java:118)
at Main.compile(Main.java:95)
at Main.main(Main.java:77)
It appears that SableCC gets confused if the production rule
includes a token who is a proper subset of another token in the
rule.
Tnks!
Amancio