質問編集履歴
2
著しい表示崩れを確認したため、修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
```
|
9
|
+
```
|
10
10
|
|
11
11
|
Selector {
|
12
12
|
|
@@ -84,7 +84,7 @@
|
|
84
84
|
|
85
85
|
|
86
86
|
|
87
|
-
```
|
87
|
+
```
|
88
88
|
|
89
89
|
%name MyParser
|
90
90
|
|
@@ -460,7 +460,7 @@
|
|
460
460
|
|
461
461
|
|
462
462
|
|
463
|
-
```
|
463
|
+
```
|
464
464
|
|
465
465
|
Syntax Error while parsing rule:
|
466
466
|
|
1
誤字を修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -36,7 +36,7 @@
|
|
36
36
|
|
37
37
|
</div>'
|
38
38
|
|
39
|
-
/* ここで使えるか
|
39
|
+
/* ここで使えるか? */
|
40
40
|
|
41
41
|
|
42
42
|
|
@@ -70,13 +70,13 @@
|
|
70
70
|
|
71
71
|
CSSと同じような構造のファイルです。
|
72
72
|
|
73
|
+
|
74
|
+
|
73
75
|
`Selector`は[Selectors Level 3](http://www.w3.org/TR/selectors/)(CSS3セレクタ)に対応する予定ですが、今のところは`Selector`の固定文字列で動作させています。
|
74
76
|
|
75
|
-
|
76
|
-
|
77
77
|
`Selector`の後には、CSSと同じく`{`と`}`で囲まれた宣言ブロック内に、プロパティと値が記述されています。
|
78
78
|
|
79
|
-
CSSとの相違点として、プロパティと値の区切りに`:`ではなくスペースを使用している点と、宣言(プロパティと値を組み合わせたもの)の区切りに`;`ではなく改行を使用して
|
79
|
+
CSSとの相違点として、プロパティと値の区切りに`:`ではなくスペースを使用している点と、宣言(プロパティと値を組み合わせたもの)の区切りに`;`ではなく改行を使用してる点が挙げられます。
|
80
80
|
|
81
81
|
|
82
82
|
|
@@ -186,11 +186,11 @@
|
|
186
186
|
|
187
187
|
// SELECTOR = /Selector/
|
188
188
|
|
189
|
-
// IDENT = /-
|
189
|
+
// IDENT = /-?[_a-zA-Z][_a-zA-Z0-9-]*/
|
190
|
-
|
190
|
+
|
191
|
-
// COMMENT = @//[^\r\n\f]*|/\*[^*]*\*+(
|
191
|
+
// COMMENT = @//[^\r\n\f]*|/\*[^*]*\*+(?:[^/*][^*]*\*+)*/@
|
192
|
-
|
192
|
+
|
193
|
-
// APOS_STRING = /
|
193
|
+
// APOS_STRING = /'(?:[^'\\]|\\[^']|\\['\\])*'/
|
194
194
|
|
195
195
|
// QUOT_STRING = /"(?:[^"\\]|\\[^"]|\\["\\])*"/
|
196
196
|
|
@@ -534,17 +534,11 @@
|
|
534
534
|
|
535
535
|
|
536
536
|
|
537
|
-
ここから予想できるのは、`{`と`}`で囲まれた範囲内の`declarationList`を解釈する場合に、
|
538
|
-
|
539
|
-
`start-tag '<div>'`を解釈した時点で`declarationList`が終了したものと謝って解釈しているためと考えられます。
|
537
|
+
ここから予想できるのは、`{`と`}`で囲まれた範囲内の`declarationList`を解釈する場合に、`start-tag '<div>'`を解釈した時点で`declarationList`が終了したものと謝って解釈しているためと考えられます。
|
540
|
-
|
541
|
-
|
538
|
+
|
542
|
-
|
543
|
-
まだ`raw-content "example"`と`end-tag '</div>'`が残っています。
|
539
|
+
本来、`declarationList`は`declaration`を改行文字(と、その間にある空白文字)で区切った構造体であり、まだ`raw-content "example"`と`end-tag '</div>'`が残っています。
|
544
|
-
|
540
|
+
|
545
|
-
にも関わらず、すでに終了したと誤って解釈されており、`start-tag '<div>'`と`raw-content "example"`の間の改行(+空白文字)が`s_zo`と解釈され、
|
541
|
+
にも関わらず、すでに終了したと誤って解釈されており、`start-tag '<div>'`と`raw-content "example"`の間の改行(+空白文字)が`s_zo`と解釈され、結果、直後には`declarationBlock`を閉じるはずの`R_CURLY_BRACKET`(すなわち`}`)が存在せず、パースエラーが発生しています。
|
546
|
-
|
547
|
-
結果、直後には`declarationBlock`を閉じるはずの`R_CURLY_BRACKET`(すなわち`}`)が存在せず、パースエラーが発生しています。
|
548
542
|
|
549
543
|
|
550
544
|
|