Example usage for jdk.nashorn.internal.codegen.types Type toString

List of usage examples for jdk.nashorn.internal.codegen.types Type toString

Introduction

In this page you can find the example usage for jdk.nashorn.internal.codegen.types Type toString.

Prototype

@Override
    public String toString() 

Source Link

Usage

From source file:IDE.SyntaxTree.JWebParser.java

public DefaultMutableTreeNode getTreeNode(DefaultMutableTreeNode rootNode) {

    Stack<DefaultMutableTreeNode> i = new Stack<>();
    //  DefaultMutableTreeNode subroot = new DefaultMutableTreeNode("subroot");
    //  rootNode.add(subroot);
    i.push(rootNode);/*from  ww  w .jav a  2  s . c o m*/

    FunctionNode root = parse();
    LexicalContext lc = new LexicalContext();
    root.accept(new NodeVisitor(lc) {

        @Override
        public boolean enterFunctionNode(FunctionNode functionNode) {

            if (!functionNode.isProgram()) {
                DefaultMutableTreeNode outlineItem;
                List<IdentNode> parameters = functionNode.visitParameters(this);
                if (functionNode.isAnonymous()) {
                    String name = ((IdentNode) functionNode.getIdent().accept(this)).getName();
                    if (name.contains(":")) {
                        outlineItem = new DefaultMutableTreeNode("<anonymous>");
                        outlineItem = new DefaultMutableTreeNode(name);
                        String uobj = outlineItem.getUserObject() + "(";
                        for (IdentNode param : parameters) {
                            Type t = param.getMostOptimisticType();
                            uobj += t.toString() + " " + param.getName();
                        }
                        outlineItem.setUserObject(uobj + ")");
                    } else {
                        outlineItem = new DefaultMutableTreeNode(name);
                        String uobj = outlineItem.getUserObject() + "(";
                        for (IdentNode param : parameters) {
                            Type t = param.getMostOptimisticType();
                            uobj += t.toString() + " " + param.getName();
                        }
                        outlineItem.setUserObject(uobj + ")");
                    }
                } else {
                    outlineItem = new DefaultMutableTreeNode(
                            ((IdentNode) functionNode.getIdent().accept(this)).getName());
                    String uobj = outlineItem.getUserObject() + "(";
                    for (IdentNode param : parameters) {
                        Type t = param.getMostOptimisticType();
                        uobj += t.toString() + " " + param.getName() + " ";
                    }
                    outlineItem.setUserObject(uobj + ")");
                }

                i.peek().add(outlineItem);
                i.push(outlineItem);
            }

            return super.enterFunctionNode(functionNode); //To change body of generated methods, choose Tools | Templates.
        }

        @Override
        public Node leaveFunctionNode(FunctionNode functionNode) {
            if (!functionNode.isProgram()) {
                i.pop();
            }
            return super.leaveFunctionNode(functionNode); //To change body of generated methods, choose Tools | Templates.
        }

        @Override
        public Node leaveObjectNode(ObjectNode objectNode) {
            DefaultMutableTreeNode outlineItem = new DefaultMutableTreeNode("ttt");
            i.peek().add(outlineItem);
            i.push(outlineItem);
            return super.leaveObjectNode(objectNode); //To change body of generated methods, choose Tools | Templates.
        }

        @Override
        public boolean enterObjectNode(ObjectNode objectNode) {
            i.pop();

            return super.enterObjectNode(objectNode); //To change body of generated methods, choose Tools | Templates.
        }

    });
    // i.pop();
    return i.peek();

}