Difference between revisions of "CoCo/R"
From eplmediawiki
Line 8: | Line 8: | ||
== Manual == | == Manual == | ||
− | [http://www.ssw.uni-linz.ac.at/Coco/Doc/UserManual.pdf | + | [http://www.ssw.uni-linz.ac.at/Coco/Doc/UserManual.pdf Link] |
==Examples == | ==Examples == | ||
− | * [http:// | + | * [http://eplmediawiki.di.uminho.pt/uploads/Lavanda_CoCoR.w Lavanda.w] <br> |
− | * [http:// | + | * [http://eplmediawiki.di.uminho.pt/uploads/Lavanda_CoCoR.pdf Lavanda.pdf] |
== Original Page == | == Original Page == | ||
− | [http://www.ssw.uni-linz.ac.at/Coco/ | + | [http://www.ssw.uni-linz.ac.at/Coco/ Link] |
[[Category:Compiler Generators]] | [[Category:Compiler Generators]] |
Revision as of 23:41, 10 December 2012
Coco/R is a compiler generator, that takes an attribute grammar of a source language and generates a scanner, parser and a semantic evaluator for this language. The scanner works as a deterministic finite automaton. The parser is recursive descent. LL(1) conflicts can be resolved by a multi-symbol lookahead or by semantic checks.
Inherited and synthesized attributes are allowed; however evaluation is done in a top-down, left to right, tree traversal, during parsing.
Thus the class of accepted grammars is LL(k) for an arbitrary k.
There are versions of Coco/R for Java, C#, C++, Delphi, Modula-2, Oberon and other languages.