From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31203 invoked by alias); 3 Jun 2008 19:50:43 -0000 Received: (qmail 31148 invoked by uid 9708); 3 Jun 2008 19:50:42 -0000 Date: Tue, 03 Jun 2008 19:50:00 -0000 Message-ID: <20080603195042.31133.qmail@sourceware.org> From: tthomas@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Fix antlr warnings. X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: e6a47641818cfc898f84505e7d1252e9c0f4a6b2 X-Git-Newrev: 4cd7a853702c58f9b5037d8470d5b79adad712f1 Mailing-List: contact frysk-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: frysk-cvs-owner@sourceware.org Reply-To: frysk@sourceware.org X-SW-Source: 2008-q2/txt/msg00320.txt.bz2 The branch, master has been updated via 4cd7a853702c58f9b5037d8470d5b79adad712f1 (commit) from e6a47641818cfc898f84505e7d1252e9c0f4a6b2 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 4cd7a853702c58f9b5037d8470d5b79adad712f1 Author: Teresa Thomas Date: Tue Jun 3 15:31:02 2008 -0400 Fix antlr warnings. frysk-core/frysk/expr/ChangeLog: 2008-05-03 Teresa Thomas * Expression.java(getType): Use CTypeEvaluator.type(). * CTypeEvaluator.g (typeCast): Delete, Rename expr to type. (MINUS): Remove ambiguity. * CExprEvaluator.g (typeCast): Delete. * CExpr.g (typeCast): Delete. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/expr/CExpr.g | 8 +-- frysk-core/frysk/expr/CExprEvaluator.g | 10 +-- frysk-core/frysk/expr/CTypeEvaluator.g | 112 ++++++++++++++++---------------- frysk-core/frysk/expr/ChangeLog | 11 +++- frysk-core/frysk/expr/Expression.java | 2 +- 5 files changed, 73 insertions(+), 70 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/expr/CExpr.g b/frysk-core/frysk/expr/CExpr.g index df1ea00..cf8e654 100644 --- a/frysk-core/frysk/expr/CExpr.g +++ b/frysk-core/frysk/expr/CExpr.g @@ -313,11 +313,11 @@ prefix_expression // new operators // delete operators | cast_expression - | postfix_expression + | postfix_expression ; cast_expression! - : LPAREN tc:typeCast RPAREN expr:prefix_expression + : LPAREN tc:primitiveType (STAR)? RPAREN expr:prefix_expression { ## = #([CAST, "Cast"], #tc, #expr);} ; @@ -388,10 +388,6 @@ primitiveType | "float" | "double" ; - -typeCast - : primitiveType (STAR)? - ; constant : OCTALINT diff --git a/frysk-core/frysk/expr/CExprEvaluator.g b/frysk-core/frysk/expr/CExprEvaluator.g index 24f6f08..1aafee4 100644 --- a/frysk-core/frysk/expr/CExprEvaluator.g +++ b/frysk-core/frysk/expr/CExprEvaluator.g @@ -132,18 +132,14 @@ primitiveType | "long" | "float" | "double" - ; - -typeCast - : primitiveType (STAR)? - ; + ; identifier returns [String idSpelling=null] : ident:IDENT {idSpelling=ident.getText();} ; expr returns [Value returnVar=null] { Value v1, v2, v3, log_expr; String s1; } - : #(PLUS v1=expr v2=expr) { + : #(PLUS v1=expr v2=expr) { returnVar = v1.getType().getALU(v2.getType(), exprSymTab.getWordSize()) .add(v1, v2); @@ -396,7 +392,7 @@ expr returns [Value returnVar=null] exprSymTab.getWordSize()) .bitWiseOrEqual(v1, v2); } - | #(CAST pt:typeCast v2=expr) { + | #(CAST pt:primitiveType v2=expr) { if(pt.getText().compareTo("long") == 0) { returnVar = longType.createValue(0); returnVar.assign(v2); diff --git a/frysk-core/frysk/expr/CTypeEvaluator.g b/frysk-core/frysk/expr/CTypeEvaluator.g index dd2a91d..010f22d 100644 --- a/frysk-core/frysk/expr/CTypeEvaluator.g +++ b/frysk-core/frysk/expr/CTypeEvaluator.g @@ -132,80 +132,82 @@ primitiveType | "long" | "float" | "double" - ; - -typeCast - : primitiveType (STAR)? - ; + ; identifier returns [String idSpelling=null] : ident:IDENT {idSpelling=ident.getText();} ; -expr returns [Type returnVar=null] -{ Type t1, t2; String s1;} +type returns [Type returnVar=null] +{ Type t1, t2, t3; String s1;} - : ( #(PLUS t1=expr t2=expr) - | #(MINUS t1=expr t2=expr) - | #(STAR t1=expr t2=expr) - | #(DIVIDE t1=expr t2=expr) - | #(MOD t1=expr t2=expr) + : ( #(PLUS t1=type t2=type) + | #(STAR t1=type t2=type) + | #(DIVIDE t1=type t2=type) + | #(MOD t1=type t2=type) ) { returnVar = t1.getALU(t2, exprSymTab.getWordSize()) .getResultType(); } - | ( #(SHIFTLEFT t1=expr t2=expr) - | #(SHIFTRIGHT t1=expr t2=expr) - | #(AMPERSAND t1=expr t2=expr) - | #(BITWISEXOR t1=expr t2=expr) - | #(BITWISEOR t1=expr t2=expr) + | ( #(MINUS type type) )=> #(MINUS t1=type t2=type) { + returnVar = t1.getALU(t2, + exprSymTab.getWordSize()) + .getResultType(); + } + | #(MINUS t1=type ) { + returnVar = t1; + } + | ( #(SHIFTLEFT t1=type t2=type) + | #(SHIFTRIGHT t1=type t2=type) + | #(AMPERSAND t1=type t2=type) + | #(BITWISEXOR t1=type t2=type) + | #(BITWISEOR t1=type t2=type) ) { returnVar = t1.getALU(t2, exprSymTab.getWordSize()) .getResultType(); } - | ( #(AND t1=expr t2=expr) - | #(OR t1=expr t2=expr) - | #(NOT t1=expr ) + | ( #(AND t1=type t2=type) + | #(OR t1=type t2=type) + | #(NOT t1=type ) ) { returnVar = t1.getALU(exprSymTab.getWordSize()) .getIntResultType(); } - | ( #(LESSTHAN t1=expr t2=expr) - | #(GREATERTHAN t1=expr t2=expr) - | #(LESSTHANOREQUALTO t1=expr t2=expr) - | #(GREATERTHANOREQUALTO t1=expr t2=expr) - | #(EQUAL t1=expr t2=expr) - | #(NOTEQUAL t1=expr t2=expr) + | ( #(LESSTHAN t1=type t2=type) + | #(GREATERTHAN t1=type t2=type) + | #(LESSTHANOREQUALTO t1=type t2=type) + | #(GREATERTHANOREQUALTO t1=type t2=type) + | #(EQUAL t1=type t2=type) + | #(NOTEQUAL t1=type t2=type) ) { returnVar = t1.getALU(t2, exprSymTab.getWordSize()) .getIntResultType(); } - | #(ADDRESS_OF t1=expr ) { + | #(ADDRESS_OF t1=type ) { PointerType pointerType = new PointerType ("*", ByteOrder.LITTLE_ENDIAN, exprSymTab.getWordSize(), t1); returnVar = pointerType; } - | #(MEMORY t1=expr ) { + | #(MEMORY t1=type ) { returnVar = ((PointerType)t1).getType(); } - | ( #(TILDE t1=expr) - | #(ARITHMETIC_PLUS t1=expr) - | #(ARITHMETIC_MINUS t1=expr) - | #(MINUS t1=expr ) + | ( #(TILDE t1=type) + | #(ARITHMETIC_PLUS t1=type) + | #(ARITHMETIC_MINUS t1=type) ) { returnVar = t1; } - | ( #(PREINCREMENT t1=expr) - | #(PREDECREMENT t1=expr) - | #(POSTINCREMENT t1=expr) - | #(POSTDECREMENT t1=expr) + | ( #(PREINCREMENT t1=type) + | #(PREDECREMENT t1=type) + | #(POSTINCREMENT t1=type) + | #(POSTDECREMENT t1=type) ) { returnVar = t1; } - | #(COND_EXPR expr t1=expr t2=expr) { + | #(COND_EXPR t3=type t1=type t2=type) { // FIXME: Is this a good enough estimate of result // type without actually evaluating conditional // expressions? @@ -226,21 +228,21 @@ expr returns [Type returnVar=null] | DOUBLE { returnVar = doubleType; } - | ( #(ASSIGNEQUAL t1=expr t2=expr) - | #(PLUSEQUAL t1=expr t2=expr) - | #(MINUSEQUAL t1=expr t2=expr) - | #(TIMESEQUAL t1=expr t2=expr) - | #(DIVIDEEQUAL t1=expr t2=expr) - | #(MODEQUAL t1=expr t2=expr) - | #(SHIFTLEFTEQUAL t1=expr t2=expr) - | #(SHIFTRIGHTEQUAL t1=expr t2=expr) - | #(BITWISEANDEQUAL t1=expr t2=expr) - | #(BITWISEXOREQUAL t1=expr t2=expr) - | #(BITWISEOREQUAL t1=expr t2=expr) + | ( #(ASSIGNEQUAL t1=type t2=type) + | #(PLUSEQUAL t1=type t2=type) + | #(MINUSEQUAL t1=type t2=type) + | #(TIMESEQUAL t1=type t2=type) + | #(DIVIDEEQUAL t1=type t2=type) + | #(MODEQUAL t1=type t2=type) + | #(SHIFTLEFTEQUAL t1=type t2=type) + | #(SHIFTRIGHTEQUAL t1=type t2=type) + | #(BITWISEANDEQUAL t1=type t2=type) + | #(BITWISEXOREQUAL t1=type t2=type) + | #(BITWISEOREQUAL t1=type t2=type) ) { returnVar = t1; } - | #(CAST pt:typeCast t2=expr) { + | #(CAST pt:primitiveType t2=type) { if(pt.getText().compareTo("long") == 0) { returnVar = longType; } @@ -263,19 +265,19 @@ expr returns [Type returnVar=null] } } } - | #(EXPR_LIST t1=expr) { - returnVar = t1; + | #(EXPR_LIST t3=type) { + returnVar = t3; } - | #(SIZEOF t1=expr) { + | #(SIZEOF t1=type) { returnVar = longType; } - | #(INDEX t1=expr t2=expr) { + | #(INDEX t1=type t2=type) { returnVar = t1.getType(); } - | #(SLICE t1=expr t2=expr expr) { + | #(SLICE t1=type t2=type t3=type) { returnVar = t1.getSliceType(); } - | #(MEMBER t1=expr s1=identifier) { + | #(MEMBER t1=type s1=identifier) { returnVar = ((CompositeType)t1).getMemberType(s1); } | ident:IDENT { diff --git a/frysk-core/frysk/expr/ChangeLog b/frysk-core/frysk/expr/ChangeLog index efbd0e7..89756bf 100644 --- a/frysk-core/frysk/expr/ChangeLog +++ b/frysk-core/frysk/expr/ChangeLog @@ -1,3 +1,12 @@ +2008-05-03 Teresa Thomas + + * Expression.java(getType): Use CTypeEvaluator.type(). + * CTypeEvaluator.g (typeCast): Delete, + Rename expr to type. + (MINUS): Remove ambiguity. + * CExprEvaluator.g (typeCast): Delete. + * CExpr.g (typeCast): Delete. + 2008-05-30 Petr Machata * FQIdentifier.java: Implement soname expansion and soname @@ -20,7 +29,7 @@ * CExpr.g (PARSE_FQIDENT): Forbid empty string as symbol name. * FqIdentToken.java (wantPlt): Publish. - + 2008-05-28 Petr Machata * FqIdentToken.java: New file. diff --git a/frysk-core/frysk/expr/Expression.java b/frysk-core/frysk/expr/Expression.java index 9432417..843498b 100644 --- a/frysk-core/frysk/expr/Expression.java +++ b/frysk-core/frysk/expr/Expression.java @@ -81,7 +81,7 @@ public class Expression { */ public Type getType() { try { - return new CTypeEvaluator(symTab).expr(ast); + return new CTypeEvaluator(symTab).type(ast); } catch (antlr.RecognitionException r) { throw new RuntimeException(r); } hooks/post-receive -- frysk system monitor/debugger