use of php.runtime.env.Context 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 php.runtime.env.Context 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 php.runtime.env.Context 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());
}
use of php.runtime.env.Context in project jphp by jphp-compiler.
the class JPHPScriptEngine method compile.
@Override
public CompiledScript compile(Reader reader) throws ScriptException {
try {
InputStream is = new ReaderInputStream(reader);
Context context = new Context(is);
ModuleEntity module = environment.importModule(context);
return new JPHPCompiledScript(module, environment);
} catch (IOException e) {
throw new ScriptException(e);
} catch (Throwable e) {
throw new ScriptException(new Exception(e));
}
}
use of php.runtime.env.Context in project jphp by jphp-compiler.
the class StandaloneLoader method _fetch.
protected ModuleEntity _fetch(String name, Map<String, Module> source) {
Module module = source.get(name);
if (module == null) {
return null;
}
InputStream input = classLoader.getResourceAsStream(module.internalName + ".dump");
if (input == null) {
return null;
}
ModuleDumper moduleDumper = new ModuleDumper(new Context(new File(module.name)), env, true);
try {
return moduleDumper.load(input);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
Aggregations