Module: Fusion::AST
- Included in:
- Interpreter, Parser
- Defined in:
- lib/fusion/ast.rb
Defined Under Namespace
Modules: Expression, Pattern, Statement
Constant Summary collapse
- IDENTIFIER =
A syntactic identifier: a bound/looked-up name, a
.key, or a...restbinder. Mirrors the lexer's ident rule (Lexer#ident_start? / #ident_part?). Object keys are arbitrary strings, not identifiers, so they stayString. /\A[A-Za-z_][A-Za-z0-9_]*\z/- ArrayItem =
An array element
TypedData.define(value: Expression)
- ArraySpread =
...exprinside an array TypedData.define(value: Expression)
- KeyValuePair =
"k": exprinside an object TypedData.define(key: String, value: Expression)
- ObjectSpread =
...exprinside an object TypedData.define(value: Expression)
- Clause =
One
pattern => bodyof a function TypedData.define(pattern: Pattern, body: Expression)
- PatternItem =
A sub-pattern of an array pattern
TypedData.define(pattern: Pattern)
- PatternPair =
"k": patinside an object pattern TypedData.define(key: String, pattern: Pattern)
- PatternRest =
...namein array/object pattern. (name nil = don't bind) TypedData.define(name: ->(v) { IDENTIFIER === v || v.nil? })