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...

This graph shows which files directly or indirectly include this file:

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"]

Definition in file to_string.c.

Variable Documentation

◆ OP_TO_STRING

case OP_TO_STRING

Definition at line 37 of file to_string.c.

◆ out

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

Definition at line 40 of file to_string.c.

◆ s

char* s = value_to_string_alloc(&v)

Definition at line 39 of file to_string.c.