diff options
Diffstat (limited to 'runtime/CSharp3/Sources/Antlr3.Runtime.Test/TestExpressionFeatures.g3')
-rw-r--r-- | runtime/CSharp3/Sources/Antlr3.Runtime.Test/TestExpressionFeatures.g3 | 160 |
1 files changed, 0 insertions, 160 deletions
diff --git a/runtime/CSharp3/Sources/Antlr3.Runtime.Test/TestExpressionFeatures.g3 b/runtime/CSharp3/Sources/Antlr3.Runtime.Test/TestExpressionFeatures.g3 deleted file mode 100644 index 4fb0ae2..0000000 --- a/runtime/CSharp3/Sources/Antlr3.Runtime.Test/TestExpressionFeatures.g3 +++ /dev/null @@ -1,160 +0,0 @@ -/* - * [The "BSD licence"] - * Copyright (c) 2011 Terence Parr - * All rights reserved. - * - * Conversion to C#: - * Copyright (c) 2011 Sam Harwell, Pixel Mine, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -grammar TestExpressionFeatures; - -options { - language=CSharp3; - TokenLabelType=CommonToken; - output=AST; - ASTLabelType=CommonTree; -} - -tokens { - LPAREN = '('; - RPAREN = ')'; - DOT = '.'; - LBRACK = '['; - RBRACK = ']'; - INC = '++'; - DEC = '--'; - PLUS = '+'; - MINUS = '-'; - TILDE = '~'; - NOT = '!'; - //LSHIFT = '<<'; - //RSHIFT = '>>'; - //RUSHIFT = '>>>'; - EQUALS = '=='; - NOTEQ = '!='; - MOD = '%'; - CARET = '^'; - GT = '>'; - LT = '<'; - GE = '>='; - LE = '<='; - BITAND = '&'; - BITOR = '|'; - AND = '&&'; - OR = '||'; - - KW_THIS = 'this'; - KW_SUPER = 'super'; - KW_CLASS = 'class'; - KW_NEW = 'new'; - KW_INSTANCEOF = 'instanceof'; - KW_INT = 'int'; -} - -@lexer::namespace{Antlr3.Runtime.Test} -@parser::namespace{Antlr3.Runtime.Test} - -@parser::header{using Console = System.Console;} - -/* - * Parser Rules - */ - -public -compileUnit - : e EOF - ; - -e : '('! e ')'! - | 'this' - | 'super' - | INT - | ID - | type '.'^ 'class' - | e '.'^ ID - | e '.'^ 'this' - | e '.'^ 'super' '('^ expressionList? ')'! - | e '.'^ 'new'^ ID '('! expressionList? ')'! - | 'new'^ type ( '(' expressionList? ')'! | (options {k=1;}:'[' e ']'!)+) - | e '['^ e ']'! - | '('^ type ')'! e - | e ('++'^ | '--'^) - | e '('^ expressionList? ')'! - | ('+'^|'-'^|'++'^|'--'^) e - | ('~'^|'!'^) e - | e ('*'^|'/'^|'%'^) e - | e ('+'^|'-'^) e - | e ('<' '<' | '>' '>' '>' | '>' '>') e - | e ('<='^ | '>='^ | '>'^ | '<'^) e - | e 'instanceof'^ e - | e ('=='^ | '!='^) e - | e '&'^ e - | e '^'<assoc=right>^ e - | e '|'^ e - | e '&&'^ e - | e '||'^ e -// | e '?' e ':' e - | e ('='<assoc=right>^ - |'+='<assoc=right>^ - |'-='<assoc=right>^ - |'*='<assoc=right>^ - |'/='<assoc=right>^ - |'&='<assoc=right>^ - |'|='<assoc=right>^ - |'^='<assoc=right>^ - |'>>='<assoc=right>^ - |'>>>='<assoc=right>^ - |'<<='<assoc=right>^ - |'<<<='<assoc=right>^ - |'%='<assoc=right>^) e - ; - -expressionList - : e (','! e)* - ; - -type: ID - | ID '['^ ']'! - | 'int' - | 'int' '['^ ']'! - ; - -/* - * Lexer Rules - */ - -WS - : (' ' | '\t' | '\n' | '\r') {Skip();} - ; - -ID - : ('a'..'z' | 'A'..'Z' | '_') ('a'..'z' | 'A'..'Z' | '0'..'9' | '_')* - ; - -INT - : '0'..'9'+ - ; |