更改符号总表及四元式 增加动作

This commit is contained in:
c-my committed 2018-12-18 20:40:16 +08:00
1 parent 89a24b497c
commit d1a23d7ddb
9 files changed
+256 -100

No files matched your search

+10 -66
View File
@@ -2,6 +2,7 @@ package com.compiler.parser;
import com.compiler.lexer.Token;
import javax.lang.model.util.ElementScanner6;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
@@ -34,6 +35,14 @@ public class ParserGenerator {
for (String sym : syms) {
if (sym.equals("$"))
symbolString.add(new Symbol(sym, Symbol.SymbolType.Empty));
else if (sym.equals("PUSH"))
symbolString.add(new Symbol(sym, Symbol.ActionTYpe.PUSH));
else if (sym.equals("FILL"))
symbolString.add(new Symbol(sym, Symbol.ActionTYpe.FILL));
else if (sym.equals("FILL_I"))
symbolString.add(new Symbol(sym, Symbol.ActionTYpe.FILL_I));
else if (sym.equals("GEQ"))
symbolString.add(new Symbol(sym, Symbol.ActionTYpe.GEQ));
else if (ParserTest.isTerminal(sym))
symbolString.add(new Symbol(sym, Symbol.SymbolType.Terminal));
else
@@ -118,76 +127,11 @@ public class ParserGenerator {
case "!=":
symbolList.add(new Symbol("NE_OP", Symbol.SymbolType.Terminal));
break;
case ";":
symbolList.add(new Symbol(";", Symbol.SymbolType.Terminal));
break;
case "{":
symbolList.add(new Symbol("{", Symbol.SymbolType.Terminal));
break;
case "}":
symbolList.add(new Symbol("}", Symbol.SymbolType.Terminal));
break;
case "(":
symbolList.add(new Symbol("(", Symbol.SymbolType.Terminal));
break;
case ")":
symbolList.add(new Symbol(")", Symbol.SymbolType.Terminal));
break;
case "[":
symbolList.add(new Symbol("[", Symbol.SymbolType.Terminal));
break;
case "]":
symbolList.add(new Symbol("]", Symbol.SymbolType.Terminal));
break;
case ",":
symbolList.add(new Symbol(",", Symbol.SymbolType.Terminal));
break;
case ".":
symbolList.add(new Symbol(".", Symbol.SymbolType.Terminal));
break;
case "&":
symbolList.add(new Symbol("&", Symbol.SymbolType.Terminal));
break;
case "!":
symbolList.add(new Symbol("!", Symbol.SymbolType.Terminal));
break;
case "~":
symbolList.add(new Symbol("~", Symbol.SymbolType.Terminal));
break;
case "->":
symbolList.add(new Symbol("PTR_OP", Symbol.SymbolType.Terminal));
break;
case "+":
symbolList.add(new Symbol("+", Symbol.SymbolType.Terminal));
break;
case "-":
symbolList.add(new Symbol("-", Symbol.SymbolType.Terminal));
break;
case "*":
symbolList.add(new Symbol("*", Symbol.SymbolType.Terminal));
break;
case "/":
symbolList.add(new Symbol("/", Symbol.SymbolType.Terminal));
break;
case "%":
symbolList.add(new Symbol("%", Symbol.SymbolType.Terminal));
break;
case "<":
symbolList.add(new Symbol("<", Symbol.SymbolType.Terminal));
break;
case ">":
symbolList.add(new Symbol(">", Symbol.SymbolType.Terminal));
break;
case "^":
symbolList.add(new Symbol("^", Symbol.SymbolType.Terminal));
break;
case "|":
symbolList.add(new Symbol("|", Symbol.SymbolType.Terminal));
break;
case "?":
symbolList.add(new Symbol("?", Symbol.SymbolType.Terminal));
break;
default:
symbolList.add(new Symbol(token.getStr(), Symbol.SymbolType.Terminal));
break;
}