first commit

This commit is contained in:
2025-07-28 13:56:49 +05:30
commit e9eb805edb
3438 changed files with 520990 additions and 0 deletions

View File

@@ -0,0 +1,91 @@
package org.nfunk.jep;
import java.util.Stack;
class JJTParserState {
private Stack nodes = new Stack();
private Stack marks = new Stack();
private int sp = 0;
private int mk = 0;
private boolean node_created;
boolean nodeCreated() {
return this.node_created;
}
void reset() {
this.nodes.removeAllElements();
this.marks.removeAllElements();
this.sp = 0;
this.mk = 0;
}
Node rootNode() {
return this.nodes.elementAt(0);
}
void pushNode(Node paramNode) {
this.nodes.push(paramNode);
this.sp++;
}
Node popNode() {
if (--this.sp < this.mk)
this.mk = ((Integer)this.marks.pop()).intValue();
return this.nodes.pop();
}
Node peekNode() {
return this.nodes.peek();
}
int nodeArity() {
return this.sp - this.mk;
}
void clearNodeScope(Node paramNode) {
while (this.sp > this.mk)
popNode();
this.mk = ((Integer)this.marks.pop()).intValue();
}
void openNodeScope(Node paramNode) {
this.marks.push(new Integer(this.mk));
this.mk = this.sp;
paramNode.jjtOpen();
}
void closeNodeScope(Node paramNode, int paramInt) {
this.mk = ((Integer)this.marks.pop()).intValue();
while (paramInt-- > 0) {
Node node = popNode();
node.jjtSetParent(paramNode);
paramNode.jjtAddChild(node, paramInt);
}
paramNode.jjtClose();
pushNode(paramNode);
this.node_created = true;
}
void closeNodeScope(Node paramNode, boolean paramBoolean) {
if (paramBoolean) {
int i = nodeArity();
this.mk = ((Integer)this.marks.pop()).intValue();
while (i-- > 0) {
Node node = popNode();
node.jjtSetParent(paramNode);
paramNode.jjtAddChild(node, i);
}
paramNode.jjtClose();
pushNode(paramNode);
this.node_created = true;
} else {
this.mk = ((Integer)this.marks.pop()).intValue();
this.node_created = false;
}
}
}