static void TranslateLine(string line) { string token; InitScanner(line); while (!AtEndOfLine()) { token = GetNextToken(); if (IsLegalWord(token)) token = TranslateWord(token); printf("%s", token); } printf("\n"); }
TPpContext::TPpContext(TParseContext& pc) : preamble(0), strings(0), parseContext(pc), inComment(false) { InitAtomTable(); InitScanner(); ifdepth = 0; for (elsetracker = 0; elsetracker < maxIfNesting; elsetracker++) elseSeen[elsetracker] = false; elsetracker = 0; // The following identifies all legal characters in GLSL: //for (int c = 0; c < 256; ++c) // languageCharacters[c] = false; //for (int c = 'a'; c <= 'z'; ++c) // languageCharacters[c] = true; //for (int c = 'A'; c <= 'Z'; ++c) // languageCharacters[c] = true; //languageCharacters['_'] = true; //for (int c = '0'; c <= '9'; ++c) // languageCharacters[c] = true; //languageCharacters['.'] = true; //languageCharacters['+'] = true; //languageCharacters['-'] = true; //languageCharacters['/'] = true; //languageCharacters['*'] = true; //languageCharacters['%'] = true; //languageCharacters['<'] = true; //languageCharacters['>'] = true; //languageCharacters['['] = true; //languageCharacters[']'] = true; //languageCharacters['('] = true; //languageCharacters[')'] = true; //languageCharacters['{'] = true; //languageCharacters['}'] = true; //languageCharacters['^'] = true; //languageCharacters['|'] = true; //languageCharacters['&'] = true; //languageCharacters['~'] = true; //languageCharacters['='] = true; //languageCharacters['!'] = true; //languageCharacters[':'] = true; //languageCharacters[';'] = true; //languageCharacters[','] = true; //languageCharacters['?'] = true; //languageCharacters['#'] = true; //// white space //languageCharacters[' '] = true; //for (int c = 9; c <= 13; ++c) // languageCharacters[c] = true; }
int InitPreprocessor(void) { # define CPP_STUFF true # ifdef CPP_STUFF FreeCPPStruct(); InitCPPStruct(); if (!InitAtomTable(atable, 0)) return 1; if (!InitScanner(cpp)) return 1; # endif return 0; }
int InitPreprocessor(void) { # define CPP_STUFF true # ifdef CPP_STUFF FreeCPPStruct(); InitCPPStruct(); cpp->options.Quiet = 1; cpp->options.profileString = "generic"; if (!InitAtomTable(atable, 0)) return 1; if (!InitScanner(cpp)) return 1; # endif return 0; }
BOOL CScanMgrDlg::OnInitDialog() { CDialog::OnInitDialog(); InitUI(); InitScanner(); InitExamData(); InitChildDlg(); InitCtrlPosition(); m_scanThread.CreateThread(); SetFontSize(m_nStatusSize); m_comboSubject.AdjustDroppedWidth(); return TRUE; }
void CScanMgrDlg::ShowChildDlg(int n, int nOprater /*= 0*/) { // InitData(); if (n == 1) { m_pWaitDownloadDlg->ShowWindow(SW_SHOW); m_pScanDlg->ShowWindow(SW_HIDE); m_pScanProcessDlg->ShowWindow(SW_HIDE); m_pScanRecordMgrDlg->ShowWindow(SW_HIDE); m_pPapersInputDlg->ShowWindow(SW_HIDE); tmStampDLG_DownloadModle.update(); //记录在下载模板等待界面的等待时间,超过一定时间时可退出 _eCurrDlgType_ = DLG_DownloadModle; int nResult = GetBmkInfo(); if (nResult == 0) { CNewMessageBox dlg; dlg.setShowInfo(2, 1, "考试信息为空"); dlg.DoModal(); //跳到考试管理页面 CScanTool3Dlg* pDlg = (CScanTool3Dlg*)GetParent(); pDlg->SwitchDlg(0); } if (nResult == -2) // && (MessageBox(_T("获取考生报名库失败, 是否继续?"), _T("提示"), MB_YESNO) != IDYES) { CNewMessageBox dlg; dlg.setShowInfo(1, 2, "获取考生报名库失败, 是否继续?"); dlg.DoModal(); if (dlg.m_nResult != IDYES) { CScanTool3Dlg* pDlg = (CScanTool3Dlg*)GetParent(); pDlg->SwitchDlg(0); return; } } if ((nResult == 2 || nResult == -2) && !DownLoadModel()) //如果已经下载了当前考试的报名库,就提取报名库,如何直接下载模板 { CNewMessageBox dlg; if (!_pCurrExam_ || !_pCurrSub_) dlg.setShowInfo(2, 1, "考试或科目信息为空"); else if (_pCurrSub_->strModelName.empty()) dlg.setShowInfo(2, 1, "未设置扫描模板"); dlg.DoModal(); //跳到考试管理页面 CScanTool3Dlg* pDlg = (CScanTool3Dlg*)GetParent(); pDlg->SwitchDlg(0); } InitScanner(); } else if (n == 2) { m_pWaitDownloadDlg->ShowWindow(SW_HIDE); m_pScanDlg->ShowWindow(SW_SHOW); m_pScanProcessDlg->ShowWindow(SW_HIDE); m_pScanRecordMgrDlg->ShowWindow(SW_HIDE); m_pPapersInputDlg->ShowWindow(SW_HIDE); m_pScanDlg->SetScanSrcInfo(m_vecScanSrc); m_pScanProcessDlg->InitTmpSubjectBmk(); _eCurrDlgType_ = DLG_ScanStart; } else if (n == 3) { m_pWaitDownloadDlg->ShowWindow(SW_HIDE); m_pScanDlg->ShowWindow(SW_HIDE); m_pScanProcessDlg->ShowWindow(SW_SHOW); m_pScanRecordMgrDlg->ShowWindow(SW_HIDE); m_pPapersInputDlg->ShowWindow(SW_HIDE); _eCurrDlgType_ = Dlg_ScanProcess; if (/*_pCurrExam_->nModel == 1 && */nOprater == 1) return; m_pScanProcessDlg->UpdateChildInfo(); m_pScanProcessDlg->InitShow(); } else if (n == 4) { m_pWaitDownloadDlg->ShowWindow(SW_HIDE); m_pScanDlg->ShowWindow(SW_HIDE); m_pScanProcessDlg->ShowWindow(SW_HIDE); m_pScanRecordMgrDlg->ShowWindow(SW_SHOW); m_pPapersInputDlg->ShowWindow(SW_HIDE); _eCurrDlgType_ = Dlg_ScanRecordMgr; m_pScanRecordMgrDlg->UpdateChildDlg(); } else if (n == 5) { m_pWaitDownloadDlg->ShowWindow(SW_HIDE); m_pScanDlg->ShowWindow(SW_HIDE); m_pScanProcessDlg->ShowWindow(SW_HIDE); m_pScanRecordMgrDlg->ShowWindow(SW_HIDE); m_pPapersInputDlg->ShowWindow(SW_SHOW); _eCurrDlgType_ = Dlg_PapersInput; m_pPapersInputDlg->ReInitData(_pModel_); } }
//Initialize the Torque Interface bool InitTorqueStuff() { //Init the scanner InitScanner("Blockland.exe"); //Printf is required for debug output, so find it first Printf = (PrintfFn)ScanFunc("\x8B\x4C\x24\x04\x8D\x44\x24\x08\x50\x6A\x00\x6A\x00\xE8\x00\x00\x00\x00\x83\xC4\x0C\xC3", "xxxxxxxxxxxxxx????xxxx"); //Do nothing if we don't find it :( if (!Printf) return false; ShapeNameHudOnRender = (ShapeNameHudOnRenderFn)ScanFunc("\x81\xec\x00\x00\x00\x00\x53\x8b\xd9\x8a\x83\xc9\x00\x00\x00\x84\xc0\x55\x56\x57\x89\x5c\x24\x14", "xx????xxxxxxxxxxxxxxxxxx"); //First find all the functions BLSCAN(LookupNamespace, "\x8B\x44\x24\x04\x85\xC0\x75\x05", "xxxxxxxx"); BLSCAN(StringTableInsert, "\x53\x8B\x5C\x24\x08\x55\x56\x57\x53", "xxxxxxxxx"); BLSCAN(Namespace__lookup, "\x53\x56\x8B\xF1\x8B\x46\x24", "xxxxxxx"); BLSCAN(CodeBlock__exec, "\x83\xEC\x44\x53\x55\x56\x8B\xE9", "xxxxxxxx"); BLSCAN(Sim__findObject_name, "\x57\x8B\x7C\x24\x08\x8A\x07", "xxxxxxx"); BLSCAN(Sim__findObject_id, "\x8B\x44\x24\x04\x8B\x0D\x00\x00\x00\x00\x50\xE8\x00\x00\x00\x00\xC3", "xxxxxx????xx????x"); //These are almost identical. Long sigs required BLSCAN(AddStringCommand, "\x8B\x44\x24\x04\x56\x50\xE8\x00\x00\x00\x00\x8B\xF0\xA1\x00\x00\x00\x00\x40\xB9\x00\x00\x00\x00\xA3" "\x00\x00\x00\x00\xE8\x00\x00\x00\x00\x8B\x4C\x24\x10\x8B\x54\x24\x14\x8B\x44\x24\x18\x89\x4E\x18\x8B" "\x4C\x24\x0C\x89\x56\x10\x89\x46\x14\xC7\x46\x0C\x01\x00\x00\x00\x89\x4E\x28\x5E\xC2\x14\x00", "xxxxxxx????xxx????xx????x????x????xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); BLSCAN(AddIntCommand, "\x8B\x44\x24\x04\x56\x50\xE8\x00\x00\x00\x00\x8B\xF0\xA1\x00\x00\x00\x00\x40\xB9\x00\x00\x00\x00\xA3" "\x00\x00\x00\x00\xE8\x00\x00\x00\x00\x8B\x4C\x24\x10\x8B\x54\x24\x14\x8B\x44\x24\x18\x89\x4E\x18\x8B" "\x4C\x24\x0C\x89\x56\x10\x89\x46\x14\xC7\x46\x0C\x02\x00\x00\x00\x89\x4E\x28\x5E\xC2\x14\x00", "xxxxxxx????xxx????xx????x????x????xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); BLSCAN(AddFloatCommand, "\x8B\x44\x24\x04\x56\x50\xE8\x00\x00\x00\x00\x8B\xF0\xA1\x00\x00\x00\x00\x40\xB9\x00\x00\x00\x00\xA3" "\x00\x00\x00\x00\xE8\x00\x00\x00\x00\x8B\x4C\x24\x10\x8B\x54\x24\x14\x8B\x44\x24\x18\x89\x4E\x18\x8B" "\x4C\x24\x0C\x89\x56\x10\x89\x46\x14\xC7\x46\x0C\x03\x00\x00\x00\x89\x4E\x28\x5E\xC2\x14\x00", "xxxxxxx????xxx????xx????x????x????xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); BLSCAN(AddVoidCommand, "\x8B\x44\x24\x04\x56\x50\xE8\x00\x00\x00\x00\x8B\xF0\xA1\x00\x00\x00\x00\x40\xB9\x00\x00\x00\x00\xA3" "\x00\x00\x00\x00\xE8\x00\x00\x00\x00\x8B\x4C\x24\x10\x8B\x54\x24\x14\x8B\x44\x24\x18\x89\x4E\x18\x8B" "\x4C\x24\x0C\x89\x56\x10\x89\x46\x14\xC7\x46\x0C\x04\x00\x00\x00\x89\x4E\x28\x5E\xC2\x14\x00", "xxxxxxx????xxx????xx????x????x????xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); BLSCAN(AddBoolCommand, "\x8B\x44\x24\x04\x56\x50\xE8\x00\x00\x00\x00\x8B\xF0\xA1\x00\x00\x00\x00\x40\xB9\x00\x00\x00\x00\xA3" "\x00\x00\x00\x00\xE8\x00\x00\x00\x00\x8B\x4C\x24\x10\x8B\x54\x24\x14\x8B\x44\x24\x18\x89\x4E\x18\x8B" "\x4C\x24\x0C\x89\x56\x10\x89\x46\x14\xC7\x46\x0C\x05\x00\x00\x00\x89\x4E\x28\x5E\xC2\x14\x00", "xxxxxxx????xxx????xx????x????x????xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); BLSCAN(AddVariable, "\x8B\x44\x24\x04\x56\x8B\xF1\x80\x38\x24\x74\x1A", "xxxxxxxxxxxx"); BLSCAN(Evaluate, "\x8A\x44\x24\x08\x84\xC0\x56\x57\x8B\x7C\x24\x0C", "xxxxxxxxxxxx"); BLSCAN(GetGlobalVariable, "\x56\x8b\x74\x24\x08\x85\xf6\x74\x00\x8a\x06\x84\xc0\x75", "xxxxxxxx?xxxxx"); BLSCAN(SetGlobalVariable, "\x56\x8b\x74\x24\x08\x80\x3e\x24\x8b\xc6\x74\x00\x56\xe8", "xxxxxxxxxxx?xx"); //The string table is used in lookupnamespace so we can get it's location StringTable = *(DWORD*)(*(DWORD*)((DWORD)LookupNamespace + 15)); //Get the global variable dictionary pointer GlobalVars = *(DWORD*)(ScanFunc("\x8B\x44\x24\x0C\x8B\x4C\x24\x04\x50\x6A\x06", "xxxxxxxxxxx") + 13); return true; }