本文整理汇总了C++中CScanner类的典型用法代码示例。如果您正苦于以下问题:C++ CScanner类的具体用法?C++ CScanner怎么用?C++ CScanner使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CScanner类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: LoadResAuth
void LoadResAuth( LPCTSTR lpszFileName )
{
CScanner s;
if( s.Load( lpszFileName ) )
{
s.GetToken();
lstrcpy( g_dpSrvr.m_szResVer, s.Token );
}
}
示例2: consume
int COperatorToken::consume(char aChar, CScanner& aScanner) {
int result=0;
mTextValue=aChar;
while((validOperator(mTextValue)) && (kNoError==result)){
result=aScanner.getChar(aChar);
mTextValue+=aChar;
}
if(kNoError==result) {
mTextValue.Truncate(mTextValue.Length()-1);
aScanner.push(aChar);
}
return result;
};
示例3: _auto_login
void _auto_login( )
{
CScanner s;
if( TRUE == s.Load( "autologin.ini" ) )
{
while( s.tok != FINISHED )
{
s.GetToken();
if( "Account" == s.Token )
{
s.GetToken();
g_Console._strAccount = s.Token;
}
else if( "Password" == s.Token )
{
s.GetToken();
g_Console._StrPassword = s.Token;
}
else if( "n2ndPassword" == s.Token )
{
g_Console._nPasswordReal = s.GetNumber();
}
else if( "nServer" == s.Token )
{
g_Console._nServer = s.GetNumber();
}
else if( "nCharacter" == s.Token )
{
g_Console._nCharacter = s.GetNumber();
}
}
}
}
示例4: Script
BOOL Script( LPCSTR lpszFileName )
{
CScanner s;
if( s.Load( lpszFileName ) )
{
s.GetToken();
while( s.tok != FINISHED )
{
if( s.Token == "Core" )
{
s.GetToken();
strcpy( g_szCoreAddr, s.Token );
}
else if( s.Token == "Port" )
{
g_uPort = s.GetNumber();
}
s.GetToken();
}
return TRUE;
}
Error( "Can't open file, %s.\n", lpszFileName );
return FALSE;
};
示例5: MAKELONG
void CGlobalGiftbox::OnUpload( CAr & ar )
{
if( m_bLoad )
return;
// recv
int nSize;
ar >> nSize;
for( int i = 0; i < nSize; i++ )
{
DWORD dwGiftbox, dwItem;
int cbItem, nNum;
ar >> dwGiftbox;
ar >> cbItem;
for( int j = 0; j < cbItem; j++ )
{
ar >> dwItem >> nNum;
DWORD dwKey = MAKELONG( (WORD)dwGiftbox, (WORD)dwItem );
bool bResult = m_map.insert( map<DWORD, int>::value_type( dwKey, nNum ) ).second;
if( !bResult )
Error( "global giftbox error: %d, %d, %d", dwGiftbox, dwItem, nNum );
}
}
// load script
CScanner s;
DWORD dwGiftbox, dwItem;
int nNum;
if( s.Load( "../globalgiftbox.txt" ) )
{
dwGiftbox = (DWORD)s.GetNumber();
while( s.tok != FINISHED )
{
dwItem = (DWORD)s.GetNumber();
nNum = s.GetNumber();
map<DWORD, int>::iterator it = m_map.find( MAKELONG( (WORD)dwGiftbox, (WORD)dwItem ) );
if( it == m_map.end() )
{
char szString[100];
sprintf( szString, "globalgiftbox load error: key not found, g: %d, i: %d", dwGiftbox, dwItem );
AfxMessageBox( szString );
}
// it->second -= nNum;
it->second = nNum;
if( it->second < 0 )
{
Error( "global giftbox error: number is negative, %d, %d", dwGiftbox, dwItem );
it->second = 0;
}
dwGiftbox = (DWORD)s.GetNumber();
}
}
m_bLoad = TRUE;
}
示例6: Script
BOOL Script( LPCTSTR lpszFileName )
{
#ifdef __INTERNALSERVER
strcpy( g_DbManager.m_szLoginPWD, "#^#^account" );
strcpy( g_DbManager.m_szLogPWD, "#^#^log" );
#endif
/*
AddTail( -1, 1, "TEST", "192.168.0.103" );
AddTail( 1, 1, "1", "" );
*/
CScanner s;
BOOL bSkipTracking = FALSE;
if( s.Load( lpszFileName ) )
{
s.GetToken();
while( s.tok != FINISHED )
{
if( s.Token == ";" )
{
s.GetToken();
continue;
}
else if( s.Token == "TEST" )
{
HMENU hMenu = GetMenu( hMainWnd );
CheckMenuItem( hMenu, IDM_OPT_EXTERNAL, MF_CHECKED );
EnableMenuItem( hMenu, IDM_OPT_EXTERNAL, MF_DISABLED | MF_GRAYED );
CheckMenuItem( hMenu, IDM_OPT_INTERNAL, MF_UNCHECKED );
EnableMenuItem( hMenu, IDM_OPT_INTERNAL, MF_ENABLED );
g_dpSrvr.m_bCheckAddr = false;
char lpString[MAX_LOADSTRING];
#ifdef _DEBUG
sprintf( lpString, "%s - debug", szTitle );
#else // _DEBUG
sprintf( lpString, "%s - release", szTitle );
#endif // _DEBUG
SetWindowText( hMainWnd, lpString );
}
else if( s.Token == "AddTail" )
{
LPSERVER_DESC pServer
= g_dpSrvr.m_aServerset + g_dpSrvr.m_dwSizeofServerset++;
s.GetToken(); // (
pServer->dwParent = s.GetNumber();
s.GetToken(); // ,
pServer->dwID = s.GetNumber();
s.GetToken(); // ,
s.GetToken();
strcpy( pServer->lpName, s.Token );
s.GetToken(); // ,
s.GetToken();
strcpy( pServer->lpAddr, s.Token );
s.GetToken(); // ,
pServer->b18 = (BOOL)s.GetNumber();
s.GetToken(); // ,
pServer->lEnable = (long)s.GetNumber();
#ifdef __SERVERLIST0911
pServer->lEnable = 0L;
#endif // __SERVERLIST0911
s.GetToken(); // ,
pServer->lMax = (long)s.GetNumber();
s.GetToken(); // )
// if( pServer->dwParent != NULL_ID )
{
u_long uId = pServer->dwParent * 100 + pServer->dwID;
g_dpSrvr.m_2ServersetPtr.insert( map<u_long, LPSERVER_DESC>::value_type( uId, pServer ) );
}
}
else if( s.Token == "MAX" )
{
g_dpSrvr.m_nMaxConn = s.GetNumber();
}
else if( s.Token == "BillingIP" )
{
s.GetToken();
GetBillingMgr()->SetConfig( BID_IP, (DWORD)(LPCTSTR)s.Token );
}
else if( s.Token == "BillingPort" )
{
GetBillingMgr()->SetConfig( BID_PORT, s.GetNumber() );
}
else if( s.Token == "BillingFreePass" )
{
GetBillingMgr()->SetConfig( BID_FREEPASS, s.GetNumber() );
}
else if( s.Token == "BillingPWD" )
{
// 디비패스워드는 암호화 되어 있다. 암호 시키는 프로그램은 외부실행파일이다.
s.GetToken();
char* szPWD = GetBillingPWD();
::GetPWDFromToken( s.Token, szPWD ); // from query.cpp
}
else if( s.Token == "MSG_VER" )
{
s.GetToken();
lstrcpy( g_dpSrvr.m_szVer, s.Token );
//.........这里部分代码省略.........
示例7: AddMessage
void CDialogMsg::AddMessage( CObj* pObj, LPCTSTR lpszMessage, DWORD RGB, int nKind, DWORD dwPStyle )
{
if( pObj->GetType() == OT_MOVER )
{
CScanner scanner;
scanner.SetProg( (LPVOID)lpszMessage );
scanner.GetToken();
// 이모티콘 명령
/*
if( scanner.Token == "/" )
{
scanner.GetToken();
CString strstr = scanner.token;
for( int j=0; j < MAX_EMOTICON_NUM; j++ )
{
CString strstr2 = m_EmiticonCmd[ j ].m_szCommand;
if( strstr == strstr2 )
{
AddEmoticonUser( pObj, m_EmiticonCmd[ j ].m_dwIndex );
return;
}
}
}
*/
if( scanner.Token == "/" )
{
CString strstr = lpszMessage;
scanner.GetToken();
for( int j=0; j < MAX_EMOTICON_NUM; j++ )
{
CString strstr2 = "/";
strstr2+=m_EmiticonCmd[ j ].m_szCommand;
if( strstr.GetLength() > 0 && strstr == strstr2 )
{
AddEmoticonUser( pObj, m_EmiticonCmd[ j ].m_dwIndex );
return;
}
}
}
else
if( scanner.Token == "!" )
{
int nEmoticonIdx = scanner.GetNumber();
AddEmoticon( pObj, nEmoticonIdx );
return;
}
for( int i = 0; i < m_textArray.GetSize(); i++ )
{
LPCUSTOMTEXT lpCustomText = (LPCUSTOMTEXT) m_textArray.GetAt( i );
if( lpCustomText->m_pObj == pObj )
{
safe_delete( lpCustomText );
m_textArray.RemoveAt( i );
break;
}
}
}
LPCUSTOMTEXT lpCustomText = new CUSTOMTEXT;
lpCustomText->m_dwRGB = RGB;
lpCustomText->m_pFont = CWndBase::m_Theme.m_pFontText; //ect ? m_pFontEffect : m_pFont;
lpCustomText->m_pObj = pObj;
lpCustomText->m_timer.Set( 5000 );
lpCustomText->m_bInfinite = FALSE;//( pObj->GetType() == OT_MOVER && ( (CMover*)pObj )->m_vtInfo.IsVendorOpen() );
lpCustomText->m_pTexture = NULL;
lpCustomText->m_nKind = nKind;
// Mover라면 대사 출력 시간 동안 퀘스트 이모티콘을 감춘다.
if( pObj->GetType() == OT_MOVER )
((CMover*)pObj)->m_bShowQuestEmoticon = FALSE;
if( lpCustomText->m_bInfinite )
{
DWORD dwColor = 0;
dwColor = 0xff008000;
lpCustomText->m_string.SetParsingString( lpszMessage, dwColor, 0x00000000, 0, dwPStyle );
}
else
lpCustomText->m_string.SetParsingString( lpszMessage, 0xff000000, 0x00000000, 0, dwPStyle );
int nMaxHeight = lpCustomText->m_pFont->GetMaxHeight();
CSize size = lpCustomText->m_pFont->GetTextExtent( lpszMessage );
int cx, cy;
// 기본 사이즈 계산
if( size.cx >= 160 )
{
cx = 160;
cy = 160; // 이 수치는 의미가 없음. Reset 이후에 줄수로 재 계산 됨
lpCustomText->m_string.Init( lpCustomText->m_pFont, &CRect( 0, 0, cx - 16, cy - 16) );
}
else
{
cx = size.cx + 16;
cx = ( ( cx / 16 ) * 16 ) + ( ( cx % 16 ) ? 16 : 0 );
cy = size.cy;// 이 수치는 의미가 없음. Reset 이후에 줄수로 재 계산 됨
lpCustomText->m_string.Init( lpCustomText->m_pFont, &CRect( 0, 0, cx - 16, cy - 16) );
//.........这里部分代码省略.........
示例8: Load
BOOL CLangMan::Load( LPCTSTR lpszFileName )
{
CScanner s;
if( !s.Load( lpszFileName, TRUE ) )
return FALSE;
DWORD dwLang = s.GetNumber(); // dwLang
DWORD a, r, g, b;
while( s.tok != FINISHED )
{
ASSERT( dwLang < LANG_MAX );
PLANG_DATA pData = &m_aLangData[dwLang];
s.GetToken();
s.GetToken(); // szPath
lstrcpy( pData->szPath, s.token );
s.GetToken();
s.GetToken(); // szFileName
lstrcpy( pData->szFileName, s.token );
s.GetToken(); // szTitle
lstrcpy( pData->szTitle, s.token );
s.GetToken();
s.GetToken(); // szFontFirst
lstrcpy( pData->font.lfCaption.szFontFirst, s.token );
s.GetToken();
s.GetToken();
s.GetToken(); // szFontSecond
lstrcpy( pData->font.lfCaption.szFontSecond, s.token );
s.GetToken();
pData->font.lfCaption.nDivTitle = s.GetNumber(); // nDivTitle
pData->font.lfCaption.nDivCaption = s.GetNumber(); // nDivCaption
pData->font.fdLang.charset = s.GetNumber(); // charset
pData->font.fdLang.wCodePage = s.GetNumber(); // wCodePage
s.GetToken();
s.GetToken();
lstrcpy( pData->font.fdLang.faceNT, s.token ); // faceNT
s.GetToken();
s.GetToken();
s.GetToken();
lstrcpy( pData->font.fdLang.face9x, s.token ); // face9x
s.GetToken();
s.GetToken();
s.GetToken(); // szFont0
lstrcpy( pData->font.afi[0].szFont, s.token );
s.GetToken();
s.GetToken();
s.GetToken(); // szFont1
lstrcpy( pData->font.afi[1].szFont, s.token );
s.GetToken();
s.GetToken();
s.GetToken(); // szFont2
lstrcpy( pData->font.afi[2].szFont, s.token );
s.GetToken();
s.GetToken();
s.GetToken(); // szFont3
lstrcpy( pData->font.afi[3].szFont, s.token );
s.GetToken();
a = s.GetNumber(); // dwBgColor3_a
r = s.GetNumber(); // dwBgColor3_r
g = s.GetNumber(); // dwBgColor3_g
b = s.GetNumber(); // dwBgColor3_b
pData->font.afi[3].dwBgColor = D3DCOLOR_ARGB( a, r, g, b );
pData->font.afi[3].nOutLine = s.GetNumber(); // nOutLine3
pData->font.afi[3].dwFlags = s.GetNumber(); // dwFlags3
s.GetToken();
s.GetToken(); // szFont4
lstrcpy( pData->font.afi[4].szFont, s.token );
s.GetToken();
a = s.GetNumber(); // dwBgColor4_a
r = s.GetNumber(); // dwBgColor4_r
g = s.GetNumber(); // dwBgColor4_g
b = s.GetNumber(); // dwBgColor4_b
pData->font.afi[4].dwBgColor = D3DCOLOR_ARGB( a, r, g, b );
pData->font.afi[4].nOutLine = s.GetNumber(); // nOutLine4
pData->font.afi[4].dwFlags = s.GetNumber(); // dwFlags4
s.GetToken();
s.GetToken(); // szFont5
lstrcpy( pData->font.afi[5].szFont, s.token );
s.GetToken();
a = s.GetNumber(); // dwBgColor5_a
r = s.GetNumber(); // dwBgColor5_r
g = s.GetNumber(); // dwBgColor5_g
b = s.GetNumber(); // dwBgColor5_b
pData->font.afi[5].dwBgColor = D3DCOLOR_ARGB( a, r, g, b );
pData->font.afi[5].nOutLine = s.GetNumber(); // nOutLine5
pData->font.afi[5].dwFlags = s.GetNumber(); // dwFlags5
//.........这里部分代码省略.........
示例9: InitControls
BOOL CBetaPatchClientDlg::InitControls()
{
#ifdef __LANG_RUS
enum PublisherVersion { PUBLISHER_VERSION_1 = 0, PUBLISHER_VERSION_2 = 1 };
PublisherVersion ePublisherVersion = PUBLISHER_VERSION_1;
CScanner scanner;
if( scanner.Load( "a.txt" ) == TRUE )
{
int nKeyNumber = scanner.GetNumber();
if( nKeyNumber == 1 )
ePublisherVersion = PUBLISHER_VERSION_2;
else
ePublisherVersion = PUBLISHER_VERSION_1;
}
else
ePublisherVersion = PUBLISHER_VERSION_1;
#endif // __LANG_RUS
#ifdef __LANG_RUS
DWORD dwBitmapID = ( ePublisherVersion == PUBLISHER_VERSION_1 ) ? IDC_BITMAP_MAIN : IDC_BITMAP_MAIN_2;
if( m_pic.Load( dwBitmapID ) )
#else // __LANG_RUS
if( m_pic.Load( IDC_BITMAP_MAIN ) )
#endif // __LANG_RUS
{
CSize size = m_pic.GetImageSize();
SetWindowPos( NULL, 0, 0, size.cx, size.cy, SWP_NOZORDER | SWP_NOMOVE );
HRGN hRgn = CreateRoundRectRgn( 0, 0, size.cx, size.cy, 20, 20 );
if( hRgn )
::SetWindowRgn( m_hWnd, hRgn, FALSE );
}
int nInfoGap = 0;
int nWeblinkGap = 0;
#if defined(__LANG_JAP)
#if 0 //JAPAN 패치 클라이언트 이미지 변경관련 삭제.
nInfoGap = 5;
nWeblinkGap = 35;
srand( (unsigned)time( NULL ) );
int nsel = rand()%4;
UINT nchrarry[4] = { IDB_BITMAP_CHAR1, IDB_BITMAP_CHAR3, IDB_BITMAP_CHAR5, IDB_BITMAP_CHAR7 };
UINT nchrarryM[4] = { IDB_BITMAP_CHAR2, IDB_BITMAP_CHAR4, IDB_BITMAP_CHAR6, IDB_BITMAP_CHAR8 };
m_bmpchr[0].LoadBitmap( nchrarry[nsel] );
m_bmpchr[1].LoadBitmap( nchrarryM[nsel] );
#endif
#endif // __LANG_JAP
m_Button_Exit.SetBitmaps(IDB_BITMAP_CLOSE00, RGB(255, 0, 255), IDB_BITMAP_CLOSE01, RGB(255, 0, 255) );
m_Button_Exit.SetAlign(CButtonST::ST_ALIGN_OVERLAP, FALSE);
m_Button_Exit.SetPressedStyle(CButtonST::BTNST_PRESSED_LEFTRIGHT, FALSE);
m_Button_Exit.SetColor(CButtonST::BTNST_COLOR_FG_IN, RGB(0, 0, 0));
m_Button_Exit.SetColor(CButtonST::BTNST_COLOR_FG_OUT, RGB(0, 0, 0));
m_Button_Exit.SizeToContent();
m_Button_Exit.DrawTransparent(TRUE);
m_Button_Exit.DrawBorder(FALSE, FALSE);
m_Button_Exit.SetBtnCursor(IDC_CURSOR1);
m_Button_Option.SetBitmaps(IDB_BITMAP_OPTION00, RGB(255, 0, 255), IDB_BITMAP_OPTION01, RGB(255, 0, 255) );
m_Button_Option.SetAlign(CButtonST::ST_ALIGN_OVERLAP, FALSE);
m_Button_Option.SetPressedStyle(CButtonST::BTNST_PRESSED_LEFTRIGHT, FALSE);
m_Button_Option.SetColor(CButtonST::BTNST_COLOR_FG_IN, RGB(0, 0, 0));
m_Button_Option.SetColor(CButtonST::BTNST_COLOR_FG_OUT, RGB(0, 0, 0));
m_Button_Option.SizeToContent();
m_Button_Option.DrawTransparent(TRUE);
m_Button_Option.DrawBorder(FALSE, FALSE);
m_Button_Option.SetBtnCursor(IDC_CURSOR1);
m_Button_Start.SetBitmaps(IDB_BITMAP_START00, RGB(255, 0, 255), IDB_BITMAP_START01, RGB(255, 0, 255) );
m_Button_Start.SetAlign(CButtonST::ST_ALIGN_OVERLAP, FALSE);
m_Button_Start.SetPressedStyle(CButtonST::BTNST_PRESSED_LEFTRIGHT, FALSE);
m_Button_Start.SetColor(CButtonST::BTNST_COLOR_FG_IN, RGB(0, 0, 0));
m_Button_Start.SetColor(CButtonST::BTNST_COLOR_FG_OUT, RGB(0, 0, 0));
m_Button_Start.SizeToContent();
m_Button_Start.DrawTransparent(TRUE);
m_Button_Start.DrawBorder(FALSE, FALSE);
m_Button_Start.SetBtnCursor(IDC_CURSOR1);
m_Button_Register.SetBitmaps(IDB_BITMAP_REGISTER00, RGB(255, 0, 255), IDB_BITMAP_REGISTER01, RGB(255, 0, 255) );
m_Button_Register.SetAlign(CButtonST::ST_ALIGN_OVERLAP, FALSE);
m_Button_Register.SetPressedStyle(CButtonST::BTNST_PRESSED_LEFTRIGHT, FALSE);
m_Button_Register.SetColor(CButtonST::BTNST_COLOR_FG_IN, RGB(0, 0, 0));
m_Button_Register.SetColor(CButtonST::BTNST_COLOR_FG_OUT, RGB(0, 0, 0));
m_Button_Register.SizeToContent();
m_Button_Register.DrawTransparent(TRUE);
m_Button_Register.DrawBorder(FALSE, FALSE);
m_Button_Register.SetBtnCursor(IDC_CURSOR1);
#if defined(__LANG_ENG_USA) || defined(__LANG_ENG_USATEST) || defined(__LANG_GER) || defined(__LANG_FRA) || defined(__LANG_POR)
m_Button_Register.ShowWindow(SW_SHOW);
#else
m_Button_Register.ShowWindow(SW_HIDE);
#endif
// static
//#if defined(__LANG_THAI) //Background Image 교체로 Font Color 변경
COLORREF cr = RGB( 0,0,0 );
//.........这里部分代码省略.........
示例10: Init
BOOL CProcessLauncher::Init()
{
bool bStartWait, bHeartbeat;
bStartWait = bHeartbeat = false;
CScanner s;
if( s.Load( "launcher.ini" ) == FALSE)
return FALSE;
s.GetToken();
while( s.tok != FINISHED )
{
if( s.Token == "lpAddr" )
{
s.GetToken(); // =
s.GetToken();
strcpy( m_lpAddr, s.Token );
}
else if( s.Token == "lpApplicationName" )
{
s.GetToken(); // =
s.GetToken();
strcpy( m_lpApplicationName, s.Token );
SetConsoleTitle( m_lpApplicationName );
}
else if( s.Token == "lpCurrentDirectory" )
{
s.GetToken(); // =
s.GetToken();
strcpy( m_lpCurrentDirectory, s.Token );
}
else if( s.Token == "dwId" )
{
s.GetToken(); // =
m_dwId = (DWORD)s.GetNumber();
}
else if( s.Token == "DeadlockCheck" )
{
s.GetToken(); // =
m_dwMilliseconds = (DWORD)s.GetNumber();
bHeartbeat = true;
}
else if( s.Token == "bWait" )
{
s.GetToken(); // =
bStartWait = (bool)(s.GetNumber() != 0);
}
else if( s.Token == "lpDownDirectory" )
{
s.GetToken(); // =
s.GetToken();
//m_uploader.SetDownDirectory( s.Token );
strcpy( m_lpDownDirectory, s.Token );
}
s.GetToken();
}
if( bStartWait && bHeartbeat )
{
AfxMessageBox( "INVALID CONDITION - bWait AND bHeartbeat must be exclusive" );
return FALSE;
}
m_bStartWait = bStartWait;
if( bStartWait || bHeartbeat )
{
char lpName[32];
sprintf( lpName, "%d", GetAppID() );
m_hEvent = CreateEvent( NULL, FALSE, FALSE, lpName ) ;
if( m_hEvent == FALSE )
{
char szBuffer[128];
sprintf( szBuffer, "CreateEvent ERROR:%d", GetLastError() );
AfxMessageBox( szBuffer );
return FALSE;
}
}
return TRUE;
}
示例11: main
int main() {
std::list<std::string> program_list;
std::list<std::string>::const_iterator itrTest;
CScanner scanner;
Parser parsing;
program_list.push_back(std::string("a=b+3.14156 - 7.8182;$"));
program_list.push_back(std::string("a=c*b-d;$"));
program_list.push_back(std::string("a=c+b$"));
program_list.push_back(std::string("if (a>6) then a=c*(b-d); else b=10; fi;$"));
program_list.push_back(std::string("a=c+b*d;$"));
program_list.push_back(std::string("a=(c+b)*d;$ "));
program_list.push_back(std::string("if (a>6) then a=c*(b-d); fi;$"));
program_list.push_back(std::string("if (a>6) then if (b < a) then a=c*(b-d); else b=10; fi;$"));
program_list.push_back(std::string("if (a>6) then if (b < a) then a=c*(b-d); fi; else b=10; fi;$"));
program_list.push_back(std::string("a=(c+b)*d;$"));
program_list.push_back(std::string("if (a>6) then if (b < a) then a=c*(b-d); else b=10; fi; else c=b*2; fi;$"));
program_list.push_back(std::string("a=(c+b)*d ; b=a-e*t;$"));
program_list.push_back(std::string("a=1+b$"));
program_list.push_back(std::string("b=[1.0,2.1;3.5,4.6];$"));
program_list.push_back(std::string("b =[1.0e-1,4.2e-1;1.0e+2,1.0e-0];$"));
program_list.push_back(std::string("y=[1,2,3];$"));
program_list.push_back(std::string("x1=[1;2;3;4];$"));
program_list.push_back(std::string("1=[1;2;3;4];$"));
program_list.push_back(std::string("h=]1;2;3;4];$"));
program_list.push_back(std::string("h=[1,2;3,4]+[4,3;2,1];$"));
program_list.push_back(std::string("h=[1,2;3,4]-[6,5,4;3,2,1];$"));
program_list.push_back(std::string("h=[1,2;3,4]*[6,5,4;3,2,1];$"));
program_list.push_back(std::string("o=[1;2;3;4]; $"));
program_list.push_back(std::string("z=[1,2,3,4,5,6,7,8;1,2,3,4,5,6,7,8];$"));
program_list.push_back(std::string("t=[1,2,Abc;3,4,5];$"));
program_list.push_back(std::string("xy=[1,2,3;1,2];$"));
program_list.push_back(std::string("d=[];$"));
program_list.push_back(std::string("e=[1.e2,.2];$"));
program_list.push_back(std::string("=$[2.0]"));
program_list.push_back(std::string("z=[1,,2];$"));
program_list.push_back(std::string("u=[1;;2];$"));
itrTest = program_list.begin();
while(itrTest != program_list.end())
{
try
{
cout << *itrTest << endl;
scanner.generate_token_list(*itrTest);
// now scanner should contain a list of lexemes ready for parsing
parsing.parse(scanner.get_token_list());
cout << "\nA New Program\n\n";
}
catch (CSignal e)
{
cout << e.get_message() << endl; // Get the message
}
itrTest++;
}
return (SUCCESSFUL);
}
示例12: Script
BOOL Script( LPCSTR lpszFileName )
{
g_eLocal.SetState( EVE_RESPAWN, 1 );
CScanner s;
if( s.Load( lpszFileName ) == FALSE)
{
Error("Fail to open file - %s", lpszFileName );
return FALSE;
}
s.GetToken();
while( s.tok != FINISHED )
{
if( s.Token == "ResourceFolder" )
{
s.GetToken();
if( !SetCurrentDirectory( s.Token ) )
{
Error( "Folder not found, %s", s.Token );
return FALSE;
}
}
else if( s.Token == "Key" )
{
g_uKey = (DWORD)s.GetNumber();
#ifdef __S8_SERVER_PORT
g_uIdofMulti = g_uKey % 100;
#else // __S8_SERVER_PORT
g_uIdofMulti = g_uKey / 100;
#endif // __S8_SERVER_PORT
}
else if( s.Token == "Core" )
{
s.GetToken();
strcpy( g_szCoreAddr, s.Token );
}
else if( s.Token == "DB" )
{
s.GetToken();
strcpy( g_szDBAddr, s.Token );
}
else if( s.Token == "Account" )
{
s.GetToken();
/*
#ifdef __GIFTBOX0213
lstrcpy( s_szAccountAddr, s.Token );
#endif // __GIFTBOX0213
*/
}
else if( s.Token == "Heartbeat" )
{
s.GetToken();
strcpy( g_sHeartbeat, s.Token );
}
else if( s.Token == "18" )
{
g_eLocal.SetState( EVE_18, 1 ); // 18세 서버
}
else if( s.Token == "PK" )
{
g_eLocal.SetState( EVE_PK, 1 );
}
else if( s.Token == "PKCOST" )
{
g_eLocal.SetState( EVE_PKCOST, 1 );
}
else if( s.Token == "STEAL" )
{
g_eLocal.SetState( EVE_STEAL, 1 );
}
else if (s.Token == "GUILDBANK")
{
g_eLocal.SetState( ENABLE_GUILD_INVENTORY, 1 );
}
else if( s.Token == "GUILDWAR" )
{
g_eLocal.SetState( EVE_GUILDWAR, 1 );
}
else if( s.Token == "DROPITEM_REMOVE" )
{
g_eLocal.SetState( EVE_DROPITEMREMOVE, 1 );
}
else if( s.Token == "SCHOOL" )
{
//g_eLocal.SetState( EVE_SCHOOL, 1 );
}
else if( s.Token == "GUILDCOMBAT")
{
g_eLocal.SetState( EVE_GUILDCOMBAT, 1 );
}
else if( s.Token == "WORMON" )
{
g_eLocal.SetState( EVE_WORMON, 1 );
}
else if( s.Token == "respawn" )
{
g_eLocal.SetState( EVE_RESPAWN, (BYTE)s.GetNumber() );
}
//.........这里部分代码省略.........
示例13: Script
BOOL Script( LPCSTR lpszFileName )
{
CScanner s;
CServerDesc* pServer;
POINT topLeft;
SIZE size;
if( s.Load( lpszFileName ) )
{
g_MyTrace.AddLine( '-' );
s.GetToken();
while( s.tok != FINISHED )
{
if( s.Token == "Sys" )
{
g_dwSys = s.GetNumber();
}
else if( s.Token == "dwId" )
{
g_dwId = s.GetNumber();
}
else if( s.Token == "Database" )
{
s.GetToken();
strcpy( szDataBaseAddr, s.Token );
}
else if( s.Token == "Certifier" )
{
s.GetToken();
strcpy( szCertifierAddr, s.Token );
}
else if( s.Token == "TEST" )
{
s_bTest = TRUE;
}
else if( s.Token == "PartyExpRate" )
{
s_fPartyExpRate = s.GetFloat();
}
else
{
pServer = new CServerDesc;
u_long uKey = (u_long)_ttoi( s.Token );
pServer->SetKey( uKey );
if( s.GetToken() == DELIMITER )
{
while( s.GetToken() != DELIMITER )
{
CJurisdiction* pJurisdiction = new CJurisdiction;
pJurisdiction->m_dwWorldID = (DWORD)_ttoi( s.Token );
topLeft.x = s.GetNumber(); topLeft.y = s.GetNumber();
size.cx = s.GetNumber(); size.cy = s.GetNumber();
pJurisdiction->m_rect.SetRect( topLeft.x, topLeft.y, topLeft.x + size.cx, topLeft.y + size.cy );
pJurisdiction->m_wLeft = s.GetNumber(); pJurisdiction->m_wRight = s.GetNumber();
pServer->m_lspJurisdiction.push_back( pJurisdiction );
}
}
#ifdef __STL_0402
bool bResult = g_dpCoreSrvr.m_apSleepServer.insert( CServerDescArray::value_type( pServer->GetKey(), pServer ) ).second;
ASSERT( bResult );
#else // __STL_0402
g_dpCoreSrvr.m_apSleepServer.SetAt( pServer->GetKey(), pServer );
#endif // __STL_0402
g_MyTrace.Add( pServer->GetKey(), TRUE, "%04d", pServer->GetKey() );
}
s.GetToken();
}
g_MyTrace.AddLine( '-' );
return TRUE;
}
Error( "Can't open file, %s.\n", lpszFileName );
return FALSE;
}
示例14: processFile
void CSourceFilesProcessor::processFile( const std::string& fileName )
{
file.open( fileName );
scanner.SetFileName( fileName );
if( file.good() ) {
for( char c; file.get( c ); ) {
scanner.AddChar( c );
}
if( scanner.ErrorSeverity() != ES_FatalError ) {
scanner.AddEndOfFile();
}
} else {
scanner.RaiseError( ES_FatalError, "no such file" );
}
scanner.ResetFileName();
file.close();
}