#+OPTIONS: toc:nil num:nil <:nil \n:nil ::nil timestamp:nil *:nil ':nil
#+HTML_HEAD:
#+EXPORT_FILE_NAME: stdlib.html
#+TITLE: GRU DeerTree standard library specifications
* TODO Introduction
{} - optional argument to function (FIXME: should be defined in main specfications)
* TODO Buitlin syntax
* TODO ~~ header
FIXME: Like stddef.h in C, maybe more
** Types
*** ~Size~ - alias for unsigned long long
* TODO ~~ header
** Types
*** ~File~ - an object type used for streams.
** Functions
*** ~printf();~ // C-like formatting
*** ~fprintf();~
*** ~sprintf();~
*** ~eprintf();~
* TODO ~~ header
** Types
** Functions
*** ~isalnum()~
*** ~isalpha()~
*** ~isascii()~
*** ~isblank()~
*** ~iscntrl()~ // FIXME: maybe not needed
*** ~isdigit()~
*** ~isgraph()~ // FIXME: maybe not needed
*** ~islower()~
*** ~isprint()~ // FIXME: maybe not needed
*** ~ispunct()~
*** ~isspace()~
*** ~isupper()~
*** ~isxdigit()~
*** ~toascii()~ // FIXME: maybe not needed
*** ~tolower()~
*** ~toupper()~
* TODO ~~ header
Functions for memory usage (FIXME: better description)
** Types
** Functions
*** fn alloc(Size sz) (byte[]);
*** fn free(byte[] ptr);
* TODO ~~ header
** Types
*** Flag
** Functions
*** fn open(Path p, Flag flags) (File); // FIXME: should path be path_t or string? should flags be flag_t or string?
*** fn read(File f, Size sz) (byte[]); // FIXME: maybe it should return something like byte[]
*** fn write(File f, String str, {Size sz}) (Size);
*** fn close(File f) (int);
** TODO ~~ header
** TODO ~~ header
** TODO ~~ header
** TODO ~~ header
*** Types
*** Functions
**** fn syscall(long number, {arguments}) (long); // FIXME
* TODO ~