sorry for the amateurish question. I have a grammar that's LL and I want to write an LR grammar. Can I use the LL grammar, make minimal syntactical changes for it to fit with an LR parser and use it? Is that a bad idea? Are there structural differences between them that don't translate?
What happens if you directly use LL grammar for an LR parser, after making basic syntactical changes?
194 Views Asked by arikax At
1
There are 1 best solutions below
Related Questions in PARSING
- TypeScript: Type checking while parsing an arbitrary JSON that is typed/
- How to have fixed options using Option.Applicative in haskell?
- How to convert mathematical expression to lambda function in C++?
- JsonObject throws an exception: JSONObject["employer_website"] is not a string (class org.json.JSONObject$Null : null)
- Trying to fix my c++ code for it to read the right amount of nodes from a file
- Selenium get page after "loading" page
- Parse tag in html via Google Sheets (importxml)
- FluentD / Fluent-Bit: Concatenate multiple lines of log files and generate one JSON record for all key-value from each line
- Editing non-String values in JComboBox
- Handling multiple errors in Bison parser
- Which is the most idiomatic way to parse an i32 from ascii in Rust
- I got this error from a JSON Validator - what does this mean?
- Conflict between lexer rules in ANTLR4 for Fortran grammar
- mqtt message parsing problem in a node.js
- How to print error code from URL response in swift
Related Questions in GRAMMAR
- Need clarification on pumping lemma for context free languages
- Grammar for combinations of Numpy arrays
- What is exactly Ruby's `not` keyword?
- VSCode Extension - Grammar Injection Into Multiple Languages
- Integrating Grammar/Spellcheck Tool in ASP.NET Application for Textarea
- Is the alternative operator in ABNF match first or longest?
- ANTLR4 matches to lexer rule instead of parser rule
- Distinguishing integer and decimal arithmetic with ohm.js
- Trouble with Island Grammar parsing unordered network configuration using Python textx
- ANTLR4 for Function Pointers in C
- Constructing grammar based on given rules
- Is this grammar LR(0) or SLR(1)
- ANTLR4 explain variable declaration error
- Bison ID reduction conflict
- SGF Grammar Parser with Peggy
Related Questions in LL-GRAMMAR
- How to auto-complete JSON syntax strings?
- How to turn a Grammar to LR(0)
- Is there a simple example how Earley parser outperforms (or allows less verbose grammar than) LL(k) parser?
- Grammer Left Factoring
- Is this rule LL(1)?
- Definition of First and Follow sets of the right-hand sides of production
- Epsilon(ε) productions and LR(0) grammars and LL(1) grammars
- antlr parsing of java 8 file (python binding) - slow running time
- Why do we need FOLLOW set in LL(1) grammar parser?
- How to handle operator precedence in an LL(1) parser
- John Hughes' Deterministic LL(1) parsing with Arrow and errors
- What happens if you directly use LL grammar for an LR parser, after making basic syntactical changes?
- Does an empty column in an LL(1) parsing table mean that it is wrong?
- PEGjs grammar star (*) not matching as expected
- How to have shortest match first when implementing mark down text styling operators in an antlr4 grammar?
Related Questions in LR-GRAMMAR
- Java CUP produces Shift-Reduce conflict when parsing a grammar for a C++ type language
- Does Golang have LR(1) grammar?
- Using Tree Sitter, How to disable extras in string literal?
- How to turn a Grammar to LR(0)
- How to handle epsilon production in CLR(1) parsing?
- How to understand Example-4.64 of the syntax analysis chapter in Dragon Book?
- LALR, LR(1) and SLR
- checking if the following grammar is LR(0) and LR(1)
- Grammar parser for parsing parliamentary debates?
- SLR(1) and LALR(1) grammar conflicts
- Should a merge failure stop the LR(1) to LALR(1) conversion
- LR(1) item sets for left recursive grammar
- Epsilon(ε) productions and LR(0) grammars and LL(1) grammars
- Preferring shift over reduce in parser for language without statement terminators
- SR conflict in LR(0) and SLR(1) will always be equal for some context free 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 # Hahtags
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?
All LL(1) grammars are LR(1), so if you had an LR(1) parser generator, you could definitely use your LL(1) grammar, assuming the BNF syntax is that used by the parser generator.
But you probably don't have an LR(1) parser generator, but rather a parser generator which can only handle the LALR(1) subset of LR(1) grammars. All the same, you're probably fine. "Most" LL(1) grammars are in LALR(1), and it's pretty rare to find a useful LL(1) which is not. (This pattern is unlikely to arise in a practical grammar, for example.)
So it's probably possible. But it might not be a good idea.
Top-down parsers can't handle left-recursion, and without left-recursion you can't write a grammar which represents left-associative operators, which is to say most arithmetic operators. This problem is usually solved in practice by using a right-associative grammar along with an idiosyncratic evaluation function which corrects the associativity. That's less than ideal. Also, LL grammars created by mechanically removing left-recursion tend to be very hard to read.
So you are probably best off using a grammar designed for LR parsing. But you probably don't have to.