ttomcat-1778514358873.zip-extract/apache-tomcat-11.0.18-src/java/org/apache/el/parser/JJTELParserState.java

Path
ttomcat-1778514358873.zip-extract/apache-tomcat-11.0.18-src/java/org/apache/el/parser/JJTELParserState.java
Status
scanned
Type
file
Name
JJTELParserState.java
Extension
.java
Programming language
Java
Mime type
text/plain
File type
ASCII text, with CRLF line terminators
Tag

      
    
Rootfs path

      
    
Size
3789 (3.7 KB)
MD5
da0b9a553ee4d5041eac00349092d8da
SHA1
e6504705a3a38626c6448b13b69fc8ffd08cc1e4
SHA256
e97e457d4215be0bfb3f97db5a28b162540c040d9f976a9ea3a13009f3cf3a21
SHA512

      
    
SHA1_git
857b138509978366ee5de89acf430fa43751cbc6
Is binary

      
    
Is text
True
Is archive

      
    
Is media

      
    
Is legal

      
    
Is manifest

      
    
Is readme

      
    
Is top level

      
    
Is key file

      
    
JJTELParserState.java | 3.7 KB |

/* Generated By:JavaCC: Do not edit this line. JJTELParserState.java Version 7.0.13 */ package org.apache.el.parser; @SuppressWarnings("all") // Ignore warnings in generated code public class JJTELParserState { private java.util.List<Node> nodes; private java.util.List<Integer> marks; private int sp; // number of nodes on stack private int mk; // current mark private boolean node_created; public JJTELParserState() { nodes = new java.util.ArrayList<Node>(); marks = new java.util.ArrayList<Integer>(); sp = 0; mk = 0; } /* * Determines whether the current node was actually closed and pushed. This should only be called in the final user * action of a node scope. */ public boolean nodeCreated() { return node_created; } /* * Call this to reinitialize the node stack. It is called automatically by the parser's ReInit() method. */ public void reset() { nodes.clear(); marks.clear(); sp = 0; mk = 0; } /* * Returns the root node of the AST. It only makes sense to call this after a successful parse. */ public Node rootNode() { return nodes.get(0); } /* Pushes a node on to the stack. */ public void pushNode(Node n) { nodes.add(n); ++sp; } /* * Returns the node on the top of the stack, and remove it from the stack. */ public Node popNode() { if (--sp < mk) { mk = marks.remove(marks.size() - 1); } return nodes.remove(nodes.size() - 1); } /* Returns the node currently on the top of the stack. */ public Node peekNode() { return nodes.get(nodes.size() - 1); } /* * Returns the number of children on the stack in the current node scope. */ public int nodeArity() { return sp - mk; } public void clearNodeScope(Node n) { while (sp > mk) { popNode(); } mk = marks.remove(marks.size() - 1); } public void openNodeScope(Node n) { marks.add(mk); mk = sp; n.jjtOpen(); } /* * A definite node is constructed from a specified number of children. That number of nodes are popped from the * stack and made the children of the definite node. Then the definite node is pushed on to the stack. */ public void closeNodeScope(Node n, int num) { mk = marks.remove(marks.size() - 1); while (num-- > 0) { Node c = popNode(); c.jjtSetParent(n); n.jjtAddChild(c, num); } n.jjtClose(); pushNode(n); node_created = true; } /* * A conditional node is constructed if its condition is true. All the nodes that have been pushed since the node * was opened are made children of the conditional node, which is then pushed on to the stack. If the condition is * false the node is not constructed and they are left on the stack. */ public void closeNodeScope(Node n, boolean condition) { if (condition) { int a = nodeArity(); mk = marks.remove(marks.size() - 1); while (a-- > 0) { Node c = popNode(); c.jjtSetParent(n); n.jjtAddChild(c, a); } n.jjtClose(); pushNode(n); node_created = true; } else { mk = marks.remove(marks.size() - 1); node_created = false; } } } /* JavaCC - OriginalChecksum=61260c571cf3016ef9e7eba56bd3802a (do not edit this line) */