[Pydev-cvs] org.python.pydev.parser/src/org/python/parser SpecialStr.java,NONE,1.1 PythonGrammar.jav
Brought to you by:
fabioz
From: Fabio Z. <fa...@us...> - 2006-02-17 15:56:59
|
Update of /cvsroot/pydev/org.python.pydev.parser/src/org/python/parser In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21375/src/org/python/parser Modified Files: PythonGrammar.java SimpleNode.java TreeBuilder.java Added Files: SpecialStr.java Log Message: Index: TreeBuilder.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev.parser/src/org/python/parser/TreeBuilder.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** TreeBuilder.java 14 Feb 2006 23:49:34 -0000 1.15 --- TreeBuilder.java 17 Feb 2006 15:56:53 -0000 1.16 *************** *** 244,247 **** --- 244,249 ---- test = makeExpr(); If last = new If(test, body, orelse); + last.beginLine = suite.beginLine+1; + last.beginColumn = suite.beginColumn; addSpecials(suite, last); *************** *** 252,255 **** --- 254,259 ---- stmtType[] newOrElse = new stmtType[] { last }; last = new If(test, body, newOrElse); + last.beginLine = suite.beginLine+1; + last.beginColumn = suite.beginColumn; addSpecials(suite, last); } Index: PythonGrammar.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev.parser/src/org/python/parser/PythonGrammar.java,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** PythonGrammar.java 15 Feb 2006 23:55:18 -0000 1.19 --- PythonGrammar.java 17 Feb 2006 15:56:53 -0000 1.20 *************** *** 86,93 **** --- 86,117 ---- } private void addSpecialToken(Object o) { + if(o.equals(")")){ + if(findToken(")",")")){ + return; + } + + } + if(o.equals("else:")){ + if(findToken("else","else:")){ + return; + } + } //the default is adding after the previous token token_source.specialTokens.add(new Object[]{o, STRATEGY_ADD_AFTER_PREV}); } + private boolean findToken(String token, String put) { + Token t; + t = this.jj_lastpos; + while(t != null && t.image != null && t.image.equals(token) == false){ + t = t.next; + } + if(t != null){ + token_source.specialTokens.add(new Object[]{new SpecialStr(put,t.beginLine, t.beginColumn), STRATEGY_ADD_AFTER_PREV}); + return true; + } + return false; + } + --- NEW FILE: SpecialStr.java --- package org.python.parser; public class SpecialStr { public String str; public int beginLine; public int beginCol; public SpecialStr(String str, int beginLine, int beginCol){ this.str = str; this.beginLine = beginLine; this.beginCol = beginCol; } @Override public String toString() { return str; } @Override public int hashCode() { return str.hashCode(); } @Override public boolean equals(Object obj) { if(!(obj instanceof SpecialStr)){ return false; } return str.equals(((SpecialStr)obj).str); } } Index: SimpleNode.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev.parser/src/org/python/parser/SimpleNode.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** SimpleNode.java 15 Feb 2006 23:55:18 -0000 1.11 --- SimpleNode.java 17 Feb 2006 15:56:53 -0000 1.12 *************** *** 77,81 **** int i=0; for(Object o : specialsAfter){ ! if (o instanceof String){ i++; } --- 77,81 ---- int i=0; for(Object o : specialsAfter){ ! if (o instanceof String || o instanceof SpecialStr){ i++; } |