11// Auto-generated grammar for MF6 CHF-EVP
2- %import typed .integer -> integer
3- %import typed .double -> double
4- %import typed .string -> string
5- %import typed .list -> list
6- %import typed .array -> array
72%import common .WS
83%import common .SH_COMMENT
94
@@ -14,7 +9,8 @@ start: block*
149block : options_block | dimensions_block | period_block
1510options_block : " begin" i " options" i options_fields " end" i " options" i
1611dimensions_block : " begin" i " dimensions" i dimensions_fields " end" i " dimensions" i
17- period_block : " begin" i " period" i period_fields " end" i " period" i
12+ period_block : " begin" i " period" i block_index period_fields " end" i " period" i block_index
13+ block_index : integer
1814options_fields : (auxiliary | auxmultname | boundnames | print_input | print_flows | save_flows | ts_filerecord | obs_filerecord )*
1915dimensions_fields : (maxbound )*
2016period_fields : (stress_period_data )*
@@ -27,8 +23,39 @@ save_flows: "save_flows"i
2723ts_filerecord : " ts6" i " filein" i string
2824obs_filerecord : " filein" i " obs6" i string
2925maxbound : " maxbound" i integer
30- stress_period_data : cellid evaporation aux boundname
31- cellid : integer +
32- evaporation : double
33- aux : double
34- boundname : string
26+ stress_period_data : integer + double double ? string ?
27+ // Inline typed grammar rules
28+ integer : _ integer
29+ double .2 : _ number
30+ string : ESCAPED_STRING | record
31+ record .1 : _ token+ _ NL
32+ list : record *
33+ array : (single_array | layered_array )
34+ single_array : [netcdf ] readarray
35+ layered_array : layered [netcdf ] readarray +
36+ layered : " layered" i
37+ netcdf : " netcdf" i
38+ readarray : control [data ]
39+ control : constant | internal | external
40+ constant : " constant" i double
41+ internal : " internal" i [factor ] [iprn ]
42+ external : " open/close" i filename [factor ] [binary ] [iprn ]
43+ factor : " factor" i double
44+ iprn : " iprn" i integer
45+ binary : " (binary)" i
46+ filename : ESCAPED_STRING | _ word
47+ data : double +
48+
49+ _ word: / [a-zA-Z0-9._'~,- \\ ( \\ ) ]+ /
50+ _ number: SIGNED_NUMBER | NUMBER
51+ _ integer: SIGNED_INT | INT
52+ _ token: _ word | _ number
53+
54+ %import common .NEWLINE -> _ NL
55+ %import common .CNAME
56+ %import common .WORD
57+ %import common .NUMBER
58+ %import common .INT
59+ %import common .ESCAPED_STRING
60+ %import common .SIGNED_NUMBER
61+ %import common .SIGNED_INT
0 commit comments