diff options
Diffstat (limited to 'JavaScriptCore/parser/Parser.h')
-rw-r--r-- | JavaScriptCore/parser/Parser.h | 63 |
1 files changed, 4 insertions, 59 deletions
diff --git a/JavaScriptCore/parser/Parser.h b/JavaScriptCore/parser/Parser.h index 6166bb2..373dc00 100644 --- a/JavaScriptCore/parser/Parser.h +++ b/JavaScriptCore/parser/Parser.h @@ -24,8 +24,6 @@ #define Parser_h #include "Debugger.h" -#include "Executable.h" -#include "JSGlobalObject.h" #include "Nodes.h" #include "SourceProvider.h" #include <wtf/Forward.h> @@ -43,12 +41,9 @@ namespace JSC { class Parser : public Noncopyable { public: - template <class ParsedNode> - PassRefPtr<ParsedNode> parse(ExecState*, Debugger*, const SourceCode&, int* errLine = 0, UString* errMsg = 0); - template <class ParsedNode> - PassRefPtr<ParsedNode> reparse(JSGlobalData*, ParsedNode*); + template <class ParsedNode> PassRefPtr<ParsedNode> parse(ExecState*, Debugger*, const SourceCode&, int* errLine = 0, UString* errMsg = 0); + template <class ParsedNode> PassRefPtr<ParsedNode> reparse(JSGlobalData*, ParsedNode*); void reparseInPlace(JSGlobalData*, FunctionBodyNode*); - PassRefPtr<FunctionBodyNode> parseFunctionFromGlobalCode(ExecState*, Debugger*, const SourceCode&, int* errLine = 0, UString* errMsg = 0); void didFinishParsing(SourceElements*, ParserArenaData<DeclarationStacks::VarStack>*, ParserArenaData<DeclarationStacks::FunctionStack>*, CodeFeatures features, int lastLine, int numConstants); @@ -68,8 +63,7 @@ namespace JSC { int m_numConstants; }; - template <class ParsedNode> - PassRefPtr<ParsedNode> Parser::parse(ExecState* exec, Debugger* debugger, const SourceCode& source, int* errLine, UString* errMsg) + template <class ParsedNode> PassRefPtr<ParsedNode> Parser::parse(ExecState* exec, Debugger* debugger, const SourceCode& source, int* errLine, UString* errMsg) { m_source = &source; parse(&exec->globalData(), errLine, errMsg); @@ -96,8 +90,7 @@ namespace JSC { return result.release(); } - template <class ParsedNode> - PassRefPtr<ParsedNode> Parser::reparse(JSGlobalData* globalData, ParsedNode* oldParsedNode) + template <class ParsedNode> PassRefPtr<ParsedNode> Parser::reparse(JSGlobalData* globalData, ParsedNode* oldParsedNode) { m_source = &oldParsedNode->source(); parse(globalData, 0, 0); @@ -122,54 +115,6 @@ namespace JSC { return result.release(); } - inline PassRefPtr<FunctionBodyNode> Parser::parseFunctionFromGlobalCode(ExecState* exec, Debugger* debugger, const SourceCode& source, int* errLine, UString* errMsg) - { - RefPtr<ProgramNode> program = parse<ProgramNode>(exec, debugger, source, errLine, errMsg); - - if (!program) - return 0; - - StatementVector& children = program->children(); - if (children.size() != 1) - return 0; - - StatementNode* exprStatement = children[0]; - ASSERT(exprStatement); - ASSERT(exprStatement->isExprStatement()); - if (!exprStatement || !exprStatement->isExprStatement()) - return 0; - - ExpressionNode* funcExpr = static_cast<ExprStatementNode*>(exprStatement)->expr(); - ASSERT(funcExpr); - ASSERT(funcExpr->isFuncExprNode()); - if (!funcExpr || !funcExpr->isFuncExprNode()) - return 0; - - RefPtr<FunctionBodyNode> body = static_cast<FuncExprNode*>(funcExpr)->body(); - ASSERT(body); - return body.release(); - } - - inline JSObject* EvalExecutable::parse(ExecState* exec, bool allowDebug) - { - int errLine; - UString errMsg; - m_node = exec->globalData().parser->parse<EvalNode>(exec, allowDebug ? exec->dynamicGlobalObject()->debugger() : 0, m_source, &errLine, &errMsg); - if (!m_node) - return Error::create(exec, SyntaxError, errMsg, errLine, m_source.provider()->asID(), m_source.provider()->url()); - return 0; - } - - inline JSObject* ProgramExecutable::parse(ExecState* exec, bool allowDebug) - { - int errLine; - UString errMsg; - m_node = exec->globalData().parser->parse<ProgramNode>(exec, allowDebug ? exec->dynamicGlobalObject()->debugger() : 0, m_source, &errLine, &errMsg); - if (!m_node) - return Error::create(exec, SyntaxError, errMsg, errLine, m_source.provider()->asID(), m_source.provider()->url()); - return 0; - } - } // namespace JSC #endif // Parser_h |