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