Search in sources :

Example 86 with Token

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());
}
Also used : ExprStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.ExprStmtToken) ExprStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.ExprStmtToken) Token(org.develnext.jphp.core.tokenizer.token.Token) IfStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.IfStmtToken) IfStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.IfStmtToken) Test(org.junit.Test)

Example 87 with Token

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());
}
Also used : NamespaceStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.NamespaceStmtToken) ExprStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.ExprStmtToken) Token(org.develnext.jphp.core.tokenizer.token.Token) NamespaceStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.NamespaceStmtToken) Test(org.junit.Test)

Example 88 with Token

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);
}
Also used : ExprStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.ExprStmtToken) Token(org.develnext.jphp.core.tokenizer.token.Token) ValueIfElseToken(org.develnext.jphp.core.tokenizer.token.expr.operator.ValueIfElseToken) ExprStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.ExprStmtToken) MinusExprToken(org.develnext.jphp.core.tokenizer.token.expr.operator.MinusExprToken) Test(org.junit.Test)

Example 89 with Token

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);
}
Also used : ExprStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.ExprStmtToken) MinusExprToken(org.develnext.jphp.core.tokenizer.token.expr.operator.MinusExprToken) Token(org.develnext.jphp.core.tokenizer.token.Token) ValueIfElseToken(org.develnext.jphp.core.tokenizer.token.expr.operator.ValueIfElseToken) ExprStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.ExprStmtToken) MinusExprToken(org.develnext.jphp.core.tokenizer.token.expr.operator.MinusExprToken) Test(org.junit.Test)

Example 90 with Token

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());
}
Also used : Context(php.runtime.env.Context) ExprStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.ExprStmtToken) ArgumentStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.ArgumentStmtToken) Token(org.develnext.jphp.core.tokenizer.token.Token) FunctionStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.FunctionStmtToken) ArgumentStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.ArgumentStmtToken) ExprStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.ExprStmtToken) FunctionStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.FunctionStmtToken) Tokenizer(org.develnext.jphp.core.tokenizer.Tokenizer) Test(org.junit.Test)

Aggregations

Token (org.develnext.jphp.core.tokenizer.token.Token)93 SemicolonToken (org.develnext.jphp.core.tokenizer.token.SemicolonToken)47 BraceExprToken (org.develnext.jphp.core.tokenizer.token.expr.BraceExprToken)39 CommentToken (org.develnext.jphp.core.tokenizer.token.CommentToken)37 ValueExprToken (org.develnext.jphp.core.tokenizer.token.expr.ValueExprToken)27 CommaToken (org.develnext.jphp.core.tokenizer.token.expr.CommaToken)26 BreakToken (org.develnext.jphp.core.tokenizer.token.BreakToken)25 AssignExprToken (org.develnext.jphp.core.tokenizer.token.expr.operator.AssignExprToken)25 Test (org.junit.Test)24 ColonToken (org.develnext.jphp.core.tokenizer.token.ColonToken)22 NameToken (org.develnext.jphp.core.tokenizer.token.expr.value.NameToken)21 ValueIfElseToken (org.develnext.jphp.core.tokenizer.token.expr.operator.ValueIfElseToken)19 CastExprToken (org.develnext.jphp.core.tokenizer.token.expr.operator.cast.CastExprToken)16 UnsetCastExprToken (org.develnext.jphp.core.tokenizer.token.expr.operator.cast.UnsetCastExprToken)16 MacroToken (org.develnext.jphp.core.tokenizer.token.expr.value.macro.MacroToken)16 StringExprToken (org.develnext.jphp.core.tokenizer.token.expr.value.StringExprToken)14 VariableExprToken (org.develnext.jphp.core.tokenizer.token.expr.value.VariableExprToken)14 Tokenizer (org.develnext.jphp.core.tokenizer.Tokenizer)13 MinusExprToken (org.develnext.jphp.core.tokenizer.token.expr.operator.MinusExprToken)12 ExprStmtToken (org.develnext.jphp.core.tokenizer.token.stmt.ExprStmtToken)12