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
^: 匹配一行的開始
$: 匹配一行的結束

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章