diff --git a/src/scanner/LispFilterInputStream.java b/src/scanner/LispFilterInputStream.java
index 85cea33..8e550b0 100644
--- a/src/scanner/LispFilterInputStream.java
+++ b/src/scanner/LispFilterInputStream.java
@@ -1,8 +1,8 @@
package scanner;
-import java.io.InputStream;
import java.io.FilterInputStream;
import java.io.IOException;
+import java.io.InputStream;
/**
* Removes Lisp comments from an input stream.
diff --git a/src/scanner/LispScanner.java b/src/scanner/LispScanner.java
index e1b0c61..1788d85 100644
--- a/src/scanner/LispScanner.java
+++ b/src/scanner/LispScanner.java
@@ -6,9 +6,9 @@
package scanner;
-import java.io.InputStream;
import java.io.BufferedInputStream;
import java.io.IOException;
+import java.io.InputStream;
/**
* A LispScanner
converts a stream of bytes into a stream of Lisp
@@ -29,10 +29,10 @@ public class LispScanner {
* specified input stream.
*
* @param in
- * the input stream to obtain Lisp tokens from (must not be
- * null
)
+ * the input stream to obtain Lisp tokens from (must not be
+ * null
)
* @param fileName
- * the name of the file that in
is reading from
+ * the name of the file that in
is reading from
*/
public LispScanner(InputStream in, String fileName) {
this.inStream = new LispFilterInputStream(new BufferedInputStream(in));
@@ -48,9 +48,9 @@ public class LispScanner {
* to nextToken
have been made yet, this method returns
* null
.
*
- * @return
- * the last Lisp token returned from this scanner or null
(if
- * no tokens have been returned from this scanner yet)
+ * @return the last Lisp token returned from this scanner or
+ * null
(if no tokens have been returned from this
+ * scanner yet)
*/
public Token getCurrToken() {
return currToken;
@@ -59,13 +59,13 @@ public class LispScanner {
/**
* Returns the next Lisp token from this scanner.
*
- * @return
- * the next Lisp token from this scanner.
+ * @return the next Lisp token from this scanner.
* @throws RuntimeException
- * Indicates that an illegal character or an unterminated quoted string
- * was encountered in the input stream (not counting comments).
+ * Indicates that an illegal character or an unterminated quoted
+ * string was encountered in the input stream (not counting
+ * comments).
* @throws IOException
- * Indicates that an I/O error has occurred.
+ * Indicates that an I/O error has occurred.
*/
public Token nextToken() throws IOException {
currToken = retrieveNextToken();
@@ -78,8 +78,8 @@ public class LispScanner {
// Returns: the next Lisp token found in 'inStream'
// Precondition: 'inStream' must not be null.
// Throws: RuntimeException - Indicates that an illegal character or an
- // unterminated quoted string was encountered in
- // 'inStream'.
+ // unterminated quoted string was encountered in
+ // 'inStream'.
// Throws: IOException - Indicates that an I/O error has occurred.
private Token retrieveNextToken() throws IOException {
int c;
@@ -100,39 +100,25 @@ public class LispScanner {
break;
case '(':
- return new Token(Token.Type.LEFT_PAREN,
- "(",
- fileName,
- line,
- column);
+ return new Token(Token.Type.LEFT_PAREN, "(", fileName, line, column);
case ')':
- return new Token(Token.Type.RIGHT_PAREN,
- ")",
- fileName,
- line,
- column);
+ return new Token(Token.Type.RIGHT_PAREN, ")", fileName, line, column);
case '\'':
- return new Token(Token.Type.QUOTE_MARK,
- "\'",
- fileName,
- line,
- column);
+ return new Token(Token.Type.QUOTE_MARK, "\'", fileName, line, column);
case '\"':
return retrieveString(nextChar);
default:
- if (Character.isWhitespace(nextChar)) { // skip whitespace
+ if (Character.isWhitespace(nextChar)) { // skip whitespace
continue;
- } else if (Character.isDigit(nextChar)) { // number
+ } else if (Character.isDigit(nextChar)) { // number
return retrieveNumber(nextChar);
- } else if (isLegalIdChar(nextChar)) { // identifier
+ } else if (isLegalIdChar(nextChar)) { // identifier
return retrieveIdentifier(nextChar);
} else {
// 'nextChar' can not start any Lisp token
- throw new RuntimeException("illegal character " +
- "\'" + nextChar + "\'" +
- " - line " + line +
- " column " + column);
+ throw new RuntimeException(
+ "illegal character " + "\'" + nextChar + "\'" + " - line " + line + " column " + column);
}
}
}
@@ -145,14 +131,14 @@ public class LispScanner {
// Retrieve a quoted string token from 'inStream'.
//
// Parameters: firstDoubleQuote - the opening double quote of this quoted
- // string
+ // string
// Returns: a quoted string token obtained from 'instream'
// Throws: RuntimeException - Indicates that this quoted string was
- // missing its terminating double quote.
+ // missing its terminating double quote.
// Throws: IOException - Indicates that an I/O error has occurred.
// Precondition: 'firstDoubleQuote' must be the leading double quote
- // character of this quoted string and 'inStream' must not
- // be null.
+ // character of this quoted string and 'inStream' must not
+ // be null.
private Token retrieveString(char firstDoubleQuote) throws IOException {
StringBuffer text = new StringBuffer();
int startLine = line;
@@ -169,24 +155,20 @@ public class LispScanner {
++column;
text.append(nextChar);
- switch(nextChar) {
- case '\n':
- ++line;
- column = 0;
+ switch (nextChar) {
+ case '\n':
+ ++line;
+ column = 0;
- break;
- case '\"':
- if (prevChar != '\\') {
- // we have found the terminating double quote
+ break;
+ case '\"':
+ if (prevChar != '\\') {
+ // we have found the terminating double quote
- return new Token(Token.Type.STRING,
- text.toString(),
- fileName,
- startLine,
- startColumn);
- }
+ return new Token(Token.Type.STRING, text.toString(), fileName, startLine, startColumn);
+ }
- // this is an escaped double quote
+ // this is an escaped double quote
}
prevChar = nextChar;
@@ -195,9 +177,7 @@ public class LispScanner {
// the end of 'inStream' was reached before the terminating double
// quote
- throw new RuntimeException("unterminated quoted string" +
- " - line " + startLine +
- " column " + startColumn);
+ throw new RuntimeException("unterminated quoted string" + " - line " + startLine + " column " + startColumn);
}
// Retrieve a number token from 'inStream'.
@@ -206,7 +186,7 @@ public class LispScanner {
// Returns: a number token obtained from 'inStream'
// Throws: IOException - Indicates that an I/O error has occurred.
// Precondition: 'firstDigit' must be the first digit of this number and
- // 'inStream' must not be null.
+ // 'inStream' must not be null.
private Token retrieveNumber(char firstDigit) throws IOException {
StringBuffer text = new StringBuffer();
int startColumn = column;
@@ -227,13 +207,9 @@ public class LispScanner {
} else {
// we have reached the end of the number
- inStream.reset(); // unread the last character
+ inStream.reset(); // unread the last character
- return new Token(Token.Type.NUMBER,
- text.toString(),
- fileName,
- line,
- startColumn);
+ return new Token(Token.Type.NUMBER, text.toString(), fileName, line, startColumn);
}
inStream.mark(1);
@@ -242,11 +218,7 @@ public class LispScanner {
// there are no more bytes to be read from 'inStream' after this number
// token
- return new Token(Token.Type.NUMBER,
- text.toString(),
- fileName,
- line,
- startColumn);
+ return new Token(Token.Type.NUMBER, text.toString(), fileName, line, startColumn);
}
// Retrieve an identifier token from 'inStream'.
@@ -255,7 +227,7 @@ public class LispScanner {
// Returns: an identifier token obtained from 'inStream'
// Throws: IOException - Indicates that an I/O error has occurred.
// Precondition: 'firsChar' must be the first character of this identifier
- // and 'inStream' must not be null.
+ // and 'inStream' must not be null.
private Token retrieveIdentifier(char firstChar) throws IOException {
StringBuffer text = new StringBuffer();
int startColumn = column;
@@ -276,13 +248,9 @@ public class LispScanner {
} else {
// we have reached the end of this identifier
- inStream.reset(); // unread the last character
+ inStream.reset(); // unread the last character
- return new Token(Token.Type.IDENTIFIER,
- text.toString(),
- fileName,
- line,
- startColumn);
+ return new Token(Token.Type.IDENTIFIER, text.toString(), fileName, line, startColumn);
}
inStream.mark(1);
@@ -291,30 +259,17 @@ public class LispScanner {
// there are no more bytes to be read from 'inStream' after this
// identifier token
- return new Token(Token.Type.IDENTIFIER,
- text.toString(),
- fileName,
- line,
- startColumn);
+ return new Token(Token.Type.IDENTIFIER, text.toString(), fileName, line, startColumn);
}
// Test if a character is legal to be contained within an identifier in
// Lisp.
//
// Returns: 'true' if the character can be found within an identifier in
- // Lisp; 'false' otherwise
+ // Lisp; 'false' otherwise
private boolean isLegalIdChar(char c) {
- return ((! Character.isWhitespace(c)) && (c != '\"')
- && (c != '\'')
- && (c != '\\')
- && (c != '`')
- && (c != '(')
- && (c != ')')
- && (c != '[')
- && (c != ']')
- && (c != '#')
- && (c != '.')
- && (c != ';'));
+ return ((!Character.isWhitespace(c)) && (c != '\"') && (c != '\'') && (c != '\\') && (c != '`') && (c != '(')
+ && (c != ')') && (c != '[') && (c != ']') && (c != '#') && (c != '.') && (c != ';'));
}
}
diff --git a/src/scanner/Token.java b/src/scanner/Token.java
index 57d2601..c7e413b 100644
--- a/src/scanner/Token.java
+++ b/src/scanner/Token.java
@@ -49,15 +49,15 @@ public class Token {
* and column number.
*
* @param type
- * the type of this token
+ * the type of this token
* @param text
- * the text associated with this token
+ * the text associated with this token
* @param fName
- * the name of the file that this token is located in
+ * the name of the file that this token is located in
* @param line
- * the line number that this token is found on
+ * the line number that this token is found on
* @param column
- * the column number that this token is found on
+ * the column number that this token is found on
*/
public Token(Type type, String text, String fName, int line, int column) {
this.type = type;
@@ -70,8 +70,7 @@ public class Token {
/**
* Accessor method to determine the type of this token.
*
- * @return
- * the type of this token
+ * @return the type of this token
*/
public Type getType() {
return type;
@@ -80,8 +79,7 @@ public class Token {
/**
* Accessor method to determine the text associated with this token.
*
- * @return
- * the text associated with this token
+ * @return the text associated with this token
*/
public String getText() {
return text;
@@ -91,8 +89,7 @@ public class Token {
* Accessor method to determine the name of the file that this token was
* located in.
*
- * @return
- * the name of the file that this token was located in
+ * @return the name of the file that this token was located in
*/
public String getFName() {
return fName;
@@ -102,8 +99,7 @@ public class Token {
* Accessor method to determine the line number that this token was found
* on.
*
- * @return
- * the line number this token was found on
+ * @return the line number this token was found on
*/
public int getLine() {
return line;
@@ -113,8 +109,7 @@ public class Token {
* Accessor method to determine the column number that this token was found
* on.
*
- * @return
- * the column number this token was found on
+ * @return the column number this token was found on
*/
public int getColumn() {
return column;