I am writing a parser. I have a production which is left-recursive a: a op a
so I fix it in this way:
ab : () (op ab)*;
where op : + | - | / | *
now I think this is ambiguous,for example for some statement like x+y*z . How can I
eliminate this ambiguity؟
Eliminate ambiguity of grammar in antlr
220 Views Asked by AudioBubble At
1
There are 1 best solutions below
Related Questions in ANTLR
- How to have `\n` significant except when it is on a line by itself?
- How can I disambiguate the following rules?
- ANTLR - No viable alternative at input
- ANTLR4 - Access token group in a sequence using context
- Antlr - mismatched input '1' expecting number
- Not able to parse continuos string using antlr (without spaces)
- How to create shorthand for a rule without ambiguity?
- ANTLR4 - label assigned to a block which is not a set
- ANTLR (ANTLR3) 2 cases or anything else pattern
- JavaCC and Unicode issue. Why \u696d cannot be managed in JavaCC although it belong to the range "\u4e00"-"\u9fff"
- Xtext grammar for a nested indented language
- Grammar: Precedence of grammar alternatives
- ANTLR4 grammar conflicting rules
- ANTLR4 - Mutually left-recursive grammar
- Xtext grammar describing cron expression not working as expected
Related Questions in ANTLRWORKS
- antlr4 Similar token definition
- ANTLR String LEXER token
- ANTLR decision can match input such as "ID ID" using multiple alternatives
- How can we convert regular expression to ANTLR 4 Expression
- Read multiline value in ANTLR untill a special symbol occurs
- Force ANTLR to read only first commented section from input file and skip the rest comments
- Java Grammar To AST
- Write in a file in ANTLRWorks
- Eliminate ambiguity of grammar in antlr
- ANTLR grammar : Understand CP1252 euro character
- ANTLR White Space Question (and not the typical one)
- AntlrWorks do not want to debug C-target code
- Looking for Antlr Grammar syntaxt highlight in VS2010
- ANTLR/Grammar issue: calculator language
- ANTLRWorks - How to work with Python 2.5 grammar
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
For ANTLR 3, precedence is implicit in the multiple rule invocations done for an expression. There are plenty of examples of how to build recursive descent expression parsers on the web.
is not ambiguous at all, by the way.
ANTLR 4 allows you to specify left recursive expression rules and implicitly defines a precedence by the order of the alternatives, assuming there's an ambiguity. For example here's a typical rule: