Right today, I have finished implementinf the Core library for NextBasic. The library has been written in plain ANSI C, and it is already fully working on Windows, Mac and Linux.
Here is the list of functions in the language. They are not expressed in NextBasic syntax, but in a C-like syntax that should be very easy to understand:
Array:
int CreateArray()
void FreeArray(int arr)
int CountArray(int arr)
void ArrayAddInt(int arr, int i)
void ArrayAddFloat(int arr, float f)
void ArrayAddString(int arr, string s)
void ArrayAddObject(int arr, pointer obj)
void ArraySetInt(int arr, int index, int i)
void ArraySetFloat(int arr, int index, float f)
void ArraySetString(int arr, int index, string s)
void ArraySetObject(int arr, int index, pointer obj)
int ArrayGetInt(int arr, int index)
float ArrayGetFloat(int arr, int index)
string ArrayGetString(int arr, int index)
pointer ArrayGetObject(int arr, int index)
void ArrayRemoveAt(int arr, int index)
void ArrayRemoveObject(int arr, pointer obj)
void ArrayClear(int arr)
Console:
void Print(string str)
void Write(string str)
string Input(string prompt)
Dictionary:
int CreateDictionary()
void FreeDictionary(int dict)
int CountDictionary(int dict)
void DictionarySetInt(int dict, string key, int val)
void DictionarySetFloat(int dict, string key, float val)
void DictionarySetString(int dict, string key, string str)
void DictionarySetObject(int dict, string key, pointer obj)
int DictionaryGetInt(int dict, string key)
float DictionaryGetFloat(int dict, string key)
string DictionaryGetString(int dict, string key)
pointer DictionaryGetObject(int dict, string key)
int DictionaryHasKey(int dict, string key)
string DictionaryGetKey(int dict, int index)
void DictionaryRemoveKey(int dict, string key)
void DictionaryClear(int dict)
File:
int ReadFile(string filename)
int WriteFile(string filename, int append)
void CloseFile(int file)
int FilePos(int file)
void SeekFile(int file, int pos)
int Eof(int file)
int ReadByte(int file)
int ReadShort(int file)
int ReadInt(int file)
float ReadFloat(int file)
string ReadString(int file)
string ReadLine(int file)
int ReadBytes(int file, int buffer, int offset, int count)
void WriteByte(int file, int val)
void WriteShort(int file, int val)
void WriteInt(int file, int val)
void WriteFloat(int file, float val)
void WriteString(int file, string val)
void WriteLine(int file, string val)
int WriteBytes(int file, int buffer, int offset, int count)
File system:
int ReadDir(string path)
void CloseDir(int dir)
int MoreFiles(int dir)
string NextFile(int dir)
string CurrentDir()
void ChangeDir(string path)
void CreateDir(string path)
void DeleteDir(string path)
int FileType(string filename)
int FileSize(string filename)
void CopyFile(string filename1, string filename2)
void DeleteFile(string filename)
Math:
float Pi()
float Floor(float val)
float Ceil(float val)
float Sgn(float val)
int Abs(int val)
float FAbs(float val)
float Sqr(float val)
float Sin(float val)
float Cos(float val)
float Tan(float val)
float ASin(float val)
float ACos(float val)
float ATan(float val)
float ATan2(float y, float x)
float Exp(float val)
float Log(float val)
float Log10(float val)
int Rand(int min, int max)
float FRand(float min, float max)
void SeedRnd(int seed)
Memory:
int AllocMem(int size)
void FreeMem(int mem)
int PeekByte(int mem, int offset)
int PeekShort(int mem, int offset)
int PeekInt(int mem, int offset)
float PeekFloat(int mem, int offset)
void PokeByte(int mem, int offset, int val)
void PokeShort(int mem, int offset, int val)
void PokeInt(int mem, int offset, int val)
void PokeFloat(int mem, int offset, float val)
String:
string Str(int val)
string StrF(float val)
int Val(string str)
float ValF(string str)
string Left(string str, int n)
string Right(string str, int n)
string Mid(string str, int ofs, int n)
string Replace(string str, string find, string rep)
int Find(string str1, string str2, int ofs)
string Upper(string str)
string Lower(string str)
string LTrim(string str)
string RTrim(string str)
string Trim(string str)
string LSet(string str, int len, string c)
string RSet(string str, int len, string c)
string Chr(int asc)
int Asc(string chr)
int Len(string str)
string Hex(int val)
string StripExt(string filename)
string StripDir(string filename)
string ExtractExt(string filename)
string ExtractDir(string filename)
string LoadString(string filename)
void SaveString(string str, string filename, int append)
int SplitString(string str, string delim)
System:
string CommandLine()
string GetEnv(string var)
int System(string command)
void End(int exitCode)
Time:
int Millisecs()
void Delay(int msecs)
string CurrentDate()
string CurrentTime()
As you can see, most of the functions are identical to BlitzBasic command set. As I said on the previous post, I love the design of the classic procedural BlitzBasic languages, and their command set is very well designed, so that's why I decided to implement that core command set in NextBasic.
No hay comentarios:
Publicar un comentario