File "nml-ip-parser.mly", line 252, characters 25-28: Warning: the token VAL is unused. File "nml-ip-parser.mly", line 1114, characters 0-8: Warning: symbol opt_semi is unreachable from any of the start symbol(s). Grammar has 65 nonterminal symbols, among which 2 start symbols. Grammar has 115 terminal symbols. Grammar has 300 productions. nullable(value_expr) = false nullable(val_longident) = false nullable(val_ident) = false nullable(use_file_exprs) = false nullable(use_file) = false nullable(type_vars) = false nullable(type_list) = false nullable(type_expr) = false nullable(toplevel_phrase) = true nullable(top_expr) = false nullable(tag_list) = false nullable(simple_tag_type) = false nullable(simple_pattern) = false nullable(simple_expr_list) = false nullable(simple_expr) = false nullable(simple_case) = false nullable(simple_bi_pattern) = false nullable(signed_constant) = false nullable(seq_expr) = false nullable(record_expr) = false nullable(rec_flag) = true nullable(pattern_comma_list_element) = false nullable(pattern_comma_list) = false nullable(pattern) = false nullable(param_tail) = false nullable(option_pattern_list_element) = false nullable(option_pattern_list) = false nullable(opt_comma) = true nullable(opt_bar) = true nullable(operator) = false nullable(no_value_expr) = false nullable(mod_ident) = false nullable(matrix_expr) = false nullable(match_cases) = false nullable(match_action) = false nullable(list_pattern) = false nullable(list_expr) = false nullable(let_bindings) = false nullable(let_binding) = false nullable(lbl_type_list) = false nullable(lbl_pattern_list_element) = false nullable(lbl_pattern_list) = false nullable(lbl_expr_list) = false nullable(label_longident) = false nullable(key_pattern_list_element) = false nullable(key_pattern_list) = false nullable(key_pattern) = false nullable(index_list) = false nullable(index) = false nullable(generator_list) = false nullable(generator) = false nullable(fun_def) = false nullable(fun_binding) = false nullable(field_defn) = false nullable(expr_comma_list_element) = false nullable(expr_comma_list) = false nullable(expr) = false nullable(direction_flag) = false nullable(constr_longident) = false nullable(constant) = false nullable(colonized_symbol) = false nullable(case_list) = false nullable(built_in_constr) = false nullable(bi_pattern) = false nullable(basic_seq_expr) = false first(value_expr) = WHILE WHERE UIDENT TRY STRING SHARP RAISE PREFIXOP PLUS MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT IMAGINARY IF FUNCTION FUN FOR FLOAT DOLLAR CHAR CASE BEGIN ASSERT first(val_longident) = UIDENT LPAREN LIDENT first(val_ident) = LPAREN LIDENT first(use_file_exprs) = WHILE WHERE UIDENT TYPE TRY STRING SHARP SEMISEMI RAISE PREFIXOP PLUS OPEN MODULE MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION DOLLAR CHAR CASE BEGIN ASSERT first(use_file) = WHILE WHERE UIDENT TYPE TRY STRING SHARP SEMISEMI RAISE PREFIXOP PLUS OPEN MODULE MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION DOLLAR CHAR CASE BEGIN ASSERT first(type_vars) = TIDENT LPAREN first(type_list) = TIDENT first(type_expr) = UIDENT TIDENT LPAREN LIDENT first(toplevel_phrase) = WHILE WHERE UIDENT TYPE TRY STRING SHARP SEMISEMI RAISE PREFIXOP PLUS OPEN MODULE MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION DOLLAR CHAR CASE BEGIN ASSERT first(top_expr) = WHILE WHERE UIDENT TYPE TRY STRING SHARP SEMISEMI RAISE PREFIXOP PLUS OPEN MODULE MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION DOLLAR CHAR CASE BEGIN ASSERT first(tag_list) = UIDENT first(simple_tag_type) = UIDENT first(simple_pattern) = UNDERSCORE UIDENT STRING SHARP MINUS LVECTOR LPAREN LIDENT LBRACKBAR LBRACK LBRACE INT IMAGINARY FLOAT DOLLAR CHAR first(simple_expr_list) = UIDENT STRING SHARP PREFIXOP LVECTOR LPAREN LMATRIX LIDENT LBRACKBAR LBRACK LBRACE INT IMAGINARY FLOAT DOLLAR CHAR BEGIN first(simple_expr) = UIDENT STRING SHARP PREFIXOP LVECTOR LPAREN LMATRIX LIDENT LBRACKBAR LBRACK LBRACE INT IMAGINARY FLOAT DOLLAR CHAR BEGIN first(simple_case) = WHILE WHERE UNDERSCORE UIDENT TRY STRING SHARP RAISE PREFIXOP PLUS MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT IMAGINARY IF FUNCTION FUN FOR FLOAT DOLLAR CHAR CASE BEGIN ASSERT first(simple_bi_pattern) = UNDERSCORE STRING SHARP MINUS LVECTOR LPAREN LIDENT LBRACKBAR LBRACK LBRACE INT IMAGINARY FLOAT DOLLAR CHAR first(signed_constant) = STRING SHARP MINUS LVECTOR LPAREN LBRACKBAR LBRACK LBRACE INT IMAGINARY FLOAT DOLLAR CHAR first(seq_expr) = WHILE WHERE UIDENT TRY STRING SHARP RAISE PREFIXOP PLUS MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT IMAGINARY IF FUNCTION FUN FOR FLOAT DOLLAR CHAR CASE BEGIN ASSERT first(record_expr) = UIDENT STRING SHARP PREFIXOP LVECTOR LPAREN LMATRIX LIDENT LBRACKBAR LBRACK LBRACE INT IMAGINARY FLOAT DOLLAR CHAR BEGIN first(rec_flag) = REC first(pattern_comma_list_element) = WEAKARRAYPAT VECTORPAT UNDERSCORE UIDENT TUPLEPAT SYMBOLPAT STRINGPAT STRING STACKPAT SHARP RECORDPAT REALPAT QUEUEPAT OUT_CHANNELPAT NUMBERPAT MINUS LVECTOR LPAREN LISTPAT LIDENT LBRACKBAR LBRACK LBRACE IN_CHANNELPAT INTPAT INT IMAGINARY HASHTABLEPAT FLOATPAT FLOAT FARRAYPAT DOLLAR DIR_HANDLEPAT COMPLEXPAT CHARPAT CHAR CARRAYPAT BOXPAT ARRAYPAT AMPERREST first(pattern_comma_list) = WEAKARRAYPAT VECTORPAT UNDERSCORE UIDENT TUPLEPAT SYMBOLPAT STRINGPAT STRING STACKPAT SHARP RECORDPAT REALPAT QUEUEPAT OUT_CHANNELPAT NUMBERPAT MINUS LVECTOR LPAREN LISTPAT LIDENT LBRACKBAR LBRACK LBRACE IN_CHANNELPAT INTPAT INT IMAGINARY HASHTABLEPAT FLOATPAT FLOAT FARRAYPAT DOLLAR DIR_HANDLEPAT COMPLEXPAT CHARPAT CHAR CARRAYPAT BOXPAT ARRAYPAT AMPERREST first(pattern) = WEAKARRAYPAT VECTORPAT UNDERSCORE UIDENT TUPLEPAT SYMBOLPAT STRINGPAT STRING STACKPAT SHARP RECORDPAT REALPAT QUEUEPAT OUT_CHANNELPAT NUMBERPAT MINUS LVECTOR LPAREN LISTPAT LIDENT LBRACKBAR LBRACK LBRACE IN_CHANNELPAT INTPAT INT IMAGINARY HASHTABLEPAT FLOATPAT FLOAT FARRAYPAT DOLLAR DIR_HANDLEPAT COMPLEXPAT CHARPAT CHAR CARRAYPAT BOXPAT ARRAYPAT first(param_tail) = AMPEROPT AMPERKEY first(option_pattern_list_element) = LIDENT AMPERREST first(option_pattern_list) = LIDENT AMPERREST first(opt_comma) = COMMA first(opt_bar) = BAR first(operator) = STAR SHARP PREFIXOP PLUS MINUS INFIXOP5R INFIXOP5L INFIXOP4R INFIXOP4L INFIXOP3R INFIXOP3L INFIXOP2R INFIXOP2L INFIXOP1R INFIXOP1L EQ DOLLAR COLONEQUAL COLONCOLON first(no_value_expr) = WHILE WHERE UIDENT TRY STRING SHARP RAISE PREFIXOP PLUS MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT IMAGINARY IF FUNCTION FUN FOR FLOAT DOLLAR CHAR CASE BEGIN ASSERT first(mod_ident) = UIDENT first(matrix_expr) = WHILE WHERE UIDENT TRY STRING SHARP RAISE PREFIXOP PLUS MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT IMAGINARY IF FUNCTION FUN FOR FLOAT DOLLAR CHAR CASE BEGIN ASSERT first(match_cases) = WEAKARRAYPAT VECTORPAT UNDERSCORE UIDENT TUPLEPAT SYMBOLPAT STRINGPAT STRING STACKPAT SHARP RECORDPAT REALPAT QUEUEPAT OUT_CHANNELPAT NUMBERPAT MINUS LVECTOR LPAREN LISTPAT LIDENT LBRACKBAR LBRACK LBRACE IN_CHANNELPAT INTPAT INT IMAGINARY HASHTABLEPAT FLOATPAT FLOAT FARRAYPAT DOLLAR DIR_HANDLEPAT COMPLEXPAT CHARPAT CHAR CARRAYPAT BOXPAT ARRAYPAT AMPERREST first(match_action) = WHEN MINUSGREATER first(list_pattern) = WEAKARRAYPAT VECTORPAT UNDERSCORE UIDENT TUPLEPAT SYMBOLPAT STRINGPAT STRING STACKPAT SHARP RECORDPAT REALPAT QUEUEPAT OUT_CHANNELPAT NUMBERPAT MINUS LVECTOR LPAREN LISTPAT LIDENT LBRACKBAR LBRACK LBRACE IN_CHANNELPAT INTPAT INT IMAGINARY HASHTABLEPAT FLOATPAT FLOAT FARRAYPAT DOTDOTDOT DOLLAR DIR_HANDLEPAT COMPLEXPAT CHARPAT CHAR CARRAYPAT BOXPAT ARRAYPAT AMPERREST first(list_expr) = WHILE WHERE UIDENT TRY STRING SHARP RAISE PREFIXOP PLUS MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT IMAGINARY IF FUNCTION FUN FOR FLOAT DOLLAR CHAR CASE BEGIN ASSERT first(let_bindings) = WEAKARRAYPAT VECTORPAT UNDERSCORE UIDENT TUPLEPAT SYMBOLPAT STRINGPAT STRING STACKPAT SHARP RECORDPAT REALPAT QUEUEPAT OUT_CHANNELPAT NUMBERPAT MINUS LVECTOR LPAREN LISTPAT LIDENT LBRACKBAR LBRACK LBRACE IN_CHANNELPAT INTPAT INT IMAGINARY HASHTABLEPAT FLOATPAT FLOAT FARRAYPAT DOLLAR DIR_HANDLEPAT COMPLEXPAT CHARPAT CHAR CARRAYPAT BOXPAT ARRAYPAT AMPERREST first(let_binding) = WEAKARRAYPAT VECTORPAT UNDERSCORE UIDENT TUPLEPAT SYMBOLPAT STRINGPAT STRING STACKPAT SHARP RECORDPAT REALPAT QUEUEPAT OUT_CHANNELPAT NUMBERPAT MINUS LVECTOR LPAREN LISTPAT LIDENT LBRACKBAR LBRACK LBRACE IN_CHANNELPAT INTPAT INT IMAGINARY HASHTABLEPAT FLOATPAT FLOAT FARRAYPAT DOLLAR DIR_HANDLEPAT COMPLEXPAT CHARPAT CHAR CARRAYPAT BOXPAT ARRAYPAT AMPERREST first(lbl_type_list) = MUTABLE LIDENT first(lbl_pattern_list_element) = UIDENT LIDENT first(lbl_pattern_list) = UIDENT LIDENT first(lbl_expr_list) = UIDENT LIDENT first(label_longident) = UIDENT LIDENT first(key_pattern_list_element) = LIDENT AMPERREST first(key_pattern_list) = LIDENT AMPERREST first(key_pattern) = LIDENT DOTDOTDOT AMPERREST first(index_list) = WHILE WHERE UIDENT TRY STRING STAR SHARP RAISE PREFIXOP PLUS MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT IMAGINARY IF FUNCTION FUN FOR FLOAT DOTDOT DOLLAR CHAR CASE BEGIN ASSERT first(index) = WHILE WHERE UIDENT TRY STRING STAR SHARP RAISE PREFIXOP PLUS MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT IMAGINARY IF FUNCTION FUN FOR FLOAT DOTDOT DOLLAR CHAR CASE BEGIN ASSERT first(generator_list) = WEAKARRAYPAT VECTORPAT UNDERSCORE UIDENT TUPLEPAT SYMBOLPAT STRINGPAT STRING STACKPAT SHARP RECORDPAT REALPAT QUEUEPAT OUT_CHANNELPAT NUMBERPAT MINUS LVECTOR LPAREN LISTPAT LIDENT LBRACKBAR LBRACK LBRACE IN_CHANNELPAT INTPAT INT IMAGINARY HASHTABLEPAT FLOATPAT FLOAT FARRAYPAT DOLLAR DIR_HANDLEPAT COMPLEXPAT CHARPAT CHAR CARRAYPAT BOXPAT ARRAYPAT first(generator) = WEAKARRAYPAT VECTORPAT UNDERSCORE UIDENT TUPLEPAT SYMBOLPAT STRINGPAT STRING STACKPAT SHARP RECORDPAT REALPAT QUEUEPAT OUT_CHANNELPAT NUMBERPAT MINUS LVECTOR LPAREN LISTPAT LIDENT LBRACKBAR LBRACK LBRACE IN_CHANNELPAT INTPAT INT IMAGINARY HASHTABLEPAT FLOATPAT FLOAT FARRAYPAT DOLLAR DIR_HANDLEPAT COMPLEXPAT CHARPAT CHAR CARRAYPAT BOXPAT ARRAYPAT first(fun_def) = WHEN UNDERSCORE UIDENT STRING SHARP MINUSGREATER MINUS LVECTOR LPAREN LIDENT LBRACKBAR LBRACK LBRACE INT IMAGINARY FLOAT DOLLAR CHAR first(fun_binding) = UNDERSCORE UIDENT STRING SHARP MINUS LVECTOR LPAREN LIDENT LBRACKBAR LBRACK LBRACE INT IMAGINARY FLOAT EQ DOLLAR CHAR first(field_defn) = MUTABLE LIDENT first(expr_comma_list_element) = WHILE WHERE UIDENT TRY STRING SHARP RAISE PREFIXOP PLUS MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT IMAGINARY IF FUNCTION FUN FOR FLOAT DOLLAR CHAR CASE BEGIN ASSERT first(expr_comma_list) = WHILE WHERE UIDENT TRY STRING SHARP RAISE PREFIXOP PLUS MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT IMAGINARY IF FUNCTION FUN FOR FLOAT DOLLAR CHAR CASE BEGIN ASSERT first(expr) = WHILE WHERE UIDENT TRY STRING SHARP RAISE PREFIXOP PLUS MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT IMAGINARY IF FUNCTION FUN FOR FLOAT DOLLAR CHAR CASE BEGIN ASSERT first(direction_flag) = TO DOWNTO BELOW ABOVE first(constr_longident) = UIDENT first(constant) = STRING SHARP LVECTOR LPAREN LBRACKBAR LBRACK LBRACE INT IMAGINARY FLOAT DOLLAR CHAR first(colonized_symbol) = UIDENT LIDENT first(case_list) = WHILE WHERE UNDERSCORE UIDENT TRY STRING SHARP RAISE PREFIXOP PLUS MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT IMAGINARY IF FUNCTION FUN FOR FLOAT DOLLAR CHAR CASE BEGIN ASSERT first(built_in_constr) = WEAKARRAYPAT VECTORPAT TUPLEPAT SYMBOLPAT STRINGPAT STACKPAT RECORDPAT REALPAT QUEUEPAT OUT_CHANNELPAT NUMBERPAT LISTPAT IN_CHANNELPAT INTPAT HASHTABLEPAT FLOATPAT FARRAYPAT DIR_HANDLEPAT COMPLEXPAT CHARPAT CARRAYPAT BOXPAT ARRAYPAT first(bi_pattern) = UNDERSCORE STRING SHARP MINUS LVECTOR LPAREN LIDENT LBRACKBAR LBRACK LBRACE INT IMAGINARY FLOAT DOLLAR CHAR first(basic_seq_expr) = WHILE WHERE UIDENT TRY STRING SHARP RAISE PREFIXOP PLUS MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT IMAGINARY IF FUNCTION FUN FOR FLOAT DOLLAR CHAR CASE BEGIN ASSERT follow(value_expr) = error WITH WHILE WHERE UIDENT TYPE TRY TO THEN STRING STAR SHARP SEMISEMI SEMI RPAREN RBRACK RBRACE RAISE QUESTION PREFIXOP PLUS OPEN MODULE MINUSGREATER MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT INFIXOP5R INFIXOP5L INFIXOP4R INFIXOP4L INFIXOP3R INFIXOP3L INFIXOP2R INFIXOP2L INFIXOP1R INFIXOP1L IN IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION EQ EOF END ELSE DOWNTO DOTDOT DONE DOLLAR DO COMMA COLONEQUAL COLONCOLON COLON CHAR CASE BELOW BEGIN BARRBRACK BARCOLON BARBAR BAR ASSERT AND AMPERAMPER ABOVE follow(val_longident) = error WITH WHILE WHERE UIDENT TYPE TRY TO THEN STRING STAR SHARP SEMISEMI SEMI RPAREN RBRACK RBRACE RAISE QUESTION PREFIXOP PLUS OPEN MODULE MINUSGREATER MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT INFIXOP5R INFIXOP5L INFIXOP4R INFIXOP4L INFIXOP3R INFIXOP3L INFIXOP2R INFIXOP2L INFIXOP1R INFIXOP1L IN IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION EQ EOF END ELSE DOWNTO DOTDOT DOT DONE DOLLAR DO COMMA COLONEQUAL COLONCOLON COLON CHAR CASE BELOW BEGIN BARRBRACK BARCOLON BARBAR BAR ASSERT AND AMPERAMPER ABOVE follow(val_ident) = error WITH WHILE WHERE WHEN UNDERSCORE UIDENT TYPE TRY TO THEN STRING STAR SHARP SEMISEMI SEMI RPAREN RBRACK RBRACE RAISE QUESTION PREFIXOP PLUS OPEN MODULE MINUSGREATER MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LESSMINUS LBRACKBAR LBRACK LBRACE LAZY INT INFIXOP5R INFIXOP5L INFIXOP4R INFIXOP4L INFIXOP3R INFIXOP3L INFIXOP2R INFIXOP2L INFIXOP1R INFIXOP1L IN IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION EQ EOF END ELSE DOWNTO DOTDOT DOT DONE DOLLAR DO COMMA COLONEQUAL COLONCOLON COLON CHAR CASE BELOW BEGIN BARRBRACK BARCOLON BARBAR BAR ASSERT AS AND AMPERAMPER ABOVE follow(use_file_exprs) = WHILE WHERE UIDENT TYPE TRY STRING SHARP SEMISEMI RAISE PREFIXOP PLUS OPEN MODULE MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION EOF DOLLAR CHAR CASE BEGIN ASSERT follow(use_file) = # follow(type_vars) = LIDENT follow(type_list) = RPAREN COMMA follow(type_expr) = error WHILE WHERE UIDENT TYPE TRY STRING STAR SHARP SEMISEMI RPAREN RBRACE RAISE PREFIXOP PLUS OPEN MODULE MINUSGREATER MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION EOF DOLLAR COMMA CHAR CASE BEGIN BAR ASSERT follow(toplevel_phrase) = # follow(top_expr) = WHILE WHERE UIDENT TYPE TRY STRING SHARP SEMISEMI RAISE PREFIXOP PLUS OPEN MODULE MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION EOF DOLLAR CHAR CASE BEGIN ASSERT follow(tag_list) = WHILE WHERE UIDENT TYPE TRY STRING SHARP SEMISEMI RAISE PREFIXOP PLUS OPEN MODULE MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION EOF DOLLAR CHAR CASE BEGIN BAR ASSERT follow(simple_tag_type) = WHILE WHERE UIDENT TYPE TRY STRING SHARP SEMISEMI RAISE PREFIXOP PLUS OPEN MODULE MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION EOF DOLLAR CHAR CASE BEGIN BAR ASSERT follow(simple_pattern) = error WHEN UNDERSCORE UIDENT STRING SHARP RPAREN RBRACK RBRACE MINUSGREATER MINUS LVECTOR LPAREN LIDENT LESSMINUS LBRACKBAR LBRACK LBRACE INT IMAGINARY FLOAT EQ DOLLAR COMMA COLONCOLON CHAR BARBAR BAR AS follow(simple_expr_list) = error WITH WHILE WHERE UIDENT TYPE TRY TO THEN STRING STAR SHARP SEMISEMI SEMI RPAREN RBRACK RBRACE RAISE QUESTION PREFIXOP PLUS OPEN MODULE MINUSGREATER MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT INFIXOP5R INFIXOP5L INFIXOP4R INFIXOP4L INFIXOP3R INFIXOP3L INFIXOP2R INFIXOP2L INFIXOP1R INFIXOP1L IN IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION EQ EOF END ELSE DOWNTO DOTDOT DONE DOLLAR DO COMMA COLONEQUAL COLONCOLON COLON CHAR CASE BELOW BEGIN BARRBRACK BARCOLON BARBAR BAR ASSERT AND AMPERAMPER ABOVE follow(simple_expr) = error WITH WHILE WHERE UIDENT TYPE TRY TO THEN STRING STAR SHARP SEMISEMI SEMI RPAREN RBRACK RBRACE RAISE QUESTION PREFIXOP PLUS OPEN MODULE MINUSGREATER MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT INFIXOP5R INFIXOP5L INFIXOP4R INFIXOP4L INFIXOP3R INFIXOP3L INFIXOP2R INFIXOP2L INFIXOP1R INFIXOP1L IN IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION EQ EOF END ELSE DOWNTO DOTDOT DOT DONE DOLLAR DO COMMA COLONEQUAL COLONCOLON COLON CHAR CASE BELOW BEGIN BARRBRACK BARCOLON BARBAR BAR ASSERT AND AMPERAMPER ABOVE follow(simple_case) = error WITH WHILE WHERE UIDENT TYPE TRY TO THEN STRING STAR SHARP SEMISEMI SEMI RPAREN RBRACK RBRACE RAISE QUESTION PREFIXOP PLUS OPEN MODULE MINUSGREATER MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT INFIXOP5R INFIXOP5L INFIXOP4R INFIXOP4L INFIXOP3R INFIXOP3L INFIXOP2R INFIXOP2L INFIXOP1R INFIXOP1L IN IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION EQ EOF END ELSE DOWNTO DOTDOT DONE DOLLAR DO COMMA COLONEQUAL COLONCOLON COLON CHAR CASE BELOW BEGIN BARRBRACK BARCOLON BARBAR BAR ASSERT AND AMPERAMPER ABOVE follow(simple_bi_pattern) = error WHEN RPAREN RBRACK RBRACE MINUSGREATER LESSMINUS EQ COMMA COLONCOLON BARBAR BAR AS follow(signed_constant) = error WHEN UNDERSCORE UIDENT STRING SHARP RPAREN RBRACK RBRACE MINUSGREATER MINUS LVECTOR LPAREN LIDENT LESSMINUS LBRACKBAR LBRACK LBRACE INT IMAGINARY FLOAT EQ DOLLAR COMMA COLONCOLON CHAR BARBAR BAR AS follow(seq_expr) = error WITH WHILE WHERE UIDENT TYPE TRY TO THEN STRING STAR SHARP SEMISEMI SEMI RPAREN RBRACK RBRACE RAISE QUESTION PREFIXOP PLUS OPEN MODULE MINUSGREATER MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT INFIXOP5R INFIXOP5L INFIXOP4R INFIXOP4L INFIXOP3R INFIXOP3L INFIXOP2R INFIXOP2L INFIXOP1R INFIXOP1L IN IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION EQ EOF END ELSE DOWNTO DOTDOT DONE DOLLAR DO COMMA COLONEQUAL COLONCOLON COLON CHAR CASE BELOW BEGIN BARRBRACK BARCOLON BARBAR BAR ASSERT AND AMPERAMPER ABOVE follow(record_expr) = error RBRACE COMMA follow(rec_flag) = WEAKARRAYPAT VECTORPAT UNDERSCORE UIDENT TUPLEPAT SYMBOLPAT STRINGPAT STRING STACKPAT SHARP RECORDPAT REALPAT QUEUEPAT OUT_CHANNELPAT NUMBERPAT MINUS LVECTOR LPAREN LISTPAT LIDENT LBRACKBAR LBRACK LBRACE IN_CHANNELPAT INTPAT INT IMAGINARY HASHTABLEPAT FLOATPAT FLOAT FARRAYPAT DOLLAR DIR_HANDLEPAT COMPLEXPAT CHARPAT CHAR CARRAYPAT BOXPAT ARRAYPAT AMPERREST follow(pattern_comma_list_element) = error WHEN RPAREN RBRACK MINUSGREATER EQ COMMA BAR follow(pattern_comma_list) = error WHEN RPAREN RBRACK MINUSGREATER EQ COMMA BAR follow(pattern) = error WHEN RPAREN RBRACK RBRACE MINUSGREATER LESSMINUS EQ COMMA COLONCOLON BARBAR BAR AS follow(param_tail) = RPAREN follow(option_pattern_list_element) = RPAREN COMMA follow(option_pattern_list) = RPAREN COMMA follow(opt_comma) = error WITH WHEN RPAREN RBRACK RBRACE MINUSGREATER DOTDOT BARRBRACK follow(opt_bar) = WHILE WHERE WEAKARRAYPAT VECTORPAT UNDERSCORE UIDENT TUPLEPAT TRY SYMBOLPAT STRINGPAT STRING STACKPAT SHARP RECORDPAT REALPAT RAISE QUEUEPAT PREFIXOP PLUS OUT_CHANNELPAT NUMBERPAT MINUS MATCH LVECTOR LPAREN LMATRIX LISTPAT LIDENT LET LBRACKBAR LBRACK LBRACE LAZY IN_CHANNELPAT INTPAT INT IMAGINARY IF HASHTABLEPAT FUNCTION FUN FOR FLOATPAT FLOAT FARRAYPAT DOLLAR DIR_HANDLEPAT COMPLEXPAT CHARPAT CHAR CASE CARRAYPAT BOXPAT BEGIN ASSERT ARRAYPAT AMPERREST follow(operator) = RPAREN follow(no_value_expr) = error WITH WHILE WHERE UIDENT TYPE TRY TO THEN STRING STAR SHARP SEMISEMI SEMI RPAREN RBRACK RBRACE RAISE QUESTION PREFIXOP PLUS OPEN MODULE MINUSGREATER MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT INFIXOP5R INFIXOP5L INFIXOP4R INFIXOP4L INFIXOP3R INFIXOP3L INFIXOP2R INFIXOP2L INFIXOP1R INFIXOP1L IN IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION EQ EOF END ELSE DOWNTO DOTDOT DONE DOLLAR DO COMMA COLONEQUAL COLONCOLON COLON CHAR CASE BELOW BEGIN BARRBRACK BARCOLON BARBAR BAR ASSERT AND AMPERAMPER ABOVE follow(mod_ident) = WHILE WHERE UIDENT TYPE TRY STRING SHARP SEMISEMI RAISE PREFIXOP PLUS OPEN MODULE MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT IN IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION EQ EOF DOLLAR CHAR CASE BEGIN ASSERT follow(matrix_expr) = error SEMI RBRACK follow(match_cases) = error WITH WHILE WHERE UIDENT TYPE TRY TO THEN STRING STAR SHARP SEMISEMI SEMI RPAREN RBRACK RBRACE RAISE QUESTION PREFIXOP PLUS OPEN MODULE MINUSGREATER MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT INFIXOP5R INFIXOP5L INFIXOP4R INFIXOP4L INFIXOP3R INFIXOP3L INFIXOP2R INFIXOP2L INFIXOP1R INFIXOP1L IN IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION EQ EOF END ELSE DOWNTO DOTDOT DONE DOLLAR DO COMMA COLONEQUAL COLONCOLON COLON CHAR CASE BELOW BEGIN BARRBRACK BARCOLON BARBAR BAR ASSERT AND AMPERAMPER ABOVE follow(match_action) = error WITH WHILE WHERE UIDENT TYPE TRY TO THEN STRING STAR SHARP SEMISEMI SEMI RPAREN RBRACK RBRACE RAISE QUESTION PREFIXOP PLUS OPEN MODULE MINUSGREATER MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT INFIXOP5R INFIXOP5L INFIXOP4R INFIXOP4L INFIXOP3R INFIXOP3L INFIXOP2R INFIXOP2L INFIXOP1R INFIXOP1L IN IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION EQ EOF END ELSE DOWNTO DOTDOT DONE DOLLAR DO COMMA COLONEQUAL COLONCOLON COLON CHAR CASE BELOW BEGIN BARRBRACK BARCOLON BARBAR BAR ASSERT AND AMPERAMPER ABOVE follow(list_pattern) = error RPAREN RBRACK follow(list_expr) = error RBRACK follow(let_bindings) = WHILE WHERE UIDENT TYPE TRY STRING SHARP SEMISEMI RAISE PREFIXOP PLUS OPEN MODULE MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT IN IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION EOF DOLLAR CHAR CASE BEGIN ASSERT AND follow(let_binding) = WHILE WHERE UIDENT TYPE TRY STRING SHARP SEMISEMI RAISE PREFIXOP PLUS OPEN MODULE MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT IN IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION EOF DOLLAR CHAR CASE BEGIN ASSERT AND follow(lbl_type_list) = error RBRACE COMMA follow(lbl_pattern_list_element) = error RBRACE COMMA follow(lbl_pattern_list) = error RBRACE COMMA follow(lbl_expr_list) = error RBRACE COMMA follow(label_longident) = error WITH WHILE WHERE UIDENT TYPE TRY TO THEN STRING STAR SHARP SEMISEMI SEMI RPAREN RBRACK RBRACE RAISE QUESTION PREFIXOP PLUS OPEN MODULE MINUSGREATER MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LESSMINUS LBRACKBAR LBRACK LBRACE LAZY INT INFIXOP5R INFIXOP5L INFIXOP4R INFIXOP4L INFIXOP3R INFIXOP3L INFIXOP2R INFIXOP2L INFIXOP1R INFIXOP1L IN IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION EQ EOF END ELSE DOWNTO DOTDOT DOT DONE DOLLAR DO COMMA COLONEQUAL COLONCOLON COLON CHAR CASE BELOW BEGIN BARRBRACK BARCOLON BARBAR BAR ASSERT AND AMPERAMPER ABOVE follow(key_pattern_list_element) = RPAREN COMMA follow(key_pattern_list) = RPAREN COMMA follow(key_pattern) = RPAREN follow(index_list) = error RBRACK COMMA follow(index) = error RBRACK COMMA follow(generator_list) = error SEMI RBRACK follow(generator) = error SEMI RBRACK follow(fun_def) = error WITH WHILE WHERE UIDENT TYPE TRY TO THEN STRING STAR SHARP SEMISEMI SEMI RPAREN RBRACK RBRACE RAISE QUESTION PREFIXOP PLUS OPEN MODULE MINUSGREATER MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT INFIXOP5R INFIXOP5L INFIXOP4R INFIXOP4L INFIXOP3R INFIXOP3L INFIXOP2R INFIXOP2L INFIXOP1R INFIXOP1L IN IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION EQ EOF END ELSE DOWNTO DOTDOT DONE DOLLAR DO COMMA COLONEQUAL COLONCOLON COLON CHAR CASE BELOW BEGIN BARRBRACK BARCOLON BARBAR BAR ASSERT AND AMPERAMPER ABOVE follow(fun_binding) = WHILE WHERE UIDENT TYPE TRY STRING SHARP SEMISEMI RAISE PREFIXOP PLUS OPEN MODULE MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT IN IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION EOF DOLLAR CHAR CASE BEGIN ASSERT AND follow(field_defn) = error RBRACE COMMA follow(expr_comma_list_element) = error WITH SEMI RPAREN RBRACK DOTDOT COMMA BARRBRACK BAR follow(expr_comma_list) = error WITH SEMI RPAREN RBRACK DOTDOT COMMA BARRBRACK BAR follow(expr) = error WITH WHILE WHERE UIDENT TYPE TRY TO THEN STRING STAR SHARP SEMISEMI SEMI RPAREN RBRACK RBRACE RAISE QUESTION PREFIXOP PLUS OPEN MODULE MINUSGREATER MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT INFIXOP5R INFIXOP5L INFIXOP4R INFIXOP4L INFIXOP3R INFIXOP3L INFIXOP2R INFIXOP2L INFIXOP1R INFIXOP1L IN IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION EQ EOF END ELSE DOWNTO DOTDOT DONE DOLLAR DO COMMA COLONEQUAL COLONCOLON COLON CHAR CASE BELOW BEGIN BARRBRACK BARCOLON BARBAR BAR ASSERT AND AMPERAMPER ABOVE follow(direction_flag) = WHILE WHERE UIDENT TRY STRING SHARP RAISE PREFIXOP PLUS MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT IMAGINARY IF FUNCTION FUN FOR FLOAT DOLLAR CHAR CASE BEGIN ASSERT follow(constr_longident) = error WITH WHILE WHERE WHEN WEAKARRAYPAT VECTORPAT UNDERSCORE UIDENT TYPE TUPLEPAT TRY TO THEN SYMBOLPAT STRINGPAT STRING STAR STACKPAT SHARP SEMISEMI SEMI RPAREN RECORDPAT REALPAT RBRACK RBRACE RAISE QUEUEPAT QUESTION PREFIXOP PLUS OUT_CHANNELPAT OPEN NUMBERPAT MODULE MINUSGREATER MINUS MATCH LVECTOR LPAREN LMATRIX LISTPAT LIDENT LET LESSMINUS LBRACKBAR LBRACK LBRACE LAZY IN_CHANNELPAT INTPAT INT INFIXOP5R INFIXOP5L INFIXOP4R INFIXOP4L INFIXOP3R INFIXOP3L INFIXOP2R INFIXOP2L INFIXOP1R INFIXOP1L IN IMAGINARY IF HASHTABLEPAT FUNCTION FUN FOR FLOATPAT FLOAT FARRAYPAT EXCEPTION EQ EOF END ELSE DOWNTO DOTDOT DOT DONE DOLLAR DO DIR_HANDLEPAT COMPLEXPAT COMMA COLONEQUAL COLONCOLON COLON CHARPAT CHAR CASE CARRAYPAT BOXPAT BELOW BEGIN BARRBRACK BARCOLON BARBAR BAR ASSERT AS ARRAYPAT AND AMPERAMPER ABOVE follow(constant) = error WITH WHILE WHERE WHEN UNDERSCORE UIDENT TYPE TRY TO THEN STRING STAR SHARP SEMISEMI SEMI RPAREN RBRACK RBRACE RAISE QUESTION PREFIXOP PLUS OPEN MODULE MINUSGREATER MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LESSMINUS LBRACKBAR LBRACK LBRACE LAZY INT INFIXOP5R INFIXOP5L INFIXOP4R INFIXOP4L INFIXOP3R INFIXOP3L INFIXOP2R INFIXOP2L INFIXOP1R INFIXOP1L IN IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION EQ EOF END ELSE DOWNTO DOTDOT DOT DONE DOLLAR DO COMMA COLONEQUAL COLONCOLON COLON CHAR CASE BELOW BEGIN BARRBRACK BARCOLON BARBAR BAR ASSERT AS AND AMPERAMPER ABOVE follow(colonized_symbol) = COLON follow(case_list) = error WITH WHILE WHERE UIDENT TYPE TRY TO THEN STRING STAR SHARP SEMISEMI SEMI RPAREN RBRACK RBRACE RAISE QUESTION PREFIXOP PLUS OPEN MODULE MINUSGREATER MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT INFIXOP5R INFIXOP5L INFIXOP4R INFIXOP4L INFIXOP3R INFIXOP3L INFIXOP2R INFIXOP2L INFIXOP1R INFIXOP1L IN IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION EQ EOF END ELSE DOWNTO DOTDOT DONE DOLLAR DO COMMA COLONEQUAL COLONCOLON COLON CHAR CASE BELOW BEGIN BARRBRACK BARCOLON BARBAR BAR ASSERT AND AMPERAMPER ABOVE follow(built_in_constr) = error WHEN RPAREN RBRACK RBRACE MINUSGREATER LESSMINUS EQ COMMA COLONCOLON BARBAR BAR AS follow(bi_pattern) = error WHEN RPAREN RBRACK RBRACE MINUSGREATER LESSMINUS EQ COMMA COLONCOLON BARBAR BAR AS follow(basic_seq_expr) = error WITH WHILE WHERE UIDENT TYPE TRY TO THEN STRING STAR SHARP SEMISEMI SEMI RPAREN RBRACK RBRACE RAISE QUESTION PREFIXOP PLUS OPEN MODULE MINUSGREATER MINUS MATCH LVECTOR LPAREN LMATRIX LIDENT LET LBRACKBAR LBRACK LBRACE LAZY INT INFIXOP5R INFIXOP5L INFIXOP4R INFIXOP4L INFIXOP3R INFIXOP3L INFIXOP2R INFIXOP2L INFIXOP1R INFIXOP1L IN IMAGINARY IF FUNCTION FUN FOR FLOAT EXCEPTION EQ EOF END ELSE DOWNTO DOTDOT DONE DOLLAR DO COMMA COLONEQUAL COLONCOLON COLON CHAR CASE BELOW BEGIN BARRBRACK BARCOLON BARBAR BAR ASSERT AND AMPERAMPER ABOVE Built an LR(0) automaton with 604 states. The grammar is not SLR(1) -- 78 states have a conflict. Built an LR(1) automaton with 999 states. 1102 shift/reduce conflicts were silently solved. File "nml-ip-parser.mly", line 289, characters 0-5: Warning: the precedence level assigned to COMMA is never useful. File "nml-ip-parser.mly", line 281, characters 0-6: Warning: the precedence level assigned to prec_let is never useful. File "nml-ip-parser.mly", line 284, characters 0-6: Warning: the precedence level assigned to prec_list is never useful. File "nml-ip-parser.mly", line 590, characters 22-31: Warning: this %prec declaration is never useful. File "nml-ip-parser.mly", line 592, characters 36-45: Warning: this %prec declaration is never useful. File "nml-ip-parser.mly", line 602, characters 34-43: Warning: this %prec declaration is never useful. File "nml-ip-parser.mly", line 604, characters 56-65: Warning: this %prec declaration is never useful. File "nml-ip-parser.mly", line 762, characters 23-31: Warning: this %prec declaration is never useful. File "nml-ip-parser.mly", line 1015, characters 58-67: Warning: this %prec declaration is never useful. File "nml-ip-parser.mly", line 775, characters 34-43: Warning: this %prec declaration is never useful. File "nml-ip-parser.mly", line 777, characters 54-63: Warning: this %prec declaration is never useful. File "nml-ip-parser.mly", line 1029, characters 58-67: Warning: this %prec declaration is never useful. File "nml-ip-parser.mly", line 467, characters 22-31: Warning: this %prec declaration is never useful. File "nml-ip-parser.mly", line 469, characters 42-51: Warning: this %prec declaration is never useful. File "nml-ip-parser.mly", line 756, characters 41-49: Warning: this %prec declaration is never useful. File "nml-ip-parser.mly", line 497, characters 29-38: Warning: this %prec declaration is never useful. File "nml-ip-parser.mly", line 989, characters 64-73: Warning: this %prec declaration is never useful. File "nml-ip-parser.mly", line 882, characters 26-42: Warning: this %prec declaration is never useful. File "nml-ip-parser.mly", line 948, characters 62-71: Warning: this %prec declaration is never useful. File "nml-ip-parser.mly", line 917, characters 37-46: Warning: this %prec declaration is never useful. File "nml-ip-parser.mly", line 924, characters 60-69: Warning: this %prec declaration is never useful. File "nml-ip-parser.mly", line 417, characters 26-35: Warning: this %prec declaration is never useful. File "nml-ip-parser.mly", line 419, characters 39-48: Warning: this %prec declaration is never useful. File "nml-ip-parser.mly", line 338, characters 36-44: Warning: this %prec declaration is never useful. File "nml-ip-parser.mly", line 435, characters 18-27: Warning: this %prec declaration is never useful. File "nml-ip-parser.mly", line 437, characters 33-42: Warning: this %prec declaration is never useful. File "nml-ip-parser.mly", line 505, characters 49-57: Warning: this %prec declaration is never useful. File "nml-ip-parser.mly", line 507, characters 56-64: Warning: this %prec declaration is never useful. File "nml-ip-parser.mly", line 510, characters 37-45: Warning: this %prec declaration is never useful. File "nml-ip-parser.mly", line 516, characters 34-42: Warning: this %prec declaration is never useful. File "nml-ip-parser.mly", line 536, characters 39-55: Warning: this %prec declaration is never useful. File "nml-ip-parser.mly", line 586, characters 27-36: Warning: this %prec declaration is never useful. Warning: 100 states have shift/reduce conflicts. Warning: 411 shift/reduce conflicts were arbitrarily resolved. Warning: one state has an end-of-stream conflict. File "nml-ip-parser.mly", line 322, characters 3-3: Warning: production toplevel_phrase -> is never reduced. Warning: in total, 1 production is never reduced. 321 out of 999 states have a default reduction. 547 out of 999 states are represented. 0 out of 184 symbols keep track of their start position. 0 out of 184 symbols keep track of their end position. 140 out of 302 productions exploit shiftreduce optimization. 267 out of 999 states can peek at an error. 2371 functions before inlining, 658 functions after inlining.