RCS HISTORY: History: $Log: astnode
RCS HISTORY: History: $Log: astnode.h,v $ Revision 2.1 1999/04/28 02:29:00 madings Made the searchByTag and searchByTagValue functions case-insensitive for tag-names, datablock names, and saveframe names (but not data values). Revision 2.0 1999/01/23 03:34:33 madings Since this new version compiles on multiple platforms(well, okay, 2 of them), I thought it warranted to call it version 2.0 Revision 1.12 1999/01/22 23:58:28 madings Golly, where should I begin? Okay, There was a port to linux being done in this version, which in turn meant a port to egcs instead of making code that can only compile on a CFront style compiler like SGI uses. This port meant a lot of tiny changes all over the place to accomodate the differences in the way templates get linked. Also, a bug was discovered in the way rows were deleted in the LoopTableNode's erase() operator. The bug was there all along and it surfaced as part of the portation (what was just bad data in SGI was causing coredumps in Linux.) Hopefully now that it compiles under egcs, it will be much more portable and I can begin getting it out to the public. Revision 1.11 1998/10/08 03:45:38 madings Two changes: 1 - Most signifigant change is that the library now has doc++ comments in it. 2 - Also, changed so that when using the copy constructor, it remembers line numbers and column numbers in the newly copied tree (I hope, this is untested.) Revision 1.10 1998/09/08 00:39:22 madings My previous fix to the parsing of semicolon delimited strings broke the line count, which zhaohua showed me. This has been corrected in this version. (Also, irrelevant changes to comments in astnode.h that don't affect anything are also in this commital) Revision 1.9 1998/09/04 07:02:06 madings There were several bug fixes with this version. However, the erasing probably still needs some work. Revision 1.8 1998/08/29 08:46:04 madings This one was a rather large change. I haven't finished documenting and testing all of it, so expect another revision or two soon. This revision creates a new way of dealing with loops. Now the caller can use the loops like 2-D vectors, but with some extra magic behind the scenes to ensure that no insertions or deletions that can leave the tree in an invalid state will be allowed. (For example, you cannot remove a value from the loop without also removing the tagname for it and all the other values in that column.) Also in this revision is a fix to the previous revision's method of making List and ASTlist be wrappers around STL vector. The previous version of the library broke when the STL library decided to move the vector to a new location in memory (realloc), and the myCurrent interator became invalid. Now myCurrent is an integer index offset instead, so it moves with the vector. Also in this revision are some fixes to a longstanding problem that made the library incapable of parsing nested loops unless the nested loops were fully populated. (In other words if an inner loop for any row was null, because the input file simply has a "stop_" and no data for the inner loop, it used to crash on that.) Now it works and empty inner loops are represented to the caller as null pointers (so don't blindly follow inner loop pointers that are handed to you - check them first.) Note that this marks my first attempt to make a class that implements the STL vector interface, so I expect to find some bugs to fix in the next revision or two. There's some strange C++ "magic" going on here to get this to work. Revision 1.7 1998/08/21 02:00:20 informix Fixed some lex rules so that it handles semicolon strings better. ( It used to not parse this example: ; This value has some text on the same line as the starting semicolon. ; ) Revision 1.6 1998/07/17 01:41:30 madings Two changes related to Unparse() this revision: 1 - Added the ability to programtically insert comments with the get/setPreComment functions. 2 - Make Unparse() somewhat more sophisticated to handle formatting values so they line up with each other. Revision 1.5 1998/06/02 06:22:03 madings Made the yacc code that keeps track of lineNum/colNum a bit more sophisticated so that it shows the locations of the beginnings of the objects, not the ends of them. Also gave the base class 'ASTnode' a copy constructor that will copy the increasing number of variables that are being stored in astnode, like the lineNum/colNum. Revision 1.4 1998/05/29 06:51:16 madings Added the ability to search for all objects of a particular AST type. (i.e. all SaveFrameNodes, or all DataItemNodes, etc...) See the method called "searchForType()", which was added to do this. Revision 1.3 1998/05/25 07:15:15 madings Added preliminary support for keeping track of line numbers and column numbers from the parse. This way, programs reading the data can give the user actual line/column number references to things found in the STAR file. Revision 1.2 1998/05/08 20:27:24 informix Made a change to handle the C++ STL instead of gcc's libg++. Now all strings are of type 'string' instead of 'String' (notice the uppercase/lowercase change.) Applications using this library will have to change also, unfortunately, to use the new string style. Revision 1.1.1.1 1998/02/12 20:59:00 informix re-creation of starlib project, without sb_lib stuff. sb_lib has been moved to it's own project. Revision 1.1.1.1 1997/11/07 01:49:06 madings First check-in of starlib and sb_lib in library form. Revision 1.5 1997/10/25 02:59:26 madings 2 Things in this check-in: -1- "Parallel copy". Addded a new way to do a copy constructor such that it will copy with a parallel link back to the original tree it was copied from. Any node in either tree can refer to the corresponding node in the new tree. See "parallel.html" for more detail. -2- Bug fixes to copy constructors that did not properly deep-copy all the way down into the LoopIter values. Revision 1.4 1997/10/10 18:34:21 madings Changed DataValueNode so that it now no longer has subclasses for single-quote-delimited strings, double-quote delimited strings, semicolon-delimited strings, and so on. Now there is only one kind of DataValueNode, and it uses a flag to decide on the delimiter type. This also allows for the creation of methods to change a DataValueNode in place, which was not previously possible when different kinds of values had to be stored in different kinds of classes. Revision 1.3 1997/10/08 20:23:18 madings Added "searchForTypeByTag()" and "searchForTypeByTagValue()". (Also fixed bug where it would not find saveframes.) Revision 1.2 1997/09/16 22:03:19 madings Changed searchByTag() and searchByTagValue() so that they will return lists instead of returning single hits, and extended them to levels of the star tree above "saveframe" so it is now possible to use them on the whole star file. (Also changed the history log comments of several header files to use slash-star comment style instead of '//' style.)
alphabetic index hierarchy of classes
generated by doc++