Restore lambda code with fix from previous commit.
[mono.git] / mcs / mcs / ChangeLog
index 5dce143426cf8fa778976f496de09d0244089e90..eb383327c2b6b2d0df323715f7e7c3ed517c4565 100644 (file)
@@ -1,3 +1,59 @@
+2007-01-29  Raja R Harinath  <rharinath@novell.com>
+
+       * cs-tokenizer.cs (is_punct) ['<']: Update to changes in
+       Push/PopPosition.
+       (parse_opt_type_arguments): Remove.  It's almost the same as
+       parse_less_than.
+       (parse_namespace_or_typename): Use parse_less_than.
+
+2007-01-28  Miguel de Icaza  <miguel@novell.com>
+
+       * cs-tokenizer.cs: Typo fix, its not GMCS_SOURCES but GMCS_SOURCE,
+       this bug took a few hours to find, because the state saved and
+       restored by PushPosition and PopPosition was ignoring the state of
+       parse_generic_less_than.
+
+       I can also now remove the handling of OP_LT and OP_GT, this solves
+       the big mistery.
+       
+       * cs-tokenizer.cs: store the location for the ARROW token, we use
+       that in the parser.
+
+       (PushPosition, PopPosition): save/restore also `current_token',
+       restore `parse_generic_less_than' (was missing).
+
+       (parse_opt_type_arguments): use parse_type, not
+       parse_namespace_or_typename to parse types.
+
+       * lambda.cs: Empty new file, will eventually have the lambda
+       expression implementation.
+
+       * lambda.test: used to test the internal tokenizer. 
+
+       * report.cs (FeatureIsNotISO1): Rename from
+       FeatureIsNotStandardized, because it was about the language level
+       (1 vs 2) it was not about standarization.
+
+       (FeatureRequiresLINQ): New.
+
+       * support.cs (SeekableStreamReader): Only require that the reader
+       is a TextReader, not a StreamReader, so we can plug StringReader. 
+
+       * cs-tokenizer.cs (parse_type_and_parameter): Returns true if at a
+       given position in the input stream the following tokens can be
+       parsed as a type followed by an identifier.
+
+       (is_punct): after a '(' if parse_type_and_parameter returns true,
+       then return a special token OPEN_PARENS_LAMBDA which is used to
+       avoid reduce/reduce errors in the grammar for the
+       lambda_expression rules.
+
+       (parse_type): implement a type parser inside the
+       tokenizer, the parser only returns true or false depending on
+       whether the input at a given position can be parsed as a type.
+
+       (peek_token): new method used during type parsing.
+
 2007-01-28  Raja R Harinath  <rharinath@novell.com>
 
        Fix #80531