language

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 1420e01c1b06520fbcd2f33c4d81b27cb91e92bf
parent bc424e317025ea59cb6ff9144ae430b4d27a6d6e
Author: Paul Longtine <paul@nanner.co>
Date:   Thu, 14 Dec 2017 14:13:29 -0500

Object arguements, yay!

Diffstat:
Msrc/lc/interpreter.py | 18+++++++++++++++---
Asrc/lc/tags | 200+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/lc/test_files/example | 0
Msrc/lc/test_files/example.ti | 22++++++----------------
Asrc/lc/test_files/out | 0
Asrc/lc/test_files/test.out | 0
Asrc/lc/test_files/testing.out | 0
Msrc/vm/Makefile | 2+-
Asrc/vm/out | 0
Asrc/vm/tags | 433+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
10 files changed, 655 insertions(+), 20 deletions(-)

diff --git a/src/lc/interpreter.py b/src/lc/interpreter.py @@ -40,8 +40,10 @@ class Label(AbstractToken): self.name = names[1] t = self.i.ns.resolve_with_obj(self.parent, self.name) - - self.expr = t[0] + if t == None: + print("Cannot resolve name " + self.data) + else: + self.expr = t[0] else: self.name = names[0] @@ -81,15 +83,21 @@ class Arguements(AbstractToken): return rv class Type(AbstractToken): + type_string = "" + is_object = False def update(self): + n = None for x, t in enumerate(self.i.p.defined_types): r = t.match(self.data, 0) if r[0]: + self.type_string = self.data n = x if n == None: - print("INVALID TYPE") + self.is_object = True + self.type_string = self.data[0] + n = 6 self.expr = n @@ -115,6 +123,10 @@ class Parameters(AbstractToken): l = Label(self.i, tmp[1:]) self.expr.append([t, l]) + for x in self.expr: + if x[0].is_object: + self.i.ns.copy(x[1].name, x[0].type_string) + def action(self): types = list(map(lambda x: x[0].action(), self.expr)) return([ diff --git a/src/lc/tags b/src/lc/tags @@ -0,0 +1,200 @@ +!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/ +!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ +!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/ +!_TAG_PROGRAM_NAME Exuberant Ctags // +!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/ +!_TAG_PROGRAM_VERSION 5.9~svn20110310 // +AbstractToken interpreter.py /^class AbstractToken():$/;" c +Arguements interpreter.py /^class Arguements(AbstractToken):$/;" c +AtomicSymbol lexer.py /^class AtomicSymbol():$/;" c +BinaryOp bytecode.py /^class BinaryOp():$/;" c +ClassDef bytecode.py /^class ClassDef():$/;" c +CompoundSymbol lexer.py /^class CompoundSymbol():$/;" c +Directive interpreter.py /^class Directive():$/;" c +ExclusiveSymbol lexer.py /^class ExclusiveSymbol(CompoundSymbol):$/;" c +Expression interpreter.py /^class Expression(AbstractToken):$/;" c +ForLoop bytecode.py /^class ForLoop():$/;" c +FunctionCall bytecode.py /^class FunctionCall():$/;" c +FunctionDef bytecode.py /^class FunctionDef():$/;" c +GroupingSymbol lexer.py /^class GroupingSymbol(PolySymbol):$/;" c +InclusiveSymbol lexer.py /^class InclusiveSymbol(CompoundSymbol):$/;" c +IntegerConstant bytecode.py /^class IntegerConstant(SerializeableType):$/;" c +Interpreter interpreter.py /^class Interpreter():$/;" c +Label interpreter.py /^class Label(AbstractToken):$/;" c +MethodCall bytecode.py /^class MethodCall():$/;" c +Namespace namespace.py /^class Namespace():$/;" c +NewClass bytecode.py /^class NewClass():$/;" c +OP_ADD memonic.py /^OP_ADD = 0x40$/;" v +OP_AND memonic.py /^OP_AND = 0x58$/;" v +OP_ARGB memonic.py /^OP_ARGB = 0x0E$/;" v +OP_BNAND memonic.py /^OP_BNAND = 0x4F$/;" v +OP_BOR memonic.py /^OP_BOR = 0x4D$/;" v +OP_BREAK memonic.py /^OP_BREAK = 0x6E$/;" v +OP_BRT memonic.py /^OP_BRT = 0x45$/;" v +OP_BXOR memonic.py /^OP_BXOR = 0x4E$/;" v +OP_CALL memonic.py /^OP_CALL = 0x7F$/;" v +OP_CALLM memonic.py /^OP_CALLM = 0x82$/;" v +OP_CAST memonic.py /^OP_CAST = 0x31$/;" v +OP_CLOOP memonic.py /^OP_CLOOP = 0x61$/;" v +OP_COS memonic.py /^OP_COS = 0x47$/;" v +OP_CTS memonic.py /^OP_CTS = 0x24$/;" v +OP_CTV memonic.py /^OP_CTV = 0x23$/;" v +OP_DEBUG memonic.py /^OP_DEBUG = 0x03$/;" v +OP_DEC memonic.py /^OP_DEC = 0x20$/;" v +OP_DECLASS memonic.py /^OP_DECLASS = 0xFE$/;" v +OP_DEFUN memonic.py /^OP_DEFUN = 0xFF$/;" v +OP_DIV memonic.py /^OP_DIV = 0x43$/;" v +OP_DONE memonic.py /^OP_DONE = 0x7E$/;" v +OP_DUP memonic.py /^OP_DUP = 0x12$/;" v +OP_ELSE memonic.py /^OP_ELSE = 0x73$/;" v +OP_ENDCLASS memonic.py /^OP_ENDCLASS = 0xF2$/;" v +OP_ENDL memonic.py /^OP_ENDL = 0x6F$/;" v +OP_EQ memonic.py /^OP_EQ = 0x54$/;" v +OP_GETN memonic.py /^OP_GETN = 0x80$/;" v +OP_GOTO memonic.py /^OP_GOTO = 0x70$/;" v +OP_GTHAN memonic.py /^OP_GTHAN = 0x50$/;" v +OP_GTHAN_EQ memonic.py /^OP_GTHAN_EQ = 0x52$/;" v +OP_ICOS memonic.py /^OP_ICOS = 0x4A$/;" v +OP_IFDO memonic.py /^OP_IFDO = 0x72$/;" v +OP_INDEXO memonic.py /^OP_INDEXO = 0x83$/;" v +OP_ISIN memonic.py /^OP_ISIN = 0x49$/;" v +OP_ITAN memonic.py /^OP_ITAN = 0x4B$/;" v +OP_JUMPF memonic.py /^OP_JUMPF = 0x71$/;" v +OP_LIBC memonic.py /^OP_LIBC = 0x0F$/;" v +OP_LOV memonic.py /^OP_LOV = 0x21$/;" v +OP_LTHAN memonic.py /^OP_LTHAN = 0x51$/;" v +OP_LTHAN_EQ memonic.py /^OP_LTHAN_EQ = 0x53$/;" v +OP_MOD memonic.py /^OP_MOD = 0x4C$/;" v +OP_MODO memonic.py /^OP_MODO = 0x84$/;" v +OP_MULT memonic.py /^OP_MULT = 0x42$/;" v +OP_NEQ memonic.py /^OP_NEQ = 0x55$/;" v +OP_NEW memonic.py /^OP_NEW = 0xF1$/;" v +OP_NOT memonic.py /^OP_NOT = 0x56$/;" v +OP_NULL memonic.py /^OP_NULL = 0x00$/;" v +OP_OR memonic.py /^OP_OR = 0x57$/;" v +OP_POP memonic.py /^OP_POP = 0x10$/;" v +OP_POW memonic.py /^OP_POW = 0x44$/;" v +OP_PRINT memonic.py /^OP_PRINT = 0x02$/;" v +OP_RETURN memonic.py /^OP_RETURN = 0xF0$/;" v +OP_ROT memonic.py /^OP_ROT = 0x11$/;" v +OP_ROT_THREE memonic.py /^OP_ROT_THREE = 0x13$/;" v +OP_SETN memonic.py /^OP_SETN = 0x81$/;" v +OP_SIN memonic.py /^OP_SIN = 0x46$/;" v +OP_STARTL memonic.py /^OP_STARTL = 0x60$/;" v +OP_STV memonic.py /^OP_STV = 0x22$/;" v +OP_SUB memonic.py /^OP_SUB = 0x41$/;" v +OP_SYNC memonic.py /^OP_SYNC = 0x01$/;" v +OP_TAN memonic.py /^OP_TAN = 0x48$/;" v +OP_TYPEOF memonic.py /^OP_TYPEOF = 0x30$/;" v +Opcode bytecode.py /^class Opcode():$/;" c +Parameters interpreter.py /^class Parameters(AbstractToken):$/;" c +Parser parser.py /^class Parser():$/;" c +PolySymbol lexer.py /^class PolySymbol():$/;" c +PropertyAssignment bytecode.py /^class PropertyAssignment():$/;" c +PropertyGet bytecode.py /^class PropertyGet():$/;" c +SerializeableType bytecode.py /^class SerializeableType():$/;" c +Statement lexer.py /^class Statement():$/;" c +StringConstant bytecode.py /^class StringConstant(SerializeableType):$/;" c +Tokenizer lexer.py /^class Tokenizer():$/;" c +Type interpreter.py /^class Type(AbstractToken):$/;" c +VariableAssignment bytecode.py /^class VariableAssignment():$/;" c +VariableGet bytecode.py /^class VariableGet():$/;" c +VariableNew bytecode.py /^class VariableNew():$/;" c +__init__ bytecode.py /^ def __init__(self, expr1, op):$/;" m class:BinaryOp +__init__ bytecode.py /^ def __init__(self, expression):$/;" m class:ForLoop +__init__ bytecode.py /^ def __init__(self, label):$/;" m class:VariableGet +__init__ bytecode.py /^ def __init__(self, label, args):$/;" m class:ClassDef +__init__ bytecode.py /^ def __init__(self, label, args, typed):$/;" m class:FunctionDef +__init__ bytecode.py /^ def __init__(self, label, arguements):$/;" m class:FunctionCall +__init__ bytecode.py /^ def __init__(self, label, expression):$/;" m class:VariableAssignment +__init__ bytecode.py /^ def __init__(self, label, typed):$/;" m class:VariableNew +__init__ bytecode.py /^ def __init__(self, opcode):$/;" m class:Opcode +__init__ bytecode.py /^ def __init__(self, ovar, label, arguements):$/;" m class:MethodCall +__init__ bytecode.py /^ def __init__(self, ovar, plabel):$/;" m class:PropertyGet +__init__ bytecode.py /^ def __init__(self, ovar, plabel, expression):$/;" m class:PropertyAssignment +__init__ bytecode.py /^ def __init__(self, toset, label, args):$/;" m class:NewClass +__init__ bytecode.py /^ def __init__(self, value):$/;" m class:IntegerConstant +__init__ bytecode.py /^ def __init__(self, value):$/;" m class:SerializeableType +__init__ bytecode.py /^ def __init__(self, value):$/;" m class:StringConstant +__init__ interpreter.py /^ def __init__(self, filename):$/;" m class:Interpreter +__init__ interpreter.py /^ def __init__(self, function, conditional):$/;" m class:Directive +__init__ interpreter.py /^ def __init__(self, interpreter_instance, raw_data):$/;" m class:AbstractToken +__init__ lexer.py /^ def __init__(self, name, expression=[], init=None):$/;" m class:Statement +__init__ lexer.py /^ def __init__(self, symbol):$/;" m class:AtomicSymbol +__init__ lexer.py /^ def __init__(self, symbol_delim, statement_delim):$/;" m class:Tokenizer +__init__ lexer.py /^ def __init__(self, symbols):$/;" m class:CompoundSymbol +__init__ lexer.py /^ def __init__(self, symbols, terminator=[]):$/;" m class:PolySymbol +__init__ namespace.py /^ def __init__(self):$/;" m class:Namespace +__init__ parser.py /^ def __init__(self, file_name):$/;" m class:Parser +action bytecode.py /^ def action(self):$/;" m class:BinaryOp +action bytecode.py /^ def action(self):$/;" m class:ClassDef +action bytecode.py /^ def action(self):$/;" m class:ForLoop +action bytecode.py /^ def action(self):$/;" m class:FunctionCall +action bytecode.py /^ def action(self):$/;" m class:FunctionDef +action bytecode.py /^ def action(self):$/;" m class:IntegerConstant +action bytecode.py /^ def action(self):$/;" m class:MethodCall +action bytecode.py /^ def action(self):$/;" m class:NewClass +action bytecode.py /^ def action(self):$/;" m class:Opcode +action bytecode.py /^ def action(self):$/;" m class:PropertyAssignment +action bytecode.py /^ def action(self):$/;" m class:PropertyGet +action bytecode.py /^ def action(self):$/;" m class:StringConstant +action bytecode.py /^ def action(self):$/;" m class:VariableAssignment +action bytecode.py /^ def action(self):$/;" m class:VariableGet +action bytecode.py /^ def action(self):$/;" m class:VariableNew +action interpreter.py /^ def action(self):$/;" m class:AbstractToken +action interpreter.py /^ def action(self):$/;" m class:Arguements +action interpreter.py /^ def action(self):$/;" m class:Expression +action interpreter.py /^ def action(self):$/;" m class:Parameters +action interpreter.py /^ def action(self):$/;" m class:Type +action interpreter.py /^ def action(self, s=False):$/;" m class:Label +add_directive interpreter.py /^ def add_directive(self, directive, cond=(lambda x: False)):$/;" m class:Interpreter +copy namespace.py /^ def copy(self, new_name, name):$/;" m class:Namespace +dec_scope interpreter.py /^ def dec_scope(self):$/;" m class:Interpreter +dec_scope namespace.py /^ def dec_scope(self):$/;" m class:Namespace +eval_args interpreter.py /^ def eval_args(self, index):$/;" m class:Interpreter +eval_expr interpreter.py /^ def eval_expr(self, index):$/;" m class:Interpreter +eval_label interpreter.py /^ def eval_label(self, index):$/;" m class:Interpreter +eval_param interpreter.py /^ def eval_param(self, index):$/;" m class:Interpreter +eval_type interpreter.py /^ def eval_type(self, index):$/;" m class:Interpreter +generate_statements lexer.py /^ def generate_statements(self, raw):$/;" m class:Tokenizer +generate_symbols lexer.py /^ def generate_symbols(self, raw_string):$/;" m class:Tokenizer +get_statements parser.py /^ def get_statements(self):$/;" m class:Parser +inc_scope interpreter.py /^ def inc_scope(self):$/;" m class:Interpreter +inc_scope namespace.py /^ def inc_scope(self):$/;" m class:Namespace +int_to_bytes helper.py /^def int_to_bytes(number):$/;" f +int_to_word helper.py /^def int_to_word(number):$/;" f +match lexer.py /^ def match(self, tokenstring):$/;" m class:Statement +match lexer.py /^ def match(self, tokenstring, index):$/;" m class:AtomicSymbol +match lexer.py /^ def match(self, tokenstring, index):$/;" m class:CompoundSymbol +match lexer.py /^ def match(self, tokenstring, index):$/;" m class:ExclusiveSymbol +match lexer.py /^ def match(self, tokenstring, index):$/;" m class:GroupingSymbol +match lexer.py /^ def match(self, tokenstring, index):$/;" m class:InclusiveSymbol +match lexer.py /^ def match(self, tokenstring, index):$/;" m class:PolySymbol +name_dec namespace.py /^ def name_dec(self, name):$/;" m class:Namespace +new_name interpreter.py /^ def new_name(self, index):$/;" m class:Interpreter +new_name_token interpreter.py /^ def new_name_token(self, token):$/;" m class:Interpreter +ns_copy interpreter.py /^ def ns_copy(self, key, index):$/;" m class:Interpreter +ns_persist interpreter.py /^ def ns_persist(self, index):$/;" m class:Interpreter +ns_save interpreter.py /^ def ns_save(self):$/;" m class:Interpreter +nxt interpreter.py /^ def nxt(self, n):$/;" m class:Interpreter +obj_resolve namespace.py /^ def obj_resolve(self, name):$/;" m class:Namespace +op interpreter.py /^ def op(self, opcode):$/;" m class:Interpreter +pop namespace.py /^ def pop(self):$/;" m class:Namespace +pop_directives interpreter.py /^ def pop_directives(self):$/;" m class:Interpreter +pop_scope interpreter.py /^ def pop_scope(self):$/;" m class:Interpreter +printb main.py /^def printb(l):$/;" f +push namespace.py /^ def push(self):$/;" m class:Namespace +push_directives interpreter.py /^ def push_directives(self):$/;" m class:Interpreter +push_scope interpreter.py /^ def push_scope(self):$/;" m class:Interpreter +release namespace.py /^ def release(self):$/;" m class:Namespace +resolve namespace.py /^ def resolve(self, name):$/;" m class:Namespace +resolve_with_obj namespace.py /^ def resolve_with_obj(self, parent, name):$/;" m class:Namespace +target namespace.py /^ def target(self, name):$/;" m class:Namespace +tobytearray main.py /^def tobytearray(l, n, ba):$/;" f +token_split helper.py /^def token_split(tokenstring, esc_chars, split_chars, include_splitter=True):$/;" f +update interpreter.py /^ def update(self):$/;" m class:AbstractToken +update interpreter.py /^ def update(self):$/;" m class:Arguements +update interpreter.py /^ def update(self):$/;" m class:Expression +update interpreter.py /^ def update(self):$/;" m class:Label +update interpreter.py /^ def update(self):$/;" m class:Parameters +update interpreter.py /^ def update(self):$/;" m class:Type diff --git a/src/lc/test_files/example b/src/lc/test_files/example Binary files differ. diff --git a/src/lc/test_files/example.ti b/src/lc/test_files/example.ti @@ -1,24 +1,14 @@ -class Object(int init_args): +class Bar: { - int property = init_args * 2; - - func method (int arg1, int arg2) -> void: - { - property = (arg1 * arg2) / property; - } + int lala = 2; } -func main(int arg) -> void: +func main(Bar arg) -> void: { - Object new_object = new Object(arg); - - print new_object.property; - - new_object.method(2,4); - - print new_object.property; + print arg.lala; } +Bar foo = new Bar(); print "Calling main()"; -main(2); +main(foo); print "Called main()"; diff --git a/src/lc/test_files/out b/src/lc/test_files/out Binary files differ. diff --git a/src/lc/test_files/test.out b/src/lc/test_files/test.out diff --git a/src/lc/test_files/testing.out b/src/lc/test_files/testing.out Binary files differ. diff --git a/src/vm/Makefile b/src/vm/Makefile @@ -3,7 +3,7 @@ INC_DIR = inc DST_DIR = /usr/bin/ CC = gcc -CFLAGS = -std=c99 -Wall -I$(INC_DIR) +CFLAGS = -ggdb -std=c99 -Wall -I$(INC_DIR) DEPS = $(INC_DIR)/is_mdata.h \ helper.h \ diff --git a/src/vm/out b/src/vm/out Binary files differ. diff --git a/src/vm/tags b/src/vm/tags @@ -0,0 +1,433 @@ +!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/ +!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ +!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/ +!_TAG_PROGRAM_NAME Exuberant Ctags // +!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/ +!_TAG_PROGRAM_VERSION 5.9~svn20110310 // +ADDR inc/var.h /^ ADDR, \/\/ 1$/;" e enum:__anon1 +ADDRLEN inc/ins_mdata.h 13;" d +ASSERT inc/helper.h 9;" d +A_ADDR inc/ins_mdata.h 17;" d +A_BYTE inc/ins_mdata.h 15;" d +A_DYNC inc/ins_mdata.h 18;" d +A_NAME inc/ins_mdata.h 16;" d +BC_H inc/bc.h 5;" d +BTOI inc/ins_mdata.h 99;" d +BTOT inc/ins_mdata.h 100;" d +CC Makefile /^CC = gcc$/;" m +CC tests/cases/bc/Makefile /^CC = gcc$/;" m +CC tests/cases/ns/Makefile /^CC = gcc$/;" m +CC tests/cases/pc/Makefile /^CC = gcc$/;" m +CC tests/cases/stk/Makefile /^CC = gcc$/;" m +CFLAGS Makefile /^CFLAGS = -std=c99 -Wall -I$(INC_DIR)$/;" m +CFLAGS tests/cases/bc/Makefile /^CFLAGS = -std=c99 -Wall -I$(INC_DIR)$/;" m +CFLAGS tests/cases/ns/Makefile /^CFLAGS = -std=c99 -Wall -I$(INC_DIR)$/;" m +CFLAGS tests/cases/pc/Makefile /^CFLAGS = -std=c99 -Wall -I$(INC_DIR)$/;" m +CFLAGS tests/cases/stk/Makefile /^CFLAGS = -std=c99 -Wall -I$(INC_DIR)$/;" m +DEBUG src/main.c 9;" d file: +DEPS Makefile /^DEPS = $(INC_DIR)\/is_mdata.h \\$/;" m +DEPS tests/cases/bc/Makefile /^DEPS = $(INC_DIR)\/is_mdata.h \\$/;" m +DEPS tests/cases/ns/Makefile /^DEPS = i$(INC_DIR)\/helper.h \\$/;" m +DEPS tests/cases/pc/Makefile /^DEPS = i$(INC_DIR)\/is_mdata.h \\$/;" m +DEPS tests/cases/stk/Makefile /^DEPS = i$(INC_DIR)\/helper.h \\$/;" m +DST_DIR Makefile /^DST_DIR = \/usr\/bin\/$/;" m +DTOL inc/ins_mdata.h 101;" d +DTOV inc/ins_mdata.h 102;" d +D_ARRAY inc/var.h /^ D_ARRAY,\/\/ C$/;" e enum:__anon1 +FH_H inc/fh.h 5;" d +FUNC inc/var.h /^ FUNC, \/\/ 4$/;" e enum:__anon1 +G_CHAR inc/var.h /^ G_CHAR, \/\/ 9$/;" e enum:__anon1 +G_FIFO inc/var.h /^ G_FIFO, \/\/ E$/;" e enum:__anon1 +G_FLOAT inc/var.h /^ G_FLOAT,\/\/ 8$/;" e enum:__anon1 +G_INT inc/var.h /^ G_INT, \/\/ 7$/;" e enum:__anon1 +G_PTR inc/var.h /^ G_PTR \/\/ F$/;" e enum:__anon1 +G_STR inc/var.h /^ G_STR, \/\/ A$/;" e enum:__anon1 +HELPER_H inc/helper.h 5;" d +H_TABLE inc/var.h /^ H_TABLE,\/\/ D$/;" e enum:__anon1 +INC_DIR Makefile /^INC_DIR = inc$/;" m +INC_DIR tests/cases/bc/Makefile /^INC_DIR = ..\/..\/..\/inc$/;" m +INC_DIR tests/cases/ns/Makefile /^INC_DIR = ..\/..\/..\/inc$/;" m +INC_DIR tests/cases/pc/Makefile /^INC_DIR = ..\/..\/..\/inc$/;" m +INC_DIR tests/cases/stk/Makefile /^INC_DIR = ..\/..\/..\/inc$/;" m +INS_ADATA inc/is.h /^byte_t INS_ADATA[0x100];$/;" v +INS_ADATA_DEF inc/ins_mdata.h 108;" d +INS_DEF inc/ins_def.h /^void (*INS_DEF[0x100])(rt_t*, bc_cont*);$/;" v +INS_DEF_H inc/ins_def.h 5;" d +INS_MDATA inc/is.h /^byte_t INS_MDATA[0x100];$/;" v +INS_MDATA_DEF inc/ins_mdata.h 24;" d +INS_MDATA_H inc/ins_mdata.h 2;" d +IS_H inc/is.h 9;" d +M_ASSERT inc/helper.h 23;" d +NAMELEN inc/ins_mdata.h 12;" d +NS_CTX_DEPTH inc/ns.h 27;" d +NS_H inc/ns.h 5;" d +N_ASSERT inc/helper.h 30;" d +OBJ Makefile /^OBJ = $(SRC_DIR)\/main.o \\$/;" m +OBJ tests/cases/bc/Makefile /^OBJ = test.o \\$/;" m +OBJ tests/cases/ns/Makefile /^OBJ = test.o \\$/;" m +OBJ tests/cases/pc/Makefile /^OBJ = test.o \\$/;" m +OBJ tests/cases/stk/Makefile /^OBJ = test.o \\$/;" m +OBJBLDR inc/var.h /^ OBJBLDR,\/\/ 5$/;" e enum:__anon1 +OBJECT inc/var.h /^ OBJECT, \/\/ 6$/;" e enum:__anon1 +OBJECT_H inc/object.h 5;" d +OUT Makefile /^OUT = toi$/;" m +OUT tests/cases/bc/Makefile /^OUT = test$/;" m +OUT tests/cases/ns/Makefile /^OUT = test$/;" m +OUT tests/cases/pc/Makefile /^OUT = test$/;" m +OUT tests/cases/stk/Makefile /^OUT = test$/;" m +PC_H inc/pc.h 5;" d +PC_RETURN_DEPTH inc/pc.h 7;" d +PLIST inc/var.h /^ PLIST, \/\/ 3$/;" e enum:__anon1 +PROC_H inc/proc.h 5;" d +RT_H inc/rt.h 5;" d +SIZE_ASSERT inc/helper.h 16;" d +SRC_DIR Makefile /^SRC_DIR = src$/;" m +SRC_DIR tests/cases/bc/Makefile /^SRC_DIR = ..\/..\/..\/src$/;" m +SRC_DIR tests/cases/ns/Makefile /^SRC_DIR = ..\/..\/..\/src$/;" m +SRC_DIR tests/cases/pc/Makefile /^SRC_DIR = ..\/..\/..\/src$/;" m +SRC_DIR tests/cases/stk/Makefile /^SRC_DIR = ..\/..\/..\/src$/;" m +STACK_INIT_SIZE inc/stk.h 8;" d +STACK_SIZE_LIMIT inc/stk.h 7;" d +STK_H inc/stk.h 5;" d +S_ARRAY inc/var.h /^ S_ARRAY,\/\/ B$/;" e enum:__anon1 +TYPE inc/var.h /^ TYPE, \/\/ 2$/;" e enum:__anon1 +VAR_H inc/var.h 5;" d +VAR_OPS_H inc/var_ops.h 5;" d +VOID inc/var.h /^ VOID, \/\/ 0$/;" e enum:__anon1 +_ins_def_ADD src/ins_def.c /^void _ins_def_ADD (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_AND src/ins_def.c /^void _ins_def_AND (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_ARGB src/ins_def.c /^void _ins_def_ARGB (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_BNAND src/ins_def.c /^void _ins_def_BNAND (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_BOR src/ins_def.c /^void _ins_def_BOR (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_BREAK src/ins_def.c /^void _ins_def_BREAK (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_BRT src/ins_def.c /^void _ins_def_BRT (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_BXOR src/ins_def.c /^void _ins_def_BXOR (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_CALL src/ins_def.c /^void _ins_def_CALL (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_CALLM src/ins_def.c /^void _ins_def_CALLM (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_CAST src/ins_def.c /^void _ins_def_CAST (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_CLOOP src/ins_def.c /^void _ins_def_CLOOP (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_COS src/ins_def.c /^void _ins_def_COS (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_CTS src/ins_def.c /^void _ins_def_CTS (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_CTV src/ins_def.c /^void _ins_def_CTV (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_DEBUG src/ins_def.c /^void _ins_def_DEBUG (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_DEC src/ins_def.c /^void _ins_def_DEC (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_DECLASS src/ins_def.c /^void _ins_def_DECLASS (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_DEFUN src/ins_def.c /^void _ins_def_DEFUN (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_DENS src/ins_def.c /^void _ins_def_DENS (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_DIV src/ins_def.c /^void _ins_def_DIV (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_DONE src/ins_def.c /^void _ins_def_DONE (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_DUP src/ins_def.c /^void _ins_def_DUP (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_ELSE src/ins_def.c /^void _ins_def_ELSE (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_ENDCLASS src/ins_def.c /^void _ins_def_ENDCLASS (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_ENDL src/ins_def.c /^void _ins_def_ENDL (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_EQ src/ins_def.c /^void _ins_def_EQ (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_GETN src/ins_def.c /^void _ins_def_GETN (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_GOTO src/ins_def.c /^void _ins_def_GOTO (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_GTHAN src/ins_def.c /^void _ins_def_GTHAN (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_GTHAN_EQ src/ins_def.c /^void _ins_def_GTHAN_EQ (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_ICOS src/ins_def.c /^void _ins_def_ICOS (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_IFDO src/ins_def.c /^void _ins_def_IFDO (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_INDEXO src/ins_def.c /^void _ins_def_INDEXO (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_ISIN src/ins_def.c /^void _ins_def_ISIN (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_ITAN src/ins_def.c /^void _ins_def_ITAN (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_JUMPF src/ins_def.c /^void _ins_def_JUMPF (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_LIBC src/ins_def.c /^void _ins_def_LIBC (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_LOV src/ins_def.c /^void _ins_def_LOV (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_LTHAN src/ins_def.c /^void _ins_def_LTHAN (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_LTHAN_EQ src/ins_def.c /^void _ins_def_LTHAN_EQ (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_MOD src/ins_def.c /^void _ins_def_MOD (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_MODO src/ins_def.c /^void _ins_def_MODO (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_MULT src/ins_def.c /^void _ins_def_MULT (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_NEQ src/ins_def.c /^void _ins_def_NEQ (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_NEW src/ins_def.c /^void _ins_def_NEW (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_NOT src/ins_def.c /^void _ins_def_NOT (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_NULL src/ins_def.c /^void _ins_def_NULL (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_OR src/ins_def.c /^void _ins_def_OR (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_POP src/ins_def.c /^void _ins_def_POP (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_POW src/ins_def.c /^void _ins_def_POW (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_PRINT src/ins_def.c /^void _ins_def_PRINT (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_RETURN src/ins_def.c /^void _ins_def_RETURN (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_ROT src/ins_def.c /^void _ins_def_ROT (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_ROT_THREE src/ins_def.c /^void _ins_def_ROT_THREE(rt_t* ctx, bc_cont* line)$/;" f +_ins_def_SETN src/ins_def.c /^void _ins_def_SETN (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_SIN src/ins_def.c /^void _ins_def_SIN (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_STARTL src/ins_def.c /^void _ins_def_STARTL (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_STV src/ins_def.c /^void _ins_def_STV (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_SUB src/ins_def.c /^void _ins_def_SUB (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_SYNC src/ins_def.c /^void _ins_def_SYNC (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_TAN src/ins_def.c /^void _ins_def_TAN (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_TYPEOF src/ins_def.c /^void _ins_def_TYPEOF (rt_t* ctx, bc_cont* line)$/;" f +_ins_def_branch_to_end_if src/ins_def.c /^void _ins_def_branch_to_end_if(rt_t* ctx)$/;" f +_ins_def_loop_break src/ins_def.c /^void _ins_def_loop_break(rt_t* ctx)$/;" f +adata inc/bc.h /^ byte_t adata; \/\/ Opcode arguement metadata$/;" m struct:bc_cont +address inc/pc.h /^ pc_addr address; \/\/ Current address$/;" m struct:pc_t +addresses inc/pc.h /^ pc_addr* addresses; \/\/ Stack data$/;" m struct:pc_addr_stk +args inc/bc.h /^ byte_t* args[3]; \/\/ Raw arguements$/;" m struct:bc_cont +argstk inc/rt.h /^ stk_t* argstk;$/;" m struct:rt_t +b_type inc/var.h /^} b_type;$/;" t typeref:enum:__anon1 +bc inc/pc.h /^ bc_t* bc; \/\/ Bytecode container instance$/;" m struct:pc_t +bc_addr inc/bc.h /^typedef unsigned int bc_addr;$/;" t +bc_addr inc/var.h /^typedef unsigned int bc_addr;$/;" t +bc_cont inc/bc.h /^typedef struct bc_cont {$/;" s +bc_cont inc/bc.h /^} bc_cont;$/;" t typeref:struct:bc_cont +bc_cont_del src/bc.c /^void bc_cont_del(bc_cont* ins)$/;" f +bc_cont_new src/bc.c /^bc_cont* bc_cont_new(void)$/;" f +bc_del src/bc.c /^void bc_del(bc_t* program)$/;" f +bc_init src/bc.c /^bc_t* bc_init(char* fname)$/;" f +bc_print_op src/bc.c /^void bc_print_op(bc_cont* op)$/;" f +bc_read src/bc.c /^bc_cont** bc_read(FILE* f, bc_addr* len)$/;" f +bc_t inc/bc.h /^typedef struct bc_t {$/;" s +bc_t inc/bc.h /^} bc_t;$/;" t typeref:struct:bc_t +byte_t inc/fh.h /^typedef unsigned char byte_t;$/;" t +byte_to_type src/var.c /^var_cont* byte_to_type(byte_t byte)$/;" f +data inc/stk.h /^ var_cont** data;$/;" m struct:stk_line +data inc/var.h /^ void* data;$/;" m struct:var_cont +db inc/rt.h /^ int db;$/;" m struct:rt_t +encode inc/ins_mdata.h 9;" d +end inc/var.h /^ bc_addr end;$/;" m struct:var_data_func +end inc/var.h /^ bc_addr end;$/;" m struct:var_data_objbldr +get_addr_arg src/bc.c /^byte_t* get_addr_arg(FILE* f, int* size)$/;" f +get_byte_arg src/bc.c /^byte_t* get_byte_arg(FILE* f, int* size)$/;" f +get_dync_arg src/bc.c /^byte_t* get_dync_arg(FILE* f, int* size)$/;" f +get_name_arg src/bc.c /^byte_t* get_name_arg(FILE* f, int* size)$/;" f +get_opcode_adata src/bc.c /^void get_opcode_adata(FILE* f, bc_cont* ins)$/;" f +get_opcode_mdata src/is.c /^void get_opcode_mdata(byte_t byte, bc_cont* ins)$/;" f +heap inc/bc.h /^ bc_cont** heap; \/\/ Heap of instructions$/;" m struct:bc_t +id inc/ns.h /^ int id;$/;" m struct:ns_t +id inc/var.h /^ ns_addr id;$/;" m struct:var_data_objbldr +id inc/var.h /^ ns_addr id;$/;" m struct:var_data_object +init_adata src/is.c /^void init_adata(void)$/;" f +init_ins_def src/ins_def.c /^void init_ins_def( void )$/;" f +init_mdata src/is.c /^void init_mdata(void)$/;" f +ins_def_is_valid src/ins_def.c /^int ins_def_is_valid(bc_cont* line)$/;" f +instc inc/var.h /^ ns_addr instc;$/;" m struct:var_data_objbldr +last inc/ns.h /^ ns_cont* last;$/;" m struct:ns_t +level inc/ns.h /^ int level;$/;" m struct:ns_cont +limit inc/pc.h /^ pc_addr limit; \/\/ End of program$/;" m struct:pc_t +line inc/pc.h /^ bc_cont* line; \/\/ Current instruction$/;" m struct:pc_t +loc inc/var.h /^ bc_addr loc;$/;" m struct:var_data_func +loc inc/var.h /^ bc_addr loc;$/;" m struct:var_data_objbldr +main src/main.c /^int main(int argc, char** argv)$/;" f +main tests/cases/bc/test.c /^int main(int argc, char** argv)$/;" f +main tests/cases/ns/test.c /^int main( void )$/;" f +main tests/cases/pc/test.c /^int main(int argc, char *argv[])$/;" f +main tests/cases/stk/test.c /^int main(int argc, char* argv[])$/;" f +mdata inc/bc.h /^ byte_t mdata; \/\/ Opcode metadata$/;" m struct:bc_cont +names inc/ns.h /^ var_cont** names;$/;" m struct:ns_cont +names inc/object.h /^ ns_t* names;$/;" m struct:obj_t +names inc/rt.h /^ ns_t* names;$/;" m struct:rt_t +next inc/ns.h /^ struct ns_cont* next;$/;" m struct:ns_cont typeref:struct:ns_cont::ns_cont +next inc/stk.h /^ struct stk_t* next;$/;" m struct:stk_t typeref:struct:stk_t::stk_t +ns_addr inc/ns.h /^typedef unsigned int ns_addr;$/;" t +ns_addr inc/var.h /^typedef unsigned int ns_addr;$/;" t +ns_cont inc/ns.h /^typedef struct ns_cont {$/;" s +ns_cont inc/ns.h /^} ns_cont;$/;" t typeref:struct:ns_cont +ns_cont_dec src/ns.c /^void ns_cont_dec(ns_cont* container, b_type type, ns_addr address)$/;" f +ns_cont_del src/ns.c /^var_cont* ns_cont_del(ns_cont* container, ns_addr to_return)$/;" f +ns_cont_get src/ns.c /^var_cont* ns_cont_get(ns_cont* container, ns_addr address)$/;" f +ns_cont_init src/ns.c /^ns_cont* ns_cont_init(ns_addr size, int level)$/;" f +ns_cont_set src/ns.c /^void ns_cont_set(ns_cont* container, var_cont* var, ns_addr address)$/;" f +ns_ctx inc/ns.h /^typedef struct ns_ctx {$/;" s +ns_ctx inc/ns.h /^} ns_ctx;$/;" t typeref:struct:ns_ctx +ns_ctx_del src/ns.c /^void ns_ctx_del(ns_ctx* ctx)$/;" f +ns_ctx_init src/ns.c /^ns_ctx* ns_ctx_init(void)$/;" f +ns_ctx_pop src/ns.c /^ns_t* ns_ctx_pop(ns_ctx* ctx)$/;" f +ns_ctx_push src/ns.c /^void ns_ctx_push(ns_ctx* ctx, ns_t* ns)$/;" f +ns_dec src/ns.c /^void ns_dec(ns_t* ns, b_type type, int scope, ns_addr address)$/;" f +ns_del src/ns.c /^void ns_del(ns_t* ns)$/;" f +ns_get src/ns.c /^var_cont* ns_get(ns_t* ns, int scope, ns_addr address)$/;" f +ns_init src/ns.c /^ns_t* ns_init(ns_addr size)$/;" f +ns_pop src/ns.c /^var_cont* ns_pop(ns_t* ns)$/;" f +ns_push src/ns.c /^void ns_push(ns_t* ns, ns_addr size)$/;" f +ns_set src/ns.c /^void ns_set(ns_t* ns, int scope, ns_addr address, var_cont* var)$/;" f +ns_t inc/ns.h /^typedef struct ns_t {$/;" s +ns_t inc/ns.h /^} ns_t;$/;" t typeref:struct:ns_t +obj_t inc/object.h /^typedef struct obj_t {$/;" s +obj_t inc/object.h /^} obj_t;$/;" t typeref:struct:obj_t +object_call_method src/object.c /^var_cont* object_call_method(obj_t* object, ns_addr name)$/;" f +object_del src/object.c /^void object_del(void* object)$/;" f +object_get src/object.c /^obj_t* object_get(void* object)$/;" f +object_get_name src/object.c /^var_cont* object_get_name(obj_t* object, ns_addr name)$/;" f +object_init src/object.c /^obj_t* object_init()$/;" f +object_set_name src/object.c /^void object_set_name(obj_t* object, ns_addr name, var_cont* var)$/;" f +objfree inc/var.h /^ void (*objfree)(void*);$/;" m struct:var_data_object +op inc/bc.h /^ byte_t op; \/\/ Opcode of instruction$/;" m struct:bc_cont +ownership inc/var.h /^ int ownership;$/;" m struct:var_cont +param inc/var.h /^ b_type* param;$/;" m struct:var_data_func +param inc/var.h /^ b_type* param;$/;" m struct:var_data_objbldr +paramlen inc/var.h /^ size_t paramlen;$/;" m struct:var_data_func +paramlen inc/var.h /^ size_t paramlen;$/;" m struct:var_data_objbldr +pc inc/rt.h /^ pc_t* pc;$/;" m struct:rt_t +pc_addr inc/pc.h /^typedef unsigned short int pc_addr;$/;" t +pc_addr_stk inc/pc.h /^typedef struct pc_addr_stk {$/;" s +pc_addr_stk inc/pc.h /^} pc_addr_stk;$/;" t typeref:struct:pc_addr_stk +pc_addr_stk_del src/pc.c /^void pc_addr_stk_del(pc_addr_stk* stk)$/;" f +pc_addr_stk_new src/pc.c /^pc_addr_stk* pc_addr_stk_new(ns_addr address)$/;" f +pc_branch src/pc.c /^void pc_branch(pc_t* pc, pc_addr address)$/;" f +pc_del src/pc.c /^void pc_del(pc_t* pc)$/;" f +pc_goto src/pc.c /^void pc_goto(pc_t* pc, pc_addr addr)$/;" f +pc_inc src/pc.c /^void pc_inc(pc_t* pc, pc_addr addr)$/;" f +pc_new src/pc.c /^pc_t* pc_new(char* fname)$/;" f +pc_return src/pc.c /^void pc_return(pc_t* pc)$/;" f +pc_safe src/pc.c /^int pc_safe(pc_t* pc)$/;" f +pc_t inc/pc.h /^typedef struct pc_t {$/;" s +pc_t inc/pc.h /^} pc_t;$/;" t typeref:struct:pc_t +pc_update src/pc.c /^void pc_update(pc_t* pc)$/;" f +playstk tests/cases/stk/test.c /^void playstk(stk_t* new)$/;" f +printstk tests/cases/stk/test.c /^void printstk(stk_t* stk)$/;" f +proc_clean src/proc.c /^void proc_clean(rt_t* ctx)$/;" f +proc_decvar src/proc.c /^void proc_decvar(rt_t* ctx, b_type type, int scope, ns_addr name)$/;" f +proc_function_call src/proc.c /^void proc_function_call(rt_t* ctx, int scope, ns_addr name)$/;" f +proc_function_call_handle src/proc.c /^void proc_function_call_handle(rt_t* ctx, var_data_func* func)$/;" f +proc_getvar src/proc.c /^var_cont* proc_getvar(rt_t* ctx, int scope, ns_addr name)$/;" f +proc_init src/proc.c /^rt_t* proc_init(char* fname)$/;" f +proc_run src/proc.c /^void proc_run(rt_t* ctx)$/;" f +proc_run_to_return src/proc.c /^void proc_run_to_return(rt_t* ctx)$/;" f +proc_setvar src/proc.c /^void proc_setvar(rt_t* ctx, int scope, ns_addr name, var_cont* var)$/;" f +process_args src/bc.c /^void process_args(bc_cont* ins)$/;" f +ptr inc/ns.h /^ int ptr;$/;" m struct:ns_ctx +ptr inc/pc.h /^ int ptr; \/\/ Stack pointer$/;" m struct:pc_addr_stk +ptr inc/stk.h /^ int ptr;$/;" m struct:stk_line +raw_to_int src/var.c /^var_cont* raw_to_int(int size, int start, byte_t* bytes)$/;" f +raw_to_plist src/var.c /^var_cont* raw_to_plist(int n, byte_t* bytes)$/;" f +raw_to_str src/var.c /^var_cont* raw_to_str(int n, int offset, byte_t* bytes)$/;" f +raw_to_var src/var.c /^var_cont* raw_to_var(int n, byte_t* bytes)$/;" f +read_byte src/fh.c /^byte_t read_byte(FILE* f)$/;" f +read_bytes src/fh.c /^byte_t* read_bytes(FILE* f, long bytes)$/;" f +read_size src/fh.c /^long read_size(FILE* f)$/;" f +real_addr inc/bc.h /^ bc_addr real_addr; \/\/ Real address of instruction$/;" m struct:bc_cont +ref inc/var.h /^ void* ref;$/;" m struct:var_data_object +root inc/ns.h /^ ns_cont* root;$/;" m struct:ns_t +rt_ctx_del src/rt.c /^void rt_ctx_del(rt_t* ctx)$/;" f +rt_ctx_new src/rt.c /^rt_t* rt_ctx_new(char* fname, stk_t* args)$/;" f +rt_ns_del src/rt.c /^void rt_ns_del(void* ns)$/;" f +rt_t inc/rt.h /^typedef struct rt_t {$/;" s +rt_t inc/rt.h /^} rt_t;$/;" t typeref:struct:rt_t +sarg inc/bc.h /^ int sarg[3]; \/\/ Size of arguements$/;" m struct:bc_cont +size inc/bc.h /^ bc_addr size; \/\/ Size of program$/;" m struct:bc_t +size inc/ns.h /^ ns_addr size;$/;" m struct:ns_cont +size inc/pc.h /^ int size; \/\/ Capacity of stack$/;" m struct:pc_addr_stk +size inc/stk.h /^ size_t size;$/;" m struct:stk_line +size inc/var.h /^ ns_addr size;$/;" m struct:var_data_func +size inc/var.h /^ ns_addr size;$/;" m struct:var_data_objbldr +size inc/var.h /^ size_t size;$/;" m struct:var_data_array +size inc/var.h /^ size_t size;$/;" m struct:var_data_str +spaces inc/ns.h /^ ns_t** spaces;$/;" m struct:ns_ctx +stack inc/rt.h /^ stk_t* stack;$/;" m struct:rt_t +stack inc/stk.h /^ stk_line* stack;$/;" m struct:stk_t +stk inc/pc.h /^ pc_addr_stk* stk; \/\/ Address stack$/;" m struct:pc_t +stk_at src/stk.c /^var_cont* stk_at(stk_t* stack, int n)$/;" f +stk_del src/stk.c /^void stk_del(stk_t* stack)$/;" f +stk_line inc/stk.h /^typedef struct stk_line {$/;" s +stk_line inc/stk.h /^} stk_line;$/;" t typeref:struct:stk_line +stk_line_del src/stk.c /^void stk_line_del(stk_line* stack)$/;" f +stk_line_new src/stk.c /^stk_line* stk_line_new(size_t size)$/;" f +stk_new src/stk.c /^stk_t* stk_new( void )$/;" f +stk_newlevel src/stk.c /^void stk_newlevel(stk_t** stack)$/;" f +stk_pop src/stk.c /^var_cont* stk_pop(stk_t* stack)$/;" f +stk_poplevel src/stk.c /^void stk_poplevel(stk_t** stack)$/;" f +stk_push src/stk.c /^void stk_push(stk_t* stack, var_cont* data)$/;" f +stk_rot_three src/stk.c /^void stk_rot_three(stk_t* stack)$/;" f +stk_rot_top src/stk.c /^void stk_rot_top(stk_t* stack)$/;" f +stk_scale src/stk.c /^void stk_scale(stk_line* stack)$/;" f +stk_t inc/stk.h /^typedef struct stk_t {$/;" s +stk_t inc/stk.h /^} stk_t;$/;" t typeref:struct:stk_t +type inc/var.h /^ b_type type;$/;" m struct:var_data_func +type inc/var.h /^ b_type type;$/;" m struct:var_cont +unencode src/is.c /^void unencode(byte_t byte, int* n, int* at)$/;" f +v inc/var.h /^ b_type v;$/;" m struct:var_data_type +v inc/var.h /^ b_type* v;$/;" m struct:var_data_plist +v inc/var.h /^ char v;$/;" m struct:var_data_char +v inc/var.h /^ char* v;$/;" m struct:var_data_str +v inc/var.h /^ double v;$/;" m struct:var_data_float +v inc/var.h /^ int v;$/;" m struct:var_data_int +v inc/var.h /^ var_cont* v;$/;" m struct:var_data_array +v inc/var.h /^ var_cont* v;$/;" m struct:var_data_ptr +var_add src/var_ops.c /^var_cont* var_add(var_cont* A, var_cont* B)$/;" f +var_add_float src/var_ops.c /^var_cont* var_add_float(var_cont* A, var_cont* B)$/;" f +var_add_int src/var_ops.c /^var_cont* var_add_int(var_cont* A, var_cont* B)$/;" f +var_cont inc/var.h /^typedef struct var_cont {$/;" s +var_cont inc/var.h /^} var_cont;$/;" t typeref:struct:var_cont +var_data_alloc_FUNC src/var.c /^void* var_data_alloc_FUNC(b_type type)$/;" f +var_data_alloc_G_CHAR src/var.c /^void* var_data_alloc_G_CHAR(char value)$/;" f +var_data_alloc_G_FLOAT src/var.c /^void* var_data_alloc_G_FLOAT(double value)$/;" f +var_data_alloc_G_INT src/var.c /^void* var_data_alloc_G_INT(int value)$/;" f +var_data_alloc_G_STR src/var.c /^void* var_data_alloc_G_STR(size_t size)$/;" f +var_data_alloc_OBJBLDR src/var.c /^void* var_data_alloc_OBJBLDR(void)$/;" f +var_data_alloc_OBJECT src/var.c /^void* var_data_alloc_OBJECT(void (*freefunc)(void*))$/;" f +var_data_alloc_PLIST src/var.c /^void* var_data_alloc_PLIST(size_t size)$/;" f +var_data_alloc_TYPE src/var.c /^void* var_data_alloc_TYPE(b_type type)$/;" f +var_data_array inc/var.h /^typedef struct var_data_array {$/;" s +var_data_array inc/var.h /^} var_data_array;$/;" t typeref:struct:var_data_array +var_data_char inc/var.h /^typedef struct var_data_char {$/;" s +var_data_char inc/var.h /^} var_data_char;$/;" t typeref:struct:var_data_char +var_data_cpy src/var.c /^var_cont* var_data_cpy(var_cont* var)$/;" f +var_data_cpy_G_CHAR src/var.c /^void* var_data_cpy_G_CHAR(var_data_char* data)$/;" f +var_data_cpy_G_FLOAT src/var.c /^void* var_data_cpy_G_FLOAT(var_data_float* data)$/;" f +var_data_cpy_G_INT src/var.c /^void* var_data_cpy_G_INT(var_data_int* data)$/;" f +var_data_cpy_G_STR src/var.c /^void* var_data_cpy_G_STR(var_data_str* data)$/;" f +var_data_float inc/var.h /^typedef struct var_data_float {$/;" s +var_data_float inc/var.h /^} var_data_float;$/;" t typeref:struct:var_data_float +var_data_free src/var.c /^void var_data_free(void* data, b_type type)$/;" f +var_data_free_FUNC src/var.c /^void var_data_free_FUNC(void* data)$/;" f +var_data_free_G_STR src/var.c /^void var_data_free_G_STR(void* data)$/;" f +var_data_free_OBJBLDR src/var.c /^void var_data_free_OBJBLDR(void* data)$/;" f +var_data_free_OBJECT src/var.c /^void var_data_free_OBJECT(void* data)$/;" f +var_data_free_PLIST src/var.c /^void var_data_free_PLIST(void* data)$/;" f +var_data_func inc/var.h /^typedef struct var_data_func {$/;" s +var_data_func inc/var.h /^} var_data_func;$/;" t typeref:struct:var_data_func +var_data_get_FUNC src/var.c /^var_data_func* var_data_get_FUNC(var_cont* var)$/;" f +var_data_get_G_CHAR src/var.c /^char var_data_get_G_CHAR(var_cont* var)$/;" f +var_data_get_G_FLOAT src/var.c /^double var_data_get_G_FLOAT(var_cont* var)$/;" f +var_data_get_G_INT src/var.c /^int var_data_get_G_INT(var_cont* var)$/;" f +var_data_get_G_STR src/var.c /^char* var_data_get_G_STR(var_cont* var)$/;" f +var_data_get_OBJBLDR src/var.c /^var_data_objbldr* var_data_get_OBJBLDR(var_cont* var)$/;" f +var_data_get_OBJECT src/var.c /^var_data_object* var_data_get_OBJECT(var_cont* var)$/;" f +var_data_get_PLIST src/var.c /^b_type* var_data_get_PLIST(var_cont* var)$/;" f +var_data_get_TYPE src/var.c /^b_type var_data_get_TYPE(var_cont* var)$/;" f +var_data_int inc/var.h /^typedef struct var_data_int {$/;" s +var_data_int inc/var.h /^} var_data_int;$/;" t typeref:struct:var_data_int +var_data_objbldr inc/var.h /^typedef struct var_data_objbldr {$/;" s +var_data_objbldr inc/var.h /^} var_data_objbldr;$/;" t typeref:struct:var_data_objbldr +var_data_object inc/var.h /^typedef struct var_data_object {$/;" s +var_data_object inc/var.h /^} var_data_object;$/;" t typeref:struct:var_data_object +var_data_plist inc/var.h /^typedef struct var_data_plist {$/;" s +var_data_plist inc/var.h /^} var_data_plist;$/;" t typeref:struct:var_data_plist +var_data_ptr inc/var.h /^typedef struct var_data_ptr {$/;" s +var_data_ptr inc/var.h /^} var_data_ptr;$/;" t typeref:struct:var_data_ptr +var_data_str inc/var.h /^typedef struct var_data_str {$/;" s +var_data_str inc/var.h /^} var_data_str;$/;" t typeref:struct:var_data_str +var_data_type inc/var.h /^typedef struct var_data_type {$/;" s +var_data_type inc/var.h /^} var_data_type;$/;" t typeref:struct:var_data_type +var_del src/var.c /^void var_del(var_cont* var)$/;" f +var_div src/var_ops.c /^var_cont* var_div(var_cont* A, var_cont* B)$/;" f +var_div_float src/var_ops.c /^var_cont* var_div_float(var_cont* A, var_cont* B)$/;" f +var_div_int src/var_ops.c /^var_cont* var_div_int(var_cont* A, var_cont* B)$/;" f +var_eq src/var_ops.c /^var_cont* var_eq(var_cont* A, var_cont* B)$/;" f +var_eq_float src/var_ops.c /^var_cont* var_eq_float(var_cont* A, var_cont* B)$/;" f +var_eq_int src/var_ops.c /^var_cont* var_eq_int(var_cont* A, var_cont* B)$/;" f +var_gthan src/var_ops.c /^var_cont* var_gthan(var_cont* A, var_cont* B)$/;" f +var_gthan_eq src/var_ops.c /^var_cont* var_gthan_eq(var_cont* A, var_cont* B)$/;" f +var_gthan_eq_float src/var_ops.c /^var_cont* var_gthan_eq_float(var_cont* A, var_cont* B)$/;" f +var_gthan_eq_int src/var_ops.c /^var_cont* var_gthan_eq_int(var_cont* A, var_cont* B)$/;" f +var_gthan_float src/var_ops.c /^var_cont* var_gthan_float(var_cont* A, var_cont* B)$/;" f +var_gthan_int src/var_ops.c /^var_cont* var_gthan_int(var_cont* A, var_cont* B)$/;" f +var_lthan src/var_ops.c /^var_cont* var_lthan(var_cont* A, var_cont* B)$/;" f +var_lthan_eq src/var_ops.c /^var_cont* var_lthan_eq(var_cont* A, var_cont* B)$/;" f +var_lthan_eq_float src/var_ops.c /^var_cont* var_lthan_eq_float(var_cont* A, var_cont* B)$/;" f +var_lthan_eq_int src/var_ops.c /^var_cont* var_lthan_eq_int(var_cont* A, var_cont* B)$/;" f +var_lthan_float src/var_ops.c /^var_cont* var_lthan_float(var_cont* A, var_cont* B)$/;" f +var_lthan_int src/var_ops.c /^var_cont* var_lthan_int(var_cont* A, var_cont* B)$/;" f +var_mult src/var_ops.c /^var_cont* var_mult(var_cont* A, var_cont* B)$/;" f +var_mult_float src/var_ops.c /^var_cont* var_mult_float(var_cont* A, var_cont* B)$/;" f +var_mult_int src/var_ops.c /^var_cont* var_mult_int(var_cont* A, var_cont* B)$/;" f +var_new src/var.c /^var_cont* var_new(b_type type)$/;" f +var_not src/var_ops.c /^var_cont* var_not(var_cont* A)$/;" f +var_pprint src/var_ops.c /^void var_pprint(var_cont* var)$/;" f +var_set src/var.c /^void var_set(var_cont* var, void* data, b_type type)$/;" f +var_sub src/var_ops.c /^var_cont* var_sub(var_cont* A, var_cont* B)$/;" f +var_sub_float src/var_ops.c /^var_cont* var_sub_float(var_cont* A, var_cont* B)$/;" f +var_sub_int src/var_ops.c /^var_cont* var_sub_int(var_cont* A, var_cont* B)$/;" f +varctx inc/rt.h /^ ns_ctx* varctx;$/;" m struct:rt_t +varg inc/bc.h /^ var_cont* varg[3]; \/\/ Typed arguements$/;" m struct:bc_cont +vars inc/rt.h /^ ns_t* vars;$/;" m struct:rt_t