# Let with value

LET $name = "Tobie"

==>

SurrealQL(LetStatement(Keyword,ParamDefinition(VariableName),String))

# Let with number

LET $age = 30

==>

SurrealQL(LetStatement(Keyword,ParamDefinition(VariableName),Number(Int)))

# Let with subquery in parens

LET $bla = (SELECT * FROM 123)

==>

SurrealQL(LetStatement(Keyword,ParamDefinition(VariableName),SubQuery(SelectStatement(Keyword,Fields(Any),Keyword,Number(Int)))))

# Let with subquery statement

LET $bla = SELECT * FROM 123

==>

SurrealQL(LetStatement(Keyword,ParamDefinition(VariableName),SelectStatement(Keyword,Fields(Any),Keyword,Number(Int))))

# Let with typed parameter

LET $name: string = "Tobie"

==>

SurrealQL(LetStatement(Keyword,ParamDefinition(VariableName,Colon,Type(TypeName)),String))
