Search in sources :

Example 1 with FunctionStmtToken

use of org.develnext.jphp.core.tokenizer.token.stmt.FunctionStmtToken in project jphp by jphp-compiler.

the class TokenizerTest method testStmt.

@Test
public void testStmt() throws IOException {
    Tokenizer tokenizer = new Tokenizer(new Context("class function private public protected static final try catch for if foreach switch while " + "default return declare case do else elseif endif endfor endforeach endwhile endswitch " + "abstract use namespace finally extends implements global"));
    assertTrue(tokenizer.nextToken() instanceof ClassStmtToken);
    assertTrue(tokenizer.nextToken() instanceof FunctionStmtToken);
    assertTrue(tokenizer.nextToken() instanceof PrivateStmtToken);
    assertTrue(tokenizer.nextToken() instanceof PublicStmtToken);
    assertTrue(tokenizer.nextToken() instanceof ProtectedStmtToken);
    assertTrue(tokenizer.nextToken() instanceof StaticExprToken);
    assertTrue(tokenizer.nextToken() instanceof FinalStmtToken);
    assertTrue(tokenizer.nextToken() instanceof TryStmtToken);
    assertTrue(tokenizer.nextToken() instanceof CatchStmtToken);
    assertTrue(tokenizer.nextToken() instanceof ForStmtToken);
    assertTrue(tokenizer.nextToken() instanceof IfStmtToken);
    assertTrue(tokenizer.nextToken() instanceof ForeachStmtToken);
    assertTrue(tokenizer.nextToken() instanceof SwitchStmtToken);
    assertTrue(tokenizer.nextToken() instanceof WhileStmtToken);
    assertTrue(tokenizer.nextToken() instanceof DefaultStmtToken);
    assertTrue(tokenizer.nextToken() instanceof ReturnStmtToken);
    assertTrue(tokenizer.nextToken() instanceof DeclareStmtToken);
    assertTrue(tokenizer.nextToken() instanceof CaseStmtToken);
    assertTrue(tokenizer.nextToken() instanceof DoStmtToken);
    assertTrue(tokenizer.nextToken() instanceof ElseStmtToken);
    assertTrue(tokenizer.nextToken() instanceof ElseIfStmtToken);
    assertTrue(tokenizer.nextToken() instanceof EndifStmtToken);
    assertTrue(tokenizer.nextToken() instanceof EndforStmtToken);
    assertTrue(tokenizer.nextToken() instanceof EndforeachStmtToken);
    assertTrue(tokenizer.nextToken() instanceof EndwhileStmtToken);
    assertTrue(tokenizer.nextToken() instanceof EndswitchStmtToken);
    assertTrue(tokenizer.nextToken() instanceof AbstractStmtToken);
    assertTrue(tokenizer.nextToken() instanceof NamespaceUseStmtToken);
    assertTrue(tokenizer.nextToken() instanceof NamespaceStmtToken);
    assertTrue(tokenizer.nextToken() instanceof FinallyStmtToken);
    assertTrue(tokenizer.nextToken() instanceof ExtendsStmtToken);
    assertTrue(tokenizer.nextToken() instanceof ImplementsStmtToken);
    assertTrue(tokenizer.nextToken() instanceof GlobalStmtToken);
}
Also used : AbstractStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.AbstractStmtToken) ElseStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.ElseStmtToken) StaticExprToken(org.develnext.jphp.core.tokenizer.token.expr.value.StaticExprToken) EndforStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.EndforStmtToken) PublicStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.PublicStmtToken) CatchStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.CatchStmtToken) EndwhileStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.EndwhileStmtToken) ForeachStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.ForeachStmtToken) ExtendsStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.ExtendsStmtToken) NamespaceUseStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.NamespaceUseStmtToken) FinallyStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.FinallyStmtToken) EndifStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.EndifStmtToken) SwitchStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.SwitchStmtToken) ImplementsStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.ImplementsStmtToken) FunctionStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.FunctionStmtToken) Tokenizer(org.develnext.jphp.core.tokenizer.Tokenizer) ForStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.ForStmtToken) EndswitchStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.EndswitchStmtToken) Context(php.runtime.env.Context) ProtectedStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.ProtectedStmtToken) ReturnStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.ReturnStmtToken) DeclareStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.DeclareStmtToken) NamespaceStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.NamespaceStmtToken) TryStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.TryStmtToken) ElseIfStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.ElseIfStmtToken) IfStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.IfStmtToken) EndforeachStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.EndforeachStmtToken) GlobalStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.GlobalStmtToken) WhileStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.WhileStmtToken) CaseStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.CaseStmtToken) ClassStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.ClassStmtToken) PrivateStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.PrivateStmtToken) FinalStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.FinalStmtToken) DoStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.DoStmtToken) DefaultStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.DefaultStmtToken) ElseIfStmtToken(org.develnext.jphp.core.tokenizer.token.stmt.ElseIfStmtToken) Test(org.junit.Test)

Example 2 with FunctionStmtToken

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

Example 3 with FunctionStmtToken

use of org.develnext.jphp.core.tokenizer.token.stmt.FunctionStmtToken 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)

Example 4 with FunctionStmtToken

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

Aggregations

Tokenizer (org.develnext.jphp.core.tokenizer.Tokenizer)4 FunctionStmtToken (org.develnext.jphp.core.tokenizer.token.stmt.FunctionStmtToken)4 Test (org.junit.Test)4 Context (php.runtime.env.Context)4 Token (org.develnext.jphp.core.tokenizer.token.Token)1 StaticExprToken (org.develnext.jphp.core.tokenizer.token.expr.value.StaticExprToken)1 AbstractStmtToken (org.develnext.jphp.core.tokenizer.token.stmt.AbstractStmtToken)1 ArgumentStmtToken (org.develnext.jphp.core.tokenizer.token.stmt.ArgumentStmtToken)1 CaseStmtToken (org.develnext.jphp.core.tokenizer.token.stmt.CaseStmtToken)1 CatchStmtToken (org.develnext.jphp.core.tokenizer.token.stmt.CatchStmtToken)1 ClassStmtToken (org.develnext.jphp.core.tokenizer.token.stmt.ClassStmtToken)1 DeclareStmtToken (org.develnext.jphp.core.tokenizer.token.stmt.DeclareStmtToken)1 DefaultStmtToken (org.develnext.jphp.core.tokenizer.token.stmt.DefaultStmtToken)1 DoStmtToken (org.develnext.jphp.core.tokenizer.token.stmt.DoStmtToken)1 ElseIfStmtToken (org.develnext.jphp.core.tokenizer.token.stmt.ElseIfStmtToken)1 ElseStmtToken (org.develnext.jphp.core.tokenizer.token.stmt.ElseStmtToken)1 EndforStmtToken (org.develnext.jphp.core.tokenizer.token.stmt.EndforStmtToken)1 EndforeachStmtToken (org.develnext.jphp.core.tokenizer.token.stmt.EndforeachStmtToken)1 EndifStmtToken (org.develnext.jphp.core.tokenizer.token.stmt.EndifStmtToken)1 EndswitchStmtToken (org.develnext.jphp.core.tokenizer.token.stmt.EndswitchStmtToken)1