summaryrefslogtreecommitdiff
path: root/cpp/src/Slice/Parser.cpp
Commit message (Collapse)AuthorAge
...
* Attended to TODO items for stable_39.Michi Henning2002-08-01
|
* 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.
* fixed leakMarc Laukien2002-07-18
|
* Removed a left-behind trace statement.Michi Henning2002-07-18
|
* 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...
* Tidied up a few TODO items.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...)
* Fixed over-zealous case-insensitivity check lookupTypeNoBuiltin,Michi Henning2002-07-02
| | | | lookupContained, and lookupException.
* Added additional check to make sure that no exception is mentioned moreMichi Henning2002-07-01
| | | | | | than once in a throws clause. Fixed a bug in the exception checking code: ::e and e were mistaken as differing only in case in a throws clause. Style fixes.
* 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.
* Added more case-insensitive checks for struct, exception, and classMichi Henning2002-07-01
| | | | | definitions. Changed parser to write diagnostics to stdout instead of stderr.
* More style fixes.Michi Henning2002-06-27
|
* Applied Marc's review comments. Improved diagnostics a little.Michi Henning2002-06-27
|
* 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.
* commentsMarc Laukien2002-06-25
|
* Win32, style fixesMark Spruiell2002-06-24
|
* 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
|
* Changed the grammar for out parameters to deprecate the semicolon syntaxMichi Henning2002-06-19
| | | | | | | | | | | | | | and use an "out" keyword instead. The old syntax still works, but now prints a warning. Fixed up all the test cases that got broken by this and add a new test case for out-of-order in and out parameters. Refactored the grammar somewhat because, initially, out params added something like 50 shift/reduce conflicts. One shift/reduce conflict remains, caused by the addition of ICE_OUT to the last production in Grammar.y. We could avoid the conflict by removing ICE_OUT from that production, but then we wouldn't catch other errors anymore, such as an attempt to use "out" as the name of an operation or interface. I've added a warning to the Makefile to expect 1 shift/reduce conflict when Grammar.y is rebuilt.
* FixesMarc Laukien2002-05-13
|
* bug fixMarc Laukien2002-04-23
|
* added members to object, facet, and operation not exist exceptionsMarc Laukien2002-04-19
|
* fixed hyperlink problemMarc Laukien2002-04-09
|
* proxy lookup fixMarc Laukien2002-03-14
|
* dependencies() for Slice parserMarc Laukien2002-02-07
|
* fixMarc Laukien2002-01-28
|
* removed nonmutating as keywordMarc Laukien2002-01-25
|
* metadataMarc Laukien2002-01-23
|
* started with removal of wstringMarc Laukien2002-01-16
|
* fixesMarc Laukien2001-12-18
|
* FixesMarc Laukien2001-12-13
|
* comparison operators; started with ConnectionMarc Laukien2001-12-13
|
* fixesMarc Laukien2001-11-10
|
* more exception cleanupMarc Laukien2001-10-13
|
* slicified local exceptionsMarc Laukien2001-10-11
|
* more fixesMarc Laukien2001-10-11
|
* fixesMarc Laukien2001-10-11
|