diff --git a/PLati/algo.pls b/PLati/algo.pls new file mode 100644 index 0000000..79ff2f3 --- /dev/null +++ b/PLati/algo.pls @@ -0,0 +1,70 @@ +CREATE OR REPLACE PROCEDURE init +BEGIN + REPLACE INTO TABLE vars VALUES + ('eval', ''), + ('ret', ''), + ('argv-0', ''), + ('argv-1', ''), + ('argv-2', ''), + ('argv-3', ''), + ('argv-4', ''), + ('argv-5', ''), + ('argv-6', ''), + ('argv-7', ''), + ('argv-8', ''), + ('argv-9', '') + ; +END + + + +CREATE OR REPLACE FUNCTION arref AS VARCHAR(128) +BEGIN + NULL; +END +CREATE OR REPLACE FUNCTION deref_ AS VARCHAR(128) +BEGIN + NULL; +END +CREATE OR REPLACE FUNCTION aint AS INT +BEGIN + NULL; +END + + + +CREATE OR REPLACE PROCEDURE do_eval +BEGIN + NULL; +END + + + +CREATE OR REPLACE PROCEDURE pop +DECLARE + EMPTY_STACK EXCEPTION; +BEGIN + IF SELECT COUNT(bp) FROM callstack = 1 THEN + RAISE EMPTY_STACK; + END IF + DELETE FROM TABLE WHERE rowid = (SELECT MAX(rowid) FROM table); + -- head = callstack.top().bp + 1; +END +CREATE OR REPLACE PROCEDURE push +BEGIN + NULL; + -- INSERT INTO +END + + + +CREATE OR REPLACE FUNCTION jump AS BOOLEAN +DECLARE + ret BOOLEAN = FALSE; +BEGIN + NULL; +END +CREATE OR REPLACE PROCEDURE call +BEGIN + NULL; +END diff --git a/PLati/algo.tbl b/PLati/algo.tbl new file mode 100644 index 0000000..0ebc265 --- /dev/null +++ b/PLati/algo.tbl @@ -0,0 +1,8 @@ +CREATE TABLE IF NOT EXISTS vars( + name VARCHAR2(128), + value VARCHAR2(128) +); + +CREATE TABLE IF NOT EXISTS callstack( + bp INT +);