org.oklab.compiler
クラス SourceReader

java.lang.Object
  上位を拡張 org.oklab.compiler.SourceReader

public class SourceReader
extends java.lang.Object

ソースコードをファイルから読むクラス.

導入されたバージョン:
1.0
バージョン:
1.01
作成者:
Satoshi Okita satoshiokita@gmail.com

フィールドの概要
private  java.io.BufferedReader br
           
 java.lang.String curentIdentifer
          現在保持している識別子.
(package private)  StringExt currentLine
           
 int currentToken
          現在このクラスが保持しているトークン.
 long currentValue
          現在保持している値.
 java.lang.String filename
          入力ソースコードの名前.
 
コンストラクタの概要
SourceReader(java.lang.String filename)
          初期化.
 
メソッドの概要
 int nextToken()
          字句解析(Lexical analysis).
private  int read()
           
 void readLine()
          構文解析(Syntax analysis).
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

filename

public java.lang.String filename
入力ソースコードの名前.


currentToken

public int currentToken
現在このクラスが保持しているトークン.


br

private java.io.BufferedReader br

currentLine

StringExt currentLine

curentIdentifer

public java.lang.String curentIdentifer
現在保持している識別子.


currentValue

public long currentValue
現在保持している値. Integer型などの字句解析で数値を保持するために使う.

コンストラクタの詳細

SourceReader

public SourceReader(java.lang.String filename)
初期化.

パラメータ:
filename - 入力ソースコードの名前.
メソッドの詳細

readLine

public void readLine()
              throws CompileError
構文解析(Syntax analysis). ファイルを単位で読み込んで、ソースコードから構造木(Syntax tree)と名前表 を作成する. またソースコードの変数や予約語から構造木を直接作るのではなく、字句解析に 依頼してトークンを生成してもらう.その後、トークンで構造木をつくる.

例外:
CompileError - 構文解析に失敗した時に投げる.

nextToken

public int nextToken()
              throws CompileError
字句解析(Lexical analysis). 字句解析は、文章から自然言語でいう単語という単位で 取り出して、それを記号化して返す.単位はトークンという.これは構文解析が ソースコードを読み込んで、構造木を作る時に使われる.

戻り値:
Tokenクラスで定義したトークン定数のどれかを返す.
例外:
CompileError - 字句解析に失敗した時に投げる.

read

private int read()