# Parse --- Build initial AST # Value ## Integer `\d+` ## Float `\d+\.\d+` ## String `".*?"` ## Char `'\\?.' # Name `[_a-z][a-zA-z0-9_]{0,59}` # Type `[A-Z][a-zA-z0-9_]{0,59}` On type completion look up if type is a builtin # Symbol `\.[a-zA-z0-9_]{0,60}` # Op ## Op ``[a-z_]+|OPERATORS` ## Action `[?@#^]` # List ## List `()` ## Define `[]` ## Action `{}`