Chris@0: Expressions in static scalar context Chris@0: ----- Chris@0: 0; Chris@0: const T_20 = 1 >= 0; Chris@0: const T_21 = 1 === 1; Chris@0: const T_22 = 1 !== 1; Chris@0: const T_23 = 0 != "0"; Chris@0: const T_24 = 1 == "1"; Chris@0: const T_25 = 1 + 2 * 3; Chris@0: const T_26 = "1" + 2 + "3"; Chris@0: const T_27 = 2 ** 3; Chris@0: const T_28 = [1, 2, 3][1]; Chris@0: const T_29 = 12 - 13; Chris@0: const T_30 = 12 ^ 13; Chris@0: const T_31 = 12 & 13; Chris@0: const T_32 = 12 | 13; Chris@0: const T_33 = 12 % 3; Chris@0: const T_34 = 100 >> 4; Chris@0: const T_35 = !false; Chris@0: ----- Chris@0: array( Chris@0: 0: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_1 Chris@13: ) Chris@0: value: Expr_BinaryOp_ShiftLeft( Chris@0: left: Scalar_LNumber( Chris@0: value: 1 Chris@0: ) Chris@0: right: Scalar_LNumber( Chris@0: value: 1 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 1: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_2 Chris@13: ) Chris@0: value: Expr_BinaryOp_Div( Chris@0: left: Scalar_LNumber( Chris@0: value: 1 Chris@0: ) Chris@0: right: Scalar_LNumber( Chris@0: value: 2 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 2: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_3 Chris@13: ) Chris@0: value: Expr_BinaryOp_Plus( Chris@0: left: Scalar_DNumber( Chris@0: value: 1.5 Chris@0: ) Chris@0: right: Scalar_DNumber( Chris@0: value: 1.5 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 3: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_4 Chris@13: ) Chris@0: value: Expr_BinaryOp_Concat( Chris@0: left: Scalar_String( Chris@0: value: foo Chris@0: ) Chris@0: right: Scalar_String( Chris@0: value: bar Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 4: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_5 Chris@13: ) Chris@0: value: Expr_BinaryOp_Mul( Chris@0: left: Expr_BinaryOp_Plus( Chris@0: left: Scalar_DNumber( Chris@0: value: 1.5 Chris@0: ) Chris@0: right: Scalar_DNumber( Chris@0: value: 1.5 Chris@0: ) Chris@0: ) Chris@0: right: Scalar_LNumber( Chris@0: value: 2 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 5: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_6 Chris@13: ) Chris@0: value: Expr_BinaryOp_Concat( Chris@0: left: Expr_BinaryOp_Concat( Chris@0: left: Expr_BinaryOp_Concat( Chris@0: left: Scalar_String( Chris@0: value: foo Chris@0: ) Chris@0: right: Scalar_LNumber( Chris@0: value: 2 Chris@0: ) Chris@0: ) Chris@0: right: Scalar_LNumber( Chris@0: value: 3 Chris@0: ) Chris@0: ) Chris@0: right: Scalar_DNumber( Chris@0: value: 4 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 6: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_7 Chris@13: ) Chris@0: value: Scalar_MagicConst_Line( Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 7: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_8 Chris@13: ) Chris@0: value: Scalar_String( Chris@0: value: This is a test string Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 8: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_9 Chris@13: ) Chris@0: value: Expr_BitwiseNot( Chris@0: expr: Expr_UnaryMinus( Chris@0: expr: Scalar_LNumber( Chris@0: value: 1 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 9: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_10 Chris@13: ) Chris@0: value: Expr_BinaryOp_Plus( Chris@0: left: Expr_Ternary( Chris@0: cond: Expr_UnaryMinus( Chris@0: expr: Scalar_LNumber( Chris@0: value: 1 Chris@0: ) Chris@0: ) Chris@0: if: null Chris@0: else: Scalar_LNumber( Chris@0: value: 1 Chris@0: ) Chris@0: ) Chris@0: right: Expr_Ternary( Chris@0: cond: Scalar_LNumber( Chris@0: value: 0 Chris@0: ) Chris@0: if: Scalar_LNumber( Chris@0: value: 2 Chris@0: ) Chris@0: else: Scalar_LNumber( Chris@0: value: 3 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 10: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_11 Chris@13: ) Chris@0: value: Expr_BinaryOp_BooleanAnd( Chris@0: left: Scalar_LNumber( Chris@0: value: 1 Chris@0: ) Chris@0: right: Scalar_LNumber( Chris@0: value: 0 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 11: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_12 Chris@13: ) Chris@0: value: Expr_BinaryOp_LogicalAnd( Chris@0: left: Scalar_LNumber( Chris@0: value: 1 Chris@0: ) Chris@0: right: Scalar_LNumber( Chris@0: value: 1 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 12: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_13 Chris@13: ) Chris@0: value: Expr_BinaryOp_BooleanOr( Chris@0: left: Scalar_LNumber( Chris@0: value: 0 Chris@0: ) Chris@0: right: Scalar_LNumber( Chris@0: value: 0 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 13: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_14 Chris@13: ) Chris@0: value: Expr_BinaryOp_LogicalOr( Chris@0: left: Scalar_LNumber( Chris@0: value: 1 Chris@0: ) Chris@0: right: Scalar_LNumber( Chris@0: value: 0 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 14: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_15 Chris@13: ) Chris@0: value: Expr_BinaryOp_LogicalXor( Chris@0: left: Scalar_LNumber( Chris@0: value: 1 Chris@0: ) Chris@0: right: Scalar_LNumber( Chris@0: value: 1 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 15: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_16 Chris@13: ) Chris@0: value: Expr_BinaryOp_LogicalXor( Chris@0: left: Scalar_LNumber( Chris@0: value: 1 Chris@0: ) Chris@0: right: Scalar_LNumber( Chris@0: value: 0 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 16: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_17 Chris@13: ) Chris@0: value: Expr_BinaryOp_Smaller( Chris@0: left: Scalar_LNumber( Chris@0: value: 1 Chris@0: ) Chris@0: right: Scalar_LNumber( Chris@0: value: 0 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 17: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_18 Chris@13: ) Chris@0: value: Expr_BinaryOp_SmallerOrEqual( Chris@0: left: Scalar_LNumber( Chris@0: value: 0 Chris@0: ) Chris@0: right: Scalar_LNumber( Chris@0: value: 0 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 18: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_19 Chris@13: ) Chris@0: value: Expr_BinaryOp_Greater( Chris@0: left: Scalar_LNumber( Chris@0: value: 1 Chris@0: ) Chris@0: right: Scalar_LNumber( Chris@0: value: 0 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 19: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_20 Chris@13: ) Chris@0: value: Expr_BinaryOp_GreaterOrEqual( Chris@0: left: Scalar_LNumber( Chris@0: value: 1 Chris@0: ) Chris@0: right: Scalar_LNumber( Chris@0: value: 0 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 20: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_21 Chris@13: ) Chris@0: value: Expr_BinaryOp_Identical( Chris@0: left: Scalar_LNumber( Chris@0: value: 1 Chris@0: ) Chris@0: right: Scalar_LNumber( Chris@0: value: 1 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 21: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_22 Chris@13: ) Chris@0: value: Expr_BinaryOp_NotIdentical( Chris@0: left: Scalar_LNumber( Chris@0: value: 1 Chris@0: ) Chris@0: right: Scalar_LNumber( Chris@0: value: 1 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 22: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_23 Chris@13: ) Chris@0: value: Expr_BinaryOp_NotEqual( Chris@0: left: Scalar_LNumber( Chris@0: value: 0 Chris@0: ) Chris@0: right: Scalar_String( Chris@0: value: 0 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 23: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_24 Chris@13: ) Chris@0: value: Expr_BinaryOp_Equal( Chris@0: left: Scalar_LNumber( Chris@0: value: 1 Chris@0: ) Chris@0: right: Scalar_String( Chris@0: value: 1 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 24: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_25 Chris@13: ) Chris@0: value: Expr_BinaryOp_Plus( Chris@0: left: Scalar_LNumber( Chris@0: value: 1 Chris@0: ) Chris@0: right: Expr_BinaryOp_Mul( Chris@0: left: Scalar_LNumber( Chris@0: value: 2 Chris@0: ) Chris@0: right: Scalar_LNumber( Chris@0: value: 3 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 25: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_26 Chris@13: ) Chris@0: value: Expr_BinaryOp_Plus( Chris@0: left: Expr_BinaryOp_Plus( Chris@0: left: Scalar_String( Chris@0: value: 1 Chris@0: ) Chris@0: right: Scalar_LNumber( Chris@0: value: 2 Chris@0: ) Chris@0: ) Chris@0: right: Scalar_String( Chris@0: value: 3 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 26: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_27 Chris@13: ) Chris@0: value: Expr_BinaryOp_Pow( Chris@0: left: Scalar_LNumber( Chris@0: value: 2 Chris@0: ) Chris@0: right: Scalar_LNumber( Chris@0: value: 3 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 27: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_28 Chris@13: ) Chris@0: value: Expr_ArrayDimFetch( Chris@0: var: Expr_Array( Chris@0: items: array( Chris@0: 0: Expr_ArrayItem( Chris@0: key: null Chris@0: value: Scalar_LNumber( Chris@0: value: 1 Chris@0: ) Chris@0: byRef: false Chris@0: ) Chris@0: 1: Expr_ArrayItem( Chris@0: key: null Chris@0: value: Scalar_LNumber( Chris@0: value: 2 Chris@0: ) Chris@0: byRef: false Chris@0: ) Chris@0: 2: Expr_ArrayItem( Chris@0: key: null Chris@0: value: Scalar_LNumber( Chris@0: value: 3 Chris@0: ) Chris@0: byRef: false Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: dim: Scalar_LNumber( Chris@0: value: 1 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 28: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_29 Chris@13: ) Chris@0: value: Expr_BinaryOp_Minus( Chris@0: left: Scalar_LNumber( Chris@0: value: 12 Chris@0: ) Chris@0: right: Scalar_LNumber( Chris@0: value: 13 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 29: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_30 Chris@13: ) Chris@0: value: Expr_BinaryOp_BitwiseXor( Chris@0: left: Scalar_LNumber( Chris@0: value: 12 Chris@0: ) Chris@0: right: Scalar_LNumber( Chris@0: value: 13 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 30: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_31 Chris@13: ) Chris@0: value: Expr_BinaryOp_BitwiseAnd( Chris@0: left: Scalar_LNumber( Chris@0: value: 12 Chris@0: ) Chris@0: right: Scalar_LNumber( Chris@0: value: 13 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 31: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_32 Chris@13: ) Chris@0: value: Expr_BinaryOp_BitwiseOr( Chris@0: left: Scalar_LNumber( Chris@0: value: 12 Chris@0: ) Chris@0: right: Scalar_LNumber( Chris@0: value: 13 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 32: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_33 Chris@13: ) Chris@0: value: Expr_BinaryOp_Mod( Chris@0: left: Scalar_LNumber( Chris@0: value: 12 Chris@0: ) Chris@0: right: Scalar_LNumber( Chris@0: value: 3 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 33: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_34 Chris@13: ) Chris@0: value: Expr_BinaryOp_ShiftRight( Chris@0: left: Scalar_LNumber( Chris@0: value: 100 Chris@0: ) Chris@0: right: Scalar_LNumber( Chris@0: value: 4 Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: 34: Stmt_Const( Chris@0: consts: array( Chris@0: 0: Const( Chris@13: name: Identifier( Chris@13: name: T_35 Chris@13: ) Chris@0: value: Expr_BooleanNot( Chris@0: expr: Expr_ConstFetch( Chris@0: name: Name( Chris@0: parts: array( Chris@0: 0: false Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: ) Chris@0: )