產(chǎn)生原因:
(1)一直以來,我都想寫一門語言,但無從下手。
(2)我找到了很多編譯原理的教程,但始終覺得內(nèi)容晦澀,理解不了,所以先嘗試寫一個(gè)簡(jiǎn)單的,比如:計(jì)算器。
(3)網(wǎng)上有很多關(guān)于計(jì)算器的實(shí)現(xiàn),但大多需要有編譯原理的基礎(chǔ),對(duì)于我這種小白實(shí)在難以理解。
(4)我決定采用暴力模擬的方式,需要用正則表達(dá)式,但我不想自己實(shí)現(xiàn),所以用js。
最終要實(shí)現(xiàn)什么效果
計(jì)算器接受一串字符,處理后返回結(jié)果。
我們來看一下要做什么:
首先需要知道有哪些“元素”,比如“12+34×56"的元素有整數(shù)12,加號(hào),整數(shù)34,乘號(hào),整數(shù)56,這個(gè)過程稱為詞法分析。
然后根據(jù)符號(hào)的優(yōu)先級(jí)進(jìn)行組合,其過程相當(dāng)于加括號(hào),12+(34*56),這個(gè)過程稱為語法分析。
借用正則表達(dá)式,可以簡(jiǎn)單暴力的實(shí)現(xiàn)詞法分析。
什么是正則表達(dá)式
正則表達(dá)式的概念,和編譯原理一樣,都要費(fèi)好大功夫來理解,當(dāng)初