From 9edfa5e2ac5c77593fc09958098def26773b2dec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Pottier?= Date: Tue, 6 Oct 2015 13:16:03 +0200 Subject: [PATCH] Renamed and documented [new_precedence_level]. --- src/fancy-parser.mly | 2 +- src/parserAux.ml | 2 +- src/parserAux.mli | 9 ++++++++- src/yacc-parser.mly | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/fancy-parser.mly b/src/fancy-parser.mly index e12ec837..3287e66d 100644 --- a/src/fancy-parser.mly +++ b/src/fancy-parser.mly @@ -90,7 +90,7 @@ declaration: (List.map Parameters.with_pos ss) } | k = priority_keyword ss = clist(symbol) - { let prec = ParserAux.current_token_precedence $startpos(k) $endpos(k) in + { let prec = ParserAux.new_precedence_level $startpos(k) $endpos(k) in List.map (Positions.map (fun symbol -> DTokenProperties (symbol, k, prec))) ss } | PARAMETER t = OCAMLTYPE diff --git a/src/parserAux.ml b/src/parserAux.ml index a044a850..273e5611 100644 --- a/src/parserAux.ml +++ b/src/parserAux.ml @@ -1,7 +1,7 @@ open Positions open Syntax -let current_token_precedence = +let new_precedence_level = let c = ref 0 in fun pos1 pos2 -> incr c; diff --git a/src/parserAux.mli b/src/parserAux.mli index bd0259d8..de2eb452 100644 --- a/src/parserAux.mli +++ b/src/parserAux.mli @@ -3,9 +3,16 @@ open Syntax +(* [new_precedence_level pos1 pos2] creates a new precendence level, + which is stronger than any previously created levels, for tokens. + It should be called every time a [%left], [%right], or [%nonassoc] + declaration is found. The positions are the positions of this + declaration in the source code. *) + +val new_precedence_level: Lexing.position -> Lexing.position -> precedence_level + (* TEMPORARY document *) -val current_token_precedence: Lexing.position -> Lexing.position -> precedence_level val current_reduce_precedence: unit -> precedence_level (* [check_production_group] accepts a production group and checks that all diff --git a/src/yacc-parser.mly b/src/yacc-parser.mly index b656f5b2..0730c9ec 100644 --- a/src/yacc-parser.mly +++ b/src/yacc-parser.mly @@ -86,7 +86,7 @@ declaration: Positions.mapd (fun nt -> DStart nt, DType ($2, ParameterVar ntloc)) ntloc) $3 } | priority_keyword symbols - { let prec = ParserAux.current_token_precedence (rhs_start_pos 1) (rhs_end_pos 1) in + { let prec = ParserAux.new_precedence_level (rhs_start_pos 1) (rhs_end_pos 1) in List.map (Positions.map (fun symbol -> DTokenProperties (symbol, $1, prec))) $2 } | PARAMETER OCAMLTYPE -- GitLab