aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/java/com/sun/gluegen/cgram/HeaderParser.g4
-rw-r--r--src/java/com/sun/gluegen/cgram/TNode.java10
-rw-r--r--src/java/com/sun/gluegen/pcpp/PCPP.java2
3 files changed, 13 insertions, 3 deletions
diff --git a/src/java/com/sun/gluegen/cgram/HeaderParser.g b/src/java/com/sun/gluegen/cgram/HeaderParser.g
index f91f146..7c13968 100644
--- a/src/java/com/sun/gluegen/cgram/HeaderParser.g
+++ b/src/java/com/sun/gluegen/cgram/HeaderParser.g
@@ -597,7 +597,7 @@ enumerator[EnumType enumeration, long defaultValue] returns [long newDefaultValu
: eName:ID ( ASSIGN eVal:expr )? {
long value = 0;
if (eVal != null) {
- String vTxt = eVal.getText();
+ String vTxt = eVal.getAllChildrenText();
if (enumHash.containsKey(vTxt)) {
EnumType oldEnumType = (EnumType) enumHash.get(vTxt);
value = oldEnumType.getEnumValue(vTxt);
@@ -605,7 +605,7 @@ enumerator[EnumType enumeration, long defaultValue] returns [long newDefaultValu
try {
value = Long.decode(vTxt).longValue();
} catch (NumberFormatException e) {
- System.err.println("NumberFormatException: " + enumerator_AST_in);
+ System.err.println("NumberFormatException: ID[" + eName.getText() + "], VALUE=[" + vTxt + "]");
throw e;
}
}
diff --git a/src/java/com/sun/gluegen/cgram/TNode.java b/src/java/com/sun/gluegen/cgram/TNode.java
index f5b2c17..9fca506 100644
--- a/src/java/com/sun/gluegen/cgram/TNode.java
+++ b/src/java/com/sun/gluegen/cgram/TNode.java
@@ -153,6 +153,16 @@ public void initialize(AST tr) {
text = text_;
}
+ /** Returns the text for this node and all children */
+ public String getAllChildrenText() {
+ StringBuffer buf = new StringBuffer();
+ buf.append(getText());
+ for (TNode node = (TNode) getFirstChild(); node != null; node = (TNode) node.getNextSibling()) {
+ buf.append(node.getText());
+ }
+ return buf.toString();
+ }
+
/** return the last child of this node, or null if there is none */
public TNode getLastChild() {
TNode down = (TNode)getFirstChild();
diff --git a/src/java/com/sun/gluegen/pcpp/PCPP.java b/src/java/com/sun/gluegen/pcpp/PCPP.java
index 4a98542..d5d9604 100644
--- a/src/java/com/sun/gluegen/pcpp/PCPP.java
+++ b/src/java/com/sun/gluegen/pcpp/PCPP.java
@@ -867,7 +867,7 @@ public class PCPP {
}
private void lineDirective() {
- print("#line " + lineNumber() + " \"" + filename() + "\"");
+ print("# " + lineNumber() + " \"" + filename() + "\"");
println();
}
}