use of org.develnext.jphp.core.tokenizer.Tokenizer in project jphp by jphp-compiler.
the class SyntaxAnalyzerTest method testUnexpectedEnd.
@Test(expected = ErrorException.class)
public void testUnexpectedEnd() throws IOException {
Tokenizer tokenizer = new Tokenizer(new Context("foobar"));
environment.scope.setLangMode(LangMode.DEFAULT);
new SyntaxAnalyzer(environment, tokenizer);
}
use of org.develnext.jphp.core.tokenizer.Tokenizer in project jphp by jphp-compiler.
the class AbstractSyntaxTestCase method getSyntaxTree.
protected List<Token> getSyntaxTree(String code) {
Tokenizer tokenizer = null;
try {
tokenizer = new Tokenizer(new Context(code));
environment.scope.setLangMode(LangMode.DEFAULT);
SyntaxAnalyzer analyzer = new SyntaxAnalyzer(environment, tokenizer);
return analyzer.getTree();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
use of org.develnext.jphp.core.tokenizer.Tokenizer in project jphp by jphp-compiler.
the class NamedFunctionTest method testNoArguments.
@Test
public void testNoArguments() throws IOException {
Tokenizer tokenizer = new Tokenizer(new Context("function myFunc(){}"));
SyntaxAnalyzer analyzer = new SyntaxAnalyzer(environment, tokenizer);
Assert.assertTrue(analyzer.getTree().size() == 1);
Assert.assertTrue(analyzer.getTree().get(0) instanceof FunctionStmtToken);
FunctionStmtToken func = (FunctionStmtToken) analyzer.getTree().listIterator().next();
Assert.assertTrue(func.getArguments().size() == 0);
}
use of org.develnext.jphp.core.tokenizer.Tokenizer in project jphp by jphp-compiler.
the class NamedFunctionTest method testInterfacable.
@Test
public void testInterfacable() throws IOException {
Tokenizer tokenizer = new Tokenizer(new Context("function myFunc();"));
SyntaxAnalyzer analyzer = new SyntaxAnalyzer(environment, tokenizer);
Assert.assertTrue(analyzer.getTree().size() == 1);
Assert.assertTrue(analyzer.getTree().get(0) instanceof FunctionStmtToken);
FunctionStmtToken func = (FunctionStmtToken) analyzer.getTree().listIterator().next();
Assert.assertTrue(func.isInterfacable());
}
use of org.develnext.jphp.core.tokenizer.Tokenizer in project jphp by jphp-compiler.
the class NamedFunctionTest method testSimple.
@Test
public void testSimple() throws IOException {
Tokenizer tokenizer = new Tokenizer(new Context("function myFunc($x, &$y, $z = 33){ } $x = 10;"));
SyntaxAnalyzer analyzer = new SyntaxAnalyzer(environment, tokenizer);
ListIterator<Token> iterator = analyzer.getTree().listIterator();
Token token;
Assert.assertTrue(iterator.hasNext());
Assert.assertTrue((token = iterator.next()) instanceof FunctionStmtToken);
FunctionStmtToken func = (FunctionStmtToken) token;
Assert.assertFalse(func.isReturnReference());
List<ArgumentStmtToken> arguments = func.getArguments();
Assert.assertTrue(arguments != null && arguments.size() == 3);
Assert.assertFalse(arguments.get(0).isReference());
Assert.assertTrue(arguments.get(1).isReference());
Assert.assertNotNull(arguments.get(2).getValue());
Assert.assertEquals("myFunc", func.getName().getName());
Assert.assertNotNull(func.getBody());
Assert.assertFalse(func.isInterfacable());
Assert.assertTrue(iterator.hasNext());
Assert.assertTrue(iterator.next() instanceof ExprStmtToken);
Assert.assertFalse(iterator.hasNext());
}
Aggregations