Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
L LangOptum
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1
    • Issues 1
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Nuclaer
  • LangOptum
  • Wiki
  • Builtins

Last edited by Nuclaer Apr 25, 2020
Page history
This is an old version of this page. You can view the most recent version or browse the history.

Builtins

Builtin Types

String

This is compiled as a C string, but differs from a uint8* or int8* in that it has utilities for simple string manipulation, and looks more like a class in code.

Creation

"String literals are String \"objects\""
// TODO: add more examples, if they apply later

String literals are String objects.

Concatination

String my_str = "Hello ";
println(my_str + "world!"); // prints "Hello world!"

Use a plus sign like Python or Java!

Substring

String my_str = "Hello World!dfghgfdfghj";
println(my_str[0:12]);

Builtin Functions

Builtin functions are compiled as special symbols before assembly generation, so they can be optimized for the target architecture. They are NOT normal functions (in fact technically they are not functions at all...)

They are:

  1. Not guaranteed to have a label of any kind; they have no address
  2. Usually compiled inline, depending on the function
  3. Are compiled in a special way
  4. Are usually extra fast :)

print and println

void print(...);
void println(...);

These functions write to stdout and take any type of argument. println will add a newline character at the end, print will not.

With int8 and uint8, they will print the argument as a character. For all other integer types the argument is printed as a number in base 10.

int8*s are printed as C strings. Same goes for String objects.

All other pointers are printed in lowercase hexadecimal, without any preceding '0x' (you can add this yourself very easily).

input

String input();

Gets the next line from stdin.

tostring, toint64, touint64

String tostring(any);
int64 toint64(String num);
int64 toint64(uint8* num);
int64 toint64(int8* num);
int64 touint64(String num);
int64 touint64(uint8* num);
int64 touint64(int8* num);

tostring will take any primitive type and convert it to a string. toint64 will parse any string to a signed integer, skipping preceding whitespace and stopping at any non-digit. touint64 will parse any string to an unsigned integer, skipping preceding whitespace and stopping at any non-digit.

Clone repository
  • Builtins
  • Compiler Mechanics
  • Compiler Structure
  • Desired Builtin Libraries
  • File Inclusion
  • Home
  • OOP
  • Operator Notes
  • Preprocessor
  • Program Control
  • Variable Types
  • language
  • lort (LO RunTime)