Revision: 5304
http://jython.svn.sourceforge.net/jython/?rev=5304&view=rev
Author: fwierzbicki
Date: 2008-09-09 18:42:57 +0000 (Tue, 09 Sep 2008)
Log Message:
-----------
Fix some offset problems in DEDENT, INDENT, and EOF.
Modified Paths:
--------------
trunk/jython/src/org/python/antlr/PythonTokenSource.java
Modified: trunk/jython/src/org/python/antlr/PythonTokenSource.java
===================================================================
--- trunk/jython/src/org/python/antlr/PythonTokenSource.java 2008-09-08 17:48:28 UTC (rev 5303)
+++ trunk/jython/src/org/python/antlr/PythonTokenSource.java 2008-09-09 18:42:57 UTC (rev 5304)
@@ -154,6 +154,7 @@
private void handleEOF(CommonToken eof, CommonToken prev) {
if (prev != null) {
+ eof.setStartIndex(prev.getStopIndex());
eof.setStopIndex(prev.getStopIndex());
}
}
@@ -258,9 +259,11 @@
private void handleIndents(int cpos, CommonToken t) {
push(cpos);
//System.out.println("push("+cpos+"): "+stackString());
- Token indent = new CommonToken(PythonParser.INDENT,"");
+ CommonToken indent = new CommonToken(PythonParser.INDENT,"");
indent.setCharPositionInLine(t.getCharPositionInLine());
indent.setLine(t.getLine());
+ indent.setStartIndex(t.getStartIndex() - 1);
+ indent.setStopIndex(t.getStartIndex() - 1);
tokens.addElement(indent);
}
@@ -274,9 +277,8 @@
dedent.setCharPositionInLine(t.getCharPositionInLine());
dedent.setLine(t.getLine());
- //XXX: this will get messed up by comments.
- dedent.setStartIndex(t.getStartIndex());
- dedent.setStopIndex(t.getStopIndex());
+ dedent.setStartIndex(t.getStartIndex() - 1);
+ dedent.setStopIndex(t.getStartIndex() - 1);
tokens.addElement(dedent);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|