build your own lisp ch6 笔记

来源:互联网 发布:mysql distinct 原理 编辑:程序博客网 时间:2024/05/16 11:25

原文地址

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
原创粉丝点击