com.jasml.compiler
Class Scanner

java.lang.Object
  extended bycom.jasml.compiler.Scanner
All Implemented Interfaces:
Scannable

public class Scanner
extends java.lang.Object
implements Scannable


Field Summary
(package private)  char[] buf
           
private  int columnNumber
           
private  int columnNumber1
           
private  boolean columnNumberOn
           
private  int columnNumberStart
           
private  int columnNumberStart1
           
private  int contentLength
           
private  int currentLineNumber1
           
private static char EndChar
           
private  int lineNumber
           
private  boolean lineNumberOn
           
private  int lineNumberStart
           
private  int lineNumberStart1
           
private  int offset
           
private  int offset1
           
private  int oldColumnNumber
           
private  int oldColumnNumber1
           
private  java.lang.String token
           
private  java.lang.String token1
           
private  int tokenOffset
           
private  int tokenOffset1
           
private  int tokenType
           
private  int tokenType1
           
 
Fields inherited from interface com.jasml.compiler.Scannable
AccessFlag, Attribute, Bracket_Left, Bracket_Right, Char, Colon, Comma, Defualt, EOF, Equal, Instruction, JavaName, Number_Double, Number_Double_NaN, Number_Double_Negativ_Infinity, Number_Double_Positive_Infinity, Number_Float, Number_Float_NaN, Number_Float_Negativ_Infinity, Number_Float_Positive_Infinity, Number_Integer, Number_Long, Pointer, SBracket_Left, SBracket_Right, String, WhiteSpace
 
Constructor Summary
private Scanner()
           
  Scanner(java.io.File file)
           
  Scanner(java.lang.String content)
           
  Scanner(java.lang.String content, int startingOffset, int length)
           
 
Method Summary
private static void delComment(char[] cs)
          delete the single line and multi line comment, if multiline comment is not closed.
private static void exception(int offset, int line, int column, java.lang.String msg)
           
private static void exception(Scanner sc, java.lang.String msg)
           
 int getColumnNumberEnd()
           
 int getColumnNumberStart()
           
 char[] getContent()
           
 int getLength()
           
 int getLineNumberEnd()
           
 int getLineNumberStart()
           
 int getOffset()
           
private  boolean isAccessFlag(java.lang.String s)
           
private  boolean isInstruction(java.lang.String s)
           
private  boolean isSeparatingChar(char c)
           
private  boolean isValidName(java.lang.String s)
           
static void main(java.lang.String[] s)
           
 void mark()
           
 int nextToken()
           
static Scanner partialScanner(char[] content, int offset, int length, int columnNumber, int lineNumber)
          create a scanner using the content of the Scanner passed down.
private  char read()
           
 void restore()
           
 void setColumnNumberOn(boolean columnNumberOn)
           
 void setLineNumberOn(boolean lineNumberOn)
           
private  void skipSpaces()
           
private  int specialNumberType(java.lang.String s)
          processing speical number types. see Negativ_Infinity Positive_Infinity NaN definitions in Scannable.
 java.lang.String token()
           
 int tokenType()
           
private  void unread()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

lineNumberOn

private boolean lineNumberOn

columnNumberOn

private boolean columnNumberOn

lineNumber

private int lineNumber

lineNumberStart

private int lineNumberStart

columnNumber

private int columnNumber

columnNumberStart

private int columnNumberStart

buf

char[] buf

offset

private int offset

tokenOffset

private int tokenOffset

tokenType

private int tokenType

contentLength

private int contentLength

oldColumnNumber

private int oldColumnNumber

token

private java.lang.String token

EndChar

private static final char EndChar
See Also:
Constant Field Values

currentLineNumber1

private int currentLineNumber1

lineNumberStart1

private int lineNumberStart1

columnNumber1

private int columnNumber1

columnNumberStart1

private int columnNumberStart1

offset1

private int offset1

tokenOffset1

private int tokenOffset1

tokenType1

private int tokenType1

oldColumnNumber1

private int oldColumnNumber1

token1

private java.lang.String token1
Constructor Detail

Scanner

private Scanner()

Scanner

public Scanner(java.lang.String content)
        throws ParsingException

Scanner

public Scanner(java.lang.String content,
               int startingOffset,
               int length)

Scanner

public Scanner(java.io.File file)
        throws ParsingException
Method Detail

partialScanner

public static Scanner partialScanner(char[] content,
                                     int offset,
                                     int length,
                                     int columnNumber,
                                     int lineNumber)
                              throws ParsingException
create a scanner using the content of the Scanner passed down. the new Scanner will scan from offset, end at offset+length

Parameters:
content -
offset -
length -
columnNumber -
lineNumber -
Returns:
Throws:
ParsingException

getContent

public char[] getContent()

mark

public void mark()

restore

public void restore()

setLineNumberOn

public void setLineNumberOn(boolean lineNumberOn)

setColumnNumberOn

public void setColumnNumberOn(boolean columnNumberOn)

nextToken

public int nextToken()
              throws ParsingException
Throws:
ParsingException

specialNumberType

private int specialNumberType(java.lang.String s)
processing speical number types. see Negativ_Infinity Positive_Infinity NaN definitions in Scannable.

Parameters:
s -
Returns:
String

isValidName

private boolean isValidName(java.lang.String s)

getOffset

public int getOffset()

getLength

public int getLength()

tokenType

public int tokenType()

token

public java.lang.String token()

getLineNumberStart

public int getLineNumberStart()

getLineNumberEnd

public int getLineNumberEnd()

getColumnNumberStart

public int getColumnNumberStart()

getColumnNumberEnd

public int getColumnNumberEnd()

skipSpaces

private void skipSpaces()

read

private char read()

unread

private void unread()

delComment

private static void delComment(char[] cs)
                        throws ParsingException
delete the single line and multi line comment, if multiline comment is not closed. TODO: this can be merged into read()

Parameters:
cs -
Throws:
ParsingException

isSeparatingChar

private boolean isSeparatingChar(char c)

isInstruction

private boolean isInstruction(java.lang.String s)

isAccessFlag

private boolean isAccessFlag(java.lang.String s)

exception

private static void exception(Scanner sc,
                              java.lang.String msg)
                       throws ParsingException
Throws:
ParsingException

exception

private static void exception(int offset,
                              int line,
                              int column,
                              java.lang.String msg)
                       throws ParsingException
Throws:
ParsingException

main

public static void main(java.lang.String[] s)
                 throws java.lang.Exception
Throws:
java.lang.Exception