-raw-value := 01 opt-value int32[format] double[x]
- | 02 opt-value int32[format] double[x]
- string[varname] string[vallab] (01 | 02 | 03)
- | 03 string[local] opt-value string[id] string[c] (00 | 01)[type]
- | 04 opt-value int32[format] string[vallab] string[varname]
- (01 | 02 | 03) string[vallab]
- | 05 opt-value string[varname] string[varlabel] (01 | 02 | 03)
- | opt-value string[format] int32[n-substs] substitution*[n-substs]
-substitution := i0 value
- | int32[x] value*[x + 1] /* @r{x > 0} */
-opt-value := 31 i0 (i0 | i1 string) opt-value-i0-v1 /* @r{version 1} */
- | 31 i0 (i0 | i1 string) opt-value-i0-v3 /* @r{version 3} */
- | 31 i1 int32[footnote-number] nested-string
- | 31 i2 (00 | 01 | 02) 00 (i1 | i2 | i3) nested-string
- | 31 i3 00 00 01 00 i2 nested-string
- | 58
-opt-value-i0-v1 := 00 (i1 | i2) 00 00 int32 00 00
-opt-value-i0-v3 := count(counted-string
+raw-value :=
+ 01 value-mod int32[format] double[x]
+ | 02 value-mod int32[format] double[x]
+ string[varname] string[vallab] (01 | 02 | 03)
+ | 03 string[local] value-mod string[id] string[c] (00 | 01)[type]
+ | 04 value-mod int32[format] string[vallab] string[varname]
+ (01 | 02 | 03) string[s]
+ | 05 value-mod string[varname] string[varlabel] (01 | 02 | 03)
+ | value-mod string[format] int32[n-substs] substitution*[n-substs]
+substitution :=
+ i0 value
+ | int32[x] value*[x + 1] /* @r{x > 0} */
+value-mod :=
+ 31 i0 (i0 | i1 string[subscript]) value-mod-i0-v1 /* @r{version 1} */
+ | 31 i0 (i0 | i1 string[subscript]) value-mod-i0-v3 /* @r{version 3} */
+ | 31 i1 int32[footnote-number] template
+ | 31 i2 (00 | 01 | 02) 00 (i1 | i2 | i3) template
+ | 31 i3 00 00 01 00 i2 template
+ | 58
+value-mod-i0-v1 := 00 (i1 | i2) 00 00 int32 00 00
+value-mod-i0-v3 := count(template-string