设为首页收藏本站淘宝杂货铺

从F到0 - From F to 0

 找回密码
 注册已关闭
搜索
查看: 5950|回复: 11
收起左侧

构造一个简单的编译器实现语法检查 括号位置是否正确/对称/匹配/配对/平衡

[复制链接]
发表于 2018-11-28 10:17:31 | 显示全部楼层 |阅读模式
本帖最后由 QAQ 于 2018-11-28 10:22 编辑

  1. .版本 2

  2. .程序集 程序集1

  3. .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码


  4. _临时子程序 ()  ' 在初始化代码执行完毕后调用测试代码
  5. 返回 (0)  ' 可以根据您的需要返回任意数值

  6. .子程序 _临时子程序

  7. ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。


  8. 输出调试文本 (括号位置是否正确 (“c((d >= 0 && d <=9?48:u?55:87)+d);”))
  9. 输出调试文本 (括号位置是否正确 (“A=B+_lrol_(A+f+md.l[j&15]+ti[i],ss[i>>4][i&3]);”))
  10. 输出调试文本 (括号位置是否正确 (“case 2:{f=B^C^D,j=3*i+5;break;}”))
  11. 输出调试文本 (括号位置是否正确 (“case 3:{}}”))
  12. 输出调试文本 (括号位置是否正确 (“输出调试文本 (括号位置是否正确 ()))”))


  13. .子程序 括号位置是否正确, 逻辑型, 公开, 括号位置不匹配或位置不对称将返回假,否则返回真
  14. .参数 代码文本, 文本型, , 不支持识别文本字符串中的括号以及全角括号否则会出错,处理前请自行删除引号内文本

  15. ' 判断 (括号位置是否正确_ (代码文本, “<>”) = 假)
  16. ' 返回 (假)
  17. .判断开始 (括号位置是否正确_单个 (代码文本, “{}”) = 假)
  18.     返回 (假)
  19. .判断 (括号位置是否正确_单个 (代码文本, “[]”) = 假)
  20.     返回 (假)
  21. .判断 (括号位置是否正确_单个 (代码文本, “()”) = 假)
  22.     返回 (假)
  23. .默认

  24. .判断结束
  25. 返回 (真)

  26. .子程序 括号位置是否正确_单个, 逻辑型
  27. .参数 代码文本, 文本型
  28. .参数 括号文本, 文本型
  29. .局部变量 左括号, 字节型
  30. .局部变量 右括号, 字节型
  31. .局部变量 栈, 整数型
  32. .局部变量 计数, 整数型
  33. .局部变量 字节, 字节型

  34. 左括号 = 取代码 (括号文本, 1)
  35. 右括号 = 取代码 (括号文本, 2)
  36. .计次循环首 (取文本长度 (代码文本), 计数)
  37.     字节 = 取代码 (代码文本, 计数)
  38.     .判断开始 (字节 = 左括号)
  39.         栈 = 栈 + 1
  40.     .判断 (字节 = 右括号)
  41.         栈 = 栈 - 1
  42.         .如果真 (栈 < 0)
  43.             返回 (假)
  44.         .如果真结束

  45.     .默认

  46.     .判断结束

  47. .计次循环尾 ()
  48. 返回 (栈 = 0)

复制代码


发表于 2018-12-3 16:57:35 | 显示全部楼层
lz也可以考虑发明个新编译器,就像吴总一样
发表于 2018-12-1 19:11:59 | 显示全部楼层
搞这说难不难说简单也不简单
发表于 2018-11-28 20:34:50 | 显示全部楼层
顶顶顶顶顶顶顶顶顶
发表于 2018-11-28 10:48:19 | 显示全部楼层
谢谢分享666
您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

QQ|手机版|Archiver|从F到0 ( 蒙ICP备17002595号-1 )
蒙公网安备15010402000325号

腾讯云安全认证

GMT+8, 2024-4-26 21:14 , Processed in 1.034059 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表