miller/go/u/try-parse.out
2020-10-05 01:02:27 -04:00

1270 lines
30 KiB
Text

----------------------------------------------------------------
mlr -n put -v $y = 1 || 2
DSL EXPRESSION:
$y = 1 || 2
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "y"
* Operator "||"
* IntLiteral "1"
* IntLiteral "2"
----------------------------------------------------------------
mlr -n put -v $y = 1 || 2 || 3
DSL EXPRESSION:
$y = 1 || 2 || 3
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "y"
* Operator "||"
* Operator "||"
* IntLiteral "1"
* IntLiteral "2"
* IntLiteral "3"
----------------------------------------------------------------
mlr -n put -v $y = 1 || 2 && 3
DSL EXPRESSION:
$y = 1 || 2 && 3
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "y"
* Operator "||"
* IntLiteral "1"
* Operator "&&"
* IntLiteral "2"
* IntLiteral "3"
----------------------------------------------------------------
mlr -n put -v $y = 1 && 2 || 3
DSL EXPRESSION:
$y = 1 && 2 || 3
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "y"
* Operator "||"
* Operator "&&"
* IntLiteral "1"
* IntLiteral "2"
* IntLiteral "3"
----------------------------------------------------------------
mlr -n put -v $y = 1 ? 2 : 3
DSL EXPRESSION:
$y = 1 ? 2 : 3
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "y"
* Operator "?:"
* IntLiteral "1"
* IntLiteral "2"
* IntLiteral "3"
----------------------------------------------------------------
mlr -n put -v $y = $a + $b * $c
DSL EXPRESSION:
$y = $a + $b * $c
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "y"
* Operator "+"
* DirectFieldValue "a"
* Operator "*"
* DirectFieldValue "b"
* DirectFieldValue "c"
----------------------------------------------------------------
mlr -n put -v $y = $a * $b * $c
DSL EXPRESSION:
$y = $a * $b * $c
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "y"
* Operator "*"
* Operator "*"
* DirectFieldValue "a"
* DirectFieldValue "b"
* DirectFieldValue "c"
----------------------------------------------------------------
mlr -n put -v $y = $a ** $b ** $c
DSL EXPRESSION:
$y = $a ** $b ** $c
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "y"
* Operator "**"
* DirectFieldValue "a"
* Operator "**"
* DirectFieldValue "b"
* DirectFieldValue "c"
----------------------------------------------------------------
mlr -n put -v $[2] = 3
DSL EXPRESSION:
$[2] = 3
RAW AST:
* StatementBlock
* Assignment "="
* IndirectFieldValue "$[]"
* IntLiteral "2"
* IntLiteral "3"
----------------------------------------------------------------
mlr -n put -v $[$y] = 4
DSL EXPRESSION:
$[$y] = 4
RAW AST:
* StatementBlock
* Assignment "="
* IndirectFieldValue "$[]"
* DirectFieldValue "y"
* IntLiteral "4"
----------------------------------------------------------------
mlr -n put -v $x = "abc"
DSL EXPRESSION:
$x = "abc"
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "x"
* StringLiteral "abc"
----------------------------------------------------------------
mlr -n put -v $["abc"] = "def"
DSL EXPRESSION:
$["abc"] = "def"
RAW AST:
* StatementBlock
* Assignment "="
* IndirectFieldValue "$[]"
* StringLiteral "abc"
* StringLiteral "def"
----------------------------------------------------------------
mlr -n put -v $[FILENAME] = FNR
DSL EXPRESSION:
$[FILENAME] = FNR
RAW AST:
* StatementBlock
* Assignment "="
* IndirectFieldValue "$[]"
* ContextVariable "FILENAME"
* ContextVariable "FNR"
----------------------------------------------------------------
mlr -n put -v $x = $a + $b + $c
DSL EXPRESSION:
$x = $a + $b + $c
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "x"
* Operator "+"
* Operator "+"
* DirectFieldValue "a"
* DirectFieldValue "b"
* DirectFieldValue "c"
----------------------------------------------------------------
mlr -n put -v $x = ($a + $b) + $c; $y = $a + ($b + $c); $z = $a + ($b)+ $c
DSL EXPRESSION:
$x = ($a + $b) + $c; $y = $a + ($b + $c); $z = $a + ($b)+ $c
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "x"
* Operator "+"
* Operator "+"
* DirectFieldValue "a"
* DirectFieldValue "b"
* DirectFieldValue "c"
* Assignment "="
* DirectFieldValue "y"
* Operator "+"
* DirectFieldValue "a"
* Operator "+"
* DirectFieldValue "b"
* DirectFieldValue "c"
* Assignment "="
* DirectFieldValue "z"
* Operator "+"
* Operator "+"
* DirectFieldValue "a"
* DirectFieldValue "b"
* DirectFieldValue "c"
----------------------------------------------------------------
mlr -n put -v $x = 2 * $a + $b . $c
DSL EXPRESSION:
$x = 2 * $a + $b . $c
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "x"
* Operator "."
* Operator "+"
* Operator "*"
* IntLiteral "2"
* DirectFieldValue "a"
* DirectFieldValue "b"
* DirectFieldValue "c"
----------------------------------------------------------------
mlr -n put -v $x = 2 * $a + ($b . $c)
DSL EXPRESSION:
$x = 2 * $a + ($b . $c)
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "x"
* Operator "+"
* Operator "*"
* IntLiteral "2"
* DirectFieldValue "a"
* Operator "."
* DirectFieldValue "b"
* DirectFieldValue "c"
----------------------------------------------------------------
mlr -n put -v $x = (NF + NR) * 7; $y = OFS . $y . "hello"
DSL EXPRESSION:
$x = (NF + NR) * 7; $y = OFS . $y . "hello"
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "x"
* Operator "*"
* Operator "+"
* ContextVariable "NF"
* ContextVariable "NR"
* IntLiteral "7"
* Assignment "="
* DirectFieldValue "y"
* Operator "."
* Operator "."
* ContextVariable "OFS"
* DirectFieldValue "y"
* StringLiteral "hello"
----------------------------------------------------------------
mlr -n put -v $x = 123. + 1e-2 / .2e3 + 1.e-3
DSL EXPRESSION:
$x = 123. + 1e-2 / .2e3 + 1.e-3
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "x"
* Operator "+"
* Operator "+"
* FloatLiteral "123."
* Operator "/"
* FloatLiteral "1e-2"
* FloatLiteral ".2e3"
* FloatLiteral "1.e-3"
----------------------------------------------------------------
mlr -n put -v $z=0x7fffffffffffffff + 0x7fffffffffffffff
DSL EXPRESSION:
$z=0x7fffffffffffffff + 0x7fffffffffffffff
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* Operator "+"
* IntLiteral "0x7fffffffffffffff"
* IntLiteral "0x7fffffffffffffff"
----------------------------------------------------------------
mlr -n put -v $z=0x7fffffffffffffff .+ 0x7fffffffffffffff
DSL EXPRESSION:
$z=0x7fffffffffffffff .+ 0x7fffffffffffffff
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* Operator ".+"
* IntLiteral "0x7fffffffffffffff"
* IntLiteral "0x7fffffffffffffff"
----------------------------------------------------------------
mlr -n put -v $z=0x7fffffffffffffff * 0x7fffffffffffffff
DSL EXPRESSION:
$z=0x7fffffffffffffff * 0x7fffffffffffffff
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* Operator "*"
* IntLiteral "0x7fffffffffffffff"
* IntLiteral "0x7fffffffffffffff"
----------------------------------------------------------------
mlr -n put -v $z=0x7fffffffffffffff .* 0x7fffffffffffffff
DSL EXPRESSION:
$z=0x7fffffffffffffff .* 0x7fffffffffffffff
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* Operator ".*"
* IntLiteral "0x7fffffffffffffff"
* IntLiteral "0x7fffffffffffffff"
----------------------------------------------------------------
mlr -n put -v $z = []
DSL EXPRESSION:
$z = []
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* ArrayLiteral "[]"
----------------------------------------------------------------
mlr -n put -v $z = [1,]
DSL EXPRESSION:
$z = [1,]
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* ArrayLiteral "[]"
* IntLiteral "1"
----------------------------------------------------------------
mlr -n put -v $z = [1,2]
DSL EXPRESSION:
$z = [1,2]
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* ArrayLiteral "[]"
* IntLiteral "1"
* IntLiteral "2"
----------------------------------------------------------------
mlr -n put -v $z = [1,2,]
DSL EXPRESSION:
$z = [1,2,]
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* ArrayLiteral "[]"
* IntLiteral "1"
* IntLiteral "2"
----------------------------------------------------------------
mlr -n put -v $z = [1,2,3]
DSL EXPRESSION:
$z = [1,2,3]
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* ArrayLiteral "[]"
* IntLiteral "1"
* IntLiteral "2"
* IntLiteral "3"
----------------------------------------------------------------
mlr -n put -v $z = [1,2,3,]
DSL EXPRESSION:
$z = [1,2,3,]
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* ArrayLiteral "[]"
* IntLiteral "1"
* IntLiteral "2"
* IntLiteral "3"
----------------------------------------------------------------
mlr -n put -v $z = {}
DSL EXPRESSION:
$z = {}
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* MapLiteral "{}"
----------------------------------------------------------------
mlr -n put -v $z = {"a":"1"}
DSL EXPRESSION:
$z = {"a":"1"}
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* MapLiteral "{}"
* MapLiteralKeyValuePair ":"
* StringLiteral "a"
* StringLiteral "1"
----------------------------------------------------------------
mlr -n put -v $z = {"a":"1",}
DSL EXPRESSION:
$z = {"a":"1",}
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* MapLiteral "{}"
* MapLiteralKeyValuePair ":"
* StringLiteral "a"
* StringLiteral "1"
----------------------------------------------------------------
mlr -n put -v $z = {"a":"1", "b":2}
DSL EXPRESSION:
$z = {"a":"1", "b":2}
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* MapLiteral "{}"
* MapLiteralKeyValuePair ":"
* StringLiteral "a"
* StringLiteral "1"
* MapLiteralKeyValuePair ":"
* StringLiteral "b"
* IntLiteral "2"
----------------------------------------------------------------
mlr -n put -v $z = {"a":"1", "b":2,}
DSL EXPRESSION:
$z = {"a":"1", "b":2,}
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* MapLiteral "{}"
* MapLiteralKeyValuePair ":"
* StringLiteral "a"
* StringLiteral "1"
* MapLiteralKeyValuePair ":"
* StringLiteral "b"
* IntLiteral "2"
----------------------------------------------------------------
mlr -n put -v $z = {"a":"1", "b":2, "c":3}
DSL EXPRESSION:
$z = {"a":"1", "b":2, "c":3}
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* MapLiteral "{}"
* MapLiteralKeyValuePair ":"
* StringLiteral "a"
* StringLiteral "1"
* MapLiteralKeyValuePair ":"
* StringLiteral "b"
* IntLiteral "2"
* MapLiteralKeyValuePair ":"
* StringLiteral "c"
* IntLiteral "3"
----------------------------------------------------------------
mlr -n put -v $z = {"a":"1", "b":2, "c":3,}
DSL EXPRESSION:
$z = {"a":"1", "b":2, "c":3,}
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* MapLiteral "{}"
* MapLiteralKeyValuePair ":"
* StringLiteral "a"
* StringLiteral "1"
* MapLiteralKeyValuePair ":"
* StringLiteral "b"
* IntLiteral "2"
* MapLiteralKeyValuePair ":"
* StringLiteral "c"
* IntLiteral "3"
----------------------------------------------------------------
mlr -n put -v $z = $a[1]
DSL EXPRESSION:
$z = $a[1]
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* ArrayOrMapIndexAccess "[]"
* DirectFieldValue "a"
* IntLiteral "1"
----------------------------------------------------------------
mlr -n put -v $z = $a["index"]
DSL EXPRESSION:
$z = $a["index"]
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* ArrayOrMapIndexAccess "[]"
* DirectFieldValue "a"
* StringLiteral "index"
----------------------------------------------------------------
mlr -n put -v $z = "abcde"[1]
DSL EXPRESSION:
$z = "abcde"[1]
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* ArrayOrMapIndexAccess "[]"
* StringLiteral "abcde"
* IntLiteral "1"
----------------------------------------------------------------
mlr -n put -v $z = "abcde"["index"]
DSL EXPRESSION:
$z = "abcde"["index"]
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* ArrayOrMapIndexAccess "[]"
* StringLiteral "abcde"
* StringLiteral "index"
----------------------------------------------------------------
mlr -n put -v $z = $a[1:2]
DSL EXPRESSION:
$z = $a[1:2]
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* ArraySliceAccess "[]"
* DirectFieldValue "a"
* IntLiteral "1"
* IntLiteral "2"
----------------------------------------------------------------
mlr -n put -v $z = $a[:2]
DSL EXPRESSION:
$z = $a[:2]
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* ArraySliceAccess "[]"
* DirectFieldValue "a"
* ArraySliceEmptyLowerIndex ":"
* IntLiteral "2"
----------------------------------------------------------------
mlr -n put -v $z = $a[1:]
DSL EXPRESSION:
$z = $a[1:]
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* ArraySliceAccess "[]"
* DirectFieldValue "a"
* IntLiteral "1"
* ArraySliceEmptyUpperIndex ":"
----------------------------------------------------------------
mlr -n put -v $z = $a[:]
DSL EXPRESSION:
$z = $a[:]
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* ArraySliceAccess "[]"
* DirectFieldValue "a"
* ArraySliceEmptyLowerIndex ":"
* ArraySliceEmptyUpperIndex ":"
----------------------------------------------------------------
mlr -n put -v $z = [5,6,7,8,9][1]
DSL EXPRESSION:
$z = [5,6,7,8,9][1]
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* ArrayOrMapIndexAccess "[]"
* ArrayLiteral "[]"
* IntLiteral "5"
* IntLiteral "6"
* IntLiteral "7"
* IntLiteral "8"
* IntLiteral "9"
* IntLiteral "1"
----------------------------------------------------------------
mlr -n put -v $z = {"a":1, "b":2, "c":3}["b"]
DSL EXPRESSION:
$z = {"a":1, "b":2, "c":3}["b"]
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* ArrayOrMapIndexAccess "[]"
* MapLiteral "{}"
* MapLiteralKeyValuePair ":"
* StringLiteral "a"
* IntLiteral "1"
* MapLiteralKeyValuePair ":"
* StringLiteral "b"
* IntLiteral "2"
* MapLiteralKeyValuePair ":"
* StringLiteral "c"
* IntLiteral "3"
* StringLiteral "b"
----------------------------------------------------------------
mlr -n put -v begin{}
DSL EXPRESSION:
begin{}
RAW AST:
* StatementBlock
* BeginBlock
* StatementBlock
----------------------------------------------------------------
mlr -n put -v begin{@y=1}
DSL EXPRESSION:
begin{@y=1}
RAW AST:
* StatementBlock
* BeginBlock
* StatementBlock
* Assignment "="
* DirectOosvarValue "y"
* IntLiteral "1"
----------------------------------------------------------------
mlr -n put -v end{}
DSL EXPRESSION:
end{}
RAW AST:
* StatementBlock
* EndBlock
* StatementBlock
----------------------------------------------------------------
mlr -n put -v end{@y=1}
DSL EXPRESSION:
end{@y=1}
RAW AST:
* StatementBlock
* EndBlock
* StatementBlock
* Assignment "="
* DirectOosvarValue "y"
* IntLiteral "1"
----------------------------------------------------------------
mlr -n put -v $x=2; end{@y=1}
DSL EXPRESSION:
$x=2; end{@y=1}
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "x"
* IntLiteral "2"
* EndBlock
* StatementBlock
* Assignment "="
* DirectOosvarValue "y"
* IntLiteral "1"
----------------------------------------------------------------
mlr -n put -v begin{@y=1} $x=2
DSL EXPRESSION:
begin{@y=1} $x=2
RAW AST:
* StatementBlock
* BeginBlock
* StatementBlock
* Assignment "="
* DirectOosvarValue "y"
* IntLiteral "1"
* Assignment "="
* DirectFieldValue "x"
* IntLiteral "2"
----------------------------------------------------------------
mlr -n put -v begin{} end {}
DSL EXPRESSION:
begin{} end {}
RAW AST:
* StatementBlock
* BeginBlock
* StatementBlock
* EndBlock
* StatementBlock
----------------------------------------------------------------
mlr -n put -v $x=1;
DSL EXPRESSION:
$x=1;
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "x"
* IntLiteral "1"
----------------------------------------------------------------
mlr -n put -v $x=1;$y=2;
DSL EXPRESSION:
$x=1;$y=2;
RAW AST:
* StatementBlock
* Assignment "="
* DirectFieldValue "x"
* IntLiteral "1"
* Assignment "="
* DirectFieldValue "y"
* IntLiteral "2"
----------------------------------------------------------------
mlr -n put -v begin{@x=1;@y=2}
DSL EXPRESSION:
begin{@x=1;@y=2}
RAW AST:
* StatementBlock
* BeginBlock
* StatementBlock
* Assignment "="
* DirectOosvarValue "x"
* IntLiteral "1"
* Assignment "="
* DirectOosvarValue "y"
* IntLiteral "2"
----------------------------------------------------------------
mlr -n put -v begin{@x=1;@y=2;}
DSL EXPRESSION:
begin{@x=1;@y=2;}
RAW AST:
* StatementBlock
* BeginBlock
* StatementBlock
* Assignment "="
* DirectOosvarValue "x"
* IntLiteral "1"
* Assignment "="
* DirectOosvarValue "y"
* IntLiteral "2"
----------------------------------------------------------------
mlr -n put -v begin{@x=1;@y=2;} $z=3
DSL EXPRESSION:
begin{@x=1;@y=2;} $z=3
RAW AST:
* StatementBlock
* BeginBlock
* StatementBlock
* Assignment "="
* DirectOosvarValue "x"
* IntLiteral "1"
* Assignment "="
* DirectOosvarValue "y"
* IntLiteral "2"
* Assignment "="
* DirectFieldValue "z"
* IntLiteral "3"
----------------------------------------------------------------
mlr -n put -v begin{@x=1;@y=2;} $z=3;
DSL EXPRESSION:
begin{@x=1;@y=2;} $z=3;
RAW AST:
* StatementBlock
* BeginBlock
* StatementBlock
* Assignment "="
* DirectOosvarValue "x"
* IntLiteral "1"
* Assignment "="
* DirectOosvarValue "y"
* IntLiteral "2"
* Assignment "="
* DirectFieldValue "z"
* IntLiteral "3"
----------------------------------------------------------------
mlr -n put -v if (NR == 1) { $z = 100 }
DSL EXPRESSION:
if (NR == 1) { $z = 100 }
RAW AST:
* StatementBlock
* IfChain
* IfItem "if"
* Operator "=="
* ContextVariable "NR"
* IntLiteral "1"
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* IntLiteral "100"
----------------------------------------------------------------
mlr -n put -v if (NR == 1) { $z = 100 } else { $z = 900 }
DSL EXPRESSION:
if (NR == 1) { $z = 100 } else { $z = 900 }
RAW AST:
* StatementBlock
* IfChain
* IfItem "if"
* Operator "=="
* ContextVariable "NR"
* IntLiteral "1"
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* IntLiteral "100"
* IfItem "else"
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* IntLiteral "900"
----------------------------------------------------------------
mlr -n put -v if (NR == 1) { $z = 100 } elif (NR == 2) { $z = 200 }
DSL EXPRESSION:
if (NR == 1) { $z = 100 } elif (NR == 2) { $z = 200 }
RAW AST:
* StatementBlock
* IfChain
* IfItem "if"
* Operator "=="
* ContextVariable "NR"
* IntLiteral "1"
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* IntLiteral "100"
* IfItem "elif"
* Operator "=="
* ContextVariable "NR"
* IntLiteral "2"
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* IntLiteral "200"
----------------------------------------------------------------
mlr -n put -v if (NR == 1) { $z = 100 } elif (NR == 2) { $z = 200 } else { $z = 900 }
DSL EXPRESSION:
if (NR == 1) { $z = 100 } elif (NR == 2) { $z = 200 } else { $z = 900 }
RAW AST:
* StatementBlock
* IfChain
* IfItem "if"
* Operator "=="
* ContextVariable "NR"
* IntLiteral "1"
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* IntLiteral "100"
* IfItem "elif"
* Operator "=="
* ContextVariable "NR"
* IntLiteral "2"
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* IntLiteral "200"
* IfItem "else"
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* IntLiteral "900"
----------------------------------------------------------------
mlr -n put -v if (NR == 1) { $z = 100 } elif (NR == 2) { $z = 200 } elif (NR == 3) { $z = 300 } else { $z = 900 }
DSL EXPRESSION:
if (NR == 1) { $z = 100 } elif (NR == 2) { $z = 200 } elif (NR == 3) { $z = 300 } else { $z = 900 }
RAW AST:
* StatementBlock
* IfChain
* IfItem "if"
* Operator "=="
* ContextVariable "NR"
* IntLiteral "1"
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* IntLiteral "100"
* IfItem "elif"
* Operator "=="
* ContextVariable "NR"
* IntLiteral "2"
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* IntLiteral "200"
* IfItem "elif"
* Operator "=="
* ContextVariable "NR"
* IntLiteral "3"
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* IntLiteral "300"
* IfItem "else"
* StatementBlock
* Assignment "="
* DirectFieldValue "z"
* IntLiteral "900"
----------------------------------------------------------------
mlr -n put -v for (k in $*) { emit { k : k } }
DSL EXPRESSION:
for (k in $*) { emit { k : k } }
RAW AST:
* StatementBlock
* ForLoopKeyOnly "for"
* LocalVariable "k"
* FullSrec "$*"
* StatementBlock
* EmitStatement "emit"
* MapLiteral "{}"
* MapLiteralKeyValuePair ":"
* LocalVariable "k"
* LocalVariable "k"
----------------------------------------------------------------
mlr -n put -v begin {}
DSL EXPRESSION:
begin {}
RAW AST:
* StatementBlock
* BeginBlock
* StatementBlock
----------------------------------------------------------------
mlr -n put -v begin {1}
DSL EXPRESSION:
begin {1}
RAW AST:
* StatementBlock
* BeginBlock
* StatementBlock
* BareBoolean
* IntLiteral "1"
----------------------------------------------------------------
mlr -n put -v end {}
DSL EXPRESSION:
end {}
RAW AST:
* StatementBlock
* EndBlock
* StatementBlock
----------------------------------------------------------------
mlr -n put -v end {1}
DSL EXPRESSION:
end {1}
RAW AST:
* StatementBlock
* EndBlock
* StatementBlock
* BareBoolean
* IntLiteral "1"
----------------------------------------------------------------
mlr -n put -v if (1) {}
DSL EXPRESSION:
if (1) {}
RAW AST:
* StatementBlock
* IfChain
* IfItem "if"
* IntLiteral "1"
* StatementBlock
----------------------------------------------------------------
mlr -n put -v if (1) {2}
DSL EXPRESSION:
if (1) {2}
RAW AST:
* StatementBlock
* IfChain
* IfItem "if"
* IntLiteral "1"
* StatementBlock
* BareBoolean
* IntLiteral "2"
----------------------------------------------------------------
mlr -n put -v for (k in $*) {}
DSL EXPRESSION:
for (k in $*) {}
RAW AST:
* StatementBlock
* ForLoopKeyOnly "for"
* LocalVariable "k"
* FullSrec "$*"
* StatementBlock
----------------------------------------------------------------
mlr -n put -v for (k in $*) {2}
DSL EXPRESSION:
for (k in $*) {2}
RAW AST:
* StatementBlock
* ForLoopKeyOnly "for"
* LocalVariable "k"
* FullSrec "$*"
* StatementBlock
* BareBoolean
* IntLiteral "2"
----------------------------------------------------------------
mlr -n put -v while (false) {}
DSL EXPRESSION:
while (false) {}
RAW AST:
* StatementBlock
* WhileLoop "while"
* BoolLiteral "false"
* StatementBlock
----------------------------------------------------------------
mlr -n put -v do {} while (false)
DSL EXPRESSION:
do {} while (false)
RAW AST:
* StatementBlock
* DoWhileLoop "do"
* StatementBlock
* BoolLiteral "false"
----------------------------------------------------------------
mlr -n put -v nr=NR; $nr=nr
DSL EXPRESSION:
nr=NR; $nr=nr
RAW AST:
* StatementBlock
* Assignment "="
* LocalVariable "nr"
* ContextVariable "NR"
* Assignment "="
* DirectFieldValue "nr"
* LocalVariable "nr"
----------------------------------------------------------------
mlr -n put -v for (i = 0; i < 10; i += 1) { $x += i }
DSL EXPRESSION:
for (i = 0; i < 10; i += 1) { $x += i }
RAW AST:
* StatementBlock
* TripleForLoop "for"
* StatementBlock
* Assignment "="
* LocalVariable "i"
* IntLiteral "0"
* StatementBlock
* BareBoolean
* Operator "<"
* LocalVariable "i"
* IntLiteral "10"
* StatementBlock
* Assignment "="
* LocalVariable "i"
* Operator "+"
* LocalVariable "i"
* IntLiteral "1"
* StatementBlock
* Assignment "="
* DirectFieldValue "x"
* Operator "+"
* DirectFieldValue "x"
* LocalVariable "i"
----------------------------------------------------------------
mlr -n put -v for (;;) {}
DSL EXPRESSION:
for (;;) {}
RAW AST:
* StatementBlock
* TripleForLoop "for"
* StatementBlock
* StatementBlock
* StatementBlock
* StatementBlock