成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

從零開始寫個編譯器吧 - 開始寫詞法分析器(3)

Barrior / 2176人閱讀

摘要:在之前的章節(jié)第章從零開始寫個編譯器吧開始寫詞法分析器中我有說,我將函數(shù)設(shè)計成主動調(diào)用的形式,而則是被動調(diào)用的形式。接下來本系列將進入編寫語法分析器的階段,不過在此之前,我將抽出一點時間介紹一下語言本身。

上周周末旅游去了,就沒更新了,雖然回到海拔0m的地區(qū),不過目前似乎還在缺氧,所以本次就少更點吧。

這章將結(jié)束詞法分析的部分。

在之前的章節(jié)(第7章從零開始寫個編譯器吧 - 開始寫詞法分析器(1))中我有說,我將 readChar(char c) 函數(shù)設(shè)計成主動調(diào)用的形式,而 read() 則是被動調(diào)用的形式。

那好,現(xiàn)在讓我們來填寫 read() 函數(shù)的 TODO 部分吧。首先,還得把構(gòu)造函數(shù)寫完。

private final Reader reader;

public LexicalAnalysis(Reader reader) {
    this.reader = reader;
    this.state = State.Normal;
}

之后是 read() 函數(shù)。

private Token endToken = null;

Token read() throws IOException, LexicalAnalysisException {
    if(endToken != null) {
        return endToken;
    }
    while(tokenBuffer.isEmpty()) {
        int read = reader.read();
        char c = (read == -1 ? "