mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-07-11 22:03:01 -06:00
cpp: Fixed issues with .sch #902
git-svn-id: svn://ultimatepp.org/upp/trunk@8551 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
46906dc95b
commit
a93d479fed
1 changed files with 37 additions and 4 deletions
|
|
@ -1,9 +1,16 @@
|
|||
#include "Browser.h"
|
||||
|
||||
String ReadId(CParser& p, String& rr)
|
||||
String SchId(CParser& p, String& rr)
|
||||
{
|
||||
p.Char('(');
|
||||
String id = p.ReadId();
|
||||
rr << "SqlId " << id << "(\"" << id << "\");";
|
||||
return id;
|
||||
}
|
||||
|
||||
String ReadId(CParser& p, String& rr)
|
||||
{
|
||||
String id = SchId(p, rr);
|
||||
p.Char(',');
|
||||
if(p.IsNumber())
|
||||
p.ReadNumber();
|
||||
|
|
@ -11,7 +18,6 @@ String ReadId(CParser& p, String& rr)
|
|||
if(p.IsNumber())
|
||||
p.ReadNumber();
|
||||
p.Char(')');
|
||||
rr << "SqlId " << id << "(\"" << id << "\");";
|
||||
return id;
|
||||
}
|
||||
|
||||
|
|
@ -27,12 +33,39 @@ Vector<String> PreprocessSchFile(const char *fn)
|
|||
try {
|
||||
line = p.GetLine();
|
||||
if(p.Id("TABLE") || p.Id("TABLE_") || p.Id("TYPE") || p.Id("TYPE_")) {
|
||||
S_name = "S_" + ReadId(p, rr);
|
||||
S_name = "S_" + SchId(p, rr);
|
||||
r << "struct " << S_name << " {";
|
||||
}
|
||||
else
|
||||
if(p.Id("TABLE_I") || p.Id("TABLE_I_") || p.Id("TYPE_I") || p.Id("TYPE_I_")) {
|
||||
S_name = "S_" + SchId(p, rr);
|
||||
p.Char(',');
|
||||
String S_base = "S_" + p.ReadId();
|
||||
r << "struct " << S_name << " : " << S_base << " {";
|
||||
}
|
||||
else
|
||||
if(p.Id("TABLE_II") || p.Id("TABLE_II_") || p.Id("TYPE_II") || p.Id("TYPE_II_")) {
|
||||
S_name = "S_" + SchId(p, rr);
|
||||
p.Char(',');
|
||||
String S_base = "S_" + p.ReadId();
|
||||
p.Char(',');
|
||||
String S_base2 = "S_" + p.ReadId();
|
||||
r << "struct " << S_name << " : " << S_base << ", " << S_base2 << " {";
|
||||
}
|
||||
else
|
||||
if(p.Id("TABLE_III") || p.Id("TABLE_III_") || p.Id("TYPE_III") || p.Id("TYPE_III_")) {
|
||||
S_name = "S_" + SchId(p, rr);
|
||||
p.Char(',');
|
||||
String S_base = "S_" + p.ReadId();
|
||||
p.Char(',');
|
||||
String S_base2 = "S_" + p.ReadId();
|
||||
p.Char(',');
|
||||
String S_base3 = "S_" + p.ReadId();
|
||||
r << "struct " << S_name << " : " << S_base << ", " << S_base2 << ", " << S_base3 << " {";
|
||||
}
|
||||
else
|
||||
if(p.Id("END_TABLE") || p.Id("END_TYPE"))
|
||||
r <<
|
||||
r << "\t"
|
||||
"static const char TableName[];"
|
||||
"static const SqlSet& ColumnSet();"
|
||||
"static SqlSet ColumnSet(const String& prefix);"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue