2439905184 / bkscr-parser

bkengine脚本的解析器(开源实现)基于python3.8.4
https://github.com/2439905184/bkengine_interpreter_godot
GNU General Public License v2.0
2 stars 0 forks source link

关于换行符问题 重要 #1

Open 2439905184 opened 2 years ago

2439905184 commented 2 years ago

需要吧file.read() 换成file.readlines()并传递给扫描器, 不然无法处后续的行数问题

2439905184 commented 2 years ago
lines = "*main \n @bg file='a.png' \n *my"
行数=1
临时标记 = ""
for index=1,line in lines: #lines是一个动态数组
   for char in line:
     if char =="*"
         addToken(标签)
         临时标记="标签"
      elif char =="@":
          addToken(单行宏)
          临时标记="单行宏"
  if 临时标记=="标签":
     addToken(标签值)
     addToken(index)
       把单个字符全都并成字符串()
# 参考lox中处理字符串开始结束的办法,并移植到标签的写法
# 如果遇到" 则一直累加,直到遇到第二个"才结束
#此处 *main\n 或者*main     \n,则是*作为字符串开头,\n作为结尾
#此处累加需要在添加Token之前实现,不然就会有太多字符
      if 临时标记=="单行宏":
        addToken(line,值)
        addToken(行数)