MemberInit init;
for(init = def.defProperties->first; init; init = init.next)
{
- Class oldThisClass = thisClass;
+ //Class oldThisClass = thisClass;
ProcessMemberInit(init);
}
break;
ProcessStatement(def.propertyWatch.compound);
}
break;
+ case classPropertyValueClassDef:
+ if(def.initializer)
+ ProcessInitializer(def.initializer);
+ break;
}
}
}
if(tableStatements)
{
Statement databaseOpenStmt = MkCompoundStmt(MkList(), MkList());
- Statement compound, compound2;
+ Statement compound/*, compound2*/;
Statement ifDBStmt;
OldList * args;
char numIndexesString[16];
MkListOne(MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("db")), null))));
// bool createNow = false;
- databaseOpenStmt.compound.declarations->Add(MkDeclaration(MkListOne(MkSpecifierName("bool")),
- MkListOne(MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("createNow")), MkInitializerAssignment(MkExpIdentifier(MkIdentifier("false")))))));
+ /*databaseOpenStmt.compound.declarations->Add(MkDeclaration(MkListOne(MkSpecifierName("bool")),
+ MkListOne(MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("createNow")), MkInitializerAssignment(MkExpIdentifier(MkIdentifier("false")))))));*/
// static bool initialized = false;
args = MkList();
args->Add(MkExpIdentifier(MkIdentifier("create")));
compound.compound.statements->Add(MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier("db")), '=',
MkExpCall(MkExpMember(exp.dbopen.ds, MkIdentifier("OpenDatabase")), args)))));
- compound.compound.statements->Add(MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier("createNow")), '=',
- MkExpIdentifier(MkIdentifier("true"))))));
+ /*compound.compound.statements->Add(MkExpressionStmt(MkListOne(MkExpOp(MkExpIdentifier(MkIdentifier("createNow")), '=',
+ MkExpIdentifier(MkIdentifier("true")))));*/
exp.dbopen.name = null;
exp.dbopen.ds = null;
}
break;
}
+ case classPropertyValueClassDef:
+ if(def.initializer)
+ ProcessInitializer(def.initializer);
+ break;
case functionClassDef:
ProcessClassFunction(def.function);
break;
}
}
-static int curSymbolID = 0;
-
static void ProcessDBTable(DBTableDef table)
{
OldList * rowClassDefs = MkList(), * idClassDefs = null;
char nameField[1024];
OldList * args;
OldList * members;
- int symbolID = curSymbolID; //MAXINT; //globalContext.nextID++;
if(table.symbol)
idClassDefs = MkList();
inheritanceSpecs->Add(MkSpecifier(PRIVATE));
inheritanceSpecs->Add(MkSpecifierName("Row"));
PushContext();
- _class = MkClass(DeclClass(globalContext.nextID++, rowClassName), inheritanceSpecs, rowClassDefs);
+ _class = MkClass(DeclClass(null, rowClassName), inheritanceSpecs, rowClassDefs);
PopContext(curContext);
def = MkClassDefDefaultProperty(MkListOne(MkMemberInitExp(MkExpIdentifier(MkIdentifier("tbl")), MkInitializerAssignment(MkExpIdentifier(MkIdentifier(tableID))))));
rowClassDefs->Add(def);
- _class.symbol.idCode = symbolID;
_class.declMode = table.declMode;
external = MkExternalClass(_class);
ast->Insert(addAfter, external);
def = MkClassDefProperty(MkProperty(
CopyList(entry.dataType.qualifiers, CopySpecifier), CopyDeclarator(entry.dataType.declarator),
MkIdentifier(name), rowSet, null));
- def.propertyDef.symbol.id = def.propertyDef.symbol.idCode = symbolID;
def.propertyDef.isDBProp = true;
def.memberAccess = publicAccess;
rowClassDefs->Add(def);
curContext = globalContext;
def = MkClassDefProperty(MkProperty(CopyList(entry.dataType.qualifiers, CopySpecifier), entry.dataType.declarator, CopyIdentifier(entry.id), rowSet, rowGet));
- def.propertyDef.symbol.id = def.propertyDef.symbol.idCode = symbolID;
def.propertyDef.isDBProp = true;
def.memberAccess = publicAccess;
rowClassDefs->Add(def);
ClassDef def;
Expression exp;
- // table.symbol.id = table.symbol.idCode = globalContext.nextID++;
PushContext();
_class = MkClass(table.symbol, MkListOne(MkSpecifierName("Id")), idClassDefs);
PopContext(curContext);
def = MkClassDefProperty(MkProperty(
CopyList(entry.dataType.qualifiers, CopySpecifier), CopyDeclarator(entry.dataType.declarator),
CopyIdentifier(entry.id), idSet, idGet));
- def.propertyDef.symbol.id = def.propertyDef.symbol.idCode = symbolID;
def.propertyDef.isDBProp = true;
def.memberAccess = publicAccess;
idClassDefs->Add(def);
if(inCompiler)
PrePreProcessClassDefinitions();
- DeclClass(0, "Field");
- DeclClass(0, "Table");
- DeclClass(0, "Row");
- DeclClass(0, "Id");
+ DeclClass(null, "Field");
+ DeclClass(null, "Table");
+ DeclClass(null, "Row");
+ DeclClass(null, "Id");
numIndexes = 0;
if(ast != null)
{
{
curExternal = external;
- if(external.symbol) curSymbolID = external.symbol.idCode;
addAfter = external.prev;
switch(external.type)
{
{
curExternal = external;
- if(external.symbol) curSymbolID = external.symbol.idCode;
addAfter = external.prev;
switch(external.type)