DBA Data[Home] [Help]

SYS.DIUTIL dependencies on PIDL

Line 43: FUNCTION last_elt (seq pidl.ptseqnd) RETURN pidl.ptnod IS

39:
40: -----------------------
41: -- last_elt
42: -----------------------
43: FUNCTION last_elt (seq pidl.ptseqnd) RETURN pidl.ptnod IS
44: len BINARY_INTEGER;
45: BEGIN
46: len := pidl.ptslen(seq);
47: assert(len > 0);

Line 46: len := pidl.ptslen(seq);

42: -----------------------
43: FUNCTION last_elt (seq pidl.ptseqnd) RETURN pidl.ptnod IS
44: len BINARY_INTEGER;
45: BEGIN
46: len := pidl.ptslen(seq);
47: assert(len > 0);
48: RETURN pidl.ptgend(seq, len - 1);
49: END last_elt;
50:

Line 48: RETURN pidl.ptgend(seq, len - 1);

44: len BINARY_INTEGER;
45: BEGIN
46: len := pidl.ptslen(seq);
47: assert(len > 0);
48: RETURN pidl.ptgend(seq, len - 1);
49: END last_elt;
50:
51: -----------------------
52: -- normalname: RETURN a normalized name. fold up IF NOT IN quotes,

Line 96: seq pidl.ptseqnd;

92: FUNCTION idname(n ptnod) RETURN VARCHAR2 IS
93: -- RETURN the text OF an id node. this FUNCTION IS also
94: -- used TO limit the recursion IN exprtext() below.
95: -- should have the semantics OF listtext(diana.as_list(n), ',');
96: seq pidl.ptseqnd;
97: BEGIN
98: assert(pidl.ptkin(n) = diana.ds_id);
99: seq := diana.as_list(n);
100: RETURN coatname(diana.l_symrep(last_elt(seq)));

Line 98: assert(pidl.ptkin(n) = diana.ds_id);

94: -- used TO limit the recursion IN exprtext() below.
95: -- should have the semantics OF listtext(diana.as_list(n), ',');
96: seq pidl.ptseqnd;
97: BEGIN
98: assert(pidl.ptkin(n) = diana.ds_id);
99: seq := diana.as_list(n);
100: RETURN coatname(diana.l_symrep(last_elt(seq)));
101: END idname;
102:

Line 130: x ptnod; xkind pidl.ptnty;

126: -----------------------
127: -- procname
128: -----------------------
129: FUNCTION procname(k ptnod) RETURN VARCHAR2 IS
130: x ptnod; xkind pidl.ptnty;
131: BEGIN
132: IF (k IS NULL OR k = 0) THEN RETURN NULL; END IF;
133: IF (pidl.ptkin(k) <> diana.d_s_decl) THEN RETURN NULL; END IF;
134: x := diana.a_d_(k);

Line 133: IF (pidl.ptkin(k) <> diana.d_s_decl) THEN RETURN NULL; END IF;

129: FUNCTION procname(k ptnod) RETURN VARCHAR2 IS
130: x ptnod; xkind pidl.ptnty;
131: BEGIN
132: IF (k IS NULL OR k = 0) THEN RETURN NULL; END IF;
133: IF (pidl.ptkin(k) <> diana.d_s_decl) THEN RETURN NULL; END IF;
134: x := diana.a_d_(k);
135: xkind := pidl.ptkin(x);
136: IF ( xkind <> diana.di_funct
137: AND xkind <> diana.di_proc

Line 135: xkind := pidl.ptkin(x);

131: BEGIN
132: IF (k IS NULL OR k = 0) THEN RETURN NULL; END IF;
133: IF (pidl.ptkin(k) <> diana.d_s_decl) THEN RETURN NULL; END IF;
134: x := diana.a_d_(k);
135: xkind := pidl.ptkin(x);
136: IF ( xkind <> diana.di_funct
137: AND xkind <> diana.di_proc
138: AND xkind <> diana.d_def_op) THEN
139: RETURN NULL;

Line 213: assert(pidl.ptkin(t) <> diana.q_create);

209: get_d(name, usr, dbname, dbowner, status, nod,
210: libunit_type, load_source);
211: IF (status = s_ok) THEN
212: t := diana.a_unit_b(nod);
213: assert(pidl.ptkin(t) <> diana.q_create);
214: END IF;
215: EXCEPTION
216: WHEN program_error THEN
217: status := s_other;

Line 265: IF ((pidl.ptkin(n) = diana.d_p_decl) OR

261: nsubname := normalname(subname);
262: n := diana.a_unit_b(troot);
263:
264: IF (nsubname IS NULL OR nsubname = '') THEN
265: IF ((pidl.ptkin(n) = diana.d_p_decl) OR
266: (pidl.ptkin(n) = diana.d_library)) THEN
267: diustx(troot, txt, status);
268: ELSE
269: describeproc(n, txt);

Line 266: (pidl.ptkin(n) = diana.d_library)) THEN

262: n := diana.a_unit_b(troot);
263:
264: IF (nsubname IS NULL OR nsubname = '') THEN
265: IF ((pidl.ptkin(n) = diana.d_p_decl) OR
266: (pidl.ptkin(n) = diana.d_library)) THEN
267: diustx(troot, txt, status);
268: ELSE
269: describeproc(n, txt);
270: END IF;

Line 273: IF (pidl.ptkin(n) <> diana.d_p_decl) THEN

269: describeproc(n, txt);
270: END IF;
271: ELSE
272: -- search FOR subname among ALL func/proc IN the PACKAGE
273: IF (pidl.ptkin(n) <> diana.d_p_decl) THEN
274: status := s_subpnotfound;
275: RETURN;
276: END IF;
277: n := diana.a_packag(n);

Line 279: seq pidl.ptseqnd := diana.as_list(diana.as_decl1(n));

275: RETURN;
276: END IF;
277: n := diana.a_packag(n);
278: DECLARE
279: seq pidl.ptseqnd := diana.as_list(diana.as_decl1(n));
280: len INTEGER := pidl.ptslen(seq) - 1;
281: tmp INTEGER;
282: BEGIN
283: FOR i IN 0..len LOOP --FOR each MEMBER OF the PACKAGE

Line 280: len INTEGER := pidl.ptslen(seq) - 1;

276: END IF;
277: n := diana.a_packag(n);
278: DECLARE
279: seq pidl.ptseqnd := diana.as_list(diana.as_decl1(n));
280: len INTEGER := pidl.ptslen(seq) - 1;
281: tmp INTEGER;
282: BEGIN
283: FOR i IN 0..len LOOP --FOR each MEMBER OF the PACKAGE
284: n := pidl.ptgend(seq, i);

Line 284: n := pidl.ptgend(seq, i);

280: len INTEGER := pidl.ptslen(seq) - 1;
281: tmp INTEGER;
282: BEGIN
283: FOR i IN 0..len LOOP --FOR each MEMBER OF the PACKAGE
284: n := pidl.ptgend(seq, i);
285: IF (procname(n) = nsubname) THEN
286: describeproc(n, txt);
287: END IF;
288: END LOOP;

Line 327: PROCEDURE listtext(seq pidl.ptseqnd, spc VARCHAR2) IS

323:
324: --------------------
325: -- listtext
326: --------------------
327: PROCEDURE listtext(seq pidl.ptseqnd, spc VARCHAR2) IS
328: len INTEGER;
329: BEGIN
330: len := pidl.ptslen(seq);
331: IF (len >= 1) THEN

Line 330: len := pidl.ptslen(seq);

326: --------------------
327: PROCEDURE listtext(seq pidl.ptseqnd, spc VARCHAR2) IS
328: len INTEGER;
329: BEGIN
330: len := pidl.ptslen(seq);
331: IF (len >= 1) THEN
332: etext(pidl.ptgend(seq, 0));
333: len := len - 1;
334: FOR i IN 1..len LOOP

Line 332: etext(pidl.ptgend(seq, 0));

328: len INTEGER;
329: BEGIN
330: len := pidl.ptslen(seq);
331: IF (len >= 1) THEN
332: etext(pidl.ptgend(seq, 0));
333: len := len - 1;
334: FOR i IN 1..len LOOP
335: rv := rv || spc;
336: etext(pidl.ptgend(seq, i));

Line 336: etext(pidl.ptgend(seq, i));

332: etext(pidl.ptgend(seq, 0));
333: len := len - 1;
334: FOR i IN 1..len LOOP
335: rv := rv || spc;
336: etext(pidl.ptgend(seq, i));
337: END LOOP;
338: END IF;
339: END;
340:

Line 345: nkind pidl.ptnty;

341: --------------------
342: -- etext:
343: --------------------
344: PROCEDURE etext(n ptnod) IS
345: nkind pidl.ptnty;
346: BEGIN
347: IF (n IS NOT NULL) THEN
348: nkind := pidl.ptkin(n);
349: -- simple expr

Line 348: nkind := pidl.ptkin(n);

344: PROCEDURE etext(n ptnod) IS
345: nkind pidl.ptnty;
346: BEGIN
347: IF (n IS NOT NULL) THEN
348: nkind := pidl.ptkin(n);
349: -- simple expr
350: IF (nkind = diana.di_u_nam OR nkind = diana.d_used_b
351: OR nkind = diana.di_u_blt OR nkind = diana.di_funct
352: OR nkind = diana.di_proc OR nkind = diana.di_packa

Line 414: DECLARE seq pidl.ptseqnd := diana.as_list(diana.as_p_ass(n));

410: -- but aren't needed.
411:
412: -- implicit conversion
413: ELSIF (nkind = diana.d_parm_c) THEN
414: DECLARE seq pidl.ptseqnd := diana.as_list(diana.as_p_ass(n));
415: BEGIN
416: etext(last_elt(seq));
417: END;
418:

Line 431: IF (pidl.ptkin(args) <> diana.ds_param) THEN

427: -- d_f_call
428: ELSIF (nkind = diana.d_f_call) THEN
429: DECLARE args ptnod := diana.as_p_ass(n);
430: BEGIN
431: IF (pidl.ptkin(args) <> diana.ds_param) THEN
432: -- ordinary function call
433: etext(diana.a_name(n));
434: etext(args);
435: ELSE -- operator functions, determine if unary or n-ary

Line 436: DECLARE s pidl.ptseqnd := diana.as_list(args);

432: -- ordinary function call
433: etext(diana.a_name(n));
434: etext(args);
435: ELSE -- operator functions, determine if unary or n-ary
436: DECLARE s pidl.ptseqnd := diana.as_list(args);
437: namenode ptnod := diana.a_name(n);
438: BEGIN
439: IF (pidl.ptslen(s) = 1) THEN -- unary
440: etext(namenode);

Line 439: IF (pidl.ptslen(s) = 1) THEN -- unary

435: ELSE -- operator functions, determine if unary or n-ary
436: DECLARE s pidl.ptseqnd := diana.as_list(args);
437: namenode ptnod := diana.a_name(n);
438: BEGIN
439: IF (pidl.ptslen(s) = 1) THEN -- unary
440: etext(namenode);
441: rv := rv || ' ';
442: etext(pidl.ptgend(s, 0));
443: ELSE exprtext(namenode, rv); listtext(s, rv);

Line 442: etext(pidl.ptgend(s, 0));

438: BEGIN
439: IF (pidl.ptslen(s) = 1) THEN -- unary
440: etext(namenode);
441: rv := rv || ' ';
442: etext(pidl.ptgend(s, 0));
443: ELSE exprtext(namenode, rv); listtext(s, rv);
444: END IF;
445: END;
446: END IF;

Line 471: DECLARE seq pidl.ptseqnd := diana.as_list(n);

467: rv := rv || 'or';
468:
469: ELSIF (nkind = diana.ds_id) THEN -- idList
470: -- listText(diana.as_list(n), ','); causes PL/SQL Check #21037.
471: DECLARE seq pidl.ptseqnd := diana.as_list(n);
472: BEGIN
473: rv := rv || coatname(diana.l_symrep(last_elt(seq)));
474: END;
475:

Line 477: DECLARE seq pidl.ptseqnd := diana.as_list(n);

473: rv := rv || coatname(diana.l_symrep(last_elt(seq)));
474: END;
475:
476: ELSIF (nkind = diana.ds_d_ran) THEN
477: DECLARE seq pidl.ptseqnd := diana.as_list(n);
478: x ptnod;
479: BEGIN
480: x := last_elt(seq);
481: etext(diana.a_name(x));

Line 525: DECLARE seq pidl.ptseqnd := diana.as_list(n);

521: etext(diana.a_constd(n));
522: ELSIF (nkind = diana.d_r_) THEN -- record type
523: rv := rv || 'record (';
524: -- listText(diana.as_list(n), ','); causes PL/SQL Check #21037.
525: DECLARE seq pidl.ptseqnd := diana.as_list(n);
526: BEGIN
527: listtext(seq, ', ');
528: END;
529: rv := rv || ')';

Line 623: nodekind pidl.ptnty;

619: pname IN OUT VARCHAR2,
620: returnval IN OUT VARCHAR2,
621: flags VARCHAR2,
622: stext IN OUT VARCHAR2) IS
623: nodekind pidl.ptnty;
624: leftchild ptnod;
625: rightchild ptnod;
626: returntypenode ptnod;
627:

Line 631: PROCEDURE genparmtext(parmseq pidl.ptseqnd) IS

627:
628: --------------------
629: -- genParmText
630: --------------------
631: PROCEDURE genparmtext(parmseq pidl.ptseqnd) IS
632: -- append text for param list sText
633: parmnum NATURAL;
634: k ptnod;
635: knd pidl.ptnty;

Line 635: knd pidl.ptnty;

631: PROCEDURE genparmtext(parmseq pidl.ptseqnd) IS
632: -- append text for param list sText
633: parmnum NATURAL;
634: k ptnod;
635: knd pidl.ptnty;
636: BEGIN
637: parmnum := pidl.ptslen(parmseq);
638: IF (parmnum > 0) THEN
639: stext := stext || ' (';

Line 637: parmnum := pidl.ptslen(parmseq);

633: parmnum NATURAL;
634: k ptnod;
635: knd pidl.ptnty;
636: BEGIN
637: parmnum := pidl.ptslen(parmseq);
638: IF (parmnum > 0) THEN
639: stext := stext || ' (';
640: FOR i IN 1 .. parmnum LOOP
641: k := pidl.ptgend(parmseq, i-1);

Line 641: k := pidl.ptgend(parmseq, i-1);

637: parmnum := pidl.ptslen(parmseq);
638: IF (parmnum > 0) THEN
639: stext := stext || ' (';
640: FOR i IN 1 .. parmnum LOOP
641: k := pidl.ptgend(parmseq, i-1);
642: assert(k IS NOT NULL);
643: stext := stext || idname(diana.as_id(k)) || ' ';
644: knd := pidl.ptkin(k);
645: IF (knd = diana.d_out) THEN

Line 644: knd := pidl.ptkin(k);

640: FOR i IN 1 .. parmnum LOOP
641: k := pidl.ptgend(parmseq, i-1);
642: assert(k IS NOT NULL);
643: stext := stext || idname(diana.as_id(k)) || ' ';
644: knd := pidl.ptkin(k);
645: IF (knd = diana.d_out) THEN
646: stext := stext || 'out ';
647: ELSIF (knd = diana.d_in_out) THEN
648: stext := stext || 'in out ';

Line 686: nodekind := pidl.ptkin(leftchild);

682: returnval := '';
683: assert(n IS NOT NULL);
684: leftchild := diana.a_d_(n);
685: assert(leftchild IS NOT NULL);
686: nodekind := pidl.ptkin(leftchild);
687:
688: rightchild := diana.a_header(n);
689: IF (nodekind = diana.di_funct OR nodekind = diana.d_def_op) THEN
690: stext := stext || 'function ';