# polychrome **Repository Path**: aranciacheng/polychrome ## Basic Information - **Project Name**: polychrome - **Description**: 1. 使用 Java 语言实现一个简单的 Yacc。 【语义分析程序】 2. 实现“比特大战”游戏。 【设计一门新的低级语言,并用C/C++、java、python等高语言实现对应的编译器】 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-03-20 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 目前测试样例功能和交互暂未完善和添加。以下是一个简单应用例子。如需修改输入,需手动修改`FirstSet`类和`AnalysisTable`类中的`filePath`变量值。 输入: `if-else.bnf` ``` ::= | ::= "if" "(" ")" ::= "else" | "" ::= "0" | "1" ``` `tokenstream1.tok` ``` "if" "(" "0" ")" "if" "(" "1" ")" "else" ``` 输出: ``` 当前行数为:0 当前行的内容为 ::= | 当前行数为:1 当前行的内容为 ::= "if" "(" ")" 当前行数为:2 当前行的内容为 ::= "else" | "" 当前行数为:3 当前行的内容为 ::= "0" | "1" tmpallnonterminal中的元素为: "(" ")" "if" "else" "" "0" "1" endcharacter中的元素为: "" "0" "1" "else" "if" nonterminal中的元素为: tmpterminal中的元素为: tmpnonterminal中的元素为: "if" "(" ")" "else" "" "0" "1" firstset中的元素为: "if" "if" "" "else" "0" "1" followset中的元素为: 0:"else" $ 1:"else" $ 2:"else" $ 3:")" ERROR:[,"else"] has exist ->["else", ] 存在二义性!LL1表创建失败 ERROR!匹配失败 ```