Skip to content

Store tokens' position range instead of just start position #461

@aabounegm

Description

@aabounegm

BNFC currently generates position information (BNFC'Position) for the parsed tokens, but it would also be great if the range information (begin position, end position) was also provided. This would help identify which part of the AST the cursor is currently at (useful for language servers in particular).

In other words, I am suggesting that instead of the current definition:

-- | Start position (line, column) of something.
type BNFC'Position = C.Maybe (C.Int, C.Int)

we instead (or in addition) have

-- | Start and end positions ((start line, start column), (end line, end column)) of something.
type BNFC'PositionRange = C.Maybe ((C.Int, C.Int), (C.Int, C.Int))

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementpositionConcerning position information in parsed AST

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions