TY - GEN
T1 - LL(1) Conflict Resolution in a Recursive Descent Compiler Generator
AU - Mössenböck, Hanspeter
AU - Wöß, Albrecht
AU - Löberbauer, Markus
PY - 2003/8
Y1 - 2003/8
N2 - Recursive descent parsing is restricted to languages whose grammars are LL(1), i.e., which can be parsed top-down with a single lookahead symbol. Unfortunately, many languages such as Java, C++, or C# are not LL(1). There-fore recursive descent parsing cannot be used or the parser has to make its deci-sions based on semantic information or a multi-symbol lookahead.
In this paper we suggest a systematic technique for resolving LL(1) conflicts in recursive descent parsing and show how to integrate it into a compiler gen-erator (Coco/R). The idea is to evaluate user-defined boolean expressions, in order to allow the parser to make its parsing decisions where a one symbol loo-kahead does not suffice.
Using our extended compiler generator we implemented a compiler front end for C# that can be used as a framework for implementing a variety of tools.
AB - Recursive descent parsing is restricted to languages whose grammars are LL(1), i.e., which can be parsed top-down with a single lookahead symbol. Unfortunately, many languages such as Java, C++, or C# are not LL(1). There-fore recursive descent parsing cannot be used or the parser has to make its deci-sions based on semantic information or a multi-symbol lookahead.
In this paper we suggest a systematic technique for resolving LL(1) conflicts in recursive descent parsing and show how to integrate it into a compiler gen-erator (Coco/R). The idea is to evaluate user-defined boolean expressions, in order to allow the parser to make its parsing decisions where a one symbol loo-kahead does not suffice.
Using our extended compiler generator we implemented a compiler front end for C# that can be used as a framework for implementing a variety of tools.
UR - https://www.scopus.com/pages/publications/35248823679
U2 - 10.1007/978-3-540-45213-3_25
DO - 10.1007/978-3-540-45213-3_25
M3 - Conference proceedings
SN - 3-540-40796-0
VL - 2789
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 192
EP - 201
BT - Modular Programming Languages
PB - Springer Verlag Heidelberg
ER -