11
2-
3-
4-
52// Auto-generated grammar for MF6 CHF-DISV1D
63%import common .WS
74%import common .SH_COMMENT
8- %import common .NEWLINE
95
106%ignore WS
117%ignore SH_COMMENT
@@ -16,16 +12,26 @@ start: block*
1612block : options_block | dimensions_block | griddata_block | vertices_block | cell1d_block
1713// Block definitions
1814options_block : " begin" i " options" i options_fields " end" i " options" i
15+
1916dimensions_block : " begin" i " dimensions" i dimensions_fields " end" i " dimensions" i
17+
2018griddata_block : " begin" i " griddata" i griddata_fields " end" i " griddata" i
19+
2120vertices_block : " begin" i " vertices" i vertices_fields " end" i " vertices" i
21+
2222cell1d_block : " begin" i " cell1d" i cell1d_fields " end" i " cell1d" i
23+
2324// Block field lists
2425options_fields : (length_units | nogrb | grb_filerecord | xorigin | yorigin | angrot | export_array_ascii | crs )*
26+
2527dimensions_fields : (nodes | nvert )*
28+
2629griddata_fields : (width | bottom | idomain )*
30+
2731vertices_fields : (vertices )*
32+
2833cell1d_fields : (cell1d )*
34+
2935// Individual field rules
3036length_units : " length_units" i string
3137nogrb : " nogrb" i
@@ -44,14 +50,10 @@ vertices: "vertices"i recarray
4450cell1d : " cell1d" i recarray
4551// Recarray rules for period data (stress_period_data, etc.)
4652
47- // Stress period record: tokens followed by newline, but stop at structural keywords
48- record : token + NEWLINE
49- token : number | _ word
50- _ word: / (?! ( ? i:begin| end) ) [a-zA-Z0-9._'~,- \\ ( \\ ) ]+ /
51-
52- // Import typed grammar rules
5353%import typed .integer -> integer
5454%import typed .double -> double
5555%import typed .number -> number
5656%import typed .string -> string
5757%import typed .array -> array
58+ %import typed .record -> record
59+ %import typed .NEWLINE -> NEWLINE
0 commit comments