我正在設計一種語言,我想用豐富的代碼編輯器來增強用戶體驗。首先,我在CodeMirror,但後來我發現ACE Editor艱難,這也是開源的:)這是使用javascript的代碼語法錯誤檢測的基本結構?
我已閱讀一切,並決定爲第二個選項。但是我找不到如何實現錯誤檢測機制;我指的是工作文件。所以... 問題,最後是這是一個語法分析器的基本結構,用於查找使用javascript語法錯誤?(例如JSHint)
我非常感謝您的回答,非常感謝。
我正在設計一種語言,我想用豐富的代碼編輯器來增強用戶體驗。首先,我在CodeMirror,但後來我發現ACE Editor艱難,這也是開源的:)這是使用javascript的代碼語法錯誤檢測的基本結構?
我已閱讀一切,並決定爲第二個選項。但是我找不到如何實現錯誤檢測機制;我指的是工作文件。所以... 問題,最後是這是一個語法分析器的基本結構,用於查找使用javascript語法錯誤?(例如JSHint)
我非常感謝您的回答,非常感謝。
要進入JavaScript驅動詞法分析,結賬的JSLint的源代碼:
https://github.com/douglascrockford/JSLint/blob/master/jslint.js
你會想在行1183,其中詞法分析和令牌建設開始特別注意。祝你好運!
非常有用的答案。謝謝! –
另請參閱Douglas Crockford的文章[Top Down Operator Precedence](http://javascript.crockford.com/tdop/tdop.html),它給出了jsLint內部工作的大量背景。 –
做任何符合JavaScript/LanguageX引擎會做的事情......將它放入令牌流中,根據語言語法將令牌解析爲某些ADT,然後檢測到該點的任何語法錯誤(通常沿途)或繼續進行更多真棒分析。這些步驟實際上在事物的方案中非常簡單。 (像JSHint這樣的工具應用額外的啓發式方法來「檢測錯誤的代碼」;也就是說,代碼是有效的,但不符合某些規則/約定或可能因合法原因而出現問題。) – 2012-12-28 04:22:06
非常感謝。你知道我是否必須考慮讓我的工作人員與Ace編輯一起工作的其他事情? –