예제 #1
0
//10.<赋值语句>—> id  =  <表达式> ;
void assignment(){
	char varname[MAXIDLEN];
	strcpy(varname, token);
	Val v2 = Val(1, GetIdByName(varname));

	match(id);
	if (!isexist(varname)){
		strcpy(token, varname);
		error(46);
	}
	
	match(equl);
	Val v = expression();

	match(semicolon);

	quadruples.push_back(Quadruple(sno++, equl, v, v2));
	//生成四元式
	/*printf("%3d (=,", sno++);
	if (v.type == 1) printf("%s", GetNameByID(v.value1));
	else if (v.type == 0) printf("%d", v.value1);
	else if (v.type == 2) printf("%lf", v.value2);
	else printf("t%d", v.value1);
	printf(",%s)\n", varname);*/
}
CUnitTypeData* CUnitDefLoader::GetUnitTypeDataByName(string name){

	//

	int id = GetIdByName(name);
	return GetUnitTypeDataById(id);


}
예제 #3
0
    void KUiFontManage::OnChange()
    {
        KG_PROCESS_ERROR(m_hWnd);
        KG_PROCESS_ERROR(m_hListWnd);
        KG_PROCESS_ERROR(m_pFontIni);

        int nValue = 0; 
        char szValue[32] = "";
        char szName[8] = "";
        
        sprintf(szName, "%d", m_nCurrentItemNum);
        ::GetDlgItemText(m_hWnd, IDC_WND_FONT_MANAGE_FONT_NAME, szValue, sizeof(szValue));

        int nOringalId = -1;
        if (GetIdByName(szValue, &nOringalId)) 
        {
            if (IsFontExist(szValue) && nOringalId != m_nCurrentItemNum) 
            {
                MessageBox(m_hWnd, "该字体已经存在", "更改失败", MB_OK | MB_ICONINFORMATION);
                KG_PROCESS_ERROR(0);
            }
        }

        m_pFontIni->WriteString(szName, "Name", szValue);
        ::GetDlgItemText(m_hWnd, IDC_WND_FONT_MANAGE_FONT_COLOR, szValue, sizeof(szValue));
        m_pFontIni->WriteString(szName, "Color", szValue);
        ::GetDlgItemText(m_hWnd, IDC_WND_FONT_MANAGE_FONT_BCOLOR, szValue, sizeof(szValue));
        m_pFontIni->WriteString(szName, "BorderColor", szValue);
		::GetDlgItemText(m_hWnd, IDC_WND_FONT_MANAGE_FONT_PCOLOR, szValue, sizeof(szValue));
		m_pFontIni->WriteString(szName, "ProjectionColor", szValue);

        nValue = ::GetDlgItemInt(m_hWnd, IDC_WND_FONT_MANAGE_FONT_SIZE, NULL, false);
        m_pFontIni->WriteInteger(szName, "Size", nValue);
        nValue = ::GetDlgItemInt(m_hWnd, IDC_WND_FONT_MANAGE_FONT_BSIZE, NULL, false);
        m_pFontIni->WriteInteger(szName, "BorderSize", nValue);
		nValue = ::GetDlgItemInt(m_hWnd, IDC_WND_FONT_MANAGE_FONT_PSIZE, NULL, false);
		m_pFontIni->WriteInteger(szName, "ProjectionSize", nValue);

        nValue = ::GetDlgItemInt(m_hWnd, IDC_WND_FONT_MANAGE_FONT_TYPE, NULL, false);
        m_pFontIni->WriteInteger(szName, "FontID", nValue);

        m_pFontIni->GetString(szName, "Name", "", szValue, sizeof(szValue));
        ListView_SetItemText(m_hListWnd, m_nCurrentItemNum, 0, szValue);
        m_pFontIni->GetString(szName, "Color", "", szValue, sizeof(szValue));
        ListView_SetItemText(m_hListWnd, m_nCurrentItemNum, 1, szValue);
        m_pFontIni->GetString(szName, "BorderColor", "", szValue, sizeof(szValue));
        ListView_SetItemText(m_hListWnd, m_nCurrentItemNum, 2, szValue);
		m_pFontIni->GetString(szName, "ProjectionColor", "", szValue, sizeof(szValue));
		ListView_SetItemText(m_hListWnd, m_nCurrentItemNum, 3, szValue);

    Exit0:
        return;

    }
/*
  ��������:Input(PlayerList pl,char *a)
  ��дʱ�䣺6.27
  ��д�ˣ��ƺ�ҫ
  �������ܣ���
  �������ܣ���������ת������
  */
int Input(PlayerList pl,char *a)
{
	int n;
	n=atoi(a);
	if(n<=0||n>MaxPlayer) n=GetIdByName(pl,a);
	if(strcmp("go",a)==0) n=300;
	else if(strcmp("logout",a)==0)  n=400;
	else if(strcmp("query",a)==0)  n=500;
	else if(strcmp("help",a)==0)  n=600;
	else if(strcmp("history",a)==0)  n=700;
	else if(strcmp("Adminstrator",a)==0)  n=800;
	return n;
}
예제 #5
0
//17.<因子>—> id | con | deci | (<表达式>)
Val Factor(){
	Val val;
	if (lookahead == id){
		
		val.type = 1;//变量
		
		char varname[MAXIDLEN];
		strcpy(varname, token);
		match(id);
		if (!isexist(varname)){
			strcpy(token, varname);
			error(46);
		}
		val.value1 = GetIdByName(varname);
	}
	else if (lookahead == con){
		
		val.type = 0;//整数
		val.value1 = atoi(token);

		match(con);
	}
	else if (lookahead == deci){

		val.type = 2;//小数
		val.value2 = atof(token);

		match(deci);
	}
	else if (lookahead == LP){
		match(LP);

		val = expression();
		
		match(RP);

		
	}
	else {
		error(24);
	}
	return val;
}