Projects
openEuler:24.03
javacc
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 6
View file
_service:tar_scm:javacc.spec
Changed
@@ -1,6 +1,6 @@ Name: javacc Version: 7.0.2 -Release: 7 +Release: 8 Epoch: 0 Summary: A parser/scanner generator for java License: BSD @@ -58,5 +58,8 @@ %doc README www/* examples %changelog +* Mon Nov 14 2022 xu_ping <xuping33@h-partners.com> - 0:7.0.2-8 +- change source + * Sat Mar 7 2020 zhangchunyu <zhangchunyu11@huawei.com> - 0:7.0.2-7 - Package init
View file
_service:tar_scm:release_7_0_2.tar.gz/examples/JJTreeExamples/cpp/EG4DumpVisitor.cc
Changed
@@ -32,7 +32,7 @@ // System.out.println(indentString() + node + // ": acceptor not unimplemented in subclass?"); ++indent; - node->childrenAccept(this, data); + node->jjtChildrenAccept(this, data); --indent; return data; } @@ -40,7 +40,7 @@ void* EG4DumpVisitor::visit(const ASTStart* node, void* data) { cout << indentString() + node->toString() << endl; ++indent; - node->childrenAccept(this, data); + node->jjtChildrenAccept(this, data); --indent; return data; } @@ -48,7 +48,7 @@ void* EG4DumpVisitor::visit(const ASTAdd* node, void* data) { cout << indentString() + node->toString() << endl; ++indent; - node->childrenAccept(this, data); + node->jjtChildrenAccept(this, data); --indent; return data; } @@ -56,7 +56,7 @@ void* EG4DumpVisitor::visit(const ASTMult* node, void* data) { cout << indentString() + node->toString() << endl; ++indent; - node->childrenAccept(this, data); + node->jjtChildrenAccept(this, data); --indent; return data; } @@ -64,7 +64,7 @@ void* EG4DumpVisitor::visit(const ASTMyID* node, void* data) { cout << indentString() + node->toString() << endl; ++indent; - node->childrenAccept(this, data); + node->jjtChildrenAccept(this, data); --indent; return data; } @@ -72,7 +72,7 @@ void* EG4DumpVisitor::visit(const ASTMyOtherID* node, void* data) { cout << indentString() + node->toString() << endl; ++indent; - node->childrenAccept(this, data); + node->jjtChildrenAccept(this, data); --indent; return data; } @@ -80,7 +80,7 @@ void* EG4DumpVisitor::visit(const ASTInteger* node, void* data) { cout << indentString() + node->toString() << endl; ++indent; - node->childrenAccept(this, data); + node->jjtChildrenAccept(this, data); --indent; return data; }
View file
_service:tar_scm:release_7_0_2.tar.gz/src/main/resources/templates/cpp/CharStream.cc.template
Changed
@@ -159,7 +159,7 @@ } } - int i = inputStream->read(buffer, maxNextCharInd, available - maxNextCharInd); + size_t i = inputStream->read(buffer, maxNextCharInd, available - maxNextCharInd); if (i > 0) { maxNextCharInd += i; } else {
View file
_service:tar_scm:release_7_0_2.tar.gz/src/main/resources/templates/cpp/SimpleNode.cc.template
Changed
@@ -34,7 +34,7 @@ void SimpleNode::jjtSetParent(Node *n) { parent = n; } -Node *SimpleNode::jjtGetParent() const { +Node* SimpleNode::jjtGetParent() const { return parent; } @@ -45,18 +45,19 @@ childreni = n; } -Node *SimpleNode::jjtGetChild(int i) const { +Node* SimpleNode::jjtGetChild(int i) const { return i < children.size() ? childreni : nullptr; } int SimpleNode::jjtGetNumChildren() const { return (int)children.size(); - } +} void SimpleNode::jjtSetValue(void * value) { this->value = value; - } -void * SimpleNode::jjtGetValue() const { +} + +void* SimpleNode::jjtGetValue() const { return value; } @@ -68,23 +69,26 @@ #fi #if VISITOR - /** Accept the visitor. **/ - ${VISITOR_RETURN_TYPE} SimpleNode::jjtAccept(${PARSER_NAME}Visitor *visitor, ${VISITOR_DATA_TYPE:-void *} data) const +${VISITOR_RETURN_TYPE} SimpleNode::jjtAccept(${PARSER_NAME}Visitor *visitor, ${VISITOR_DATA_TYPE:-void *} data) const { #if VISITOR_RETURN_TYPE_VOID visitor->visit(this, data); #else return visitor->visit(this, data); #fi - } +} - /** Accept the visitor. **/ -void SimpleNode::childrenAccept(${PARSER_NAME}Visitor *visitor, ${VISITOR_DATA_TYPE:-void *} data) const { +void SimpleNode::jjtChildrenAccept(${PARSER_NAME}Visitor *visitor, ${VISITOR_DATA_TYPE:-void *} data) const { for (size_t i = 0; i < children.size(); ++i) { childreni->jjtAccept(visitor, data); } } +void SimpleNode::jjtChildAccept(int childNo, ${PARSER_NAME}Visitor *visitor, ${VISITOR_DATA_TYPE:-void *} data) const { + if (0 <= childNo && childNo < children.size()) + childrenchildNo->jjtAccept(visitor, data); +} + #fi /* You can override these two methods in subclasses of SimpleNode to customize the way the node appears when the tree is dumped. If
View file
_service:tar_scm:release_7_0_2.tar.gz/src/main/resources/templates/cpp/SimpleNode.h.template
Changed
@@ -33,7 +33,7 @@ Token* lastToken = nullptr; #fi ${PARSER_NAME}* parser = nullptr; - int id; + int id = 0; public: SimpleNode(int id); @@ -63,11 +63,9 @@ #fi #if VISITOR - /** Accept the visitor. **/ virtual ${VISITOR_RETURN_TYPE:-void} jjtAccept(${PARSER_NAME}Visitor *visitor, ${VISITOR_DATA_TYPE:-void *} data) const; - - /** Accept the visitor. **/ - virtual void childrenAccept(${PARSER_NAME}Visitor *visitor, ${VISITOR_DATA_TYPE:-void *} data) const; + virtual void jjtChildrenAccept(${PARSER_NAME}Visitor *visitor, ${VISITOR_DATA_TYPE:-void *} data) const; + virtual void jjtChildAccept(int childNo, ${PARSER_NAME}Visitor *visitor, ${VISITOR_DATA_TYPE:-void *} data) const; #fi /* You can override these two methods in subclasses of SimpleNode to
View file
_service:tar_scm:release_7_0_2.tar.gz/src/main/resources/templates/cpp/SimpleNodeImpl.template
Deleted
@@ -1,140 +0,0 @@ - - SimpleNode::SimpleNode(int i) -#if NODE_EXTENDS - : ${NODE_EXTENDS}(), parent(nullptr), value(nullptr) -#fi -{ - id = i; - parser = nullptr; - value = nullptr; - } - - SimpleNode::SimpleNode(${PARSER_NAME} *p, int i) -#if NODE_EXTENDS - : ${NODE_EXTENDS}(), parent(nullptr), value(nullptr) -#fi -{ - id = i; - parser = p; - value = nullptr; - } - - void SimpleNode::jjtOpen() const { - } - - void SimpleNode::jjtClose() const { - } - - void SimpleNode::jjtSetParent(Node *n) { parent = n; } - Node *SimpleNode::jjtGetParent() const { return parent; } - - void SimpleNode::jjtAddChild(Node *n, int i) { - if (i >= children.size()) { - children.resize(i + 1, nullptr); - } - - childreni = n; - } - - Node *SimpleNode::jjtGetChild(int i) const { - return i < children.size() ? childreni : nullptr; - } - - int SimpleNode::jjtGetNumChildren() const { - return children.size(); - } - - void SimpleNode::jjtSetValue(void * value) { this->value = value; } - void * SimpleNode::jjtGetValue() const { return value; } - -#if TRACK_TOKENS - Token* SimpleNode::jjtGetFirstToken() const { return firstToken; } - void SimpleNode::jjtSetFirstToken(Token* token) { this->firstToken = token; } - Token* SimpleNode::jjtGetLastToken() const { return lastToken; } - void SimpleNode::jjtSetLastToken(Token* token) { this->lastToken = token; } - -#fi -#if VISITOR - /** Accept the visitor. **/ - ${VISITOR_RETURN_TYPE} SimpleNode::jjtAccept(${PARSER_NAME}Visitor *visitor, ${VISITOR_DATA_TYPE:-void *} data) const -{ -#if VISITOR_RETURN_TYPE_VOID - visitor->visit(this, data); -#else - return visitor->visit(this, data); -#fi - } - - /** Accept the visitor. **/ - void SimpleNode::childrenAccept(${PARSER_NAME}Visitor *visitor, ${VISITOR_DATA_TYPE:-void *} data) const { - for (int i = 0; i < children.size(); ++i) { - childreni->jjtAccept(visitor, data); - } - } - -#fi - /* You can override these two methods in subclasses of SimpleNode to - customize the way the node appears when the tree is dumped. If - your output uses more than one line you should override - toString(string), otherwise overriding toString() is probably all - you need to do. */ - - JJString SimpleNode::toString() const { return jjtNodeNameid; } - JJString SimpleNode::toString(const JJString& prefix) const { return prefix + toString(); } - - static JJChar space_char_arr_ = { ' ', '\0' }; - static JJChar newline_char_arr_ = { '\n', '\0' }; - static JJString space = space_char_arr_; - static JJString newline = newline_char_arr_; - - /* Override this method if you want to customize how the node dumps - out its children. */ - - void SimpleNode::dumpToBuffer(const JJString& prefix, const JJString& separator, JJString *buffer) const { - buffer->append(toString(prefix)); - buffer->append(separator); - for (int i = 0; i < children.size(); ++i) { - SimpleNode *n = (SimpleNode*)childreni; - if (n != nullptr) { - n->dumpToBuffer(prefix + space, separator, buffer); - } - } - } - - void SimpleNode::dump(const JJString& prefix) const { - JJString *buffer = new JJString(); - dumpToBuffer(prefix, newline, buffer); - for (int i = 0; i < buffer->size(); i++) { - printf("%c", (*buffer)i); - } - delete buffer; - } - - // Clear list of children, and return children that we have before. - // Used in destructor to do linear destruction of tree. - std::vector<Node *> SimpleNode::jjtExtractChildrenForDestruction() { - std::vector<Node*> ret; - ret.swap(children); - return ret; - } - - // When tree generated, it deepness can be high, so trying to destruct it - // with simple recursive destruction can cause stack overflow. Thus we get - // each node's children, put them into destruction queue and destruct node. - // That is linear, non-recursive process, unsing memory instead of stack. - SimpleNode::~SimpleNode() { - std::vector<Node*> tree = children; - std::vector<Node*> nodes; - for (int i = 0; i < tree.size(); ++i) { - if (treei) { - nodes = treei->jjtExtractChildrenForDestruction(); - for (Node* child : nodes) { - tree.push_back(child); - } - } - } - - for (Node* node : tree) { - delete node; - } - }
View file
_service:tar_scm:release_7_0_2.tar.gz/src/main/resources/templates/cpp/SimpleNodeInterface.template
Deleted
@@ -1,69 +0,0 @@ -#if NODE_EXTENDS -class SimpleNode : public ${NODE_EXTENDS}, public Node { -#else -class SimpleNode : public Node { -#fi -protected: - Node* parent; - std::vector<Node*> children; - int id; - void* value; - ${PARSER_NAME}* parser; -// int numChildren; -#if TRACK_TOKENS - Token* firstToken; - Token* lastToken; -#fi - - public: SimpleNode(int i); - public: SimpleNode(${PARSER_NAME} *p, int i); - -//#if !NODE_FACTORY -//\#define jjtCreate(id) new SimpleNode(id) -//\#define jjtCreate(p, id) new SimpleNode(p, id) -//#fi - - public: virtual void jjtOpen() const; - public: virtual void jjtClose() const; - public: virtual void jjtSetParent(Node *n); - public: virtual Node *jjtGetParent() const; - public: virtual void jjtAddChild(Node *n, int i); - public: virtual Node *jjtGetChild(int i) const; - public: virtual int jjtGetNumChildren() const; - public: virtual void jjtSetValue(void * value); - public: virtual void * jjtGetValue() const; - -#if TRACK_TOKENS - public: virtual Token *jjtGetFirstToken() const; - public: virtual void jjtSetFirstToken(Token* token); - public: virtual Token *jjtGetLastToken() const; - public: virtual void jjtSetLastToken(Token* token); - -#fi -#if VISITOR - /** Accept the visitor. **/ - public: virtual ${VISITOR_RETURN_TYPE:-void} jjtAccept(${PARSER_NAME}Visitor *visitor, ${VISITOR_DATA_TYPE:-void *} data) const; - - /** Accept the visitor. **/ - public: virtual void childrenAccept(${PARSER_NAME}Visitor *visitor, ${VISITOR_DATA_TYPE:-void *} data) const; -#fi - /* You can override these two methods in subclasses of SimpleNode to - customize the way the node appears when the tree is dumped. If - your output uses more than one line you should override - toString(string), otherwise overriding toString() is probably all - you need to do. */ - - public: virtual JJString toString() const; - public: virtual JJString toString(const JJString& prefix) const; - - /* Override this method if you want to customize how the node dumps - out its children. */ - - public: virtual void dump(JJString prefix) const; - public: virtual void dumpToBuffer(const JJString& prefix, const JJString& separator, JJString *sb) const; - private: virtual std::vector<Node *> jjtExtractChildrenForDestruction() override; - public: virtual ~SimpleNode(); - public: virtual int getId() const { - return id; - } -};
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2