Comments (3)
Here's another situation that returns similar results, this time with a lexer.
I got this while playing around with the sample.
Lexer contents
// DELETE THIS CONTENT IF YOU PUT COMBINED GRAMMAR IN Parser TAB
lexer grammar ExprLexer;
OP : '+' | '-' | '*' | '/';
AND : 'and' ;
OR : 'or' ;
NOT : 'not' ;
EQ : '=' ;
COMMA : ',' ;
SEMI : ';' ;
LPAREN : '(' ;
RPAREN : ')' ;
LCURLY : '{' ;
RCURLY : '}' ;
INT : [0-9]+ ;
TEXT: [a-zA-Z_0-9]+;
ID: [a-zA-Z_][a-zA-Z_0-9]* ;
WS: [ \t\n\r\f]+ -> skip ;
STR_DEL: '"';
Parser contents
parser grammar ExprParser;
options { tokenVocab=ExprLexer; }
program
: (stat | def)* EOF
;
stat: (assignment
| func) SEMI
;
assignment : ID EQ expr;
def : ID '(' ID (',' ID)* ')' '{' stat* '}' ;
expr: ID
| INT
| str
| func
| 'not' expr
| expr 'and' expr
| expr 'or' expr
| expr OP expr
;
func : ID LPAREN (expr (',' expr)*)? RPAREN ;
str : '"' TEXT? '"';
Input
f(x,y) {
a = 3+foo;
b = foo * bar;
z = x and y;
rank = zz("banana");
zz();
}
banana = richi;
It, however, (doesn't) work(s) as expected if I change the lexer to the following (Moving the TEXT below the ID).
Lexer contents
// DELETE THIS CONTENT IF YOU PUT COMBINED GRAMMAR IN Parser TAB
lexer grammar ExprLexer;
OP : '+' | '-' | '*' | '/';
AND : 'and' ;
OR : 'or' ;
NOT : 'not' ;
EQ : '=' ;
COMMA : ',' ;
SEMI : ';' ;
LPAREN : '(' ;
RPAREN : ')' ;
LCURLY : '{' ;
RCURLY : '}' ;
INT : [0-9]+ ;
ID: [a-zA-Z_][a-zA-Z_0-9]* ;
TEXT: [a-zA-Z_0-9]+;
WS: [ \t\n\r\f]+ -> skip ;
STR_DEL: '"';
from antlr4-lab.
hi. yes, I believe this is caused by the same bug we've had that we are generating improper Json.
from antlr4-lab.
Fixed by #59
from antlr4-lab.
Related Issues (20)
- Not much bigquery support HOT 1
- Given input that should be valid, returns errors HOT 4
- "Can't create SVG tree; ps2pdf says: Unrecoverable error: limitcheck in .putdeviceprops" HOT 3
- Problems Running on Linux Mint / Ubuntu HOT 6
- Allow windows to be resized HOT 3
- Warn you that your edits will be lost HOT 1
- Unicode chars >= \0080 not rendered properly in the tree view HOT 3
- Example grammar for xsd regex fails to match quantifiers HOT 2
- Give warnings if there is action code in grammar HOT 10
- lab.antlr.org is not displaying the start symbol correctly for javadoc
- Path to examples is hardwired in JS code; code not robust in case of error
- Official Demo Parse Question: WebIDL parse, type of all tokens is null HOT 2
- sample problems HOT 4
- Simple grammar error HOT 1
- Possible bug with Lexer
- Multi-stage dockerfile
- Reset Button / Clear all Button HOT 1
- License HOT 3
- Kotlin sample HOT 1
- Page doesn't load HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from antlr4-lab.