質問編集履歴

2

著しい表示崩れを確認したため、修正

2015/11/29 09:33

投稿

sounisi5011
sounisi5011

スコア697

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- ```lang-text
9
+ ```
10
10
 
11
11
  Selector {
12
12
 
@@ -84,7 +84,7 @@
84
84
 
85
85
 
86
86
 
87
- ```lang-text
87
+ ```
88
88
 
89
89
  %name MyParser
90
90
 
@@ -460,7 +460,7 @@
460
460
 
461
461
 
462
462
 
463
- ```lang-text
463
+ ```
464
464
 
465
465
  Syntax Error while parsing rule:
466
466
 

1

誤字を修正

2015/11/29 09:33

投稿

sounisi5011
sounisi5011

スコア697

test CHANGED
File without changes
test CHANGED
@@ -36,7 +36,7 @@
36
36
 
37
37
  </div>'
38
38
 
39
- /* ここで使えるか$6 */
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 = /-$7[_a-zA-Z][_a-zA-Z0-9-]*/
189
+ // IDENT = /-?[_a-zA-Z][_a-zA-Z0-9-]*/
190
-
190
+
191
- // COMMENT = @//[^\r\n\f]*|/\*[^*]*\*+($8:[^/*][^*]*\*+)*/@
191
+ // COMMENT = @//[^\r\n\f]*|/\*[^*]*\*+(?:[^/*][^*]*\*+)*/@
192
-
192
+
193
- // APOS_STRING = /\x27($9:[^\x27\\]|\\[^\x27]|\\[\x27\\])*\x27/
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
- 本来、`declarationList`は`declaration`を改行文字(と、その間にある空白文字)で区切った構造体であり、
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