2016-05-31 55 views
0

我正在創建允許用戶執行數學運算的在線計算器。在覈心中,我使用math.js評估器來獲取操作的結果。使用math.js和代碼評估的自定義控制語句

目前,用戶可以在命令行中逐一鍵入操作,但是我的想法的下一步應該允許用戶在一些textarea或不同的編輯器中編寫幾行javascript(或自定義語法)代碼,然後評估整個輸入。問題是math.js eval無法處理,但它允許通過自定義函數擴展內置功能。

有什麼辦法來擴展庫來處理/ if/switch語句嗎?或者,也許我應該考慮一些不同的方法(解析每一行並檢查具體的語句名稱,我應該如何使用括號括起來)。

有沒有人強制執行類似的問題?任何建議如何我可以處理這個問題?

+0

將你想要的用戶與javascript代碼嗎?這不像是js會是一個數學表達式,只能評估一個值。 – Bergi

+0

您能向我們展示您想要評估的用戶輸入和預期結果嗎? –

+0

@Bergi和@le_m,讓我們說用戶想要控制他寫的腳本的流程,就像在Matlab中一樣,在那裏你可以定義自定義函數,在裏面你可以輸入例如'for i = 1:6 c [i ] = a [i] * b [i] end'和類似的..我想讓用戶填寫完整的算法,並將它們用作可以從命令行運行的功能 下一個 – Kamil

回答

0

有什麼辦法來擴展庫來處理/ if/switch語句嗎?

沒有不支持。這是對的心願,雖然,請參閱:

https://github.com/josdejong/mathjs/issues/467

+0

是的,我昨天正在檢查,謝謝。不過,我正在考慮解決方案,逐行解析整個輸入代碼並檢測/ if/switch語句,並且應該跳過這些行,否則行應該用math.eval包裝,也許應該這樣做。 – Kamil

+0

它不必與mathjs庫嚴格連接,它可以是包裝器,它將生成適當的代碼 – Kamil