相关疑难解决方法(0)

用于Python样式缩进的PEG

您将如何在以下任何可以处理Python/Haskell/CoffeScript样式缩进的分析器生成器(PEG.js,Citrus,Treetop)中编写解析表达式语法:

尚未存在的编程语言的示例:

square x =
    x * x
Run Code Online (Sandbox Code Playgroud)
cube x =
    x * square x
Run Code Online (Sandbox Code Playgroud)
fib n =
  if n <= 1
    0
  else
    fib(n - 2) + fib(n - 1) # some cheating allowed here with brackets
Run Code Online (Sandbox Code Playgroud)

更新: 不要尝试为上面的示例编写解释器.我只对缩进问题感兴趣.另一个例子可能是解析以下内容:

foo
  bar = 1
  baz = 2
tap
  zap = 3

# should yield (ruby style hashmap):
# {:foo => { :bar => 1, :baz => 2}, :tap => { :zap => …
Run Code Online (Sandbox Code Playgroud)

syntax parsing language-design peg treetop

32
推荐指数
3
解决办法
5083
查看次数

标签 统计

language-design ×1

parsing ×1

peg ×1

syntax ×1

treetop ×1