sfp 0.3.4 → 0.3.5

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
- SFP Parser and Planner for Ruby
2
- ===============================
1
+ SFP Language Parser
2
+ ===================
3
3
  - Author: Herry (herry13@gmail.com)
4
- - Version: 0.3.4
4
+ - Version: 0.3.5
5
5
  - License: [BSD License](https://github.com/herry13/sfp-ruby/blob/master/LICENSE)
6
6
 
7
7
  A Ruby gem that provides a Ruby interface to parse [SFP language](https://github.com/herry13/nuri/wiki/SFP-language), a declarative language to specify a planning task.
@@ -10,6 +10,8 @@ Click [here](https://github.com/herry13/nuri/wiki/SFP-language), for more detail
10
10
 
11
11
  This is a spin-out project from [Nuri](https://github.com/herry13/nuri).
12
12
 
13
+ **The planner has been moved to another project [sfplanner](https://github.com/herry13/sfplanner)**.
14
+
13
15
 
14
16
  To install
15
17
  ----------
@@ -24,14 +26,12 @@ Requirements
24
26
  - antlr3
25
27
  - json
26
28
 
27
- Tested on: MacOS X 10.8, Ubuntu 12.04, Scientific Linux 6, Debian Wheeze Raspberry
28
-
29
29
 
30
30
  To use as a command line
31
31
  ------------------------
32
32
  - parse a SFP file, and then print the output in JSON
33
33
 
34
- $ sfp --json <sfp-file>
34
+ $ sfp <sfp-file>
35
35
 
36
36
  To solve a planning task, you can use [sfplanner](https://github.com/herry13/sfplanner)/
37
37
 
@@ -133,10 +133,10 @@ Example of Planning Task
133
133
  and **a** is stopped, and preserves global constraint: **pc** is always
134
134
  referring to a running service.
135
135
 
136
- - To generate the workflow, we invoke **sfp** command with argument
137
- the path of the task file:
136
+ - To generate the workflow, we invoke **sfplanner** (see [sfplanner](https://github.com/herry13/sfplanner))
137
+ command with argument the path of the task file:
138
138
 
139
- $ sfp task.sfp
139
+ $ sfplanner task.sfp
140
140
 
141
141
  Which will generate a workflow in JSON
142
142
 
@@ -184,23 +184,3 @@ Example of Planning Task
184
184
  This workflow is sequential that has 3 procedures. If you executes
185
185
  the workflow in given order, it will achieves the goal state as well
186
186
  as perserves the global constraints during the execution.
187
-
188
- - To generate and execute the plan using Bash framework, we invoke **sfp**
189
- command with an option *--solve-execute* and with an argument the path of
190
- the task file:
191
-
192
- $ sfp --solve-execute task.sfp
193
-
194
- It will generate and execute the plan by invoking the Bash scripts in
195
- the current directory (or as specified in environment variable SFP_HOME)
196
- in the following sequence:
197
-
198
- ./modules/b/start
199
- ./modules/pc/redirect "$.b"
200
- ./modules/a/stop
201
-
202
- - If you save the plan in a file e.g. **plan.json**, you could execute it
203
- later using option *--execute*
204
-
205
- $ sfp --execute plan.json
206
-
data/bin/sfp CHANGED
@@ -4,7 +4,7 @@ libdir = File.expand_path(File.dirname(__FILE__))
4
4
  require "#{libdir}/../lib/sfp"
5
5
 
6
6
  opts = Trollop::options do
7
- version "sfp 0.3.4 (c) 2013 Herry"
7
+ version "sfp 0.3.5 (c) 2013 Herry"
8
8
  banner <<-EOS
9
9
  Parse a SFP file and print the result in JSON format.
10
10
 
@@ -5,7 +5,7 @@
5
5
  # Generated using ANTLR version: 3.2.1-SNAPSHOT Jul 31, 2010 19:34:52
6
6
  # Ruby runtime library version: 1.8.11
7
7
  # Input grammar file: SfpLang.g
8
- # Generated at: 2013-07-15 00:24:28
8
+ # Generated at: 2013-07-18 06:07:24
9
9
  #
10
10
 
11
11
  # ~~~> start load path setup
@@ -1758,7 +1758,7 @@ module SfpLang
1758
1758
 
1759
1759
 
1760
1760
  # - - - - main rule block - - - -
1761
- # at line 1029:2: ( 'null' | 'nil' )
1761
+ # at line 1005:2: ( 'null' | 'nil' )
1762
1762
  alt_1 = 2
1763
1763
  look_1_0 = @input.peek( 1 )
1764
1764
 
@@ -1777,11 +1777,11 @@ module SfpLang
1777
1777
  end
1778
1778
  case alt_1
1779
1779
  when 1
1780
- # at line 1029:4: 'null'
1780
+ # at line 1005:4: 'null'
1781
1781
  match( "null" )
1782
1782
 
1783
1783
  when 2
1784
- # at line 1030:4: 'nil'
1784
+ # at line 1006:4: 'nil'
1785
1785
  match( "nil" )
1786
1786
 
1787
1787
  end
@@ -1806,7 +1806,7 @@ module SfpLang
1806
1806
 
1807
1807
 
1808
1808
  # - - - - main rule block - - - -
1809
- # at line 1034:2: ( 'true' | 'false' | 'off' | 'on' | 'yes' | 'no' )
1809
+ # at line 1010:2: ( 'true' | 'false' | 'off' | 'on' | 'yes' | 'no' )
1810
1810
  alt_2 = 6
1811
1811
  case look_2 = @input.peek( 1 )
1812
1812
  when 0x74 then alt_2 = 1
@@ -1827,27 +1827,27 @@ module SfpLang
1827
1827
  end
1828
1828
  case alt_2
1829
1829
  when 1
1830
- # at line 1034:4: 'true'
1830
+ # at line 1010:4: 'true'
1831
1831
  match( "true" )
1832
1832
 
1833
1833
  when 2
1834
- # at line 1035:4: 'false'
1834
+ # at line 1011:4: 'false'
1835
1835
  match( "false" )
1836
1836
 
1837
1837
  when 3
1838
- # at line 1036:4: 'off'
1838
+ # at line 1012:4: 'off'
1839
1839
  match( "off" )
1840
1840
 
1841
1841
  when 4
1842
- # at line 1037:4: 'on'
1842
+ # at line 1013:4: 'on'
1843
1843
  match( "on" )
1844
1844
 
1845
1845
  when 5
1846
- # at line 1038:4: 'yes'
1846
+ # at line 1014:4: 'yes'
1847
1847
  match( "yes" )
1848
1848
 
1849
1849
  when 6
1850
- # at line 1039:4: 'no'
1850
+ # at line 1015:4: 'no'
1851
1851
  match( "no" )
1852
1852
 
1853
1853
  end
@@ -1872,7 +1872,7 @@ module SfpLang
1872
1872
 
1873
1873
 
1874
1874
  # - - - - main rule block - - - -
1875
- # at line 1042:6: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' | '-' )*
1875
+ # at line 1018:6: ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' | '-' )*
1876
1876
  if @input.peek( 1 ).between?( 0x41, 0x5a ) || @input.peek( 1 ).between?( 0x61, 0x7a )
1877
1877
  @input.consume
1878
1878
  else
@@ -1882,7 +1882,7 @@ module SfpLang
1882
1882
  end
1883
1883
 
1884
1884
 
1885
- # at line 1042:26: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' | '-' )*
1885
+ # at line 1018:26: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' | '-' )*
1886
1886
  while true # decision 3
1887
1887
  alt_3 = 2
1888
1888
  look_3_0 = @input.peek( 1 )
@@ -1930,8 +1930,8 @@ module SfpLang
1930
1930
 
1931
1931
 
1932
1932
  # - - - - main rule block - - - -
1933
- # at line 1046:4: ( '-' )? ( '0' .. '9' )+
1934
- # at line 1046:4: ( '-' )?
1933
+ # at line 1022:4: ( '-' )? ( '0' .. '9' )+
1934
+ # at line 1022:4: ( '-' )?
1935
1935
  alt_4 = 2
1936
1936
  look_4_0 = @input.peek( 1 )
1937
1937
 
@@ -1940,11 +1940,11 @@ module SfpLang
1940
1940
  end
1941
1941
  case alt_4
1942
1942
  when 1
1943
- # at line 1046:4: '-'
1943
+ # at line 1022:4: '-'
1944
1944
  match( 0x2d )
1945
1945
 
1946
1946
  end
1947
- # at file 1046:8: ( '0' .. '9' )+
1947
+ # at file 1022:8: ( '0' .. '9' )+
1948
1948
  match_count_5 = 0
1949
1949
  while true
1950
1950
  alt_5 = 2
@@ -1956,7 +1956,7 @@ module SfpLang
1956
1956
  end
1957
1957
  case alt_5
1958
1958
  when 1
1959
- # at line 1046:9: '0' .. '9'
1959
+ # at line 1022:9: '0' .. '9'
1960
1960
  match_range( 0x30, 0x39 )
1961
1961
 
1962
1962
  else
@@ -1991,7 +1991,7 @@ module SfpLang
1991
1991
 
1992
1992
 
1993
1993
  # - - - - main rule block - - - -
1994
- # at line 1057:2: ( '//' (~ ( '\\n' | '\\r' ) )* | '#' (~ ( '\\n' | '\\r' ) )* | '/*' ( options {greedy=false; } : . )* '*/' )
1994
+ # at line 1033:2: ( '//' (~ ( '\\n' | '\\r' ) )* | '#' (~ ( '\\n' | '\\r' ) )* | '/*' ( options {greedy=false; } : . )* '*/' )
1995
1995
  alt_9 = 3
1996
1996
  look_9_0 = @input.peek( 1 )
1997
1997
 
@@ -2012,9 +2012,9 @@ module SfpLang
2012
2012
  end
2013
2013
  case alt_9
2014
2014
  when 1
2015
- # at line 1057:4: '//' (~ ( '\\n' | '\\r' ) )*
2015
+ # at line 1033:4: '//' (~ ( '\\n' | '\\r' ) )*
2016
2016
  match( "//" )
2017
- # at line 1057:9: (~ ( '\\n' | '\\r' ) )*
2017
+ # at line 1033:9: (~ ( '\\n' | '\\r' ) )*
2018
2018
  while true # decision 6
2019
2019
  alt_6 = 2
2020
2020
  look_6_0 = @input.peek( 1 )
@@ -2025,7 +2025,7 @@ module SfpLang
2025
2025
  end
2026
2026
  case alt_6
2027
2027
  when 1
2028
- # at line 1057:9: ~ ( '\\n' | '\\r' )
2028
+ # at line 1033:9: ~ ( '\\n' | '\\r' )
2029
2029
  if @input.peek( 1 ).between?( 0x0, 0x9 ) || @input.peek( 1 ).between?( 0xb, 0xc ) || @input.peek( 1 ).between?( 0xe, 0xff )
2030
2030
  @input.consume
2031
2031
  else
@@ -2045,9 +2045,9 @@ module SfpLang
2045
2045
  # <-- action
2046
2046
 
2047
2047
  when 2
2048
- # at line 1058:4: '#' (~ ( '\\n' | '\\r' ) )*
2048
+ # at line 1034:4: '#' (~ ( '\\n' | '\\r' ) )*
2049
2049
  match( 0x23 )
2050
- # at line 1058:8: (~ ( '\\n' | '\\r' ) )*
2050
+ # at line 1034:8: (~ ( '\\n' | '\\r' ) )*
2051
2051
  while true # decision 7
2052
2052
  alt_7 = 2
2053
2053
  look_7_0 = @input.peek( 1 )
@@ -2058,7 +2058,7 @@ module SfpLang
2058
2058
  end
2059
2059
  case alt_7
2060
2060
  when 1
2061
- # at line 1058:8: ~ ( '\\n' | '\\r' )
2061
+ # at line 1034:8: ~ ( '\\n' | '\\r' )
2062
2062
  if @input.peek( 1 ).between?( 0x0, 0x9 ) || @input.peek( 1 ).between?( 0xb, 0xc ) || @input.peek( 1 ).between?( 0xe, 0xff )
2063
2063
  @input.consume
2064
2064
  else
@@ -2078,9 +2078,9 @@ module SfpLang
2078
2078
  # <-- action
2079
2079
 
2080
2080
  when 3
2081
- # at line 1059:4: '/*' ( options {greedy=false; } : . )* '*/'
2081
+ # at line 1035:4: '/*' ( options {greedy=false; } : . )* '*/'
2082
2082
  match( "/*" )
2083
- # at line 1059:9: ( options {greedy=false; } : . )*
2083
+ # at line 1035:9: ( options {greedy=false; } : . )*
2084
2084
  while true # decision 8
2085
2085
  alt_8 = 2
2086
2086
  look_8_0 = @input.peek( 1 )
@@ -2100,7 +2100,7 @@ module SfpLang
2100
2100
  end
2101
2101
  case alt_8
2102
2102
  when 1
2103
- # at line 1059:37: .
2103
+ # at line 1035:37: .
2104
2104
  match_any
2105
2105
 
2106
2106
  else
@@ -2134,9 +2134,9 @@ module SfpLang
2134
2134
 
2135
2135
 
2136
2136
  # - - - - main rule block - - - -
2137
- # at line 1063:4: 'r\"' ( options {greedy=false; } : . )* '\"'
2137
+ # at line 1039:4: 'r\"' ( options {greedy=false; } : . )* '\"'
2138
2138
  match( "r\"" )
2139
- # at line 1063:9: ( options {greedy=false; } : . )*
2139
+ # at line 1039:9: ( options {greedy=false; } : . )*
2140
2140
  while true # decision 10
2141
2141
  alt_10 = 2
2142
2142
  look_10_0 = @input.peek( 1 )
@@ -2149,7 +2149,7 @@ module SfpLang
2149
2149
  end
2150
2150
  case alt_10
2151
2151
  when 1
2152
- # at line 1063:37: .
2152
+ # at line 1039:37: .
2153
2153
  match_any
2154
2154
 
2155
2155
  else
@@ -2179,8 +2179,8 @@ module SfpLang
2179
2179
 
2180
2180
 
2181
2181
  # - - - - main rule block - - - -
2182
- # at line 1066:6: ( '\\r' )? '\\n'
2183
- # at line 1066:6: ( '\\r' )?
2182
+ # at line 1042:6: ( '\\r' )? '\\n'
2183
+ # at line 1042:6: ( '\\r' )?
2184
2184
  alt_11 = 2
2185
2185
  look_11_0 = @input.peek( 1 )
2186
2186
 
@@ -2189,7 +2189,7 @@ module SfpLang
2189
2189
  end
2190
2190
  case alt_11
2191
2191
  when 1
2192
- # at line 1066:6: '\\r'
2192
+ # at line 1042:6: '\\r'
2193
2193
  match( 0xd )
2194
2194
 
2195
2195
  end
@@ -2216,7 +2216,7 @@ module SfpLang
2216
2216
 
2217
2217
 
2218
2218
  # - - - - main rule block - - - -
2219
- # at line 1069:8: ( ' ' | '\\t' )
2219
+ # at line 1045:8: ( ' ' | '\\t' )
2220
2220
  if @input.peek(1) == 0x9 || @input.peek(1) == 0x20
2221
2221
  @input.consume
2222
2222
  else
@@ -2251,9 +2251,9 @@ module SfpLang
2251
2251
 
2252
2252
 
2253
2253
  # - - - - main rule block - - - -
2254
- # at line 1073:5: '\"' ( ESC_SEQ | ~ ( '\\\\' | '\"' ) )* '\"'
2254
+ # at line 1049:5: '\"' ( ESC_SEQ | ~ ( '\\\\' | '\"' ) )* '\"'
2255
2255
  match( 0x22 )
2256
- # at line 1073:9: ( ESC_SEQ | ~ ( '\\\\' | '\"' ) )*
2256
+ # at line 1049:9: ( ESC_SEQ | ~ ( '\\\\' | '\"' ) )*
2257
2257
  while true # decision 12
2258
2258
  alt_12 = 3
2259
2259
  look_12_0 = @input.peek( 1 )
@@ -2266,11 +2266,11 @@ module SfpLang
2266
2266
  end
2267
2267
  case alt_12
2268
2268
  when 1
2269
- # at line 1073:11: ESC_SEQ
2269
+ # at line 1049:11: ESC_SEQ
2270
2270
  esc_seq!
2271
2271
 
2272
2272
  when 2
2273
- # at line 1073:21: ~ ( '\\\\' | '\"' )
2273
+ # at line 1049:21: ~ ( '\\\\' | '\"' )
2274
2274
  if @input.peek( 1 ).between?( 0x0, 0x21 ) || @input.peek( 1 ).between?( 0x23, 0x5b ) || @input.peek( 1 ).between?( 0x5d, 0xff )
2275
2275
  @input.consume
2276
2276
  else
@@ -2305,7 +2305,7 @@ module SfpLang
2305
2305
 
2306
2306
 
2307
2307
  # - - - - main rule block - - - -
2308
- # at line 1077:12: ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+
2308
+ # at line 1053:12: ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+
2309
2309
  if @input.peek(1) == 0x45 || @input.peek(1) == 0x65
2310
2310
  @input.consume
2311
2311
  else
@@ -2315,7 +2315,7 @@ module SfpLang
2315
2315
  end
2316
2316
 
2317
2317
 
2318
- # at line 1077:22: ( '+' | '-' )?
2318
+ # at line 1053:22: ( '+' | '-' )?
2319
2319
  alt_13 = 2
2320
2320
  look_13_0 = @input.peek( 1 )
2321
2321
 
@@ -2336,7 +2336,7 @@ module SfpLang
2336
2336
 
2337
2337
 
2338
2338
  end
2339
- # at file 1077:33: ( '0' .. '9' )+
2339
+ # at file 1053:33: ( '0' .. '9' )+
2340
2340
  match_count_14 = 0
2341
2341
  while true
2342
2342
  alt_14 = 2
@@ -2348,7 +2348,7 @@ module SfpLang
2348
2348
  end
2349
2349
  case alt_14
2350
2350
  when 1
2351
- # at line 1077:34: '0' .. '9'
2351
+ # at line 1053:34: '0' .. '9'
2352
2352
  match_range( 0x30, 0x39 )
2353
2353
 
2354
2354
  else
@@ -2376,7 +2376,7 @@ module SfpLang
2376
2376
 
2377
2377
 
2378
2378
  # - - - - main rule block - - - -
2379
- # at line 1080:13: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )
2379
+ # at line 1056:13: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )
2380
2380
  if @input.peek( 1 ).between?( 0x30, 0x39 ) || @input.peek( 1 ).between?( 0x41, 0x46 ) || @input.peek( 1 ).between?( 0x61, 0x66 )
2381
2381
  @input.consume
2382
2382
  else
@@ -2401,7 +2401,7 @@ module SfpLang
2401
2401
 
2402
2402
 
2403
2403
  # - - - - main rule block - - - -
2404
- # at line 1084:2: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UNICODE_ESC | OCTAL_ESC )
2404
+ # at line 1060:2: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UNICODE_ESC | OCTAL_ESC )
2405
2405
  alt_15 = 3
2406
2406
  look_15_0 = @input.peek( 1 )
2407
2407
 
@@ -2418,7 +2418,7 @@ module SfpLang
2418
2418
  end
2419
2419
  case alt_15
2420
2420
  when 1
2421
- # at line 1084:6: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' )
2421
+ # at line 1060:6: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' )
2422
2422
  match( 0x5c )
2423
2423
  if @input.peek(1) == 0x22 || @input.peek(1) == 0x27 || @input.peek(1) == 0x5c || @input.peek(1) == 0x62 || @input.peek(1) == 0x66 || @input.peek(1) == 0x6e || @input.peek(1) == 0x72 || @input.peek(1) == 0x74
2424
2424
  @input.consume
@@ -2431,11 +2431,11 @@ module SfpLang
2431
2431
 
2432
2432
 
2433
2433
  when 2
2434
- # at line 1085:6: UNICODE_ESC
2434
+ # at line 1061:6: UNICODE_ESC
2435
2435
  unicode_esc!
2436
2436
 
2437
2437
  when 3
2438
- # at line 1086:6: OCTAL_ESC
2438
+ # at line 1062:6: OCTAL_ESC
2439
2439
  octal_esc!
2440
2440
 
2441
2441
  end
@@ -2453,7 +2453,7 @@ module SfpLang
2453
2453
 
2454
2454
 
2455
2455
  # - - - - main rule block - - - -
2456
- # at line 1091:2: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
2456
+ # at line 1067:2: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
2457
2457
  alt_16 = 3
2458
2458
  look_16_0 = @input.peek( 1 )
2459
2459
 
@@ -2490,38 +2490,38 @@ module SfpLang
2490
2490
  end
2491
2491
  case alt_16
2492
2492
  when 1
2493
- # at line 1091:6: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
2493
+ # at line 1067:6: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
2494
2494
  match( 0x5c )
2495
- # at line 1091:11: ( '0' .. '3' )
2496
- # at line 1091:12: '0' .. '3'
2495
+ # at line 1067:11: ( '0' .. '3' )
2496
+ # at line 1067:12: '0' .. '3'
2497
2497
  match_range( 0x30, 0x33 )
2498
2498
 
2499
- # at line 1091:22: ( '0' .. '7' )
2500
- # at line 1091:23: '0' .. '7'
2499
+ # at line 1067:22: ( '0' .. '7' )
2500
+ # at line 1067:23: '0' .. '7'
2501
2501
  match_range( 0x30, 0x37 )
2502
2502
 
2503
- # at line 1091:33: ( '0' .. '7' )
2504
- # at line 1091:34: '0' .. '7'
2503
+ # at line 1067:33: ( '0' .. '7' )
2504
+ # at line 1067:34: '0' .. '7'
2505
2505
  match_range( 0x30, 0x37 )
2506
2506
 
2507
2507
 
2508
2508
  when 2
2509
- # at line 1092:6: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
2509
+ # at line 1068:6: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
2510
2510
  match( 0x5c )
2511
- # at line 1092:11: ( '0' .. '7' )
2512
- # at line 1092:12: '0' .. '7'
2511
+ # at line 1068:11: ( '0' .. '7' )
2512
+ # at line 1068:12: '0' .. '7'
2513
2513
  match_range( 0x30, 0x37 )
2514
2514
 
2515
- # at line 1092:22: ( '0' .. '7' )
2516
- # at line 1092:23: '0' .. '7'
2515
+ # at line 1068:22: ( '0' .. '7' )
2516
+ # at line 1068:23: '0' .. '7'
2517
2517
  match_range( 0x30, 0x37 )
2518
2518
 
2519
2519
 
2520
2520
  when 3
2521
- # at line 1093:6: '\\\\' ( '0' .. '7' )
2521
+ # at line 1069:6: '\\\\' ( '0' .. '7' )
2522
2522
  match( 0x5c )
2523
- # at line 1093:11: ( '0' .. '7' )
2524
- # at line 1093:12: '0' .. '7'
2523
+ # at line 1069:11: ( '0' .. '7' )
2524
+ # at line 1069:12: '0' .. '7'
2525
2525
  match_range( 0x30, 0x37 )
2526
2526
 
2527
2527
 
@@ -2540,7 +2540,7 @@ module SfpLang
2540
2540
 
2541
2541
 
2542
2542
  # - - - - main rule block - - - -
2543
- # at line 1098:6: '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT
2543
+ # at line 1074:6: '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT
2544
2544
  match( 0x5c )
2545
2545
  match( 0x75 )
2546
2546
  hex_digit!