//CString CParser::ParseProcedureScope() void CParser::ParseProcedureScope() { int nTabs = 5; // dont' need to read token because we have read 1st token CString sToken = m_oToken.GetCurrentToken(); m_sProgress = m_sProgress + GetTabs(nTabs) + "ParseProcedureScope " + sToken + "\r\n"; if(sToken == "Public" || sToken == "Private") { m_oToken.GetNextToken(); return; } if(IsProcedureStatic(sToken) == false && IsProcedureType(sToken) == false) { //m_sErrors = m_sErrors + "Error in file "+ m_sFile + // "\'s parsing procedure scope\r\n"; m_sProgress = m_sProgress + GetTabs(nTabs+1) + GetErrorString();// + "\r\n"; m_oToken.GetNextToken(); //mdlg.DoModal(); } //return "Error in parsing procedure scope"; }
std::pair< AString, AString > cWebPlugin::GetTabNameForRequest(const HTTPRequest * a_Request) { std::pair< AString, AString > Names; AStringVector Split = StringSplit(a_Request->Path, "/"); if( Split.size() > 1 ) { sWebPluginTab* Tab = 0; if( Split.size() > 2 ) // If we got the tab name, show that page { for( TabList::iterator itr = GetTabs().begin(); itr != GetTabs().end(); ++itr ) { if( (*itr)->SafeTitle.compare( Split[2] ) == 0 ) // This is the one! Rawr { Tab = *itr; break; } } } else // Otherwise show the first tab { if( GetTabs().size() > 0 ) Tab = *GetTabs().begin(); } if( Tab ) { Names.first = Tab->Title; Names.second = Tab->SafeTitle; } } return Names; }
void CParser::ParseProcedureEndBracket() { int nTabs = 5; CString sToken = m_oToken.GetCurrentToken(); m_sProgress = m_sProgress + GetTabs(nTabs) + "ParseProcedureEndBracket " + sToken + "\r\n"; if(sToken != ")") m_sProgress = m_sProgress + GetTabs(nTabs+1) + GetErrorString(); m_oToken.GetNextToken(); }
AString cPlugin_NewLua::HandleWebRequest(const HTTPRequest * a_Request ) { cCSLock Lock(m_CriticalSection); std::string RetVal = ""; std::pair< std::string, std::string > TabName = GetTabNameForRequest(a_Request); std::string SafeTabName = TabName.second; if( SafeTabName.empty() ) return ""; sWebPluginTab* Tab = 0; for( TabList::iterator itr = GetTabs().begin(); itr != GetTabs().end(); ++itr ) { if( (*itr)->SafeTitle.compare( SafeTabName ) == 0 ) // This is the one! Rawr { Tab = *itr; break; } } if( Tab ) { //LOGINFO("1. Stack size: %i", lua_gettop(m_LuaState) ); lua_rawgeti( m_LuaState, LUA_REGISTRYINDEX, Tab->UserData); // same as lua_getref() //LOGINFO("2. Stack size: %i", lua_gettop(m_LuaState) ); // Push HTTPRequest tolua_pushusertype( m_LuaState, (void*)a_Request, "const HTTPRequest" ); //LOGINFO("Calling bound function! :D"); int s = lua_pcall( m_LuaState, 1, 1, 0); if ( s != 0 ) { std::string err = lua_tostring(m_LuaState, -1); LOGERROR("-- %s", err.c_str() ); lua_pop(m_LuaState, 1); LOGINFO("error. Stack size: %i", lua_gettop(m_LuaState) ); return err; // Show the error message in the web page, looks cool } if( !lua_isstring( m_LuaState, -1 ) ) { LOGWARN("WARNING: WebPlugin tab '%s' did not return a string!", Tab->Title.c_str() ); lua_pop(m_LuaState, 1); // Pop return value return std::string("WARNING: WebPlugin tab '") + Tab->Title + std::string("' did not return a string!"); } RetVal += tolua_tostring(m_LuaState, -1, 0); lua_pop(m_LuaState, 1); // Pop return value //LOGINFO("ok. Stack size: %i", lua_gettop(m_LuaState) ); } return RetVal; }
void CParser::ParseProcedurePropertyType() { int nTabs = 6; CString sToken = m_oToken.GetCurrentToken(); m_sProgress = m_sProgress + GetTabs(nTabs) + "ParseProcedurePropertyType " + sToken + "\r\n"; if(sToken != "Get" && sToken != "Let" ) m_sProgress = m_sProgress + GetTabs(nTabs+1) + GetErrorString(); // + "\r\n"; }
void CParser::ParseStatementWend(int nTabs) { CString sToken = m_oToken.GetCurrentToken(); m_sProgress = m_sProgress + GetTabs(nTabs) + "ParseStatementWend " + sToken + "\r\n"; if(sToken != "Wend") m_sProgress = m_sProgress + GetTabs(nTabs+1) + GetErrorString(); m_oToken.GetNextToken(); }
void CParser::ParseAsKeyword(int nTabs) { CString sToken = m_oToken.GetCurrentToken(); m_sProgress = m_sProgress + GetTabs(nTabs) + "ParseAsKeyword " + sToken + "\r\n"; if(sToken != "As") m_sProgress = m_sProgress + GetTabs(nTabs+1) + GetErrorString(); m_oToken.GetNextToken(); }
std::list<std::pair<AString, AString> > cWebPlugin::GetTabNames(void) { std::list< std::pair< AString, AString > > NameList; for( TabList::iterator itr = GetTabs().begin(); itr != GetTabs().end(); ++itr ) { std::pair< AString, AString > StringPair; StringPair.first = (*itr)->Title; StringPair.second = (*itr)->SafeTitle; NameList.push_back( StringPair ); } return NameList; }
void CParser::ParseStatementMsgBoxPrompt(int nTabs) { CString sToken = m_oToken.GetCurrentToken(); m_sProgress = m_sProgress + GetTabs(nTabs) + "ParseStatemenMsgBoxPrompt " + sToken + "\r\n"; ETokenType tt = m_oToken.GetCurrentTokenType(); if(tt != ttString && tt != ttNames) { m_sProgress = m_sProgress + GetTabs(nTabs+1) + GetErrorString(); } m_oToken.GetNextToken(); }
void CParser::ParseString(int nTabs) { CString sToken = m_oToken.GetCurrentToken(); m_sProgress = m_sProgress + GetTabs(nTabs) + "ParseString" + sToken + "\r\n"; ETokenType tt = m_oToken.GetCurrentTokenType(); if(tt != ttString) { m_sProgress = m_sProgress + GetTabs(nTabs+1) + GetErrorString(); } m_oToken.GetNextToken(); }
void CParser::ParseID(int nTabs) { CString sToken = m_oToken.GetCurrentToken(); m_sProgress = m_sProgress + GetTabs(nTabs) + "ParseID " + sToken + "\r\n"; //ETokenType tt = m_oToken.GetCurrentTokenType(); //CString stt = m_oToken.GetCurrentTokenTypeInString(); if(IsID() == false) m_sProgress = m_sProgress + GetTabs(nTabs+1) + GetErrorString(); //if(tt != ttFunction) //else //m_sProgress = m_sProgress + "\t\t\t\t\tNOT function\r\n"; m_oToken.GetNextToken(); }
void CParser::ParseCondition(int nTabs) { m_sProgress = m_sProgress + GetTabs(nTabs) + "ParseCondition\r\n"; ETokenType tt = m_oToken.GetCurrentTokenType(); if(tt == ttNumber) ParseNumber(nTabs+1); else if(tt == ttString) ParseString(nTabs+1); else if(tt == ttNames) ParseID(nTabs+1); CString sToken = m_oToken.GetCurrentToken(); if(sToken != "Then") { //parse conditional operators i,e < > == != etc ParseConditionalOperator(nTabs+1); //parse number/string/id ETokenType tt = m_oToken.GetCurrentTokenType(); if(tt == ttNumber) ParseNumber(nTabs+1); else if(tt == ttString) ParseString(nTabs+1); else if(tt == ttNames) ParseID(nTabs+1); } }
DockableCtrl* AutoHideBar::GetChild(int position) { int i = Find(position); if(i >= 0 && i < this->GetTabs().GetCount()) return GetTabs().At(i).dock; return NULL; }
//------------------------------------------------------------ void SnipWiz::OnMenuExpandSwitch(wxCommandEvent& e) { IEditor* editor = GetEditor(); if(!editor) return; bool isSelection = false; wxString var = editor->GetSelection(); if(!var.IsEmpty()) isSelection = true; var = ::wxGetTextFromUser(_("Enter identifier name"), _("switch(...)"), var); if(var.IsEmpty()) return; long count = ::wxGetNumberFromUser(_("Enter number of cases"), _("Cases:"), _("switch(...)"), 1, 1, 20); if(count < 1) return; int curEol = editor->GetEOL(); int curPos = editor->GetCurrentPosition(); wxString tabs = GetTabs(editor, curPos); wxString output = wxString::Format(wxT("switch( %s )%s%s{%s"), var.c_str(), eol[curEol].c_str(), tabs.c_str(), eol[curEol].c_str()); for(long i = 0; i < count; i++) output += wxString::Format(wxT("%scase :%s%sbreak;%s"), tabs.c_str(), eol[curEol].c_str(), tabs.c_str(), eol[curEol].c_str()); output += tabs.c_str(); output += wxT("}"); if(isSelection) editor->ReplaceSelection(output); else editor->InsertText(curPos, output); }
//CString CParser::ParseFile(CString sFile) void CParser::ParseFile() { m_sProgress = m_sProgress + GetTabs(1) + "ParseFile " + m_sFile + "\r\n"; if(OpenFile() == false) return; if(SkipFileExtraCode() == false) return; // now we have read 1st token of source code //sRetVal = ParseProcedure(); CString sToken = m_oToken.GetCurrentToken(); if(sToken == "Option") ParseStatementOption(2); sToken = m_oToken.GetCurrentToken(); if(sToken == "Dim") ParseStatementDimList(2); ParseProcedureList(); m_oToken.CloseSourceFile(); } // ParseFile()
void CParser::ParseStatementIf(int nTabs) { CString sToken = m_oToken.GetCurrentToken(); m_sProgress = m_sProgress + GetTabs(nTabs) + "ParseStatemenIf " + sToken + "\r\n"; /* If condition Then [statements] [ElseIf condition-n Then [elseifstatements] ... [Else [elsestatements]] End If */ m_oToken.GetNextToken(); //skip current if token ParseCondition(nTabs+1); ParseStatementIfThen(nTabs+1); ParseStatementList(nTabs+1); //temp code to reach end (of if) //while(sToken != "End" && sToken !="") //sToken = m_oToken.GetNextToken(); //skip end if //m_oToken.GetNextToken(); //skip end ParseStatementEnd(nTabs); m_oToken.GetNextToken(); //skip if //parse then //parse statement list //parse else if list (do it only if time possible) //parse end if }
void CParser::ParseProcedureTail(int nTabs) { m_sProgress = m_sProgress + GetTabs(nTabs) + "ParseProcedureTail\r\n"; ParseStatementEnd(nTabs+1); ParseProcedureType(nTabs+1,false); }
//CString CParser::ParseProcedureBody() void CParser::ParseProcedureBody() { int nTabs = 4; m_sProgress = m_sProgress + GetTabs(nTabs) + "ParseProcedureBody\r\n"; ParseStatementList(nTabs+1); }
void CParser::ParseStatement(int nTabs) { m_sProgress = m_sProgress + GetTabs(nTabs) + "ParseStatement\r\n"; CString sToken = m_oToken.GetCurrentToken(); ETokenType tt = m_oToken.GetCurrentTokenType(); if(sToken == "MsgBox") ParseStatementMsgBox(nTabs+1); else if(sToken == "Dim") ParseStatementDim(nTabs+1); else if(sToken == "If") ParseStatementIf(nTabs+1); else if(sToken == "While") ParseStatementWhile(nTabs+1); else if(tt == ttNames) // it is a it/var name { ////////////////////////////////////////////////////////// // // // may be converted into parse expr // // //////////////////////////////////////////////////////////// ParseStatementAssignment(nTabs+1); /* m_sProgress = m_sProgress + GetTabs(nTabs+1) + "ttName " + sToken + "\r\n"; m_oToken.GetNextToken(); */ } else { m_sProgress = m_sProgress + GetTabs(nTabs+1) + "Unknown statement " + sToken + "\r\n" + GetTabs(nTabs+1+1) + GetErrorString(); //"Other statement " + sToken + "\r\n"; m_oToken.GetNextToken(); } //for //do-while //expression } // ParseStatement()
void CParser::ParseStatementMsgBox(int nTabs) { CString sToken = m_oToken.GetCurrentToken(); m_sProgress = m_sProgress + GetTabs(nTabs) + "ParseStatemenMsgBox " + sToken + "\r\n"; m_oToken.GetNextToken(); ParseStatementMsgBoxPrompt(nTabs+1); }
void CParser::ParseConditionalOperator(int nTabs) { CString sToken = m_oToken.GetCurrentToken(); m_sProgress = m_sProgress + GetTabs(nTabs) + "ParseConditionalOperator " + sToken + "\r\n"; //condOpEqual,condOpLessThanEqual,condOpNotEqual,condOpLessThan //,condOpGreaterThanEqual,condOpGreaterThan ETokenType tt = m_oToken.GetCurrentTokenType(); if(tt != condOpEqual && tt != condOpLessThanEqual && tt != condOpNotEqual && tt != condOpLessThan && tt != condOpGreaterThanEqual && tt != condOpGreaterThan) { m_sProgress = m_sProgress + GetTabs(nTabs+1) + GetErrorString(); } m_oToken.GetNextToken(); }
void Dinf::PrintBox(ostream& outStream, int depth) { std::string tabs = GetTabs(depth); outStream << tabs << "Dinf Box:" << std::endl; for (std::shared_ptr<Box> child : m_children) { child->PrintBox(outStream, depth + 1); } }
//------------------------------------------------------------ wxString SnipWiz::FormatOutput(IEditor* pEditor, const wxString& text) { wxString output = text; int curPos = pEditor->GetCurrentPosition(); int curEol = pEditor->GetEOL(); wxString tabs = GetTabs(pEditor, curPos); output.Replace(eol[curEol], eol[curEol] + tabs); return output; }
void Stsz::PrintBox(std::ostream& outStream, int depth) { std::string tabs = GetTabs(depth); outStream << tabs << "STSZ Box:" << std::endl; outStream << tabs << "\tVersion: " << m_version << std::endl; outStream << tabs << "\tSampleSize: " << m_version << std::endl; outStream << tabs << "\tSampleCount: " << m_version << std::endl; }
void CParser::ParseExpressionFactor(int nTabs) { CString sToken = m_oToken.GetCurrentToken(); ETokenType tt = m_oToken.GetCurrentTokenType(); m_sProgress = m_sProgress + GetTabs(nTabs) + "ParseExpressionFactor " + sToken + "\r\n"; if(IsID() == true) ParseID(nTabs+1); else if(tt == ttNumber) ParseNumber(nTabs+1); else if(tt == ttFunctionStartBracket) { m_sProgress = m_sProgress + GetTabs(nTabs+1) + "ParseStartBarcket " + sToken + "\r\n"; m_oToken.GetNextToken(); ParseExpression(nTabs+1); sToken = m_oToken.GetCurrentToken(); m_sProgress = m_sProgress + GetTabs(nTabs+1) + "ParseEndBarcket " + sToken + "\r\n"; if(sToken != ")") m_sProgress = m_sProgress + GetTabs(nTabs+1) + GetErrorString(); m_oToken.GetNextToken(); } //else if(tt == ttFunctionEndBracket) //{ //m_oToken.GetNextToken(); //return; //} else { m_sProgress = m_sProgress + GetTabs(nTabs+1) + GetErrorString(); m_oToken.GetNextToken(); } }
void CParser::ParseDataType(int nTabs) { CString sToken = m_oToken.GetCurrentToken(); m_sProgress = m_sProgress + GetTabs(nTabs) + "ParseDataType " + sToken; if(sToken == "Boolean" || sToken == "Byte" || sToken == "Currency" || sToken == "Date" || sToken == "Double" || sToken == "Integer" || sToken == "Long" || sToken == "Object" || sToken == "Single" || sToken == "String" || sToken == "Variant" || IsID() == true) { sToken = m_oToken.GetNextToken(); if(sToken == ".") { sToken = m_oToken.GetNextToken(); if(IsID() == false) m_sProgress = m_sProgress + GetTabs(nTabs+1) + GetErrorString(); else m_sProgress = m_sProgress + "." + sToken; m_oToken.GetNextToken(); } //return; } else if(sToken == "," || sToken == ")") { m_sProgress = m_sProgress + GetTabs(nTabs+1) + GetErrorString(); //return; } else { m_sProgress = m_sProgress + GetTabs(nTabs+1) + GetErrorString(); m_oToken.GetNextToken(); //return; } m_sProgress = m_sProgress + "\r\n"; }
void CParser::ParseStatementOption(int nTabs) { CString sToken = m_oToken.GetCurrentToken(); m_sProgress = m_sProgress + GetTabs(nTabs) + "ParseStatementOption " + sToken + "\r\n"; sToken = m_oToken.GetNextToken(); ParseStatementOptionExplicit(nTabs+1); }
void CParser::ParseArgumentList() { int nTabs = 5; CString sToken = m_oToken.GetCurrentToken(); m_sProgress = m_sProgress + GetTabs(nTabs) + "ParseArgumentList\r\n"; ETokenType tt = m_oToken.GetCurrentTokenType(); CString stt = m_oToken.GetCurrentTokenTypeInString(); // arg list may be empty if(sToken == ")") return; while(sToken != ")") //while(1) { ParseArgument(); sToken = m_oToken.GetCurrentToken(); if(sToken == ")") break; else if(sToken != ",") { m_sProgress = m_sProgress + GetTabs(nTabs+1) + GetErrorString(); while(sToken != ",") { sToken = m_oToken.GetNextToken(); if(sToken == ")") break; } } // skip Comma if(sToken == ",") m_oToken.GetNextToken(); } //return "true"; } // ParseArgumentList()
void CParser::ParseExpressionTerm(int nTabs) { CString sToken = m_oToken.GetCurrentToken(); m_sProgress = m_sProgress + GetTabs(nTabs) + "ParseExpressionTerm " + sToken + "\r\n"; ParseExpressionFactor(nTabs+1); ETokenType tt = m_oToken.GetCurrentTokenType(); while(tt == opMultiplyDivide) { sToken = m_oToken.GetCurrentToken(); m_sProgress = m_sProgress + GetTabs(nTabs+1) + "ParseOperatorMultiplyDivide " + sToken + "\r\n"; m_oToken.GetNextToken(); ParseExpressionFactor(nTabs+1); tt = m_oToken.GetCurrentTokenType(); } }
void CParser::ParseExpression(int nTabs) { CString sToken = m_oToken.GetCurrentToken(); m_sProgress = m_sProgress + GetTabs(nTabs) + "ParseExpression\r\n"; ParseExpressionTerm(nTabs+1); ETokenType tt = m_oToken.GetCurrentTokenType(); while(tt == opPlusMinus) { sToken = m_oToken.GetCurrentToken(); m_sProgress = m_sProgress + GetTabs(nTabs+1) + "ParseOperatorPlusMinus " + sToken + "\r\n"; m_oToken.GetNextToken(); ParseExpressionTerm(nTabs+1); tt = m_oToken.GetCurrentTokenType(); } }