void Parser::parse(JSGlobalData* globalData, int* errLine, UString* errMsg) { ASSERT(!m_sourceElements); int defaultErrLine; UString defaultErrMsg; if (!errLine) errLine = &defaultErrLine; if (!errMsg) errMsg = &defaultErrMsg; *errLine = -1; *errMsg = 0; Lexer& lexer = *globalData->lexer; lexer.setCode(*m_source); int parseError = jscyyparse(globalData); bool lexError = lexer.sawError(); lexer.clear(); ParserRefCounted::deleteNewObjects(globalData); if (parseError || lexError) { *errLine = lexer.lineNo(); *errMsg = "Parse error"; m_sourceElements.clear(); } }
void Parser::parse(TiGlobalData* globalData, int* errLine, UString* errMsg) { m_sourceElements = 0; int defaultErrLine; UString defaultErrMsg; if (!errLine) errLine = &defaultErrLine; if (!errMsg) errMsg = &defaultErrMsg; *errLine = -1; *errMsg = 0; Lexer& lexer = *globalData->lexer; lexer.setCode(*m_source, m_arena); int parseError = jscyyparse(globalData); bool lexError = lexer.sawError(); int lineNumber = lexer.lineNumber(); lexer.clear(); if (parseError || lexError) { *errLine = lineNumber; *errMsg = "Parse error"; m_sourceElements = 0; } }
void Parser::parse(JSGlobalData* globalData, int* errLine, UString* errMsg) { #ifdef ANDROID_INSTRUMENT android::TimeCounter::start(android::TimeCounter::JavaScriptParseTimeCounter); #endif m_sourceElements = 0; int defaultErrLine; UString defaultErrMsg; if (!errLine) errLine = &defaultErrLine; if (!errMsg) errMsg = &defaultErrMsg; *errLine = -1; *errMsg = UString(); Lexer& lexer = *globalData->lexer; lexer.setCode(*m_source, m_arena); int parseError = jscyyparse(globalData); bool lexError = lexer.sawError(); int lineNumber = lexer.lineNumber(); lexer.clear(); if (parseError || lexError) { *errLine = lineNumber; *errMsg = "Parse error"; m_sourceElements = 0; } #ifdef ANDROID_INSTRUMENT android::TimeCounter::record(android::TimeCounter::JavaScriptParseTimeCounter, __FUNCTION__); #endif }