Skip to content

Commit 9fff89b

Browse files
committed
wip
1 parent 176894d commit 9fff89b

File tree

148 files changed

+3767
-5288
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

148 files changed

+3767
-5288
lines changed
Lines changed: 27 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,50 @@
1+
2+
3+
4+
15
// Auto-generated grammar for MF6 CHF-CDB
26
%import common.WS
37
%import common.SH_COMMENT
8+
%import common.NEWLINE
49

510
%ignore WS
611
%ignore SH_COMMENT
712

13+
14+
// Top-level structure
815
start: block*
916
block: options_block | dimensions_block | period_block
17+
// Block definitions
1018
options_block: "begin"i "options"i options_fields "end"i "options"i
1119
dimensions_block: "begin"i "dimensions"i dimensions_fields "end"i "dimensions"i
1220
period_block: "begin"i "period"i block_index period_fields "end"i "period"i block_index
1321
block_index: integer
22+
// Block field lists
1423
options_fields: (auxiliary | boundnames | print_input | print_flows | save_flows | obs_filerecord)*
1524
dimensions_fields: (maxbound)*
1625
period_fields: (stress_period_data)*
26+
// Individual field rules
1727
auxiliary: "auxiliary"i array
1828
boundnames: "boundnames"i
1929
print_input: "print_input"i
2030
print_flows: "print_flows"i
2131
save_flows: "save_flows"i
2232
obs_filerecord: "filein"i "obs6"i string
2333
maxbound: "maxbound"i integer
24-
stress_period_data: (number | simple_string)+
25-
26-
// Inline typed grammar rules
27-
// Named fields use specific types (integer/double) for validation
28-
// List/recarray data uses generic 'number' - structuring step handles type conversion
29-
integer: SIGNED_INT | INT
30-
double: SIGNED_NUMBER | NUMBER
31-
number: SIGNED_NUMBER | NUMBER
32-
string: ESCAPED_STRING | record
33-
simple_string: ESCAPED_STRING | _word
34-
record.1: _token+ _NL
35-
list: record*
36-
array: (single_array | layered_array)
37-
single_array: [netcdf] readarray
38-
layered_array: layered [netcdf] readarray+
39-
layered: "layered"i
40-
netcdf: "netcdf"i
41-
readarray: control [data]
42-
control: constant | internal | external
43-
constant: "constant"i double
44-
internal: "internal"i [factor] [iprn]
45-
external: "open/close"i filename [factor] [binary] [iprn]
46-
factor: "factor"i double
47-
iprn: "iprn"i integer
48-
binary: "(binary)"i
49-
filename: ESCAPED_STRING | _word
50-
data: double+
51-
52-
_word: /[a-zA-Z0-9._'~,-\\(\\)]+/
53-
_token: _word | number
54-
55-
%import common.NEWLINE -> _NL
56-
%import common.CNAME
57-
%import common.WORD
58-
%import common.ESCAPED_STRING
59-
%import common.NUMBER
60-
%import common.INT
61-
%import common.SIGNED_NUMBER
62-
%import common.SIGNED_INT
34+
// Recarray rules for period data (stress_period_data, etc.)
35+
stress_period_data: stress_record+
36+
37+
// Stress period record: tokens followed by newline, but stop at structural keywords
38+
stress_record: stress_token+ NEWLINE
39+
stress_token: number | _stress_word
40+
_stress_word: /(?!(?i:begin|end|period))[a-zA-Z0-9._'~,-\\(\\)]+/
41+
42+
// Import typed grammar rules
43+
%import typed.integer -> integer
44+
%import typed.double -> double
45+
%import typed.number -> number
46+
%import typed.string -> string
47+
%import typed.simple_string -> simple_string
48+
%import typed.record -> record
49+
%import typed.list -> list
50+
%import typed.array -> array
Lines changed: 25 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,29 @@
1+
2+
3+
4+
15
// Auto-generated grammar for MF6 CHF-CHD
26
%import common.WS
37
%import common.SH_COMMENT
8+
%import common.NEWLINE
49

510
%ignore WS
611
%ignore SH_COMMENT
712

13+
14+
// Top-level structure
815
start: block*
916
block: options_block | dimensions_block | period_block
17+
// Block definitions
1018
options_block: "begin"i "options"i options_fields "end"i "options"i
1119
dimensions_block: "begin"i "dimensions"i dimensions_fields "end"i "dimensions"i
1220
period_block: "begin"i "period"i block_index period_fields "end"i "period"i block_index
1321
block_index: integer
22+
// Block field lists
1423
options_fields: (auxiliary | auxmultname | boundnames | print_input | print_flows | save_flows | ts_filerecord | obs_filerecord)*
1524
dimensions_fields: (maxbound)*
1625
period_fields: (stress_period_data)*
26+
// Individual field rules
1727
auxiliary: "auxiliary"i array
1828
auxmultname: "auxmultname"i string
1929
boundnames: "boundnames"i
@@ -23,42 +33,20 @@ save_flows: "save_flows"i
2333
ts_filerecord: "ts6"i "filein"i string
2434
obs_filerecord: "filein"i "obs6"i string
2535
maxbound: "maxbound"i integer
26-
stress_period_data: (number | simple_string)+
27-
28-
// Inline typed grammar rules
29-
// Named fields use specific types (integer/double) for validation
30-
// List/recarray data uses generic 'number' - structuring step handles type conversion
31-
integer: SIGNED_INT | INT
32-
double: SIGNED_NUMBER | NUMBER
33-
number: SIGNED_NUMBER | NUMBER
34-
string: ESCAPED_STRING | record
35-
simple_string: ESCAPED_STRING | _word
36-
record.1: _token+ _NL
37-
list: record*
38-
array: (single_array | layered_array)
39-
single_array: [netcdf] readarray
40-
layered_array: layered [netcdf] readarray+
41-
layered: "layered"i
42-
netcdf: "netcdf"i
43-
readarray: control [data]
44-
control: constant | internal | external
45-
constant: "constant"i double
46-
internal: "internal"i [factor] [iprn]
47-
external: "open/close"i filename [factor] [binary] [iprn]
48-
factor: "factor"i double
49-
iprn: "iprn"i integer
50-
binary: "(binary)"i
51-
filename: ESCAPED_STRING | _word
52-
data: double+
36+
// Recarray rules for period data (stress_period_data, etc.)
37+
stress_period_data: stress_record+
5338

54-
_word: /[a-zA-Z0-9._'~,-\\(\\)]+/
55-
_token: _word | number
39+
// Stress period record: tokens followed by newline, but stop at structural keywords
40+
stress_record: stress_token+ NEWLINE
41+
stress_token: number | _stress_word
42+
_stress_word: /(?!(?i:begin|end|period))[a-zA-Z0-9._'~,-\\(\\)]+/
5643

57-
%import common.NEWLINE -> _NL
58-
%import common.CNAME
59-
%import common.WORD
60-
%import common.ESCAPED_STRING
61-
%import common.NUMBER
62-
%import common.INT
63-
%import common.SIGNED_NUMBER
64-
%import common.SIGNED_INT
44+
// Import typed grammar rules
45+
%import typed.integer -> integer
46+
%import typed.double -> double
47+
%import typed.number -> number
48+
%import typed.string -> string
49+
%import typed.simple_string -> simple_string
50+
%import typed.record -> record
51+
%import typed.list -> list
52+
%import typed.array -> array
Lines changed: 25 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,48 @@
1+
2+
3+
4+
15
// Auto-generated grammar for MF6 CHF-CXS
26
%import common.WS
37
%import common.SH_COMMENT
8+
%import common.NEWLINE
49

510
%ignore WS
611
%ignore SH_COMMENT
712

13+
14+
// Top-level structure
815
start: block*
916
block: options_block | dimensions_block | packagedata_block | crosssectiondata_block
17+
// Block definitions
1018
options_block: "begin"i "options"i options_fields "end"i "options"i
1119
dimensions_block: "begin"i "dimensions"i dimensions_fields "end"i "dimensions"i
1220
packagedata_block: "begin"i "packagedata"i packagedata_fields "end"i "packagedata"i
1321
crosssectiondata_block: "begin"i "crosssectiondata"i crosssectiondata_fields "end"i "crosssectiondata"i
22+
// Block field lists
1423
options_fields: (print_input)*
1524
dimensions_fields: (nsections | npoints)*
1625
packagedata_fields: (packagedata)*
1726
crosssectiondata_fields: (crosssectiondata)*
27+
// Individual field rules
1828
print_input: "print_input"i
1929
nsections: "nsections"i integer
2030
npoints: "npoints"i integer
2131
packagedata: "packagedata"i recarray
2232
crosssectiondata: "crosssectiondata"i recarray
33+
// Recarray rules for period data (stress_period_data, etc.)
34+
35+
// Stress period record: tokens followed by newline, but stop at structural keywords
36+
stress_record: stress_token+ NEWLINE
37+
stress_token: number | _stress_word
38+
_stress_word: /(?!(?i:begin|end|period))[a-zA-Z0-9._'~,-\\(\\)]+/
2339

24-
// Inline typed grammar rules
25-
// Named fields use specific types (integer/double) for validation
26-
// List/recarray data uses generic 'number' - structuring step handles type conversion
27-
integer: SIGNED_INT | INT
28-
double: SIGNED_NUMBER | NUMBER
29-
number: SIGNED_NUMBER | NUMBER
30-
string: ESCAPED_STRING | record
31-
simple_string: ESCAPED_STRING | _word
32-
record.1: _token+ _NL
33-
list: record*
34-
array: (single_array | layered_array)
35-
single_array: [netcdf] readarray
36-
layered_array: layered [netcdf] readarray+
37-
layered: "layered"i
38-
netcdf: "netcdf"i
39-
readarray: control [data]
40-
control: constant | internal | external
41-
constant: "constant"i double
42-
internal: "internal"i [factor] [iprn]
43-
external: "open/close"i filename [factor] [binary] [iprn]
44-
factor: "factor"i double
45-
iprn: "iprn"i integer
46-
binary: "(binary)"i
47-
filename: ESCAPED_STRING | _word
48-
data: double+
49-
50-
_word: /[a-zA-Z0-9._'~,-\\(\\)]+/
51-
_token: _word | number
52-
53-
%import common.NEWLINE -> _NL
54-
%import common.CNAME
55-
%import common.WORD
56-
%import common.ESCAPED_STRING
57-
%import common.NUMBER
58-
%import common.INT
59-
%import common.SIGNED_NUMBER
60-
%import common.SIGNED_INT
40+
// Import typed grammar rules
41+
%import typed.integer -> integer
42+
%import typed.double -> double
43+
%import typed.number -> number
44+
%import typed.string -> string
45+
%import typed.simple_string -> simple_string
46+
%import typed.record -> record
47+
%import typed.list -> list
48+
%import typed.array -> array
Lines changed: 25 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,26 @@
1+
2+
3+
4+
15
// Auto-generated grammar for MF6 CHF-DFW
26
%import common.WS
37
%import common.SH_COMMENT
8+
%import common.NEWLINE
49

510
%ignore WS
611
%ignore SH_COMMENT
712

13+
14+
// Top-level structure
815
start: block*
916
block: options_block | griddata_block
17+
// Block definitions
1018
options_block: "begin"i "options"i options_fields "end"i "options"i
1119
griddata_block: "begin"i "griddata"i griddata_fields "end"i "griddata"i
20+
// Block field lists
1221
options_fields: (central_in_space | length_conversion | time_conversion | save_flows | print_flows | save_velocity | obs_filerecord | export_array_ascii | dev_swr_conductance)*
1322
griddata_fields: (manningsn | idcxs)*
23+
// Individual field rules
1424
central_in_space: "central_in_space"i
1525
length_conversion: "length_conversion"i double
1626
time_conversion: "time_conversion"i double
@@ -22,41 +32,19 @@ export_array_ascii: "export_array_ascii"i
2232
dev_swr_conductance: "dev_swr_conductance"i
2333
manningsn: "manningsn"i array
2434
idcxs: "idcxs"i array
35+
// Recarray rules for period data (stress_period_data, etc.)
36+
37+
// Stress period record: tokens followed by newline, but stop at structural keywords
38+
stress_record: stress_token+ NEWLINE
39+
stress_token: number | _stress_word
40+
_stress_word: /(?!(?i:begin|end|period))[a-zA-Z0-9._'~,-\\(\\)]+/
2541

26-
// Inline typed grammar rules
27-
// Named fields use specific types (integer/double) for validation
28-
// List/recarray data uses generic 'number' - structuring step handles type conversion
29-
integer: SIGNED_INT | INT
30-
double: SIGNED_NUMBER | NUMBER
31-
number: SIGNED_NUMBER | NUMBER
32-
string: ESCAPED_STRING | record
33-
simple_string: ESCAPED_STRING | _word
34-
record.1: _token+ _NL
35-
list: record*
36-
array: (single_array | layered_array)
37-
single_array: [netcdf] readarray
38-
layered_array: layered [netcdf] readarray+
39-
layered: "layered"i
40-
netcdf: "netcdf"i
41-
readarray: control [data]
42-
control: constant | internal | external
43-
constant: "constant"i double
44-
internal: "internal"i [factor] [iprn]
45-
external: "open/close"i filename [factor] [binary] [iprn]
46-
factor: "factor"i double
47-
iprn: "iprn"i integer
48-
binary: "(binary)"i
49-
filename: ESCAPED_STRING | _word
50-
data: double+
51-
52-
_word: /[a-zA-Z0-9._'~,-\\(\\)]+/
53-
_token: _word | number
54-
55-
%import common.NEWLINE -> _NL
56-
%import common.CNAME
57-
%import common.WORD
58-
%import common.ESCAPED_STRING
59-
%import common.NUMBER
60-
%import common.INT
61-
%import common.SIGNED_NUMBER
62-
%import common.SIGNED_INT
42+
// Import typed grammar rules
43+
%import typed.integer -> integer
44+
%import typed.double -> double
45+
%import typed.number -> number
46+
%import typed.string -> string
47+
%import typed.simple_string -> simple_string
48+
%import typed.record -> record
49+
%import typed.list -> list
50+
%import typed.array -> array

0 commit comments

Comments
 (0)