List of usage examples for jdk.nashorn.internal.ir IdentNode getMostOptimisticType
@Override
public Type getMostOptimisticType()
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);/* www . j a va 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(); }