質問編集履歴
2
誤字を修正。
test
CHANGED
File without changes
|
test
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
その機能の一つとして、テキストエリアやコンボボックスに対して独自の構文スクリプトを設定しそのスクリプトを実行させたいです。
|
10
10
|
|
11
|
-
例えば、テキストエリアA・テキストエリアBがあり、テキストエリアAに「if(#[テキストエリアB]
|
11
|
+
例えば、テキストエリアA・テキストエリアBがあり、テキストエリアAに「if(#[テキストエリアB] = "", MyValue(), #[テキストエリアB])」という構文が設定されているとします。この構文の意味は「テキストエリアBが空白の場合はテキストエリアAの値を設定し、そうでなければテキストエリアBの値を設定する」という意味です。
|
12
12
|
|
13
13
|
質問内容としては、javascriptで構文解析をしたいのですが自力でゼロから作るのは難しいと思っています。
|
14
14
|
|
1
コードをコードブロックで囲むように修正。質問文のコードブロックを削除。
test
CHANGED
File without changes
|
test
CHANGED
@@ -14,11 +14,15 @@
|
|
14
14
|
|
15
15
|
そこで調査したところ、Peg.jsなるものを見つけました。
|
16
16
|
|
17
|
+
そのPeg.jsで不明点がいくつかあります。
|
18
|
+
|
19
|
+
|
20
|
+
|
17
21
|
###発生している問題・エラーメッセージ
|
18
22
|
|
19
23
|
まずhttp://pegjs.org/onlineにサンプルがあるのでこれから勉強しようと思っているのですがサンプルの構文に分からないところがあります。
|
20
24
|
|
21
|
-
|
25
|
+
|
22
26
|
|
23
27
|
1.一番下に「_」をスペースとして定義している箇所があります。スペースは「 \t\n\r」の繰り返しからなっている。ということは分かるのですが、「"whitespace" 」は何のための記述かわかりません。
|
24
28
|
|
@@ -28,7 +32,7 @@
|
|
28
32
|
|
29
33
|
4.このサンプルでは四則演算ができ、「2 * (3 + 4)」と与えれば3 + 4を先に評価していますがどこの定義で優先での指定をしているのでしょう。
|
30
34
|
|
31
|
-
|
35
|
+
|
32
36
|
|
33
37
|
質問も漠として申し訳ありませんがご回答いただければ幸いです。どうぞよろしくお願いいたします。
|
34
38
|
|
@@ -37,6 +41,8 @@
|
|
37
41
|
|
38
42
|
|
39
43
|
###該当のソースコード
|
44
|
+
|
45
|
+
```ここに言語を入力
|
40
46
|
|
41
47
|
Expression
|
42
48
|
|
@@ -104,6 +110,8 @@
|
|
104
110
|
|
105
111
|
= [ \t\n\r]*
|
106
112
|
|
113
|
+
```
|
114
|
+
|
107
115
|
|
108
116
|
|
109
117
|
###補足情報(言語/FW/ツール等のバージョンなど)
|