List of usage examples for jdk.nashorn.internal.ir FunctionNode getBody
public Block getBody()
From source file:com.bearsoft.org.netbeans.modules.form.JsCodeGenerator.java
private boolean isFormObjectExistsInJs(FunctionNode constructor) { if (constructor != null && constructor.getBody() != null) { for (Statement st : constructor.getBody().getStatements()) { if (st instanceof VarNode) { VarNode vn = (VarNode) st; if (FORM_OBJECT_NAME.equals(vn.getName().getName())) { if (vn.getInit() instanceof CallNode) { CallNode cn = (CallNode) vn.getInit(); return FormModuleCompletionContext.isSystemObjectMethod(cn, FormModuleCompletionContext.LOAD_FORM_METHOD_NAME); }// w w w .j av a 2s . co m } } } } return false; }
From source file:com.bearsoft.org.netbeans.modules.form.JsCodeGenerator.java
private int findHandlerPosition(String componentName, String handlerName, PlatypusFormDataObject dataObject) { FunctionNode constructor = dataObject.getConstructor(); if (constructor != null && constructor.getBody() != null) { for (Statement st : constructor.getBody().getStatements()) { if (st instanceof ExpressionStatement && ((ExpressionStatement) st).getExpression() instanceof BinaryNode) { BinaryNode a = (BinaryNode) ((ExpressionStatement) st).getExpression(); if (a.isAssignment() && a.getAssignmentDest() instanceof AccessNode) { AccessNode pg = (AccessNode) a.getAssignmentDest(); if (handlerName.equals(pg.getProperty())) { if (pg.getBase() instanceof AccessNode) { AccessNode componentPg = (AccessNode) pg.getBase(); if (componentName.equals(componentPg.getProperty()) && componentPg.getBase() instanceof IdentNode && FORM_OBJECT_NAME.equals(((IdentNode) componentPg.getBase()).getName())) { if (a.getAssignmentSource() instanceof FunctionNode) { FunctionNode handlerFn = (FunctionNode) a.getAssignmentSource(); return handlerFn.getStart(); }/* w ww . java 2 s .co m*/ } } } } } } } return NOT_FOUND; }
From source file:edu.brown.cs.bubbles.nobase.NobaseNashorn.java
License:Open Source License
/********************************************************************************/ @Override/*from ww w . ja va2 s. c o m*/ public ISemanticData parse(NobaseProject proj, NobaseFile fd, boolean lib) { Source src = new Source(fd.getFileName(), fd.getContents()); Options opts = new Options("nashorn"); PrintWriter pw = new PrintWriter(new StringWriter()); ScriptEnvironment env = new ScriptEnvironment(opts, pw, pw); DeferredErrorManager em = new DeferredErrorManager(fd); if (fd.getFileName().endsWith(".json")) { JSONParser jsonparse = new JSONParser(src, em); Node nd = jsonparse.parse(); if (do_debug) { System.err.println("WORKING ON " + fd.getFileName()); try { ASTWriter pv = new ASTWriter(nd); System.err.println("PARSE: " + pv.toString()); } catch (Throwable t) { } } return null; } Parser parser = new Parser(env, src, em); FunctionNode fn = parser.parse(); if (fn == null) { NobaseMain.logE("Problem parsing " + fd.getFileName()); return null; } if (do_debug) { System.err.println("WORKING ON " + fd.getFileName()); try { ASTWriter pv = new ASTWriter(fn); System.err.println("PARSE: " + pv.toString()); } catch (Throwable t) { } } ParseData rslt = new ParseData(proj, fd, em, fn.getBody(), lib); if (do_debug) { System.err.println("RESULT: " + rslt.getRootNode().dumpTree(fd)); } return rslt; }