Rewrote core algebraic parser

Added trivial float support
Added local labels and vastly improved label support
Fixed some crash bugs
This commit is contained in:
David Anderson
2004-08-11 08:14:54 +00:00
parent 74d278d1c6
commit 7acc70ee62
15 changed files with 444 additions and 185 deletions

View File

@ -47,7 +47,7 @@ DataMngr::Datum::Datum()
fill = 0;
}
void DataMngr::Add(std::string &s, CExpr &expr, bool db, char fill)
void DataMngr::Add(std::string &s, CExpr &expr, bool db, int fill)
{
DataMngr::Datum *D = new DataMngr::Datum();
@ -63,7 +63,7 @@ void DataMngr::Add(std::string &s, CExpr &expr, bool db, char fill)
size = ((D->e.GetType() == Val_Number) ?
cellsize : D->e.Size() * cellsize);
} else {
size = D->e.GetNumber();
size = (D->e.GetNumber() * cellsize);
}
if (List.size() == 0)
@ -77,7 +77,7 @@ void DataMngr::Add(std::string &s, CExpr &expr, bool db, char fill)
((p->e.GetType() == Val_Number) ?
cellsize : p->e.Size() * cellsize);
} else {
D->offset = p->offset + p->e.GetNumber();
D->offset = p->offset + (p->e.GetNumber() * cellsize);
}
}