Example usage for jdk.nashorn.internal.ir FunctionNode getBody

List of usage examples for jdk.nashorn.internal.ir FunctionNode getBody

Introduction

In this page you can find the example usage for jdk.nashorn.internal.ir FunctionNode getBody.

Prototype

public Block getBody() 

Source Link

Document

Get the function body

Usage

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;
}