%top /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- * * The contents of this file are subject to the Netscape Public * License Version 1.1 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.mozilla.org/NPL/ * * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is Netscape * Communications Corporation. Portions created by Netscape are * Copyright (C) 1998 Netscape Communications Corporation. All * Rights Reserved. * * Contributor(s): */ #include "Burg.h" % %terminals % %startsymbols Control Result Exception Store Vcond Vint Vlong Vfloat Vdouble Vptr Cint Clong Cfloat Cdouble Cptr Tuple % %grammar Vint: coReg_I $1 $ Vlong: coReg_L $1 $ Vfloat: coReg_F $1 $ Vdouble: coReg_D $1 $ Vptr: coReg_A $1 $ Vcond: coReg_C $1 $ Store: coReg_M $1 $ Cint: coReg_I $1 $ Clong: coReg_L $1 $ Cfloat: coReg_F $1 $ Cdouble: coReg_D $1 $ Cptr: coReg_A $1 $ Vint: poConst_I $1 $emConst_I Vlong: poConst_L $1 $emConst_L Vfloat: poConst_F $1 $emConst_F //Vdouble: poConst_D $1 $emConst_D Vptr: poConst_A $1 $emConst_A //Vcond: poConst_C $1 $emConst_C //Store: poBreak(Store) $1 $emBreak Vint: poArg_I $1 $ Vlong: poArg_L $1 $ Vfloat: poArg_F $1 $ Vdouble: poArg_D $1 $ Vptr: poArg_A $1 $ Store: poArg_M $1 $ Result: poResult_I(Vint) $1 $emResult_I //Result: poResult_L(Vlong) $1 $emResult_L Result: poResult_F(Vfloat) $1 $emResult_F //Result: poResult_D(Vdouble) $1 $emResult_D Result: poResult_A(Vptr) $1 $emResult_A Result: poResult_M(Store) $1 $ Control: poIfLt(Vcond) $1 $emIfLt Control: poIfEq(Vcond) $1 $emIfEq Control: poIfLe(Vcond) $1 $emIfLe Control: poIfGt(Vcond) $1 $emIfGt Control: poIfLgt(Vcond) $1 $emIfLgt Control: poIfGe(Vcond) $1 $emIfGe Control: poIfOrd(Vcond) $1 $emIfOrd //Control: poIfUnord(Vcond) $1 $emIfUnord Control: poIfULt(Vcond) $1 $emIfULt Control: poIfUEq(Vcond) $1 $emIfUEq Control: poIfULe(Vcond) $1 $emIfULe Control: poIfUGt(Vcond) $1 $emIfUGt Control: poIfNe(Vcond) $1 $emIfNe Control: poIfUGe(Vcond) $1 $emIfUGe //Control: poSwitch(Vint) $1 $emSwitch Vint: poAnd_I(Vint, Vint) $1 $emAnd_I Vlong: poAnd_L(Vlong, Vlong) $1 $emAnd_L Vint: poOr_I(Vint, Vint) $1 $emOr_I Vlong: poOr_L(Vlong, Vlong) $1 $emOr_L Vint: poXor_I(Vint, Vint) $1 $emXor_I Vlong: poXor_L(Vlong, Vlong) $1 $emXor_L Vint: poAdd_I(Vint, Vint) $1 $emAdd_I //Vlong: poAdd_L(Vlong, Vlong) $1 $emAdd_L Vptr: poAdd_A(Vptr, Vint) $1 $emAdd_A Vptr: poAddU_A(Vptr, Vint) $1 $emAddU_A Vint: poSub_I(Vint, Vint) $1 $emSub_I //Vlong: poSub_L(Vlong, Vlong) $1 $emSub_L Vptr: poSub_A(Vptr, Vint) $1 $emSub_A Vptr: poSubU_A(Vptr, Vint) $1 $emSubU_A Vint: poSubA_I(Vptr, Vptr) $1 $emSubA_I Vint: poMul_I(Vint, Vint) $1 $emMul_I //Vlong: poMul_L(Vlong, Vlong) $1 $emMul_L Vint: poDiv_I(Vint, Vint) $1 $emDiv_I //Vint: poDiv_L(Vlong, Vlong) $1 $emDiv_L Vint: poDivE_I(Vint, Vint) $1 $emDivE_I //Vint: poDivE_L(Vlong, Vlong) $1 $emDivE_L Vint: poDivU_I(Vint, Vint) $1 $emDivU_I //Vint: poDivU_L(Vlong, Vlong) $1 $emDivU_L Vint: poDivUE_I(Vint, Vint) $1 $emDivUE_I //Vint: poDivUE_L(Vlong, Vlong) $1 $emDivUE_L Vint: poMod_I(Vint, Vint) $1 $emMod_I //Vint: poMod_L(Vlong, Vlong) $1 $emMod_L Vint: poModE_I(Vint, Vint) $1 $emModE_I //Vint: poModE_L(Vlong, Vlong) $1 $emModE_L //Vint: poModU_I(Vint, Vint) $1 $emModU_I //Vint: poModU_L(Vlong, Vlong) $1 $emModU_L //Vint: poModUE_I(Vint, Vint) $1 $emModUE_I //Vint: poModUE_L(Vlong, Vlong) $1 $emModUE_L Vint: poShl_I(Vint, Vint) $1 $emShl_I //Vlong: poShl_L(Vlong, Vint) $1 $emShl_L //Vint: poShr_I(Vint, Vint) $1 $emShr_I //Vlong: poShr_L(Vlong, Vint) $1 $emShr_L //Vint: poShrU_I(Vint, Vint) $1 $emShrU_I //Vlong: poShrU_L(Vlong, Vint) $1 $emShrU_L //Vint: poExt_I(Vint, Cint) $1 $emExt_I //Vlong: poExt_L(Vlong, Cint) $1 $emExt_L Vfloat: poFAdd_F(Vfloat, Vfloat) $1 $emFAdd_F //Vdouble: poFAdd_D(Vdouble, Vdouble) $1 $emFAdd_D //Vfloat: poFSub_F(Vfloat, Vfloat) $1 $emFSub_F //Vdouble: poFSub_D(Vdouble, Vdouble) $1 $emFSub_D //Vfloat: poFMul_F(Vfloat, Vfloat) $1 $emFMul_F //Vdouble: poFMul_D(Vdouble, Vdouble) $1 $emFMul_D //Vfloat: poFDiv_F(Vfloat, Vfloat) $1 $emFDiv_F //Vdouble: poFDiv_D(Vdouble, Vdouble) $1 $emFDiv_D //Vfloat: poFRem_F(Vfloat, Vfloat) $1 $emFRem_F //Vdouble: poFRem_D(Vdouble, Vdouble) $1 $emFRem_D //Vint: poConvI_L(Vlong) $1 $emConvI_L //Vlong: poConvL_I(Vint) $1 $emConvL_I //Vint: poFConvI_F(Vfloat) $1 $emFConvI_F //Vint: poFConvI_D(Vdouble) $1 $emFConvI_D //Vlong: poFConvL_F(Vfloat) $1 $emFConvL_F //Vlong: poFConvL_D(Vdouble) $1 $emFConvL_D //Vfloat: poFConvF_I(Vint) $1 $emFConvF_I //Vfloat: poFConvF_L(Vlong) $1 $emFConvF_L //Vfloat: poFConvF_D(Vdouble) $1 $emFConvF_D //Vdouble: poFConvD_I(Vint) $1 $emFConvD_I //Vdouble: poFConvD_L(Vlong) $1 $emFConvD_L //Vdouble: poFConvD_F(Vfloat) $1 $emFConvD_F Vcond: poCmp_I(Vint, Vint) $1 $emCmp_I //Vcond: poCmp_L(Vlong, Vlong) $1 $emCmp_L //Vcond: poCmpU_I(Vint, Vint) $1 $emCmpU_I //Vcond: poCmpU_L(Vlong, Vlong) $1 $emCmpU_L //Vcond: poCmpU_A(Vptr, Vptr) $1 $emCmpU_A //Vcond: poFCmp_F(Vfloat, Vfloat) $1 $emFCmp_F //Vcond: poFCmp_D(Vdouble, Vdouble) $1 $emFCmp_D //Vint: poLt_I(Vcond) $1 $emLt_I //Vint: poEq_I(Vcond) $1 $emEq_I //Vint: poLe_I(Vcond) $1 $emLe_I //Vint: poGt_I(Vcond) $1 $emGt_I //Vint: poLgt_I(Vcond) $1 $emLgt_I //Vint: poGe_I(Vcond) $1 $emGe_I //Vint: poOrd_I(Vcond) $1 $emOrd_I //Vint: poUnord_I(Vcond) $1 $emUnord_I //Vint: poULt_I(Vcond) $1 $emULt_I //Vint: poUEq_I(Vcond) $1 $emUEq_I //Vint: poULe_I(Vcond) $1 $emULe_I //Vint: poUGt_I(Vcond) $1 $emUGt_I //Vint: poNe_I(Vcond) $1 $emNe_I //Vint: poUGe_I(Vcond) $1 $emUGe_I //Vint: poCatL_I(Vcond) $1 $emCatL_I //Vint: poCatG_I(Vcond) $1 $emCatG_I //Vint: poCatCL_I(Vcond) $1 $emCatCL_I //Vint: poCatCG_I(Vcond) $1 $emCatCG_I Exception: poChkNull(Vptr) $1 $emChkNull Exception: poLimit(Vint, Vint) $1 $emLimit Vint: poLd_I(Vptr) $1 $emLd_I //Vlong: poLd_L(Vptr) $1 $emLd_L //Vfloat: poLd_F(Vptr) $1 $emLd_F //Vdouble: poLd_D(Vptr) $1 $emLd_D Vptr: poLd_A(Vptr) $1 $emLd_A //Vint: poLdE_I(Cptr) $1 $emLdE_I //Vlong: poLdE_L(Cptr) $1 $emLdE_L //Vfloat: poLdE_F(Cptr) $1 $emLdE_F //Vdouble: poLdE_D(Cptr) $1 $emLdE_D //Vptr: poLdE_A(Cptr) $1 $emLdE_A //Vint: poLdS_B(Vptr) $1 $emLdS_B //Vint: poLdS_H(Vptr) $1 $emLdS_H //Vint: poLdSE_B(Cptr) $1 $emLdSE_B //Vint: poLdSE_H(Cptr) $1 $emLdSE_H //Vint: poLdU_B(Vptr) $1 $emLdU_B //Vint: poLdU_H(Vptr) $1 $emLdU_H //Vint: poLdUE_B(Cptr) $1 $emLdUE_B //Vint: poLdUE_H(Cptr) $1 $emLdUE_H //Vint: poLdV_I(Vptr) $1 $emLdV_I //Vlong: poLdV_L(Vptr) $1 $emLdV_L //Vfloat: poLdV_F(Vptr) $1 $emLdV_F //Vdouble: poLdV_D(Vptr) $1 $emLdV_D //Vptr: poLdV_A(Vptr) $1 $emLdV_A //Vint: poLdVE_I(Cptr) $1 $emLdVE_I //Vlong: poLdVE_L(Cptr) $1 $emLdVE_L //Vfloat: poLdVE_F(Cptr) $1 $emLdVE_F //Vdouble: poLdVE_D(Cptr) $1 $emLdVE_D //Vptr: poLdVE_A(Cptr) $1 $emLdVE_A Vint: poLd_I(poAdd_A(Vptr, Cint)) $0 $emLd_IRegisterIndirect Vptr: poLd_A(poAdd_A(Vptr, Cint)) $0 $emLd_ARegisterIndirect //Store: poSt_B(Vptr, Vint) $1 $emSt_B //Store: poSt_H(Vptr, Vint) $1 $emSt_H Store: poSt_I(Vptr, Vint) $1 $emSt_I //Store: poSt_L(Vptr, Vlong) $1 $emSt_L //Store: poSt_F(Vptr, Vfloat) $1 $emSt_F //Store: poSt_D(Vptr, Vdouble) $1 $emSt_D //Store: poSt_A(Vptr, Vptr) $1 $emSt_A //Store: poStE_B(Cptr, Vint) $1 $emStE_B //Store: poStE_H(Cptr, Vint) $1 $emStE_H //Store: poStE_I(Cptr, Vint) $1 $emStE_I //Store: poStE_L(Cptr, Vlong) $1 $emStE_L //Store: poStE_F(Cptr, Vfloat) $1 $emStE_F //Store: poStE_D(Cptr, Vdouble) $1 $emStE_D //Store: poStE_A(Cptr, Vptr) $1 $emStE_A //Store: poStV_B(Vptr, Vint) $1 $emStV_B //Store: poStV_H(Vptr, Vint) $1 $emStV_H //Store: poStV_I(Vptr, Vint) $1 $emStV_I //Store: poStV_L(Vptr, Vlong) $1 $emStV_L //Store: poStV_F(Vptr, Vfloat) $1 $emStV_F //Store: poStV_D(Vptr, Vdouble) $1 $emStV_D //Store: poStV_A(Vptr, Vptr) $1 $emStV_A //Store: poStVE_B(Cptr, Vint) $1 $emStVE_B //Store: poStVE_H(Cptr, Vint) $1 $emStVE_H //Store: poStVE_I(Cptr, Vint) $1 $emStVE_I //Store: poStVE_L(Cptr, Vlong) $1 $emStVE_L //Store: poStVE_F(Cptr, Vfloat) $1 $emStVE_F //Store: poStVE_D(Cptr, Vdouble) $1 $emStVE_D //Store: poStVE_A(Cptr, Vptr) $1 $emStVE_A Store: poSt_I(poAdd_A(Vptr, poConst_I), Vint) $0 $emSt_IRegisterIndirect Store: poProj_M $1 $ Vint: poProj_I $1 $ Vptr: poProj_A $1 $ Tuple: poSysCall $1 $emSysCall Tuple: poSysCallE $1 $emSysCallE Tuple: poSysCallC $1 $emSysCallC Tuple: poSysCallEC $1 $emSysCallEC Tuple: poSysCallV $1 $emSysCallV Tuple: poSysCallEV $1 $emSysCallEV Tuple: poCall(Vptr) $1 $emDynamicCall Tuple: poCall(poConst_A) $1 $emStaticCall %