home *** CD-ROM | disk | FTP | other *** search
- /* This code is generated by pOt. */
-
- #include <pOtRTL.h>
- #include "Files.h"
- #include "Strings.h"
- #include "COCS.h"
-
- #include "hi.COCO"
-
-
- struct pOt__tag_0_COCO {
- pOt__ArrTypDsc *td;
- pOt_CHAR arr[0x2L];
- } ;
- pOt__ArrTypDsc pOt__td_0_COCO= {
- 1,
- 0x2L, sizeof(pOt_CHAR)
- };
-
- pOt_BOOLEAN pOt_fold_COCO, pOt_linenum_COCO, pOt_macwrap_COCO, pOt_unxwrap_COCO;
- static struct pOt__tag_0_COCO pOt_NL_COCO;
- static pOt_INTEGER pOt_NLlen_COCO;
- static pOt_File_Files pOt_ofile_COCO;
- static struct pOt__tag_2_Files pOt_Output_COCO;
- static pOt_INTEGER pOt_indlevel_COCO;
- static pOt_BOOLEAN pOt_newline_COCO;
- static pOt_LONGINT pOt_txtline_COCO;
- static pOt_INTEGER pOt_cpos_COCO;
-
- static struct {void *next, *vars[0x2];} pOt__gc_ptrs = {pOt_NIL,{
- &pOt_ofile_COCO,
- pOt_NIL
- }};
- static struct {void *next, *vars[0x2];} pOt__gc_strs = {&pOt__gc_ptrs,{
- &pOt_Output_COCO,
- pOt_NIL
- }};
-
-
-
-
- extern pOt_LONGINT pOt_Size_COCO()
- {
- pOt_LONGINT pOt__retval;
- int pOt__gc_enabled_prev;
- pOt__gc_enabled_prev=pOt__gc_enabled;
- pOt__gc_enabled=0;
-
- pOt__retval =(pOt_LONGINT)((pOt_LONGINT)pOt__addchk(__FILE__,__LINE__,(pOt_LONGINT)(pOt_Pos_Files((struct pOt__tag_2_Files*)&pOt_Output_COCO)),(pOt_LONGINT)(1),6));
- goto pOt__Epilogue;
-
- pOt__halt(__FILE__,__LINE__,0x11);
- pOt__Epilogue:;
- pOt__gc_enabled=pOt__gc_enabled_prev;
- return pOt__retval;
- }
-
-
-
-
- extern void pOt_Open_COCO
- #if pOt__ANSI_C
- (pOt__DynArr *pOt_name)
- #else
- (pOt_name)
- pOt__DynArr *pOt_name;
-
- #endif
- {
- struct {void*next;} pOt__gc_ptrs;
- pOt__gc_ptrs.next = pOt__gc_root;
-
- pOt_ofile_COCO=(struct pOt__tag_1_Files*)(pOt_New_Files(pOt__dup_arr(__FILE__,__LINE__,(pOt__ArrTypDsc**)&(*pOt_name))));
- if(( pOt_ofile_COCO==pOt_NIL)) {
- pOt__halt(__FILE__,__LINE__,33);
- }
- pOt_Set_Files((struct pOt__tag_2_Files*)&pOt_Output_COCO,(struct pOt__tag_1_Files*)(pOt_ofile_COCO),(pOt_LONGINT)(0));
- pOt_indlevel_COCO=(pOt_INTEGER)(0);
- pOt_txtline_COCO=(pOt_LONGINT)(1);
- pOt_newline_COCO=(pOt_BOOLEAN)1;
- pOt_cpos_COCO=(pOt_INTEGER)(0);
- pOt_NLlen_COCO=(pOt_INTEGER)(0);
- if(pOt_macwrap_COCO) {
- pOt_NL_COCO.arr[pOt__inxchk(__FILE__,__LINE__,0x2, pOt_NLlen_COCO)]='\15';
- pOt_NLlen_COCO+=(1);
- }
- if(pOt_unxwrap_COCO) {
- pOt_NL_COCO.arr[pOt__inxchk(__FILE__,__LINE__,0x2, pOt_NLlen_COCO)]='\12';
- pOt_NLlen_COCO+=(1);
- }
- if(( pOt_NLlen_COCO==((pOt_INTEGER)(0)))) {
- pOt_NL_COCO.arr[pOt__inxchk(__FILE__,__LINE__,0x2, pOt_NLlen_COCO)]='\12';
- pOt_NLlen_COCO+=(1);
- }
-
- pOt__Epilogue:;
- pOt__gc_root=(struct pOt__tag_gc_node*)pOt__gc_ptrs.next;
- }
-
-
-
-
- extern void pOt_Close_COCO()
- {
- struct {void*next;} pOt__gc_ptrs;
- pOt__gc_ptrs.next = pOt__gc_root;
-
- pOt_Set_Files((struct pOt__tag_2_Files*)&pOt_Output_COCO,(struct pOt__tag_1_Files*)(pOt_NIL),(pOt_LONGINT)(0));
- pOt_Close_Files((struct pOt__tag_1_Files*)(pOt_ofile_COCO));
-
- pOt__Epilogue:;
- pOt__gc_root=(struct pOt__tag_gc_node*)pOt__gc_ptrs.next;
- }
-
-
-
-
- extern void pOt_Purge_COCO()
- {
- struct {void*next;} pOt__gc_ptrs;
- pOt__gc_ptrs.next = pOt__gc_root;
-
- pOt_Set_Files((struct pOt__tag_2_Files*)&pOt_Output_COCO,(struct pOt__tag_1_Files*)(pOt_NIL),(pOt_LONGINT)(0));
- pOt_Purge_Files((struct pOt__tag_1_Files*)(pOt_ofile_COCO));
-
- pOt__Epilogue:;
- pOt__gc_root=(struct pOt__tag_gc_node*)pOt__gc_ptrs.next;
- }
-
-
-
-
- extern void pOt_Indent_COCO()
- {
- struct {void*next;} pOt__gc_ptrs;
- pOt__gc_ptrs.next = pOt__gc_root;
-
- pOt_indlevel_COCO+=(2);
-
- pOt__Epilogue:;
- pOt__gc_root=(struct pOt__tag_gc_node*)pOt__gc_ptrs.next;
- }
-
-
-
-
- extern void pOt_Undent_COCO()
- {
- struct {void*next;} pOt__gc_ptrs;
- pOt__gc_ptrs.next = pOt__gc_root;
-
- if(( pOt_indlevel_COCO>=((pOt_INTEGER)(2)))) {
- pOt_indlevel_COCO-=(2);
- }
-
- pOt__Epilogue:;
- pOt__gc_root=(struct pOt__tag_gc_node*)pOt__gc_ptrs.next;
- }
-
-
-
-
- extern void pOt_Separate_COCO()
- {
- struct {void*next;} pOt__gc_ptrs;
- pOt__gc_ptrs.next = pOt__gc_root;
-
- pOt_Write_Files((struct pOt__tag_2_Files*)&pOt_Output_COCO,' ');
-
- pOt__Epilogue:;
- pOt__gc_root=(struct pOt__tag_gc_node*)pOt__gc_ptrs.next;
- }
-
-
- struct pOt__tag_1_COCO {
- pOt__ArrTypDsc *td;
- pOt_CHAR arr[0x7L];
- } ;
- static pOt__ArrTypDsc pOt__td_1_COCO= {
- 1,
- 0x7L, sizeof(pOt_CHAR)
- };
- struct pOt__tag_2_COCO {
- pOt__ArrTypDsc *td;
- pOt_CHAR arr[0xBL];
- } ;
- static pOt__ArrTypDsc pOt__td_2_COCO= {
- 1,
- 0xBL, sizeof(pOt_CHAR)
- };
-
-
- extern void pOt_Wrap_COCO()
- {
- pOt_INTEGER pOt_i;
- struct pOt__tag_1_COCO pOt_linepgm;
- struct pOt__tag_2_COCO pOt_lineno;
- struct {void*next;} pOt__gc_ptrs;
- pOt__gc_ptrs.next = pOt__gc_root;
- pOt__init_var((pOt__TypDsc**)&pOt_linepgm,(pOt__TypDsc*)&pOt__td_1_COCO);
- pOt__init_var((pOt__TypDsc**)&pOt_lineno,(pOt__TypDsc*)&pOt__td_2_COCO);
-
- pOt_newline_COCO=(pOt_BOOLEAN)1;
- pOt_WriteBytes_Files((struct pOt__tag_2_Files*)&pOt_Output_COCO,pOt__make_byte_arr((void*)&pOt_NL_COCO,1,0),(pOt_LONGINT)(pOt_NLlen_COCO));
- if((pOt_linenum_COCO&&((pOt_txtline_COCO!=pOt_txtpos_COCS.pOt_line)))) {
- pOt__arr_assign((pOt__ArrTypDsc**)& pOt_linepgm,(pOt__ArrTypDsc**)&(*pOt__set_str_td(&pOt__strcon_buf[0x0L],&pOt__td_1_COCO)));
- pOt_FromLInt_Strings((pOt_LONGINT)(pOt_txtpos_COCS.pOt_line),10,(pOt__ArrTypDsc**)&pOt_lineno);
- pOt_WriteBytes_Files((struct pOt__tag_2_Files*)&pOt_Output_COCO,pOt__make_byte_arr((void*)&pOt_linepgm,1,0),(pOt_LONGINT)(pOt_Length_Strings(pOt__dup_arr(__FILE__,__LINE__,(pOt__ArrTypDsc**)&pOt_linepgm))));
- pOt_WriteBytes_Files((struct pOt__tag_2_Files*)&pOt_Output_COCO,pOt__make_byte_arr((void*)&pOt_lineno,1,0),(pOt_LONGINT)(pOt_Length_Strings(pOt__dup_arr(__FILE__,__LINE__,(pOt__ArrTypDsc**)&pOt_lineno))));
- pOt_Write_Files((struct pOt__tag_2_Files*)&pOt_Output_COCO,' ');
- pOt_Write_Files((struct pOt__tag_2_Files*)&pOt_Output_COCO,'\"');
- pOt_WriteBytes_Files((struct pOt__tag_2_Files*)&pOt_Output_COCO,pOt__make_byte_arr((void*)&pOt_txtpos_COCS.pOt_name,1,0),(pOt_LONGINT)(pOt_Length_Strings(pOt__dup_arr(__FILE__,__LINE__,(pOt__ArrTypDsc**)&pOt_txtpos_COCS.pOt_name))));
- pOt_Write_Files((struct pOt__tag_2_Files*)&pOt_Output_COCO,'\"');
- pOt_WriteBytes_Files((struct pOt__tag_2_Files*)&pOt_Output_COCO,pOt__make_byte_arr((void*)&pOt_NL_COCO,1,0),(pOt_LONGINT)(pOt_NLlen_COCO));
- pOt_txtline_COCO=(pOt_LONGINT)(pOt_txtpos_COCS.pOt_line);
- }
- pOt_txtline_COCO+=(1);
-
- pOt__Epilogue:;
- pOt__gc_root=(struct pOt__tag_gc_node*)pOt__gc_ptrs.next;
- }
-
-
-
-
- extern void pOt_PutSeq_COCO
- #if pOt__ANSI_C
- (pOt__DynArr *pOt_s)
- #else
- (pOt_s)
- pOt__DynArr *pOt_s;
-
- #endif
- {
- pOt_INTEGER pOt_i, pOt_j;
- struct {void*next;} pOt__gc_ptrs;
- pOt__gc_ptrs.next = pOt__gc_root;
-
- if(pOt_newline_COCO) {
- pOt_newline_COCO=(pOt_BOOLEAN)0;
- pOt_i=(pOt_INTEGER)(0);
- for(;;) {
- if(( pOt_i!=pOt_indlevel_COCO)); else break;
- pOt_Write_Files((struct pOt__tag_2_Files*)&pOt_Output_COCO,' ');
- pOt_i+=(1);
- }
- pOt_cpos_COCO=(pOt_INTEGER)(pOt_i);
- }
- pOt_i=(pOt_INTEGER)(0);
- pOt_j=(pOt_INTEGER)(0);
- for(;;) {
- if(((unsigned char) (*((pOt_CHAR*)(((char *)pOt_s+sizeof(pOt__ArrTypDsc*)+sizeof(pOt_CHAR)*pOt__inxchk(__FILE__,__LINE__,(*(pOt_s))->nofel,pOt_i)))))==(unsigned char)' ')); else break;
- pOt_i+=(1);
- }
- if(pOt_fold_COCO) {
- for(;;) {
- if(( pOt_i!=pOt_j)) {
- (*((pOt_CHAR*)(((char *)pOt_s+sizeof(pOt__ArrTypDsc*)+sizeof(pOt_CHAR)*pOt__inxchk(__FILE__,__LINE__,(*(pOt_s))->nofel,pOt_j)))))=(*((pOt_CHAR*)(((char *)pOt_s+sizeof(pOt__ArrTypDsc*)+sizeof(pOt_CHAR)*pOt__inxchk(__FILE__,__LINE__,(*(pOt_s))->nofel,pOt_i)))));
- }
- if(((unsigned char) (*((pOt_CHAR*)(((char *)pOt_s+sizeof(pOt__ArrTypDsc*)+sizeof(pOt_CHAR)*pOt__inxchk(__FILE__,__LINE__,(*(pOt_s))->nofel,pOt_j)))))==(unsigned char)'\0')) {
- goto pOt__LoopLabel_1;
- }
- pOt_i+=(1);
- pOt_j+=(1);
- if((((pOt_cpos_COCO>=((pOt_INTEGER)(80))))&&(((((unsigned char)(*((pOt_CHAR*)(((char *)pOt_s+sizeof(pOt__ArrTypDsc*)+sizeof(pOt_CHAR)*pOt__inxchk(__FILE__,__LINE__,(*(pOt_s))->nofel,pOt_i)))))==(unsigned char)'('))||(((unsigned char)(*((pOt_CHAR*)(((char *)pOt_s+sizeof(pOt__ArrTypDsc*)+sizeof(pOt_CHAR)*pOt__inxchk(__FILE__,__LINE__,(*(pOt_s))->nofel,pOt_i)))))==(unsigned char)')')))))) {
- pOt_WriteBytes_Files((struct pOt__tag_2_Files*)&pOt_Output_COCO,pOt__make_byte_arr((void*)&(*pOt_s),1,0),(pOt_LONGINT)(pOt_j));
- pOt_Write_Files((struct pOt__tag_2_Files*)&pOt_Output_COCO,'\\');
- pOt_WriteBytes_Files((struct pOt__tag_2_Files*)&pOt_Output_COCO,pOt__make_byte_arr((void*)&pOt_NL_COCO,1,0),(pOt_LONGINT)(pOt_NLlen_COCO));
- pOt_j=(pOt_INTEGER)(0);
- pOt_cpos_COCO=(pOt_INTEGER)(0);
- } else {
- pOt_cpos_COCO+=(1);
- }
- }
- pOt__LoopLabel_1:;
- } else if(( pOt_i!=pOt_j)) {
- for(;;) {
- (*((pOt_CHAR*)(((char *)pOt_s+sizeof(pOt__ArrTypDsc*)+sizeof(pOt_CHAR)*pOt__inxchk(__FILE__,__LINE__,(*(pOt_s))->nofel,pOt_j)))))=(*((pOt_CHAR*)(((char *)pOt_s+sizeof(pOt__ArrTypDsc*)+sizeof(pOt_CHAR)*pOt__inxchk(__FILE__,__LINE__,(*(pOt_s))->nofel,pOt_i)))));
- if(((unsigned char) (*((pOt_CHAR*)(((char *)pOt_s+sizeof(pOt__ArrTypDsc*)+sizeof(pOt_CHAR)*pOt__inxchk(__FILE__,__LINE__,(*(pOt_s))->nofel,pOt_j)))))==(unsigned char)'\0')) {
- goto pOt__LoopLabel_2;
- }
- pOt_i+=(1);
- pOt_j+=(1);
- }
- pOt__LoopLabel_2:;
- } else {
- pOt_j=(pOt_INTEGER)((pOt_LONGINT)pOt__rngchk_i(__FILE__,__LINE__,pOt_Length_Strings(pOt__dup_arr(__FILE__,__LINE__,(pOt__ArrTypDsc**)&(*pOt_s)))));
- }
- pOt_WriteBytes_Files((struct pOt__tag_2_Files*)&pOt_Output_COCO,pOt__make_byte_arr((void*)&(*pOt_s),1,0),(pOt_LONGINT)(pOt_j));
-
- pOt__Epilogue:;
- pOt__gc_root=(struct pOt__tag_gc_node*)pOt__gc_ptrs.next;
- pOt__rm_par((pOt__TypDsc**)pOt_s);
- }
-
-
-
-
- extern void pOt_PutPP_COCO
- #if pOt__ANSI_C
- (pOt__DynArr *pOt_s)
- #else
- (pOt_s)
- pOt__DynArr *pOt_s;
-
- #endif
- {
- pOt_INTEGER pOt_i, pOt_j;
- struct {void*next;} pOt__gc_ptrs;
- pOt__gc_ptrs.next = pOt__gc_root;
-
- pOt_Wrap_COCO();
- pOt_Write_Files((struct pOt__tag_2_Files*)&pOt_Output_COCO,'#');
- if(( pOt_indlevel_COCO!=((pOt_INTEGER)(0)))) {
- pOt_i=(pOt_INTEGER)(2);
- }
- for(;;) {
- if(( pOt_i!=pOt_indlevel_COCO)); else break;
- pOt_Write_Files((struct pOt__tag_2_Files*)&pOt_Output_COCO,' ');
- pOt_i+=(1);
- }
- pOt_WriteBytes_Files((struct pOt__tag_2_Files*)&pOt_Output_COCO,pOt__make_byte_arr((void*)&(*pOt_s),1,0),(pOt_LONGINT)(pOt_Length_Strings(pOt__dup_arr(__FILE__,__LINE__,(pOt__ArrTypDsc**)&(*pOt_s)))));
- pOt_Wrap_COCO();
-
- pOt__Epilogue:;
- pOt__gc_root=(struct pOt__tag_gc_node*)pOt__gc_ptrs.next;
- pOt__rm_par((pOt__TypDsc**)pOt_s);
- }
-
-
- struct pOt__tag_3_COCO {
- pOt__ArrTypDsc *td;
- pOt_CHAR arr[0x4L];
- } ;
- static pOt__ArrTypDsc pOt__td_3_COCO= {
- 1,
- 0x4L, sizeof(pOt_CHAR)
- };
-
-
- extern void pOt_PutComment_COCO
- #if pOt__ANSI_C
- (pOt__DynArr *pOt_s)
- #else
- (pOt_s)
- pOt__DynArr *pOt_s;
-
- #endif
- {
- pOt_INTEGER pOt_i;
- struct pOt__tag_3_COCO pOt_str;
- struct {void*next;} pOt__gc_ptrs;
- pOt__gc_ptrs.next = pOt__gc_root;
- pOt__init_var((pOt__TypDsc**)&pOt_str,(pOt__TypDsc*)&pOt__td_3_COCO);
-
- pOt_i=(pOt_INTEGER)(0);
- pOt__arr_assign((pOt__ArrTypDsc**)& pOt_str,(pOt__ArrTypDsc**)&(*pOt__set_str_td(&pOt__strcon_buf[0xCL],&pOt__td_3_COCO)));
- pOt_WriteBytes_Files((struct pOt__tag_2_Files*)&pOt_Output_COCO,pOt__make_byte_arr((void*)&pOt_str,1,0),(pOt_LONGINT)(pOt_Length_Strings(pOt__dup_arr(__FILE__,__LINE__,(pOt__ArrTypDsc**)&pOt_str))));
- for(;;) {
- if(((unsigned char) (*((pOt_CHAR*)(((char *)pOt_s+sizeof(pOt__ArrTypDsc*)+sizeof(pOt_CHAR)*pOt__inxchk(__FILE__,__LINE__,(*(pOt_s))->nofel,pOt_i)))))!=(unsigned char)'\0')); else break;
- pOt_Write_Files((struct pOt__tag_2_Files*)&pOt_Output_COCO,(*((pOt_CHAR*)(((char *)pOt_s+sizeof(pOt__ArrTypDsc*)+sizeof(pOt_CHAR)*pOt__inxchk(__FILE__,__LINE__,(*(pOt_s))->nofel,pOt_i))))));
- if(((((unsigned char)(*((pOt_CHAR*)(((char *)pOt_s+sizeof(pOt__ArrTypDsc*)+sizeof(pOt_CHAR)*pOt__inxchk(__FILE__,__LINE__,(*(pOt_s))->nofel,pOt_i)))))==(unsigned char)'*'))&&(((unsigned char)(*((pOt_CHAR*)(((char *)pOt_s+sizeof(pOt__ArrTypDsc*)+sizeof(pOt_CHAR)*pOt__inxchk(__FILE__,__LINE__,(*(pOt_s))->nofel,(pOt_INTEGER)pOt__addchk(__FILE__,__LINE__,(pOt_LONGINT)(pOt_i),(pOt_LONGINT)(1),5))))))==(unsigned char)'/')))) {
- pOt_Write_Files((struct pOt__tag_2_Files*)&pOt_Output_COCO,'@');
- }
- pOt_i+=(1);
- }
- pOt__arr_assign((pOt__ArrTypDsc**)& pOt_str,(pOt__ArrTypDsc**)&(*pOt__set_str_td(&pOt__strcon_buf[0x14L],&pOt__td_3_COCO)));
- pOt_WriteBytes_Files((struct pOt__tag_2_Files*)&pOt_Output_COCO,pOt__make_byte_arr((void*)&pOt_str,1,0),(pOt_LONGINT)(pOt_Length_Strings(pOt__dup_arr(__FILE__,__LINE__,(pOt__ArrTypDsc**)&pOt_str))));
-
- pOt__Epilogue:;
- pOt__gc_root=(struct pOt__tag_gc_node*)pOt__gc_ptrs.next;
- pOt__rm_par((pOt__TypDsc**)pOt_s);
- }
-
- void pOt_COCO__body()
- {
- static int pOt_COCO__loaded=0;
- if(!pOt_COCO__loaded){
- pOt_COCO__loaded=1;
-
- pOt_Files__body();
- pOt_Strings__body();
- pOt_COCS__body();
-
- pOt__gc_ptrs.next=pOt__gc_root;
- pOt__gc_root=(struct pOt__tag_gc_node*)&pOt__gc_strs;
-
- pOt__init_var((pOt__TypDsc**)&pOt_NL_COCO,(pOt__TypDsc*)&pOt__td_0_COCO);
- pOt_ofile_COCO=pOt_NIL;
- pOt__init_var((pOt__TypDsc**)&pOt_Output_COCO,(pOt__TypDsc*)&pOt__td_2_Files);
-
- pOt_fold_COCO=(pOt_BOOLEAN)0;
- pOt_linenum_COCO=(pOt_BOOLEAN)0;
- pOt_macwrap_COCO=(pOt_BOOLEAN)0;
- pOt_unxwrap_COCO=(pOt_BOOLEAN)1;
-
- pOt__Epilogue:;
- }
- }
-