Added container accessor to Castle.Core
[castle.git] / AspectSharp / AspectSharp.Lang / langlexer.g
blobad6a861dba349d9813874ab17bd98e4ce7f90142
1 options\r
2 {\r
3         language = "CSharp";\r
4 }\r
5 class AspectLanguageLexer extends Lexer;\r
6 options \r
7 {\r
8     importVocab=aspectLanguage;\r
9     testLiterals=false;\r
10         k=2;\r
11         filter=true;\r
12 }\r
14 // Keywords\r
15 ALL        : '*'  ;\r
16 COLON      : ':'  ;\r
17 SEMI       : ';'  ;\r
18 COMMA      : ','  ;\r
19 OR         : '|'  ;\r
20 INHERITS   : '<'  ;\r
22 LBRACK     : '['  ;\r
23 RBRACK     : ']'  ;\r
24 LCURLY     : '('  ;\r
25 RCURLY     : ')'  ;\r
27 DOT        : '.'  ;\r
29 COMMENT    : "//" (~('\n'|'\r'))* { $setType(Token.SKIP);};   \r
30   \r
31 // Literals\r
32 protected \r
33 DIGIT : \r
34     '0'..'9'\r
35     ;\r
37 INTLIT : \r
38     (DIGIT)+\r
39     ;\r
41 CHARLIT : \r
42     '\''! . '\''!  ;\r
44 STRING_LITERAL : \r
45     '"'!\r
46     ( '"' '"'!\r
47     | ~('"'|'\n'|'\r')\r
48     )*\r
49     ( '"'!\r
50     | // nothing -- write error message\r
51     )  ;   \r
52   \r
53 WS : \r
54     ( ' ' | '\t' | '\f'\r
55     | (   "\r\n"  // Evil DOS\r
56     | '\r'    // Macintosh\r
57     | '\n'    // Unix (the right way)\r
58     )\r
59     { newline(); }\r
60     )\r
61     { $setType(Token.SKIP); }\r
62     ;\r
64 ID\r
65     options {testLiterals=true;}\r
66     : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')*\r
67     ;\r