diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2015-07-08 20:46:52 -0400 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2015-07-08 20:46:52 -0400 |
commit | fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch) | |
tree | bdda434976bc09c864f2e4fa6f16ba1952b1e555 /noao/digiphot/photcal/parser/prconv.x | |
download | iraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz |
Initial commit
Diffstat (limited to 'noao/digiphot/photcal/parser/prconv.x')
-rw-r--r-- | noao/digiphot/photcal/parser/prconv.x | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/noao/digiphot/photcal/parser/prconv.x b/noao/digiphot/photcal/parser/prconv.x new file mode 100644 index 00000000..358165a6 --- /dev/null +++ b/noao/digiphot/photcal/parser/prconv.x @@ -0,0 +1,72 @@ +.help prconv +Parser symbol conversion + +These procedures convert SYMTAB pointers into symbol offsets and viceversa, +and string offsets into character pointers (when applicable). +These procedures are called by the prget and prput procedures in order to +perform the appropiate type conversions. + +.nf +Entry points: + +int = pr_offset (sym) Convert SYMTAB pointer into symbol offset +pointer = pr_pointer (offset) Convert symbol offset into SYMTAB pointer +pointer = pr_charp (offset) Convert string offset into character pointer +.fi +.endhelp + +include "../lib/parser.h" + + +# PR_OFFSET - Convert SYMTAB pointer into an offset + +int procedure pr_offset (sym) + +pointer sym # symbol pointer + +pointer strefstab() +pointer pr_getp() + +begin + # Check pointer + if (sym == NULL) + return (INDEFI) + else + return (sym - strefstab (pr_getp (SYMTABLE), 0)) +end + + +# PR_POINTER - Convert an offset into a SYMTAB pointer + +pointer procedure pr_pointer (offset) + +int offset # symbol offset + +pointer strefstab() +pointer pr_getp() + +begin + # Check offset + if (IS_INDEFI (offset)) + return (NULL) + else + return (strefstab (pr_getp (SYMTABLE), offset)) +end + + +# PR_CHARP - Convert string offset into character pointer + +pointer procedure pr_charp (offset) + +int offset # string offset + +pointer strefsbuf() +pointer pr_getp() + +begin + # Check offset + if (IS_INDEFI (offset)) + return (NULL) + else + return (strefsbuf (pr_getp (SYMTABLE), offset)) +end |