-
-
Notifications
You must be signed in to change notification settings - Fork 114
Open
Description
We are implementing a new parser written in Darklang. This issue gathers the grammar updates that need to be done to match more of our full language.
Expressions:
- unit
- bool
- signed and unsigned Ints (Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128)
- float
- char
- TODO: the space in
'a 'shouldn't be ignored, and the test should fail
- TODO: the space in
- string
- let expression
- if/else
- pretty-printer: fix the formatting for an
ifstatement with anelsewhose root expression is also anif - Fix the requirement for parentheses in a
thenexpression within an inline if/else expression
- pretty-printer: fix the formatting for an
- infix
- +, -, *, /, %, ^, >, <, >=, <=, ==, !=, ++
- ||, &&
- lambda
- field access
- variable
- list
- dict
- tuple
- pipe
- record
- enum
- match
- record update
- paren_expression
- fix apply
- constant
Type references:
- Variable
- Unit
- Bool
- Signed and Unsigned Ints (Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128)
- Float
- Char
- String
- DateTime
- Uuid
- List
- Tuple
- Dict
- CustomType
- DB
- Fn
Match pattern:
- Variable
- Enum
- Signed and Unsigned Ints (Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128)
- String
- Char
- Bool
- Unit
- Float
- List
- ListCons
- Tuple
Source file:
- Type declaration
- Alias
- Record
- Enum
- Function declaration
- Constant declaration (Unit, Bool, Signed and Unsigned Ints, Float, Char, String, List, Tuple, Dict, Enum)
- Module declaration
Other:
- Qualified function name
- Qualified type name
- Comments (/// comments)
- indentation?
- generics ('a)?
- type parameter (GenericThing<'thing>)?
- string interpolation
- wildcard (eg. Error _ ->...)?
- DB
- Http Handler
- Worker
- Cron
- REPL?
Metadata
Metadata
Assignees
Labels
No labels