diff options
author | Juerg Billeter <j@bitron.ch> | 2008-01-18 22:00:34 +0000 |
---|---|---|
committer | Jürg Billeter <juergbi@src.gnome.org> | 2008-01-18 22:00:34 +0000 |
commit | a980f1c90cfca1b9b83b9032edfc35ae9d0c7efa (patch) | |
tree | 90eb7956febc0d0cd48d210b5fb6b9b3694d963c | |
parent | 9e3383f3e67da476e439129a72666615cbb0e57e (diff) | |
download | vala-a980f1c90cfca1b9b83b9032edfc35ae9d0c7efa.tar.gz |
support nested generic types, fixes bug 443522
2008-01-18 Juerg Billeter <j@bitron.ch>
* vala/scanner.l: support nested generic types, fixes bug 443522
svn path=/trunk/; revision=859
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | vala/scanner.l | 5 |
2 files changed, 8 insertions, 1 deletions
@@ -1,5 +1,9 @@ 2008-01-18 Jürg Billeter <j@bitron.ch> + * vala/scanner.l: support nested generic types, fixes bug 443522 + +2008-01-18 Jürg Billeter <j@bitron.ch> + * vala/valavoidtype.vala: implement get_cname method * gobject/valaccodegenerator.vala: cast function pointers to callback diff --git a/vala/scanner.l b/vala/scanner.l index de804da74..a38a57b8d 100644 --- a/vala/scanner.l +++ b/vala/scanner.l @@ -63,6 +63,9 @@ string_literal \"{string_literal_character}*\" integer_literal ({decimal_integer_literal}|{hexadecimal_integer_literal}|{octal_integer_literal}){integer_suffix}? literal ({integer_literal}|{real_literal}|{character_literal}|{string_literal}) +type_name ("weak"{space})?({ident}".")?{ident} +generic_type {type_name}("<"{space}{type_name}("?"|"*"+)?(","{space}{type_name}("?"|"*"+)?)*">")?("?"|"*"+)? + %% "/*" { uploc; file_comment = (yylineno == 1); BEGIN (IN_COMMENT); } @@ -110,7 +113,7 @@ literal ({integer_literal}|{real_literal}|{character_literal}|{string_literal "<=" { uploc; return OP_LE; } ">=" { uploc; return OP_GE; } "=>" { uploc; return LAMBDA; } -"<"{space}("weak"{space})?({ident}".")?{ident}("?"|"*"+)?("[]""?"?)?(","{space}("weak"{space})?({ident}".")?{ident}("?"|"*"+)?("[]""?"?)?)*">" { yyless (1); uploc; return GENERIC_LT; } +"<"{space}{generic_type}{space}(","{space}{generic_type}{space})*">" { yyless (1); uploc; return GENERIC_LT; } "<" { uploc; return OP_LT; } ">" { uploc; return OP_GT; } "!" { uploc; return OP_NEG; } |