/****************************************/
/*      HAPPy Pascal compiler           */
/*         P-code ニーモック            */
/*           header                     */
/*                                      */
/*   Copyright (c) H.Asano 1992,1994.   */
/****************************************/

/****** P-code ニーモニック 定義
    アルファベット順でなくても構わないけど とりあえず順番に) ******/

enum pcdmnc {
             iABI,  /* abolute integer                      */
             iABR,  /* abolute real                         */
             iADI,  /* add integers                         */
             iADR,  /* add reals                            */
             iAND,  /* logical and                          */
             iATN,  /* arctan                               */
             iBAS,  /* load base mark address               */
             iCHK,  /* check value between bounds           */
             iCHR,  /* chr                                  */
             iCKA,  /* check address                        */
             iCOS,  /* cos                                  */
             iCUI,  /* call user procedure indirect         */
             iCUP,  /* call user procedure                  */
             iDEC,  /* decrement                            */
             iDIF,  /* difference                           */
             iDIS,  /* dispose                              */
             iDVI,  /* divide integers                      */
             iDVR,  /* divide reals                         */
             iEJP,  /* extra block jump                     */
             iENT,  /* enter procedure                      */
             iEOF,  /* eof                                  */
             iEOL,  /* eoln                                 */
             iEQU,  /* equal                                */
             iEXP,  /* exp                                  */
             iFJP,  /* jump on false                        */
             iFLO,  /* float integer to real                */
             iFLT,  /* float integer to real                */
             iGEQ,  /* grater than equal                    */
             iGET,  /* get                                  */
             iGRT,  /* grater than                          */
             iINC,  /* increment                            */
             iIND,  /* indexed fetch                        */
             iINN,  /* in operator                          */
             iINT,  /* intersection                         */
             iIOR,  /* logical inclusive or                 */
             iIXA,  /* indeced address                      */
             iLAO,  /* load base-level address              */
             iLAP,  /* load address of procedure            */
             iLCA,  /* load address of constant             */
             iLDA,  /* load level p address                 */
             iLDC,  /* load constant                        */
             iLDO,  /* load contents of base-level address  */
             iLEQ,  /* less than equal                      */
             iLES,  /* less than                            */
             iLOD,  /* load contents of address at level p  */
             iLOG,  /* ln                                   */
             iMMS,  /* make multiple set                    */
             iMOD,  /* modulo                               */
             iMOV,  /* move                                 */
             iMPI,  /* mulutiple integers                   */
             iMPR,  /* mulutiple reals                      */
             iMSI,  /* mask stack indirect                  */
             iMST,  /* mark stack                           */
             iNEQ,  /* not equal                            */
             iNEW,  /* new                                  */
             iNGI,  /* negative integer                     */
             iNGR,  /* negative real                        */
             iNOT,  /* not                                  */
             iODD,  /* odd                                  */
             iORD,  /* ord                                  */
             iPGE,  /* page                                 */
             iPUT,  /* put                                  */
             iRDC,  /* read char                            */
             iRDI,  /* read integer                         */
             iRDR,  /* read real                            */
             iRET,  /* return from procedure or function    */
             iRLN,  /* readln                               */
             iROU,  /* round                                */
             iRST,  /* reset                                */
             iRWT,  /* rewrite                              */
             iSBI,  /* subtract integers                    */
             iSBR,  /* subtract reals                       */
             iSGS,  /* create singleton set                 */
             iSIN,  /* sin                                  */
             iSQI,  /* square integer                       */
             iSQR,  /* square real                          */
             iSQT,  /* sqrt                                 */
             iSRO,  /* store at base-level address          */
             iSTO,  /* store indirect                       */
             iSTP,  /* stop                                 */
             iSTR,  /* store contents at address at level p */
             iTGT,  /* get text                             */
             iTPT,  /* put text                             */
             iTRA,  /* trace of execution                   */
             iTRC,  /* truncate                             */
             iTRS,  /* reset text                           */
             iTRW,  /* rewrite text                         */
             iUJC,  /* check uncondition jump               */
             iUJP,  /* uncondition jump                     */
             iUNI,  /* union                                */
             iWLN,  /* writeln                              */
             iWRB,  /* write boolean                        */
             iWRC,  /* write char                           */
             iWRF,  /* write real fix                       */
             iWRI,  /* write integer                        */
             iWRR,  /* write real                           */
             iWRS,  /* write string                         */
             iXJP,  /* indexed jump                         */
             iZZZ   /* 終わり                               */
} ;
