Esempio n. 1
0
static void TranslateLine(string line)
{
    string token;

    InitScanner(line);
    while (!AtEndOfLine()) {
        token = GetNextToken();
        if (IsLegalWord(token)) token = TranslateWord(token);
        printf("%s", token);
    }
    printf("\n");
}
Esempio n. 2
0
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;
}
Esempio n. 3
0
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; 
}
Esempio n. 4
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;
}
Esempio n. 5
0
BOOL CScanMgrDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	InitUI();
	InitScanner();
	InitExamData();
	InitChildDlg();
	InitCtrlPosition();
	m_scanThread.CreateThread();

	SetFontSize(m_nStatusSize);
	m_comboSubject.AdjustDroppedWidth();

	return TRUE;
}
Esempio n. 6
0
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_);
	}
}
Esempio n. 7
0
//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;
}