You are viewing a plain text version of this content. The canonical link for it is here.
Posted to torque-dev@db.apache.org by mp...@apache.org on 2003/05/22 23:58:05 UTC
cvs commit: db-torque/src/java/org/apache/torque/engine/sql SQLScanner.java
mpoeschl 2003/05/22 14:58:05
Modified: xdocs Tag: TORQUE_3_0_BRANCH changes.xml
src/java/org/apache/torque/engine/sql Tag: TORQUE_3_0_BRANCH
SQLScanner.java
Log:
TRQS90: SQLScanner reports wrong line numbers in Window platforms and
behaves incorrectly when finding the minus sign
Revision Changes Path
No revision
No revision
1.54.2.6 +4 -0 db-torque/xdocs/changes.xml
Index: changes.xml
===================================================================
RCS file: /home/cvs/db-torque/xdocs/changes.xml,v
retrieving revision 1.54.2.5
retrieving revision 1.54.2.6
diff -u -r1.54.2.5 -r1.54.2.6
--- changes.xml 22 May 2003 20:20:41 -0000 1.54.2.5
+++ changes.xml 22 May 2003 21:58:05 -0000 1.54.2.6
@@ -43,6 +43,10 @@
<p>
<ul>
<li>
+ TRQS90: SQLScanner reports wrong line numbers in Window platforms and
+ behaves incorrectly when finding the minus sign
+ </li>
+ <li>
TRQS122: Join methods are not generated.
</li>
</ul>
No revision
No revision
1.3.2.1 +50 -9 db-torque/src/java/org/apache/torque/engine/sql/Attic/SQLScanner.java
Index: SQLScanner.java
===================================================================
RCS file: /home/cvs/db-torque/src/java/org/apache/torque/engine/sql/Attic/SQLScanner.java,v
retrieving revision 1.3
retrieving revision 1.3.2.1
diff -u -r1.3 -r1.3.2.1
--- SQLScanner.java 7 May 2002 18:24:43 -0000 1.3
+++ SQLScanner.java 22 May 2003 21:58:05 -0000 1.3.2.1
@@ -92,21 +92,21 @@
*/
public SQLScanner()
{
- this (null);
+ this(null);
}
/**
* Creates a new scanner with an Input Reader
*/
- public SQLScanner (Reader input)
+ public SQLScanner(Reader input)
{
- setInput (input);
+ setInput(input);
}
/**
* Set the Input
*/
- public void setInput (Reader input)
+ public void setInput(Reader input)
{
in = input;
}
@@ -118,12 +118,20 @@
*/
private void readChar() throws IOException
{
+ boolean wasLine = (char) chr == '\r';
chr = in.read();
if ((char) chr == '\n' || (char) chr == '\r' || (char) chr == '\f')
{
col = 0;
- line++;
- } else col++;
+ if (!wasLine || (char) chr != '\n')
+ {
+ line++;
+ }
+ }
+ else
+ {
+ col++;
+ }
}
/**
@@ -139,7 +147,25 @@
readChar();
c = (char) chr;
}
- tokens.add(new Token(token,line,col));
+ int start = col - token.length();
+ tokens.add(new Token(token, line, start));
+ }
+
+ /**
+ * Scans an identifier which had started with the negative sign.
+ */
+ private void scanNegativeIdentifier () throws IOException
+ {
+ token = "-";
+ char c = (char) chr;
+ while (chr != -1 && white.indexOf(c) == -1 && special.indexOf(c) == -1)
+ {
+ token = token + (char) chr;
+ readChar();
+ c = (char) chr;
+ }
+ int start = col - token.length();
+ tokens.add(new Token(token, line, start));
}
/**
@@ -154,11 +180,14 @@
boolean inCommentSlashStar = false;
boolean inCommentDash = false;
+ boolean inNegative;
+
tokens = new ArrayList();
readChar();
while (chr != -1)
{
char c = (char) chr;
+ inNegative=false;
if ((char) c == commentDash)
{
@@ -167,6 +196,11 @@
{
inCommentDash = true;
}
+ else
+ {
+ inNegative = true;
+ c = (char) chr;
+ }
}
if (inCommentDash)
@@ -208,7 +242,14 @@
}
else if (alfanum.indexOf(c) >= 0)
{
- scanIdentifier();
+ if (inNegative)
+ {
+ scanNegativeIdentifier();
+ }
+ else
+ {
+ scanIdentifier();
+ }
}
else if (special.indexOf(c) >= 0)
{