Fun 0.41.5
The programming language that makes You have fun
Loading...
Searching...
No Matches
to_string.c File Reference

Implements the OP_TO_STRING opcode for converting values to strings in the VM. More...

Go to the source code of this file.

Variables

case OP_TO_STRING
char * s = value_to_string_alloc(&v)
Value out = make_string(s ? s : "")

Detailed Description

Implements the OP_TO_STRING opcode for converting values to strings in the VM.

This file handles the OP_TO_STRING instruction, which converts a value of any type into its string representation and pushes the result onto the stack.

Behavior:

  • Pops a value from the stack.
  • Converts the value to a string based on its type:
    • Integers: Convert to decimal string (e.g., 42 → "42")
    • Strings: Return a copy of the string
    • Arrays: Convert to "[array n=<length>]"
    • Maps: Convert to "{map n=<length>}"
    • Functions: Convert to "<function@<address>>"
    • Nil: Convert to "nil"
  • Pushes the resulting string onto the stack.

Error Handling:

  • Exits with an error if memory allocation fails during string creation.

Example: // Bytecode: OP_TO_STRING // Stack before: [42] // Stack after: ["42"]

Author
Johannes Findeisen
Date
2025-10-16

Definition in file to_string.c.

Variable Documentation

◆ OP_TO_STRING

case OP_TO_STRING

Definition at line 40 of file to_string.c.

◆ out

Value out = make_string(s ? s : "")

Definition at line 43 of file to_string.c.

◆ s

Definition at line 42 of file to_string.c.