summaryrefslogtreecommitdiff
path: root/java/test/Freeze/complex/Parser.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/test/Freeze/complex/Parser.java')
-rw-r--r--java/test/Freeze/complex/Parser.java242
1 files changed, 121 insertions, 121 deletions
diff --git a/java/test/Freeze/complex/Parser.java b/java/test/Freeze/complex/Parser.java
index 2fed6eed723..99a1865574d 100644
--- a/java/test/Freeze/complex/Parser.java
+++ b/java/test/Freeze/complex/Parser.java
@@ -11,150 +11,150 @@ public class Parser
{
public Complex.Node
parse(String buf)
- throws ParseError
+ throws ParseError
{
- _buf = buf;
- _pos = 0;
- _token = null;
+ _buf = buf;
+ _pos = 0;
+ _token = null;
- return start();
+ return start();
}
private Complex.Node
start()
- throws ParseError
+ throws ParseError
{
- nextToken();
- Complex.Node node = expr();
- if(_token != null)
- {
- throw new ParseError("Extra garbage: " + _token);
- }
- return node;
+ nextToken();
+ Complex.Node node = expr();
+ if(_token != null)
+ {
+ throw new ParseError("Extra garbage: " + _token);
+ }
+ return node;
}
private Complex.Node
expr()
- throws ParseError
+ throws ParseError
{
- try
- {
- if(_token == null)
- {
- return null;
- }
+ try
+ {
+ if(_token == null)
+ {
+ return null;
+ }
- //
- // '(' expr ')'
- //
- if(_token.charAt(0) == '(')
- {
- nextToken();
+ //
+ // '(' expr ')'
+ //
+ if(_token.charAt(0) == '(')
+ {
+ nextToken();
- Complex.Node node = expr();
- if(_token.charAt(0) != ')')
- {
- throw new ParseError("Expected ')'");
- }
+ Complex.Node node = expr();
+ if(_token.charAt(0) != ')')
+ {
+ throw new ParseError("Expected ')'");
+ }
- nextToken();
- return node;
- }
+ nextToken();
+ return node;
+ }
- //
- // expr | expr '+' expr | expr '*' expr
- //
- if(!Character.isDigit(_token.charAt(0)))
- {
- throw new ParseError("Expected number");
- }
-
- Complex.NumberNode number = new Complex.NumberNodeI(Integer.parseInt(_token));
- Complex.Node result = number;
-
- //
- // expr?
- //
- nextToken();
- if(_token != null)
- {
- //
- // expr '+' expr
- //
- if(_token.charAt(0) == '+')
- {
- nextToken();
- Complex.Node right = expr();
- result = new Complex.AddNodeI(number, right);
- }
-
- //
- // expr '*' expr
- //
- else if(_token.charAt(0) == '*')
- {
- nextToken();
- Complex.Node right = expr();
- result = new Complex.MultiplyNodeI(number, right);
- }
- }
- return result;
- }
- catch(NumberFormatException e)
- {
- ParseError ex = new ParseError("Error parsing number");
- ex.initCause(e);
- throw ex;
- }
+ //
+ // expr | expr '+' expr | expr '*' expr
+ //
+ if(!Character.isDigit(_token.charAt(0)))
+ {
+ throw new ParseError("Expected number");
+ }
+
+ Complex.NumberNode number = new Complex.NumberNodeI(Integer.parseInt(_token));
+ Complex.Node result = number;
+
+ //
+ // expr?
+ //
+ nextToken();
+ if(_token != null)
+ {
+ //
+ // expr '+' expr
+ //
+ if(_token.charAt(0) == '+')
+ {
+ nextToken();
+ Complex.Node right = expr();
+ result = new Complex.AddNodeI(number, right);
+ }
+
+ //
+ // expr '*' expr
+ //
+ else if(_token.charAt(0) == '*')
+ {
+ nextToken();
+ Complex.Node right = expr();
+ result = new Complex.MultiplyNodeI(number, right);
+ }
+ }
+ return result;
+ }
+ catch(NumberFormatException e)
+ {
+ ParseError ex = new ParseError("Error parsing number");
+ ex.initCause(e);
+ throw ex;
+ }
}
private void
nextToken()
{
- //
- // Eat any whitespace.
- //
- while(_pos < _buf.length() && Character.isWhitespace(_buf.charAt(_pos)))
- {
- _pos++;
- }
+ //
+ // Eat any whitespace.
+ //
+ while(_pos < _buf.length() && Character.isWhitespace(_buf.charAt(_pos)))
+ {
+ _pos++;
+ }
- //
- // At the end-of-buffer?
- //
- if(_pos >= _buf.length())
- {
- _token = null;
- return;
- }
+ //
+ // At the end-of-buffer?
+ //
+ if(_pos >= _buf.length())
+ {
+ _token = null;
+ return;
+ }
- StringBuffer buf = new StringBuffer();
-
- //
- // Get the next character
- //
- char c = _buf.charAt(_pos);
-
- //
- // '(', ')', '+' and '*' are tokens.
- //
- if(c == '(' || c == ')' || c == '+' || c == '*')
- {
- buf.append(c);
- ++_pos;
- }
- else
- {
- //
- // Otherwise it's a number.
- //
- while(_pos < _buf.length() && Character.isDigit(_buf.charAt(_pos)))
- {
- buf.append(_buf.charAt(_pos++));
- }
- }
-
- _token = buf.toString();
+ StringBuffer buf = new StringBuffer();
+
+ //
+ // Get the next character
+ //
+ char c = _buf.charAt(_pos);
+
+ //
+ // '(', ')', '+' and '*' are tokens.
+ //
+ if(c == '(' || c == ')' || c == '+' || c == '*')
+ {
+ buf.append(c);
+ ++_pos;
+ }
+ else
+ {
+ //
+ // Otherwise it's a number.
+ //
+ while(_pos < _buf.length() && Character.isDigit(_buf.charAt(_pos)))
+ {
+ buf.append(_buf.charAt(_pos++));
+ }
+ }
+
+ _token = buf.toString();
}
private String _buf;