花了一下午寫了個簡單的js語法分析器,卡在了正斜槓上?

時間 2021-05-11 13:02:57

1樓:「已登出」

如果只是為了高亮,碰到可能是正則可能是連除的不往下解析如何?直接把 a/b/c 當做乙個不可再分的元素如何?

另外求不支援正則時的模組位址

2樓:Jim Liu

根據我的經驗,任何試圖寫乙個「簡單的解析器」最終都只會有以下兩個方向1、乙個半殘但又複雜的解析器

2、乙個完整的解析器

所以換做我的話我是不會接受「簡單的解析器」這個概念的……

3樓:brambles

這問題太簡單了,思路如下。

先按照正則(字面量)往下判斷,如果不對,回溯。

最後按照注釋進行判斷,如果不對,回溯。

然後按照除法(符號)進行判斷,如果不對,回溯。

如果都不行,爆語法錯誤。完事,就那麼簡單。

最後,如果題主有好好學編譯原理,那麼給你推薦個好東西 zaach/jison 。根本不需要手寫,會正則,會 BNF ,造 parser 分分鐘。

最後,我的 smooth 的 parser 你可以參照一下。bramblex/Smooth

4樓:五行缺肉

有點不太明白你的用法:if(exp)/reg/g(省略{}的結構體,除了if還包括了do while for等)還是(exp)/reg/g(幾個連續的除),前面是block:{}/reg/g(緊跟在乙個結構體後面)還是}/reg/g(物件字面量作為分子)。

你這裡/reg/g難不成是單獨存在的?不使用方法,不賦值?

一般的正規表示式用法都是=/reg/g;if(/reg/g.test());.match(/reg/g);,這幾種,判斷起來很簡單啊

電腦小白乙個,花了一下午搗鼓的配置清單,請各位大神看看,提點意見?

鹹魚王 板u推薦3600 華碩b450 tuf pro套裝,1800,還便宜點效能更好,9400f感覺有點過時。顯示卡耕公升1660s炫光券後才1500,悽慘紅感覺有點貴。電源換酷冷gx450,記憶體8g雙通道,十銓冥神3000頻率的。固態是西數sn550?沒寫型號,不過sn550 360就下來了,...

高雄有哪些可以安靜待一下午的地方?

FIona 去年被帶去乙個農莊裡,離高雄機場很近的地方,農莊裡面有好些動物,更重要的是在用餐區點一杯咖啡看著飛機起飛降落,一下午就這麼過去了 HsuYen Hung 有個叫做 布蘭奇 的餐廳,在高雄市區里大約有6個店面吧?有供電也有wifi,還有書報雜誌可以取閱,整個環境也還不錯。 桃樂筆 身為在地...

香港有哪些可以安靜地待一下午的地方?

Shadow L 各個區的公共圖書館。交通方便,一般離港鐵站都不遠。環境舒適,安靜 寬敞 座位多,特別是那種對著整面落地玻璃窗的長沙發,可以坐一整天。圖書種類齊全。當然,最重要的是,可以隨便進。只要不外借圖書,就不需要任何證件。 黃藍 香港的塔門島。比較小眾的離島之一,上周末去的Vlog 黃丹 蒲台...