资源简介
武大国软桂浩解释器构造实验三,同样适用于李莉老师的实验
代码片段和文件信息
package com.shaw.cmmjava;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.linkedList;
import com.shaw.cmmjava.model.Token;
public class Lexer {
private static BufferedReader mBufferedReader;
private static int currentInt;
private static char currentChar;
private static int lineNo;
public static linkedList lexicalAnalyse(BufferedReader br) throws IOException {
lineNo = 1;
mBufferedReader = br;
linkedList tokenList = new linkedList();
StringBuilder sb = new StringBuilder();
readChar();
while(currentInt != -1) {
//消耗空白字符
if (currentChar == ‘\n‘
|| currentChar == ‘\r‘
|| currentChar == ‘\t‘
|| currentChar == ‘\f‘
|| currentChar == ‘ ‘) {
readChar();
continue;
}
//简单特殊符号
switch (currentChar) {
case ‘;‘:
tokenList.add(new Token(Token.SEMI lineNo));
readChar();
continue;
case ‘+‘:
tokenList.add(new Token(Token.PLUS lineNo));
readChar();
continue;
case ‘-‘:
tokenList.add(new Token(Token.MINUS lineNo));
readChar();
continue;
case ‘*‘:
tokenList.add(new Token(Token.MUL lineNo));
readChar();
continue;
case ‘(‘:
tokenList.add(new Token(Token.LPARENT lineNo));
readChar();
continue;
case ‘)‘:
tokenList.add(new Token(Token.RPARENT lineNo));
readChar();
continue;
case ‘[‘:
tokenList.add(new Token(Token.LBRACKET lineNo));
readChar();
continue;
case ‘]‘:
tokenList.add(new Token(Token.RBRACKET lineNo));
readChar();
continue;
case ‘{‘:
tokenList.add(new Token(Token.LBRACE lineNo));
readChar();
continue;
case ‘}‘:
tokenList.add(new Token(Token.RBRACE lineNo));
readChar();
continue;
// no default:
}
//复合特殊符号
if (currentChar == ‘/‘) {
readChar();
if (currentChar == ‘*‘) {//多行注释
// tokenList.add(new Token(Token.LCOM lineNo));
readChar();
while (true) {//使用死循环消耗多行注释内字符
if (currentChar == ‘*‘) {//如果是*那么有可能是多行注释结束的地方
readChar();
if (currentChar == ‘/‘) {//多行注释结束符号
// tokenList.add(new Token(Token.RCOM lineNo));
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-10-29 13:35 cmmjava_parser3\
文件 226 2015-02-07 17:08 cmmjava_parser3\.classpath
文件 373 2015-02-07 17:08 cmmjava_parser3\.project
目录 0 2017-10-29 13:35 cmmjava_parser3\src\
目录 0 2017-10-29 13:35 cmmjava_parser3\src\com\
目录 0 2017-10-29 13:35 cmmjava_parser3\src\com\shaw\
目录 0 2017-10-29 13:35 cmmjava_parser3\src\com\shaw\cmmjava\
文件 8086 2015-01-23 17:20 cmmjava_parser3\src\com\shaw\cmmjava\Lexer.java
文件 851 2015-02-07 17:16 cmmjava_parser3\src\com\shaw\cmmjava\Main.java
文件 13712 2015-01-06 18:04 cmmjava_parser3\src\com\shaw\cmmjava\Parser.java
文件 1241 2015-02-07 17:09 cmmjava_parser3\src\com\shaw\cmmjava\Util.java
目录 0 2017-10-29 13:35 cmmjava_parser3\src\com\shaw\cmmjava\exception\
文件 206 2015-01-06 18:04 cmmjava_parser3\src\com\shaw\cmmjava\exception\ParserException.java
目录 0 2017-10-29 13:35 cmmjava_parser3\src\com\shaw\cmmjava\model\
文件 2390 2014-12-31 00:18 cmmjava_parser3\src\com\shaw\cmmjava\model\Symbol.java
文件 6814 2015-01-23 16:54 cmmjava_parser3\src\com\shaw\cmmjava\model\Token.java
文件 5367 2015-01-01 22:57 cmmjava_parser3\src\com\shaw\cmmjava\model\TreeNode.java
文件 2505 2015-02-07 17:10 cmmjava_parser3\src\com\shaw\cmmjava\model\Value.java
目录 0 2017-10-29 13:35 cmmjava_parser3\可执行文件\
文件 14392 2015-02-07 17:27 cmmjava_parser3\可执行文件\parser.jar
文件 33 2015-02-07 17:28 cmmjava_parser3\可执行文件\用法.txt
- 上一篇:51单片机与蓝牙模块的串口通信C程序
- 下一篇:4g模块电路设计pcb
相关资源
- CMM 中文版高清pdf
- 音频测试文件pcmmp3aacamrg711ag711u等多种
- CMMI-dev-V1.3简体中文版最终发布版本
- 开式变量泵在CMM25-4锚杆钻机中的应用
- 한글2007 hangul cdkey
- CMMI2项目管理目录结构及文档模板
- CMMI3 项目文档 全
- cmmi(dev)v1.2简体中文版
- CMMI3-DAR决策分析与解决方案-培训资料
- CMM解释器构造课程实践
- CMMI项目管理全套资料
- 软件cmmi3的所有文档
- CMMI 采用和过渡指南 V2.0
- CMMI项目项目经理工作介绍
- CMMI过程域检查单
- 国软2012下UNIX考试卷
- 能力成熟度整合模式CMMI 1.1
- CMMI_for_Development_v1-3_Simplified_Chinese
- CMMI-V2.0模型概览中文.pdf
- CMMI标准文档模板(最全)
- 最完整CMMI3标准文档模板
- 中国软件定义广域网SD-WAN生态与技术
- 2020PMP项目管理模板+CMM3标准管理模板
- COSMIC规模度量方法培训资料
- 适用于发展的能力成熟度整合模型(
- cmmi相关资料包含2.3级过程域等相关文
- 完整版 CMMI最全资料.zip
- PMP项目模板全套+CMMI模板全套
- cmmi模板大全,cmmi3模板,cmmi
- Real-Life BPMN: With introductions to CMMN and
评论
共有 条评论