build your own lisp ch6 笔记

原文地址

http://www.buildyourownlisp.com/chapter6_parsing

波兰式

1 + 2 + 3 --> + 1 2 3
6 + (2 * 9) --> + 6 ( * 2 9)
(10 * 2) / (4 + 2) --> / (* 2 10) (+ 4 2)

即:一个程序是由一个操作符后跟一个或多个表达式构成的,表达式是:一个数字或者是在一个圆括号中的一个或多个表达式。(递归啊啊啊)

Program: 输入的开始,一个操作符,一个或多个表达式,输入的结束

Expression: Number 或者 ‘(‘, 一个操作符, 一个或多个表达式, ‘)’

Operator: +. -. *, /

Number : 一个可选的 ‘-‘, 一个或多个0-9之间的字符

正则表达式

.: 匹配任何字符
a: 匹配字符’a’
[abcdef]: 匹配任何在abcdef 中的字符
[a-f]: 匹配a到f之间的任何字符
a?: a是可选的字符
a*: 匹配0到多个a
a+: 匹配1到多个a
^: 匹配一行的开始
$: 匹配一行的结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值