[PATCH v2 3/3] algol68: Improve location tracking
Jose E. Marchesi
jemarch@gnu.org
Wed Sep 16 06:56:08 GMT 2026
OK.
Thanks.
> Create a location that covers the node text and has the caret pointing
> to the start of the text.
>
> gcc/algol68/ChangeLog:
>
> * a68-parser.cc (a68_get_node_location): Return a location
> that covers the whole span of the node.
>
> Signed-off-by: Pietro Monteiro <pietro@sociotechnical.xyz>
> ---
> gcc/algol68/a68-parser.cc | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/gcc/algol68/a68-parser.cc b/gcc/algol68/a68-parser.cc
> index 878d9d6cd9b..40ebe507492 100644
> --- a/gcc/algol68/a68-parser.cc
> +++ b/gcc/algol68/a68-parser.cc
> @@ -1155,7 +1155,14 @@ a68_get_node_location (NODE_T *p)
>
> const char *start_pos = CHAR_IN_LINE (INFO (p));
> location_t start_loc = a68_get_line_location (line, start_pos);
> - return start_loc;
> +
> + if (NSYMBOL (p) == NO_TEXT)
> + return start_loc;
> +
> + const char *end_pos = start_pos + strlen (NSYMBOL (p)) - 1;
> + location_t end_loc = a68_get_line_location (line, end_pos);
> +
> + return make_location (start_loc, start_loc, end_loc);
> }
>
> /* Get the location of POS inside LINE as a GCC location. */
More information about the Algol68
mailing list