编译原理第四次作业--词法分析器

设计思路

我的理解就是实现输入四则运算的字符串,然后将里面的符号输出。
这里面的符号包含运算数,运算符,括号和小数点。不需要输出最后的结果
这其实就是个遍历的问题。那么简要思路如下
:
循环逐字符扫描输入字符串 s,按照顺序从左到右依次处理每个字符。
然后遇到空白字符就跳过,扫描下一个字符。
如果当前字符是数字,若为整数则直接输出,若为小数,则识别出小数点后的数字
整合后输出。
如果当前字符是 +、-、* 或 /,则识别为运算符。我这里将负数处理为减号加上数字。
如果当前字符是 (,则识别为左括号;如果是 ),则识别为右括号。
如果当前字符无法归类到上述任何一种类型,则输出错误信息并终止处理。
每次识别出一个Token后,按照指定的格式输出Token类型和值(例如 TOKEN(NUMBER, 3.14))。

分支结构

"what can i say"这还有啥好说的,传统的 if-else if-else,朴实无华的屎山代码。
分支为:

  1. 数字
  2. 运算符
  3. 括号
  4. 错误信息并直接报错

以下是冰山一角以及输入输出:


posted @ 2025-03-19 20:25  哎哎呦呦喂喂0211  阅读(21)  评论(0)    收藏  举报