【发布时间】:2021-10-20 16:12:28
【问题描述】:
我正在尝试为我解析的语言实现“变量声明未来”。
PEG.js 来源:
start
=begin line (pl)+ end
pl
=varx" " left:identifier" "to" "middle:integer line { left=middle;}
/
print"(" middle:identifier ")" line {alert(middle);}
line
="\n"
begin
="start"
print
="print"
if
="if"
equals
="equals"
gth
="greater than"
identifier
=[a-zA-Z]+ {return text();}
to
="to"
varx
="set"
end
="end"
integer "integer"
= digits:[0-9]+ { return Number(parseInt(digits.join(""), 10)); }
我的自定义输入源:
start
set a to 5
print(a)
end
我得到了什么输出:
[
"start",
"
",
[
undefined,
undefined
],
"end"
]
作为警告,我只得到了变量名 a 没有值...
【问题讨论】:
-
你只提醒标识符;你根本没有处理变量存储。
-
@Dave Newton,我是新手。请帮帮我????
-
这能回答你的问题吗? PEGjs | Implement Variable in Parser
标签: javascript parsing pegjs