use of org.develnext.jphp.core.tokenizer.token.Token in project jphp by jphp-compiler.
the class IfSyntaxTest method testSimple.
@Test
public void testSimple() {
List<Token> tree = getSyntaxTree("if (true) { } ");
Assert.assertTrue(tree.size() == 1);
Assert.assertTrue(tree.get(0) instanceof ExprStmtToken);
Assert.assertTrue(((ExprStmtToken) tree.get(0)).getTokens().size() == 1);
Assert.assertTrue(((ExprStmtToken) tree.get(0)).getTokens().get(0) instanceof IfStmtToken);
IfStmtToken token = (IfStmtToken) ((ExprStmtToken) tree.get(0)).getTokens().get(0);
Assert.assertNotNull(token.getBody());
Assert.assertNotNull(token.getCondition());
}
use of org.develnext.jphp.core.tokenizer.token.Token in project jphp by jphp-compiler.
the class NamespaceSyntaxTest method testMultiple.
@Test
public void testMultiple() {
List<Token> tree = getSyntaxTree("namespace A { 123; } namespace B { 321; }");
Assert.assertTrue(tree.size() == 4);
NamespaceStmtToken token = (NamespaceStmtToken) tree.get(0);
Assert.assertNotNull(token.getName());
Assert.assertEquals("A", token.getName().toName());
Assert.assertNull(token.getTree());
token = (NamespaceStmtToken) tree.get(2);
Assert.assertNotNull(token.getName());
Assert.assertEquals("B", token.getName().toName());
Assert.assertNull(token.getTree());
}
use of org.develnext.jphp.core.tokenizer.token.Token in project jphp by jphp-compiler.
the class SimpleExprTest method testVarVar.
@Test
public void testVarVar() {
List<Token> tokens = getSyntaxTree("$$foobar;");
Assert.assertTrue(tokens.size() == 1);
Assert.assertTrue(tokens.get(0) instanceof ExprStmtToken);
ExprStmtToken expr = (ExprStmtToken) tokens.get(0);
tokens = expr.getTokens();
Assert.assertTrue(tokens.size() == 1);
Assert.assertTrue(tokens.get(0) instanceof GetVarExprToken);
ExprStmtToken name = ((GetVarExprToken) tokens.get(0)).getName();
Assert.assertTrue(name.getTokens().size() == 1);
Assert.assertTrue(name.getTokens().get(0) instanceof VariableExprToken);
tokens = getSyntaxTree("$$$foobar;");
Assert.assertTrue(tokens.size() == 1);
Assert.assertTrue(tokens.get(0) instanceof ExprStmtToken);
expr = (ExprStmtToken) tokens.get(0);
tokens = expr.getTokens();
Assert.assertTrue(tokens.size() == 1);
Assert.assertTrue(tokens.get(0) instanceof GetVarExprToken);
name = ((GetVarExprToken) tokens.get(0)).getName();
Assert.assertTrue(name.getTokens().size() == 1);
Assert.assertTrue(name.getTokens().get(0) instanceof GetVarExprToken);
tokens = getSyntaxTree("${'foobar' . 'x'};");
Assert.assertTrue(tokens.size() == 1);
Assert.assertTrue(tokens.get(0) instanceof ExprStmtToken);
expr = (ExprStmtToken) tokens.get(0);
tokens = expr.getTokens();
Assert.assertTrue(tokens.size() == 1);
Assert.assertTrue(tokens.get(0) instanceof GetVarExprToken);
name = ((GetVarExprToken) tokens.get(0)).getName();
Assert.assertTrue(name.getTokens().size() == 3);
Assert.assertTrue(name.getTokens().get(0) instanceof StringExprToken);
}
use of org.develnext.jphp.core.tokenizer.token.Token in project jphp by jphp-compiler.
the class SimpleExprTest method testVarCall.
@Test
public void testVarCall() {
List<Token> tokens = getSyntaxTree("$x - $func(1, 3, 4);");
Assert.assertEquals(1, tokens.size());
Assert.assertTrue(tokens.get(0) instanceof ExprStmtToken);
ExprStmtToken expr = (ExprStmtToken) tokens.get(0);
tokens = expr.getTokens();
Assert.assertTrue(tokens.size() == 3);
Assert.assertTrue(tokens.get(0) instanceof VariableExprToken);
Assert.assertTrue(tokens.get(1) instanceof MinusExprToken);
Assert.assertTrue(tokens.get(2) instanceof CallExprToken);
}
use of org.develnext.jphp.core.tokenizer.token.Token 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