PL/SQL implementation init
This commit is contained in:
70
PLati/algo.pls
Normal file
70
PLati/algo.pls
Normal file
@ -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
|
8
PLati/algo.tbl
Normal file
8
PLati/algo.tbl
Normal file
@ -0,0 +1,8 @@
|
||||
CREATE TABLE IF NOT EXISTS vars(
|
||||
name VARCHAR2(128),
|
||||
value VARCHAR2(128)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS callstack(
|
||||
bp INT
|
||||
);
|
Reference in New Issue
Block a user