removed unused static code from hdl parser

This commit is contained in:
hneemann 2019-07-06 20:07:44 +02:00
parent 73af7bc235
commit b30f70142f
3 changed files with 4 additions and 43 deletions

View File

@ -57,7 +57,6 @@ public class Parser {
private ArrayList<Reference> refRead;
private final Tokenizer tok;
private Context staticContext;
/**
* Create a new instance
@ -76,7 +75,6 @@ public class Parser {
*/
public Parser(Reader reader, String srcFile) {
tok = new Tokenizer(reader, srcFile);
staticContext = new Context();
}
/**
@ -138,25 +136,10 @@ public class Parser {
s.add(c -> c.print(t));
}
}
while (!nextIs(EOF)) {
if (nextIs(STATIC)) {
Statement stat = parseStatement();
try {
stat.execute(staticContext);
} catch (HGSEvalException e) {
throw newParserException("error evaluating static code: " + e.getMessage());
}
} else
s.add(parseStatement());
}
return s.optimize();
}
while (!nextIs(EOF))
s.add(parseStatement());
/**
* @return the static context of this template
*/
public Context getStaticContext() {
return staticContext;
return s.optimize();
}
private Statement parseStatement() throws IOException, ParserException {

View File

@ -17,7 +17,7 @@ class Tokenizer {
enum Token {
UNKNOWN, IDENT, AND, OR, XOR, NOT, OPEN, CLOSE, NUMBER, EOL, EOF, SHIFTLEFT, SHIFTRIGHT, COMMA, EQUAL,
ADD, SUB, MUL, GREATER, LESS, DIV, MOD, END, IF, ELSE, FOR, WHILE, SEMICOLON, NOTEQUAL, STRING,
OPENBRACE, CLOSEDBRACE, CODEEND, OPENSQUARE, CLOSEDSQUARE, DOT, STATIC, FUNC, GREATEREQUAL, LESSEQUAL,
OPENBRACE, CLOSEDBRACE, CODEEND, OPENSQUARE, CLOSEDSQUARE, DOT, FUNC, GREATEREQUAL, LESSEQUAL,
REPEAT, RETURN, COLON, UNTIL, DOUBLE, EXPORT, TRUE, FALSE
}
@ -129,9 +129,6 @@ class Tokenizer {
case '.':
token = Token.DOT;
break;
case '@':
token = Token.STATIC;
break;
case ':':
token = Token.COLON;
break;

View File

@ -389,25 +389,6 @@ public class ParserTest extends TestCase {
assertEquals(7, flag);
}
public void testStatic() throws IOException, ParserException, HGSEvalException {
Parser p = new Parser("generic a; <? @gen[0]:=\"a\"; ?>");
final ArrayList<Object> generics = new ArrayList<>();
p.getStaticContext().declareVar("gen", generics);
p.parse();
assertEquals(1, generics.size());
assertEquals("a", generics.get(0));
}
public void testFunctionStatic() throws IOException, ParserException, HGSEvalException {
Parser p = new Parser("<? @f:=func(a){return a*a+2;}; print(f(4));?>");
p.parse();
Object fObj = p.getStaticContext().getVar("f");
assertTrue(fObj instanceof Function);
Function f = (Function) fObj;
assertEquals(11L, f.call(3));
}
public void testFunction() throws IOException, ParserException, HGSEvalException {
assertEquals("18", exec("<? f:=func(a){return a*a+2;}; print(f(4));?>").toString());
assertEquals("5", exec("<? f:=func(a,b){return a+2*b;}; print(f(1,2));?>").toString());