--- parse tree --- [ Code "test/typ/compiler/ops-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "test/typ/compiler/ops-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "test/typ/compiler/ops-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "test/typ/compiler/ops-03.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Minus (Literal (Int 1)) (Literal (Int 4))) , NormalArg (Times (Literal (Int 3)) (Negated (Literal (Int 1)))) ]) , SoftBreak , Code "test/typ/compiler/ops-03.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Minus (Literal (Numeric 4.0 Cm)) (Literal (Numeric 2.0 Cm))) , NormalArg (Literal (Numeric 2.0 Cm)) ]) , SoftBreak , Code "test/typ/compiler/ops-03.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (ToPower (Minus (Literal (Int 2)) (Literal (Float 1.0e-2))) (Literal (Int 1))) , NormalArg (Literal (Float 99.99)) ]) , ParBreak , Comment , Code "test/typ/compiler/ops-03.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Times (Literal (Int 2)) (Literal (Int 4))) , NormalArg (Literal (Int 8)) ]) , ParBreak , Comment , Code "test/typ/compiler/ops-03.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Divided (Literal (Numeric 12.0 Pt)) (Literal (Float 0.4))) , NormalArg (Literal (Numeric 30.0 Pt)) ]) , SoftBreak , Code "test/typ/compiler/ops-03.typ" ( line 12 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Divided (Literal (Int 7)) (Literal (Int 2))) , NormalArg (Literal (Float 3.5)) ]) , ParBreak , Comment , Code "test/typ/compiler/ops-03.typ" ( line 15 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (LessThan (Minus (Literal (Int 3)) (Times (Literal (Int 4)) (Literal (Int 5)))) (Negated (Literal (Int 10)))) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "test/typ/compiler/ops-03.typ" ( line 16 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Block (CodeBlock [ Let (BasicBind (Just (Identifier "x"))) (Literal None) , Assign (Ident (Identifier "x")) (And (GreaterThanOrEqual (Plus (Literal (Int 1)) (Times (Literal (Int 4)) (Literal (Int 5)))) (Literal (Int 21))) (Block (CodeBlock [ Assign (Ident (Identifier "x")) (Literal (String "a")) , Equals (Plus (Ident (Identifier "x")) (Literal (String "b"))) (Literal (String "ab")) ]))) , Ident (Identifier "x") ])) , NormalArg (Literal (Boolean True)) ]) , ParBreak , Comment , Code "test/typ/compiler/ops-03.typ" ( line 19 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Plus (If [ ( Literal (Boolean True) , Block (CodeBlock [ Literal (Int 1) ]) ) ]) (Literal (Int 2))) , NormalArg (Literal (Int 3)) ]) , ParBreak , Comment , Code "test/typ/compiler/ops-03.typ" ( line 24 , column 2 ) (Let (BasicBind (Just (Identifier "nums"))) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Float 3.14)) , Reg (Literal (Numeric 12.0 Pt)) , Reg (Literal (Numeric 3.0 Em)) , Reg (Plus (Literal (Numeric 12.0 Pt)) (Literal (Numeric 3.0 Em))) , Reg (Literal (Numeric 45.0 Deg)) , Reg (Literal (Numeric 90.0 Percent)) , Reg (Plus (Literal (Numeric 13.0 Percent)) (Literal (Numeric 10.0 Pt))) , Reg (Plus (Plus (Literal (Numeric 5.0 Percent)) (Literal (Numeric 1.0 Em))) (Literal (Numeric 3.0 Pt))) , Reg (Literal (Numeric 2.3 Fr)) ])) , ParBreak , Code "test/typ/compiler/ops-03.typ" ( line 33 , column 2 ) (For (BasicBind (Just (Identifier "v"))) (Ident (Identifier "nums")) (Block (CodeBlock [ FuncCall (Ident (Identifier "test")) [ NormalArg (Minus (Plus (Ident (Identifier "v")) (Ident (Identifier "v"))) (Ident (Identifier "v"))) , NormalArg (Ident (Identifier "v")) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (Minus (Minus (Ident (Identifier "v")) (Ident (Identifier "v"))) (Ident (Identifier "v"))) , NormalArg (Negated (Ident (Identifier "v"))) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (Minus (Ident (Identifier "v")) (Ident (Identifier "v"))) , NormalArg (Times (Literal (Int 0)) (Ident (Identifier "v"))) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (Plus (Ident (Identifier "v")) (Ident (Identifier "v"))) , NormalArg (Times (Literal (Int 2)) (Ident (Identifier "v"))) ] , If [ ( Not (Equals (FuncCall (Ident (Identifier "type")) [ NormalArg (Ident (Identifier "v")) ]) (Literal (String "integer"))) , Block (CodeBlock [ FuncCall (Ident (Identifier "test")) [ NormalArg (Plus (Ident (Identifier "v")) (Ident (Identifier "v"))) , NormalArg (Times (Literal (Float 2.0)) (Ident (Identifier "v"))) ] ]) ) ] , If [ ( And (Not (InCollection (Literal (String "relative")) (FuncCall (Ident (Identifier "type")) [ NormalArg (Ident (Identifier "v")) ]))) (Or (Not (InCollection (Literal (String "pt")) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "v")) ]))) (Not (InCollection (Literal (String "em")) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "v")) ])))) , Block (CodeBlock [ FuncCall (Ident (Identifier "test")) [ NormalArg (Divided (Ident (Identifier "v")) (Ident (Identifier "v"))) , NormalArg (Literal (Float 1.0)) ] ]) ) ] ]))) , ParBreak , Comment , Comment , Comment , Comment , Code "test/typ/compiler/ops-03.typ" ( line 56 , column 2 ) (Let (BasicBind (Just (Identifier "dims"))) (Array [ Reg (Literal (Numeric 10.0 Pt)) , Reg (Literal (Numeric 1.0 Em)) , Reg (Plus (Literal (Numeric 10.0 Pt)) (Literal (Numeric 1.0 Em))) , Reg (Literal (Numeric 30.0 Percent)) , Reg (Plus (Literal (Numeric 50.0 Percent)) (Literal (Numeric 3.0 Cm))) , Reg (Plus (Plus (Literal (Numeric 40.0 Percent)) (Literal (Numeric 2.0 Em))) (Literal (Numeric 1.0 Cm))) ])) , SoftBreak , Code "test/typ/compiler/ops-03.typ" ( line 57 , column 2 ) (For (BasicBind (Just (Identifier "a"))) (Ident (Identifier "dims")) (Block (CodeBlock [ For (BasicBind (Just (Identifier "b"))) (Ident (Identifier "dims")) (Block (CodeBlock [ FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (Plus (Ident (Identifier "a")) (Ident (Identifier "b"))) ]) , NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (Minus (Ident (Identifier "a")) (Ident (Identifier "b"))) ]) ] ])) , For (BasicBind (Just (Identifier "b"))) (Array [ Reg (Literal (Int 7)) , Reg (Literal (Float 3.14)) ]) (Block (CodeBlock [ FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (Times (Ident (Identifier "a")) (Ident (Identifier "b"))) ]) , NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (Ident (Identifier "a")) ]) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (Times (Ident (Identifier "b")) (Ident (Identifier "a"))) ]) , NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (Ident (Identifier "a")) ]) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (Divided (Ident (Identifier "a")) (Ident (Identifier "b"))) ]) , NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (Ident (Identifier "a")) ]) ] ])) ]))) , ParBreak , Comment , Code "test/typ/compiler/ops-03.typ" ( line 70 , column 2 ) (For (BasicBind (Just (Identifier "a"))) (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 0.0 Em)) , Reg (Literal (Numeric 0.0 Percent)) ]) (Block (CodeBlock [ For (BasicBind (Just (Identifier "b"))) (Array [ Reg (Literal (Numeric 10.0 Pt)) , Reg (Literal (Numeric 10.0 Em)) , Reg (Literal (Numeric 10.0 Percent)) ]) (Block (CodeBlock [ FuncCall (Ident (Identifier "test")) [ NormalArg (Divided (Times (Literal (Int 2)) (Ident (Identifier "b"))) (Ident (Identifier "b"))) , NormalArg (Literal (Int 2)) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (Divided (Plus (Ident (Identifier "a")) (Times (Ident (Identifier "b")) (Literal (Int 2)))) (Ident (Identifier "b"))) , NormalArg (Literal (Int 2)) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (Divided (Ident (Identifier "b")) (Plus (Times (Ident (Identifier "b")) (Literal (Int 2))) (Ident (Identifier "a")))) , NormalArg (Literal (Float 0.5)) ] ])) ]))) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [❌(]), text(body: [1.0]), text(body: [ /= ]), text(body: [99.99]), text(body: [)]), parbreak(), text(body: [✅]), parbreak(), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak(), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak(), text(body: [✅]), parbreak(), parbreak(), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [❌(]), text(body: [((12.0pt + 3.0em) + (12.0pt + 3.0em)) + (-12.0pt + -3.0em)]), text(body: [ /= ]), text(body: [12.0pt + 3.0em]), text(body: [)]), text(body: [❌(]), text(body: [((12.0pt + 3.0em) + (-12.0pt + -3.0em)) + (-12.0pt + -3.0em)]), text(body: [ /= ]), text(body: [-12.0pt + -3.0em]), text(body: [)]), text(body: [❌(]), text(body: [(12.0pt + 3.0em) + (-12.0pt + -3.0em)]), text(body: [ /= ]), text(body: [0.0pt + 0.0em]), text(body: [)]), text(body: [❌(]), text(body: [(12.0pt + 3.0em) + (12.0pt + 3.0em)]), text(body: [ /= ]), text(body: [24.0pt + 6.0em]), text(body: [)]), text(body: [❌(]), text(body: [(12.0pt + 3.0em) + (12.0pt + 3.0em)]), text(body: [ /= ]), text(body: [24.0pt + 6.0em]), text(body: [)]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [❌(]), text(body: [((10.0pt + 13%) + (10.0pt + 13%)) + (-10.0pt + -13%)]), text(body: [ /= ]), text(body: [10.0pt + 13%]), text(body: [)]), text(body: [❌(]), text(body: [((10.0pt + 13%) + (-10.0pt + -13%)) + (-10.0pt + -13%)]), text(body: [ /= ]), text(body: [-10.0pt + -13%]), text(body: [)]), text(body: [❌(]), text(body: [(10.0pt + 13%) + (-10.0pt + -13%)]), text(body: [ /= ]), text(body: [0.0pt + 0%]), text(body: [)]), text(body: [❌(]), text(body: [(10.0pt + 13%) + (10.0pt + 13%)]), text(body: [ /= ]), text(body: [20.0pt + 26%]), text(body: [)]), text(body: [❌(]), text(body: [(10.0pt + 13%) + (10.0pt + 13%)]), text(body: [ /= ]), text(body: [20.0pt + 26%]), text(body: [)]), text(body: [✅]), text(body: [❌(]), text(body: [(((1.0em + 5%) + 3.0pt) + ((1.0em + 5%) + 3.0pt)) + ((-1.0em + -5%) + -3.0pt)]), text(body: [ /= ]), text(body: [(1.0em + 5%) + 3.0pt]), text(body: [)]), text(body: [❌(]), text(body: [(((1.0em + 5%) + 3.0pt) + ((-1.0em + -5%) + -3.0pt)) + ((-1.0em + -5%) + -3.0pt)]), text(body: [ /= ]), text(body: [(-1.0em + -5%) + -3.0pt]), text(body: [)]), text(body: [❌(]), text(body: [((1.0em + 5%) + 3.0pt) + ((-1.0em + -5%) + -3.0pt)]), text(body: [ /= ]), text(body: [(0.0em + 0%) + 0.0pt]), text(body: [)]), text(body: [❌(]), text(body: [((1.0em + 5%) + 3.0pt) + ((1.0em + 5%) + 3.0pt)]), text(body: [ /= ]), text(body: [(2.0em + 10%) + 6.0pt]), text(body: [)]), text(body: [❌(]), text(body: [((1.0em + 5%) + 3.0pt) + ((1.0em + 5%) + 3.0pt)]), text(body: [ /= ]), text(body: [(2.0em + 10%) + 6.0pt]), text(body: [)]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [❌(]), text(body: [1.0fr]), text(body: [ /= ]), text(body: [1.0]), text(body: [)]), parbreak(), text(body: [ ]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), parbreak(), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [❌(]), text(body: [200%]), text(body: [ /= ]), text(body: [2]), text(body: [)]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [❌(]), text(body: [200%]), text(body: [ /= ]), text(body: [2]), text(body: [)]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), parbreak() })