Compiler.Parse.Context
This module defines the data which can be inferred from a Gren source file during parsing, but which won't end up in the resulting AST. This includes the current indentation level while parsing, and the comments picked up along the way.
The reason we store comments is that they're useful when formatting or generating code.
type alias Context =
{ indent : Int
, lineStart : Int
, comments : Dict Int (Array Comment)
}
The "hidden" state of a parser when parsing Gren code.
indent- the current indentation levellineStart- the first non-whitespace character on the current linecomments- comments we've parsed from the source code
empty :
Context
The initial Context. Use this to start parsing.
type alias Comment =
{ row : Int, col : Int, value : CommentValue }
A comment along with it's start position in the file.
type CommentValue
= Line String
| Block String
There are two types of comments. Line- and block-comments.