| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2005 Maksim Orlovich <maksim@kde.org> | 2 * Copyright 2005 Maksim Orlovich <maksim@kde.org> |
| 3 * Copyright (C) 2006 Apple Computer, Inc. | 3 * Copyright (C) 2006 Apple Computer, Inc. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * | 8 * |
| 9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 class Parser { | 60 class Parser { |
| 61 WTF_MAKE_NONCOPYABLE(Parser); | 61 WTF_MAKE_NONCOPYABLE(Parser); |
| 62 STACK_ALLOCATED(); | 62 STACK_ALLOCATED(); |
| 63 public: | 63 public: |
| 64 Parser(); | 64 Parser(); |
| 65 ~Parser(); | 65 ~Parser(); |
| 66 | 66 |
| 67 XPathNSResolver* resolver() const { return m_resolver.get(); } | 67 XPathNSResolver* resolver() const { return m_resolver.get(); } |
| 68 bool expandQName(const String& qName, AtomicString& localName, AtomicString&
namespaceURI); | 68 bool expandQName(const String& qName, AtomicString& localName, AtomicString&
namespaceURI); |
| 69 | 69 |
| 70 PassOwnPtrWillBeRawPtr<Expression> parseStatement(const String& statement, P
assRefPtrWillBeRawPtr<XPathNSResolver>, ExceptionState&); | 70 Expression* parseStatement(const String& statement, XPathNSResolver*, Except
ionState&); |
| 71 | 71 |
| 72 static Parser* current() { return currentParser; } | 72 static Parser* current() { return currentParser; } |
| 73 | 73 |
| 74 int lex(void* yylval); | 74 int lex(void* yylval); |
| 75 | 75 |
| 76 RawPtrWillBeMember<Expression> m_topExpr; | 76 Member<Expression> m_topExpr; |
| 77 bool m_gotNamespaceError; | 77 bool m_gotNamespaceError; |
| 78 | 78 |
| 79 void registerParseNode(ParseNode*); | |
| 80 void unregisterParseNode(ParseNode*); | |
| 81 | |
| 82 void registerPredicateVector(WillBeHeapVector<OwnPtrWillBeMember<Predicate>>
*); | |
| 83 void deletePredicateVector(WillBeHeapVector<OwnPtrWillBeMember<Predicate>>*)
; | |
| 84 | |
| 85 void registerExpressionVector(WillBeHeapVector<OwnPtrWillBeMember<Expression
>>*); | |
| 86 void deleteExpressionVector(WillBeHeapVector<OwnPtrWillBeMember<Expression>>
*); | |
| 87 | |
| 88 void registerString(String*); | 79 void registerString(String*); |
| 89 void deleteString(String*); | 80 void deleteString(String*); |
| 90 | 81 |
| 91 void registerNodeTest(Step::NodeTest*); | |
| 92 void deleteNodeTest(Step::NodeTest*); | |
| 93 | |
| 94 private: | 82 private: |
| 95 bool isBinaryOperatorContext() const; | 83 bool isBinaryOperatorContext() const; |
| 96 | 84 |
| 97 void skipWS(); | 85 void skipWS(); |
| 98 Token makeTokenAndAdvance(int type, int advance = 1); | 86 Token makeTokenAndAdvance(int type, int advance = 1); |
| 99 Token makeTokenAndAdvance(int type, NumericOp::Opcode, int advance = 1); | 87 Token makeTokenAndAdvance(int type, NumericOp::Opcode, int advance = 1); |
| 100 Token makeTokenAndAdvance(int type, EqTestOp::Opcode, int advance = 1); | 88 Token makeTokenAndAdvance(int type, EqTestOp::Opcode, int advance = 1); |
| 101 char peekAheadHelper(); | 89 char peekAheadHelper(); |
| 102 char peekCurHelper(); | 90 char peekCurHelper(); |
| 103 | 91 |
| 104 Token lexString(); | 92 Token lexString(); |
| 105 Token lexNumber(); | 93 Token lexNumber(); |
| 106 bool lexNCName(String&); | 94 bool lexNCName(String&); |
| 107 bool lexQName(String&); | 95 bool lexQName(String&); |
| 108 | 96 |
| 109 Token nextToken(); | 97 Token nextToken(); |
| 110 Token nextTokenInternal(); | 98 Token nextTokenInternal(); |
| 111 | 99 |
| 112 void reset(const String& data); | 100 void reset(const String& data); |
| 113 | 101 |
| 114 static Parser* currentParser; | 102 static Parser* currentParser; |
| 115 | 103 |
| 116 unsigned m_nextPos; | 104 unsigned m_nextPos; |
| 117 String m_data; | 105 String m_data; |
| 118 int m_lastTokenType; | 106 int m_lastTokenType; |
| 119 RefPtrWillBeMember<XPathNSResolver> m_resolver; | 107 Member<XPathNSResolver> m_resolver; |
| 120 | 108 |
| 121 #if !ENABLE(OILPAN) | |
| 122 HashSet<ParseNode*> m_parseNodes; | |
| 123 HashSet<Vector<OwnPtr<Predicate>>*> m_predicateVectors; | |
| 124 HashSet<Vector<OwnPtr<Expression>>*> m_expressionVectors; | |
| 125 HashSet<OwnPtr<Step::NodeTest>> m_nodeTests; | |
| 126 #endif | |
| 127 HashSet<OwnPtr<String>> m_strings; | 109 HashSet<OwnPtr<String>> m_strings; |
| 128 }; | 110 }; |
| 129 | 111 |
| 130 } // namespace XPath | 112 } // namespace XPath |
| 131 | 113 |
| 132 } // namespace blink | 114 } // namespace blink |
| 133 | 115 |
| 134 int xpathyyparse(blink::XPath::Parser*); | 116 int xpathyyparse(blink::XPath::Parser*); |
| 135 #endif | 117 #endif |
| OLD | NEW |