60 lines
1.4 KiB
Text
60 lines
1.4 KiB
Text
fun test() -> f64 {
|
|
1 * 2 + -3 * 4
|
|
}
|
|
|
|
// @no-errors
|
|
// @eval: Float(-10.0)
|
|
// @type: 23 f64
|
|
// @concrete:
|
|
// | File
|
|
// | FunctionDecl
|
|
// | Fun:'"fun"'
|
|
// | Identifier:'"test"'
|
|
// | ParamList
|
|
// | LeftParen:'"("'
|
|
// | RightParen:'")"'
|
|
// | ReturnType
|
|
// | Arrow:'"->"'
|
|
// | TypeExpression
|
|
// | Identifier:'"f64"'
|
|
// | Block
|
|
// | LeftBrace:'"{"'
|
|
// | ExpressionStatement
|
|
// | BinaryExpression
|
|
// | BinaryExpression
|
|
// | LiteralExpression
|
|
// | Number:'"1"'
|
|
// | Star:'"*"'
|
|
// | LiteralExpression
|
|
// | Number:'"2"'
|
|
// | Plus:'"+"'
|
|
// | BinaryExpression
|
|
// | UnaryExpression
|
|
// | Minus:'"-"'
|
|
// | LiteralExpression
|
|
// | Number:'"3"'
|
|
// | Star:'"*"'
|
|
// | LiteralExpression
|
|
// | Number:'"4"'
|
|
// | RightBrace:'"}"'
|
|
// |
|
|
// @compiles-to:
|
|
// | function << module >> (0 args, 0 locals):
|
|
// | strings (0):
|
|
// | code (2):
|
|
// | 0: PushNothing
|
|
// | 1: Return
|
|
// | function test (0 args, 0 locals):
|
|
// | strings (0):
|
|
// | code (10):
|
|
// | 0: PushFloat(1.0)
|
|
// | 1: PushFloat(2.0)
|
|
// | 2: FloatMultiply
|
|
// | 3: PushFloat(3.0)
|
|
// | 4: PushFloat(-1.0)
|
|
// | 5: FloatMultiply
|
|
// | 6: PushFloat(4.0)
|
|
// | 7: FloatMultiply
|
|
// | 8: FloatAdd
|
|
// | 9: Return
|
|
// |
|