示例#1
0
static int pdecl (int *lvnp) {
    int di, si, i;

    di = Cnew (C_DECL);
    if (Ltok != L_ID) {
        Csetfp (di, C_NULL);
        return di;
    }
    si = Cstring (Lstrtok);
    addlv (si, (*lvnp)++);
    Csetfp (di, si);
    i = si;
    Lgtok ();
    if (Ltok != L_COMMA)
        return di;
    Lgtok ();
    while (Ltok == L_ID) {
        si = Cstring (Lstrtok);
        addlv (si, (*lvnp)++);
        Lgtok ();
        Csetnext (i, si);
        i = si;
        if (Ltok == L_COMMA) {
            Lgtok ();
            if (Ltok != L_ID)
                err ("expected identifier, found %s", Lnames[Ltok]);
        }
    }
    return di;
}
示例#2
0
void	CLocalVariable::Make(const wchar_t *name, const CValue &value)
{
	CVariable	addlv(name);
	addlv.v = value;
	stack[depth].substack.push_back(addlv);
}
示例#3
0
void	CLocalVariable::Make(const wstring &name)
{
	CVariable	addlv(name);
	stack[depth].substack.push_back(addlv);
}
示例#4
0
void	CLocalVariable::Make(const wstring &name, const wstring &delimiter)
{
	CVariable	addlv(name);
	addlv.delimiter = delimiter;
	stack[depth].substack.push_back(addlv);
}
示例#5
0
void	CLocalVariable::Make(const wstring &name, const CValueSub &value)
{
	CVariable	addlv(name);
	addlv.v = value;
	stack[depth].substack.push_back(addlv);
}