⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scanner.java

📁 一个非常好的检索工具
💻 JAVA
字号:
// $Id: Scanner.java,v 1.3 1999/11/04 14:02:16 shields Exp $// This software is subject to the terms of the IBM Jikes Compiler// License Agreement available at the following URL:// http://www.ibm.com/research/jikes.// Copyright (C) 1983, 1999, International Business Machines Corporation// and others.  All Rights Reserved.// You must accept the terms of that agreement to use this software.//// The Scanner object//class Scanner implements bnfsym{    int next_byte;    Option option;    LexStream lex_stream;    Scanner(Option option, LexStream lex_stream)    {        this.lex_stream = lex_stream;        this.option = option;    }    //    //    //    void skip_spaces() throws java.io.IOException    {        while (next_byte >= 0 && Character.isSpace((char) next_byte))            next_byte = lex_stream.srcfile.read();        return;    }    //    //    //    String scan_symbol() throws java.io.IOException    {        StringBuffer buffer = new StringBuffer();        while (next_byte >= 0 && (! Character.isSpace((char) next_byte)))        {            buffer.append((char) next_byte);            next_byte = lex_stream.srcfile.read();        }        return buffer.toString();    }    //    //    //    void scan() throws java.io.IOException    {        //        // Do not use token indexed at location 0.        //        Token start_token = new Token();        start_token.kind = 0;        start_token.name = "";        lex_stream.tokens.addElement(start_token);        next_byte = lex_stream.srcfile.read();        for (skip_spaces(); next_byte >= 0; skip_spaces())        {            Token token = new Token();            token.name = scan_symbol();            lex_stream.tokens.addElement(token);            if (token.name.equals("::="))                 token.kind = TK_PRODUCES;            else if (token.name.equals("|"))                 token.kind = TK_OR;            else token.kind = TK_SYMBOL;        }        Token end_token = new Token();        end_token.kind = TK_EOF;        end_token.name = "";        lex_stream.tokens.addElement(end_token);        return;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -