LEVIATHAN v962456e · 962456eee1

Standard Library · expr

class Assign

A field assignment, u.field = value, which is the whole body of a "set" lambda.

since 0.1.0-alpha.1linuxwindowswasm

bases
Node

Examples

expr::Node tree = expr::Assign(expr::Field(["age"]), expr::Bin("+", expr::Field(["age"]), expr::Lit(1)));
match (tree) {
    expr::Assign => {
        expr::Assign a = tree;
        console.writeln("sets ${a.target.path[0]}");
    }
    else => { console.writeln("not an Assign"); }
}
sets age

Constructors

new

new(Field t, Node val)

Create an assignment node.

Parameters

t
The field being assigned.
val
The expression whose value is assigned.

Examples

expr::Assign a = expr::Assign(expr::Field(["age"]), expr::Lit(30));
console.writeln(a.target.path[0]);
match (a.value) {
    expr::Lit => { console.writeln("assigns a literal"); }
    else => { console.writeln("assigns something else"); }
}
age
assigns a literal

Fields

target

Field target

The field being assigned.

value

Node value

The expression whose value is assigned.

See also

  • Field — A member access rooted at a lambda parameter, such as u.address.city.