summaryrefslogtreecommitdiff
path: root/cpp/include/Slice/Parser.h
Commit message (Collapse)AuthorAge
...
* - Fixed a bug in the code generator for dictionaries with class values.Michi Henning2003-05-19
| | | | | | | | | - Added more support for Java slicing. - Changed config/Make.rules: "make depend" was calling slice2cpp with ICECPPFLAGS, not SLICE2CPPFLAGS. This meant that "make depend" was invoking slice2cpp with options that were potentially different from those passed for normal compilation of slice files, which could lead to inconsistencies.
* Merged HEAD and slicing trees.Michi Henning2003-05-08
|
* Macro reorg/cleanupBernard Normier2003-04-17
|
* dict fixMarc Laukien2003-03-25
|
* more compat fixesMarc Laukien2003-02-23
|
* version update; date changeMarc Laukien2003-02-04
|
* added amiMarc Laukien2002-11-27
|
* fixed copyright dateMarc Laukien2002-11-06
|
* changing copyright location; adding GPL noteMark Spruiell2002-10-28
|
* changing Mutable Realms to ZeroCMark Spruiell2002-10-26
|
* Added --case-sensitive option.Michi Henning2002-09-17
|
* Fixed incorrect diagnostic if a structure contained itself: the name of theMichi Henning2002-09-11
| | | | | | | | | | member appeared in the error message instead of the name of the type of the member. Changed semantic check for introduced types to be more stringent: it is now case-insensitive. Previously, we were incorrectly allowing the following: sequence<int> IS; struct x { IS is; };
* fixesMarc Laukien2002-09-04
|
* Changed Current.ice to use enum OperationMode to distinguish betweenMichi Henning2002-09-04
| | | | | | | | | Normal, Nonmutating, and Idempotent operations. Fixed bug introduced into Freeze with previous changes for saving object state. (State wasn't saved for idempotent operations.) Retested everything. I'm getting a failure in the Yellow (C++) tests, and another failure in the IceBox (Java) tests, but I don't think these are related to these changes.
* Fixed duplicate code generation for include Slice files. Fault toleranceMichi Henning2002-08-23
| | | | | | tests work now -- the idempotent problem disappeared magically by itself :-( Possibly, I didn't have everything compiled consistently or some such :-(
* Added changes for idempotent.Michi Henning2002-08-22
|
* Changed nonmutating from metadata do keyword.Michi Henning2002-08-12
|
* Changed Slice parser to disallow leading underscore for identifiers.Michi Henning2002-07-25
| | | | | | | | Changed Slice parser to reject identifiers beginning with "Ice", unless the --ice option is used. Changed Slice parser to disallow identifiers that have a trailing "Operations", "Holder", "Helper", "Prx", or "Ptr", to avoid clashes with language mappings. Fixed tests and remaining code base to work correctly with the changed rules.
* Added sanity checks for local types, so a non-local interface can't have anMichi Henning2002-07-22
| | | | operation with local parameters, etc.
* General tidy-up. Fixed a TODO item, removed hack to retain backwardsMichi Henning2002-07-18
| | | | | | | | | compatibility for semicolon syntax for out parameters, removed unused printError parameters, move error reporting for changes in meaning from Grammar.y to Parser.cpp, removed one erroneous createClassDecl call that caused an assertion failure if a non-existent class name was used in a parameter declaration, improved diagnostics for parameters that are out of order, fixed tests to match new output.
* Updated slice parser to put parameter declarations into their own scope.Michi Henning2002-07-17
| | | | | | | | | | | | | | | | | | | | | | That way, we can check whether meaning changes as identifiers are introduced into parameter declarartions. Changes were quite extensive because one thing dragged another behind it... Got rid of some of the pesky parse errors caused by returning zero from some creation operations. In general, it seems easier to, whenever possible, to create a dummy instance of something that doesn't quite parse or doesn't quite get through a semantic check. This avoids calling YYERROR, which can make a big mess of the scope stack. (I got stuck on this for quite a long time before I figured out what was going on.) Took the opportunity to get rid of the awkward parsing for parameter lists. We now have only a single parameters non-terminal, which simplifies things (and also got rid of the one remaining shift/reduce conflict in the grammar). Updated all the code generators to work with the new structure for the syntax tree. Kept a rather ugly hack in Grammar.y to still permit use of semicolons to indicate out params. This will go with stable_39, so I don't mind that it's ugly for now.
* Added sanity checks to make sure that the meaning of an identifier doesn'tMichi Henning2002-07-16
| | | | | | | | | change halfway through a scope. This all works now, except for operations because, currently, parameter lists are not in their own scope (but they have to be). Will add that tomorrow. Also want to improve diagnostics to show, if an identifier changes meaning, where it was introduced with different meaning.
* Refactored the error checks for multiple inheritance, constant defintions,Michi Henning2002-07-15
| | | | | | | | | | | and dictionary definitions: the check is now down as a static member function of the respective types, instead of being inside Contained, before the type is created. Ideally, Contained shouldn't be calling new directly. Instead, each type should provide a static factory operation to create a new instance, and all the semantic checks should happen inside that factory. I haven't changed anything along those lines though -- want to talk to Marc first. This is quite an interesting design problem...
* Changed dictionaries to only allow key types that are integral types orMichi Henning2002-07-12
| | | | | strings, or sequences and structs that only contain integral types or strings.
* added spaceMarc Laukien2002-07-09
|
* Style fixes: Changed INT64MIN and INT64MAX to Int64Min and Int64Max.Michi Henning2002-07-08
| | | | | | | | Moved the definitions of Int64, Int64Min, and Int64Max into IceUtil/Config.h. Updated scanner and parser to use the new constant names. Also applied style fixes to parser: INT16MIN -> Int16Min, BYTEMIN -> ByteMin, etc. Changed Time.h and Time.cpp to use the Int64 type from IceUtil/Config.h.
* Changed parser to use new strToInt64() function. Makes for much cleanerMichi Henning2002-07-08
| | | | code.
* Move the ICE_INT64_LITERAL macro into its own header file (Ice/Const.h).Michi Henning2002-07-05
| | | | | That was cleaner than polluting the generated files with the macro definition over and over...
* Added enumerator for ConstDef::contained() (ContainedTypeConstant) toMichi Henning2002-07-05
| | | | ContainedType.
* Changed the way 64-bit literals are done in the generated code. TheMichi Henning2002-07-05
| | | | | approach used now (a macro) makes the generated source more readable than the previous one.
* Added "i64" suffix for 64-bit integer literals.Michi Henning2002-07-05
|
* Constant definitions for Slice are complete now. (Code generation for C++Michi Henning2002-07-05
| | | | | | | | | | | | | | | | | | | | | | only.) I couldn't avoid adding a few #ifdefs because of the different 64-bit integer APIs across Linux and Windows. (#including config.h wasn't an option because that would have created a circular dependency between Ice and Slice.) Added sufficient test cases to convince myself that things actually work as intended. Will compile under Windows now, so bear with me if things are broken under Windows for a few minutes... Some things that aren't quite right yet: - No support for universal character names (\uxxxx) - gcc appears to have a preprocessor bug. For example, preprocessing a file containing a single '@' character just echos that '@' character to the output. According to the C++ spec, '@' should be translated to its universal character name (because it isn't part of the basic C++ source character set). - Why is the Slice string type mapped to std::string? Given that we are supposed to support unicode for everything, shouldn't that be mapped to std::wstring? Once Windows compiles OK, I'll start on the Java code generation.
* More work on constant definitions. For C++, code is generated now (notMichi Henning2002-07-03
| | | | | | | | quite correct yet for enums and long long). The other code generators (java, xsl, etc.) ignore constants for now. Semantic checks are in place, apart from enums. Still more work to do -- this is just an intermediate check-in. (About to test this on Windows too...)
* Added case-insensitive checks for ambiguous multiple inheritance. CICompareMichi Henning2002-07-01
| | | | | | now lives in Parser.cpp because it is used by both the parser and the scanner. Applied a few style fixes.
* fixMarc Laukien2002-06-26
|
* const correctnessMarc Laukien2002-06-26
|
* fixesMarc Laukien2002-06-26
|
* Added case-insensitive identifiers. For now, just a warning is issued. WithMichi Henning2002-06-26
| | | | | | | | stable_39, it will be a hard error. Fixed Marc's review comments about style. Made many member functions in Parser.cpp const. Still need to look at why we get problems with IceUtil::dynamicCast if certain member functions are made const.
* Added checks to disallow definition of a name in a derived class/interfaceMichi Henning2002-06-24
| | | | | | | | | | | | | | | | | if that name is already defined in one of the base classes/interfaces. Added checks to disallow ambiguous multiple inheritance. The following (and many variations thereof) is illegal: interface A { void op(); }; interface B { long op(string s); }; interface C { void op(); }; interface D1 extends A, B { // Ambiguous multiple inheritance // ... }; interface D2 extends A, C { // Ambiguous multiple inheritance // ... }; Someone checked in a DOS-line ending file for Parser.h and Parser.cpp, so the CVS up-to-date check failed and the diff obviously produced a lot of noise. I think I merged everything correctly. There were a few places where the style had changed, from "if(..." to "if (..." (and similar for "while(...", and "for(...". The style guide says to use a space before the parenthesis, so that's how I left things.
* removed spaces after keywordsMarc Laukien2002-06-23
|
* FixesMarc Laukien2002-05-13
|
* added members to object, facet, and operation not exist exceptionsMarc Laukien2002-04-19
|
* WIN32->_WIN32Marc Laukien2002-04-10
|
* fixed hyperlink problemMarc Laukien2002-04-09
|
* removed RequestQueue; bison fixMarc Laukien2002-03-25
|
* fixes for new bisonMarc Laukien2002-03-22
|
* dependencies() for Slice parserMarc Laukien2002-02-07
|
* minor changeMarc Laukien2002-01-26
|
* removed nonmutating as keywordMarc Laukien2002-01-25
|
* metadataMarc Laukien2002-01-23
|