diff options
author | Norbert Thiebaud <nthiebaud@gmail.com> | 2011-08-19 20:31:38 -0500 |
---|---|---|
committer | Norbert Thiebaud <nthiebaud@gmail.com> | 2011-08-19 20:39:35 -0500 |
commit | 6f4309fb1e18891aa02fb231f306a1115d4ddac8 (patch) | |
tree | 4f45cc1c6bc2eec0514847bc109fd3229b117821 /rsc | |
parent | d73872e9f262744d40ffddcc77c3e0ccebe467a0 (diff) |
use native yacc/bison support in rsc rather than a sub-make
Diffstat (limited to 'rsc')
-rw-r--r-- | rsc/Executable_rsc.mk | 16 | ||||
-rw-r--r-- | rsc/Module_rsc.mk | 1 | ||||
-rw-r--r-- | rsc/inc/rsclex.hxx (renamed from rsc/source/parser/rsclex.hxx) | 0 | ||||
-rw-r--r-- | rsc/source/parser/Makefile | 36 | ||||
-rw-r--r-- | rsc/source/parser/rscibas.cxx | 4 | ||||
-rw-r--r-- | rsc/source/parser/rscicpx.cxx | 4 | ||||
-rw-r--r-- | rsc/source/parser/rscinit.cxx | 4 | ||||
-rw-r--r-- | rsc/source/parser/rsclex.cxx | 4 | ||||
-rw-r--r-- | rsc/source/parser/rscyacc.cxx | 270 | ||||
-rw-r--r-- | rsc/source/parser/rscyacc.y | 246 |
10 files changed, 263 insertions, 322 deletions
diff --git a/rsc/Executable_rsc.mk b/rsc/Executable_rsc.mk index ec8945fea2e9..71b0cc07889c 100644 --- a/rsc/Executable_rsc.mk +++ b/rsc/Executable_rsc.mk @@ -28,13 +28,12 @@ $(eval $(call gb_Executable_Executable,rsc)) -$(eval $(call gb_Executable_add_package_headers,rsc,rsc_yacc)) $(eval $(call gb_Executable_set_include,rsc,\ $$(INCLUDE) \ - -I$(realpath $(SRCDIR)/rsc/inc) \ - -I$(realpath $(SRCDIR)/rsc/inc/pch) \ - -I$(realpath $(WORKDIR))/CustomTarget/rsc/source/parser \ + -I$(SRCDIR)/rsc/inc \ + -I$(SRCDIR)/rsc/inc/pch \ + -I$(WORKDIR)/GenCxxObject/rsc/source/parser \ )) $(eval $(call gb_Executable_add_api,rsc,\ @@ -54,6 +53,14 @@ $(eval $(call gb_Executable_add_linked_libs,rsc,\ $(gb_STDLIBS) \ )) +$(eval $(call gb_Executable_add_grammars,rsc,\ + rsc/source/parser/rscyacc, \ + rsc/source/parser/rscibas \ + rsc/source/parser/rscicpx \ + rsc/source/parser/rscinit \ + rsc/source/parser/rsclex \ +)) + $(eval $(call gb_Executable_add_exception_objects,rsc,\ rsc/source/misc/rscdbl \ rsc/source/misc/rsclst \ @@ -65,7 +72,6 @@ $(eval $(call gb_Executable_add_exception_objects,rsc,\ rsc/source/parser/rsckey \ rsc/source/parser/rsclex \ rsc/source/parser/rscpar \ - rsc/source/parser/rscyacc \ rsc/source/prj/gui \ rsc/source/prj/start \ rsc/source/res/rscall \ diff --git a/rsc/Module_rsc.mk b/rsc/Module_rsc.mk index 490e573ac502..8464c9327754 100644 --- a/rsc/Module_rsc.mk +++ b/rsc/Module_rsc.mk @@ -34,7 +34,6 @@ $(eval $(call gb_Module_add_targets,rsc,\ $(if $(filter DESKTOP,$(BUILD_TYPE)),$(eval $(call gb_Module_add_targets,rsc,\ Executable_rsc \ - Package_yacc \ ))) # vim: set noet sw=4 ts=4: diff --git a/rsc/source/parser/rsclex.hxx b/rsc/inc/rsclex.hxx index c861e89402f6..c861e89402f6 100644 --- a/rsc/source/parser/rsclex.hxx +++ b/rsc/inc/rsclex.hxx diff --git a/rsc/source/parser/Makefile b/rsc/source/parser/Makefile deleted file mode 100644 index 29039d8729aa..000000000000 --- a/rsc/source/parser/Makefile +++ /dev/null @@ -1,36 +0,0 @@ -# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- -# Version: MPL 1.1 / GPLv3+ / LGPLv3+ -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License or as specified alternatively below. You may obtain a copy of -# the License at http://www.mozilla.org/MPL/ -# -# 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 Initial Developer of the Original Code is -# Matúš Kukan <matus.kukan@gmail.com> -# Portions created by the Initial Developer are Copyright (C) 2011 the -# Initial Developer. All Rights Reserved. -# -# Major Contributor(s): -# -# For minor contributions see the git repository. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 3 or later (the "GPLv3+"), or -# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), -# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable -# instead of those above. - -BISON := bison - -all : yyrscyacc.cxx -yyrscyacc.cxx : $(realpath $(SRC_ROOT)/rsc/source/parser/rscyacc.y) - $(BISON) -d -o $@ $< - -.PHONY: all -# vim: set noet sw=4 ts=4: diff --git a/rsc/source/parser/rscibas.cxx b/rsc/source/parser/rscibas.cxx index f2456cfca257..057c338e778e 100644 --- a/rsc/source/parser/rscibas.cxx +++ b/rsc/source/parser/rscibas.cxx @@ -47,8 +47,8 @@ #include <rscdb.hxx> -#include "rsclex.hxx" -#include <yyrscyacc.hxx> +#include <rsclex.hxx> +#include <rscyacc.hxx> #include <boost/unordered_map.hpp> diff --git a/rsc/source/parser/rscicpx.cxx b/rsc/source/parser/rscicpx.cxx index 072f1f085649..e915445de107 100644 --- a/rsc/source/parser/rscicpx.cxx +++ b/rsc/source/parser/rscicpx.cxx @@ -43,8 +43,8 @@ #include <rscdb.hxx> #include <rsc/rscsfx.hxx> -#include "rsclex.hxx" -#include <yyrscyacc.hxx> +#include <rsclex.hxx> +#include <rscyacc.hxx> /************************************************************************* |* RscTypCont::InsWinBit() diff --git a/rsc/source/parser/rscinit.cxx b/rsc/source/parser/rscinit.cxx index c16c9826dbf7..259c6f38edec 100644 --- a/rsc/source/parser/rscinit.cxx +++ b/rsc/source/parser/rscinit.cxx @@ -51,8 +51,8 @@ #include <rsckey.hxx> #include <rscdb.hxx> -#include "rsclex.hxx" -#include <yyrscyacc.hxx> +#include <rsclex.hxx> +#include <rscyacc.hxx> /****************** M a c r o s ******************************************/ #define INS_WINBIT( pClass, WinBit ) \ diff --git a/rsc/source/parser/rsclex.cxx b/rsc/source/parser/rsclex.cxx index e9e4a0ebb9d0..db3d794ee1ec 100644 --- a/rsc/source/parser/rsclex.cxx +++ b/rsc/source/parser/rsclex.cxx @@ -44,8 +44,8 @@ #include <rscpar.hxx> #include <rscdef.hxx> -#include "rsclex.hxx" -#include <yyrscyacc.hxx> +#include <rsclex.hxx> +#include <rscyacc.hxx> #include <rtl/textcvt.h> #include <rtl/textenc.h> diff --git a/rsc/source/parser/rscyacc.cxx b/rsc/source/parser/rscyacc.cxx deleted file mode 100644 index f812523d9dc1..000000000000 --- a/rsc/source/parser/rscyacc.cxx +++ /dev/null @@ -1,270 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_rsc.hxx" -#include <stdio.h> -#include <ctype.h> -#include <string.h> - -#include <tools/rc.h> -#include <rscerror.h> -#include <rsctools.hxx> -#include <rscclass.hxx> -#include <rsccont.hxx> -#include <rsctree.hxx> -#include <rscdb.hxx> -#include <rscdef.hxx> -#include <rscpar.hxx> - -#include "rsclex.hxx" - -/************** V a r i a b l e n ****************************************/ -ObjectStack S; -RscTop * pCurClass; -sal_uInt32 nCurMask; -char szErrBuf[ 100 ]; - -/************** H i l f s F u n k t i o n e n ****************************/ -RSCINST GetVarInst( const RSCINST & rInst, const char * pVarName ) -{ - RSCINST aInst; - - aInst = rInst.pClass->GetVariable( rInst, pHS->getID( pVarName ), - RSCINST() ); - - if( !aInst.pData ) - pTC->pEH->Error( ERR_NOVARIABLENAME, rInst.pClass, RscId() ); - - return( aInst ); -} - -void SetNumber( const RSCINST & rInst, const char * pVarName, sal_Int32 lValue ) -{ - RSCINST aInst; - - aInst = GetVarInst( rInst, pVarName ); - - if( aInst.pData ){ - ERRTYPE aError; - aError = aInst.pClass->SetNumber( aInst, lValue ); - - if( aError.IsError() ) - pTC->pEH->Error( aError, aInst.pClass, RscId() ); - } -} - -void SetConst( const RSCINST & rInst, const char * pVarName, - Atom nValueId, sal_Int32 nVal ) -{ - RSCINST aInst; - - aInst = GetVarInst( rInst, pVarName ); - if( aInst.pData ) - { - ERRTYPE aError; - aError = aInst.pClass->SetConst( aInst, nValueId, nVal ); - - if( aError.IsError() ) - pTC->pEH->Error( aError, aInst.pClass, RscId() ); - } -} - -void SetString( const RSCINST & rInst, const char * pVarName, const char * pStr ) -{ - RSCINST aInst; - - aInst = GetVarInst( rInst, pVarName ); - if( aInst.pData ){ - ERRTYPE aError; - aError = aInst.pClass->SetString( aInst, pStr ); - - if( aError.IsError() ) - pTC->pEH->Error( aError, aInst.pClass, RscId() ); - } -} - -RscId MakeRscId( RscExpType aExpType ) -{ - if( !aExpType.IsNothing() ) - { - sal_Int32 lValue(0); - - if( !aExpType.Evaluate( &lValue ) ) - pTC->pEH->Error( ERR_ZERODIVISION, NULL, RscId() ); - if( lValue < 1 || lValue > (sal_Int32)0x7FFF ) - { - pTC->pEH->Error( ERR_IDRANGE, NULL, RscId(), - rtl::OString::valueOf(lValue).getStr() ); - } - - if( aExpType.IsDefinition() ) - return RscId( aExpType.aExp.pDef ); - else - return RscId( lValue ); - } - return RscId(); -} - -sal_Bool DoClassHeader( RSCHEADER * pHeader, sal_Bool bMember ) -{ - RSCINST aCopyInst; - RscId aName1 = MakeRscId( pHeader->nName1 ); - RscId aName2 = MakeRscId( pHeader->nName2 ); - - if( pHeader->pRefClass ) - aCopyInst.pClass = pHeader->pRefClass; - else - aCopyInst.pClass = pHeader->pClass; - - if( TYPE_COPY == pHeader->nTyp ) - { - ObjNode * pCopyObj = aCopyInst.pClass->GetObjNode( aName2 ); - - if( !pCopyObj ) - { - ByteString aMsg( pHS->getString( aCopyInst.pClass->GetId() ) ); - aMsg += ' '; - aMsg += aName2.GetName(); - pTC->pEH->Error( ERR_NOCOPYOBJ, pHeader->pClass, aName1, - aMsg.GetBuffer() ); - } - else - aCopyInst.pData = pCopyObj->GetRscObj(); - } - - if( bMember ) - { - // Angabe von Superklassen oder abgeleiteten Klassen ist jetzt erlaubt - if( S.Top().pClass->InHierarchy( pHeader->pClass ) - || pHeader->pClass->InHierarchy( S.Top().pClass) ) - { - if( aCopyInst.IsInst() ) - { - RSCINST aTmpI( S.Top() ); - aTmpI.pClass->Destroy( aTmpI ); - aTmpI.pClass->Create( &aTmpI, aCopyInst ); - }; - } - else - pTC->pEH->Error( ERR_FALSETYPE, S.Top().pClass, aName1, - pHS->getString( pHeader->pClass->GetId() ) ); - } - else - { - if( S.IsEmpty() ) - { - if( (sal_Int32)aName1 < 256 ) - pTC->pEH->Error( WRN_GLOBALID, pHeader->pClass, aName1 ); - - if( aCopyInst.IsInst() ) - S.Push( pHeader->pClass->Create( NULL, aCopyInst ) ); - else - S.Push( pHeader->pClass->Create( NULL, RSCINST() ) ); - - ObjNode * pNode = new ObjNode( aName1, S.Top().pData, - pFI->GetFileIndex() ); - pTC->pEH->StdOut( ".", RscVerbosityVerbose ); - - if( !aName1.IsId() ) - pTC->pEH->Error( ERR_IDEXPECTED, pHeader->pClass, aName1 ); - else if( !pHeader->pClass->PutObjNode( pNode ) ) - pTC->pEH->Error( ERR_DOUBLEID, pHeader->pClass, aName1 ); - } - else - { - RSCINST aTmpI; - ERRTYPE aError; - - if( (sal_Int32)aName1 >= 256 && aName1.IsId() ) - pTC->pEH->Error( WRN_LOCALID, pHeader->pClass, aName1 ); - aError = S.Top().pClass->GetElement( S.Top(), aName1, - pHeader->pClass, aCopyInst, &aTmpI ); - - if( aError.IsWarning() ) - pTC->pEH->Error( aError, pHeader->pClass, aName1 ); - else if( aError.IsError() ) - { - if( ERR_CONT_INVALIDTYPE == aError ) - pTC->pEH->Error( aError, S.Top().pClass, aName1, - pHS->getString( pHeader->pClass->GetId() ) ); - else - pTC->pEH->Error( aError, S.Top().pClass, aName1 ); - S.Top().pClass->GetElement( S.Top(), RscId(), - pHeader->pClass, RSCINST(), &aTmpI ); - - if( !aTmpI.IsInst() ) - return( sal_False ); - } - S.Push( aTmpI ); - }; - }; - if( TYPE_REF == pHeader->nTyp ) - { - ERRTYPE aError; - - aError = S.Top().pClass->SetRef( S.Top(), aName2 ); - pTC->pEH->Error( aError, S.Top().pClass, aName1 ); - } - - return( sal_True ); -} - -RSCINST GetFirstTupelEle( const RSCINST & rTop ) -{ // Aufwaertskompatible, Tupel probieren - RSCINST aInst; - ERRTYPE aErr; - - aErr = rTop.pClass->GetElement( rTop, RscId(), NULL, RSCINST(), &aInst ); - if( !aErr.IsError() ) - aInst = aInst.pClass->GetTupelVar( aInst, 0, RSCINST() ); - return aInst; -} - -/************** Y a c c C o d e ****************************************/ -//#define YYDEBUG 1 - -#define TYPE_Atom 0 -#define TYPE_RESID 1 - -#ifdef UNX -#define YYMAXDEPTH 2000 -#else -#define YYMAXDEPTH 800 -#endif - -#if defined _MSC_VER -#pragma warning(push, 1) -#pragma warning(disable:4129 4273 4701 4702) -#endif -#include "yyrscyacc.cxx" -#if defined _MSC_VER -#pragma warning(pop) -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/rsc/source/parser/rscyacc.y b/rsc/source/parser/rscyacc.y index 24240d184236..3477fdcc2c35 100644 --- a/rsc/source/parser/rscyacc.y +++ b/rsc/source/parser/rscyacc.y @@ -1,3 +1,5 @@ +%{ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -25,9 +27,244 @@ * ************************************************************************/ -%{ +// MARKER(update_precomp.py): autogen include statement, do not remove +#include "precompiled_rsc.hxx" +#include <stdio.h> +#include <ctype.h> +#include <string.h> + +#include <tools/rc.h> +#include <rscerror.h> +#include <rsctools.hxx> +#include <rscclass.hxx> +#include <rsccont.hxx> +#include <rsctree.hxx> +#include <rscdb.hxx> +#include <rscdef.hxx> +#include <rscpar.hxx> + +#include <rsclex.hxx> + +/************** V a r i a b l e n ****************************************/ +ObjectStack S; +RscTop * pCurClass; +sal_uInt32 nCurMask; +char szErrBuf[ 100 ]; + +/************** H i l f s F u n k t i o n e n ****************************/ +RSCINST GetVarInst( const RSCINST & rInst, const char * pVarName ) +{ + RSCINST aInst; + + aInst = rInst.pClass->GetVariable( rInst, pHS->getID( pVarName ), + RSCINST() ); + + if( !aInst.pData ) + pTC->pEH->Error( ERR_NOVARIABLENAME, rInst.pClass, RscId() ); + + return( aInst ); +} + +void SetNumber( const RSCINST & rInst, const char * pVarName, sal_Int32 lValue ) +{ + RSCINST aInst; + + aInst = GetVarInst( rInst, pVarName ); + + if( aInst.pData ){ + ERRTYPE aError; + aError = aInst.pClass->SetNumber( aInst, lValue ); + + if( aError.IsError() ) + pTC->pEH->Error( aError, aInst.pClass, RscId() ); + } +} + +void SetConst( const RSCINST & rInst, const char * pVarName, + Atom nValueId, sal_Int32 nVal ) +{ + RSCINST aInst; + + aInst = GetVarInst( rInst, pVarName ); + if( aInst.pData ) + { + ERRTYPE aError; + aError = aInst.pClass->SetConst( aInst, nValueId, nVal ); + + if( aError.IsError() ) + pTC->pEH->Error( aError, aInst.pClass, RscId() ); + } +} + +void SetString( const RSCINST & rInst, const char * pVarName, const char * pStr ) +{ + RSCINST aInst; + + aInst = GetVarInst( rInst, pVarName ); + if( aInst.pData ){ + ERRTYPE aError; + aError = aInst.pClass->SetString( aInst, pStr ); + + if( aError.IsError() ) + pTC->pEH->Error( aError, aInst.pClass, RscId() ); + } +} + +RscId MakeRscId( RscExpType aExpType ) +{ + if( !aExpType.IsNothing() ) + { + sal_Int32 lValue(0); + + if( !aExpType.Evaluate( &lValue ) ) + pTC->pEH->Error( ERR_ZERODIVISION, NULL, RscId() ); + if( lValue < 1 || lValue > (sal_Int32)0x7FFF ) + { + pTC->pEH->Error( ERR_IDRANGE, NULL, RscId(), + rtl::OString::valueOf(lValue).getStr() ); + } + + if( aExpType.IsDefinition() ) + return RscId( aExpType.aExp.pDef ); + else + return RscId( lValue ); + } + return RscId(); +} + +sal_Bool DoClassHeader( RSCHEADER * pHeader, sal_Bool bMember ) +{ + RSCINST aCopyInst; + RscId aName1 = MakeRscId( pHeader->nName1 ); + RscId aName2 = MakeRscId( pHeader->nName2 ); + + if( pHeader->pRefClass ) + aCopyInst.pClass = pHeader->pRefClass; + else + aCopyInst.pClass = pHeader->pClass; + + if( TYPE_COPY == pHeader->nTyp ) + { + ObjNode * pCopyObj = aCopyInst.pClass->GetObjNode( aName2 ); + + if( !pCopyObj ) + { + ByteString aMsg( pHS->getString( aCopyInst.pClass->GetId() ) ); + aMsg += ' '; + aMsg += aName2.GetName(); + pTC->pEH->Error( ERR_NOCOPYOBJ, pHeader->pClass, aName1, + aMsg.GetBuffer() ); + } + else + aCopyInst.pData = pCopyObj->GetRscObj(); + } + + if( bMember ) + { + // Angabe von Superklassen oder abgeleiteten Klassen ist jetzt erlaubt + if( S.Top().pClass->InHierarchy( pHeader->pClass ) + || pHeader->pClass->InHierarchy( S.Top().pClass) ) + { + if( aCopyInst.IsInst() ) + { + RSCINST aTmpI( S.Top() ); + aTmpI.pClass->Destroy( aTmpI ); + aTmpI.pClass->Create( &aTmpI, aCopyInst ); + }; + } + else + pTC->pEH->Error( ERR_FALSETYPE, S.Top().pClass, aName1, + pHS->getString( pHeader->pClass->GetId() ) ); + } + else + { + if( S.IsEmpty() ) + { + if( (sal_Int32)aName1 < 256 ) + pTC->pEH->Error( WRN_GLOBALID, pHeader->pClass, aName1 ); + + if( aCopyInst.IsInst() ) + S.Push( pHeader->pClass->Create( NULL, aCopyInst ) ); + else + S.Push( pHeader->pClass->Create( NULL, RSCINST() ) ); + + ObjNode * pNode = new ObjNode( aName1, S.Top().pData, + pFI->GetFileIndex() ); + pTC->pEH->StdOut( ".", RscVerbosityVerbose ); + + if( !aName1.IsId() ) + pTC->pEH->Error( ERR_IDEXPECTED, pHeader->pClass, aName1 ); + else if( !pHeader->pClass->PutObjNode( pNode ) ) + pTC->pEH->Error( ERR_DOUBLEID, pHeader->pClass, aName1 ); + } + else + { + RSCINST aTmpI; + ERRTYPE aError; + + if( (sal_Int32)aName1 >= 256 && aName1.IsId() ) + pTC->pEH->Error( WRN_LOCALID, pHeader->pClass, aName1 ); + aError = S.Top().pClass->GetElement( S.Top(), aName1, + pHeader->pClass, aCopyInst, &aTmpI ); + + if( aError.IsWarning() ) + pTC->pEH->Error( aError, pHeader->pClass, aName1 ); + else if( aError.IsError() ) + { + if( ERR_CONT_INVALIDTYPE == aError ) + pTC->pEH->Error( aError, S.Top().pClass, aName1, + pHS->getString( pHeader->pClass->GetId() ) ); + else + pTC->pEH->Error( aError, S.Top().pClass, aName1 ); + S.Top().pClass->GetElement( S.Top(), RscId(), + pHeader->pClass, RSCINST(), &aTmpI ); + + if( !aTmpI.IsInst() ) + return( sal_False ); + } + S.Push( aTmpI ); + }; + }; + if( TYPE_REF == pHeader->nTyp ) + { + ERRTYPE aError; + + aError = S.Top().pClass->SetRef( S.Top(), aName2 ); + pTC->pEH->Error( aError, S.Top().pClass, aName1 ); + } + + return( sal_True ); +} + +RSCINST GetFirstTupelEle( const RSCINST & rTop ) +{ // Aufwaertskompatible, Tupel probieren + RSCINST aInst; + ERRTYPE aErr; + + aErr = rTop.pClass->GetElement( rTop, RscId(), NULL, RSCINST(), &aInst ); + if( !aErr.IsError() ) + aInst = aInst.pClass->GetTupelVar( aInst, 0, RSCINST() ); + return aInst; +} + +/************** Y a c c C o d e ****************************************/ +//#define YYDEBUG 1 + +#define TYPE_Atom 0 +#define TYPE_RESID 1 + +#ifdef UNX +#define YYMAXDEPTH 2000 +#else +#define YYMAXDEPTH 800 +#endif + +#if defined _MSC_VER +#pragma warning(push, 1) +#pragma warning(disable:4129 4273 4701 4702) +#endif #if defined __GNUC__ -#pragma GCC system_header +#pragma GCC diagnostic ignored "-Wwrite-strings" #elif defined __SUNPRO_CC #pragma disable_warn #endif @@ -1113,6 +1350,11 @@ line_number } ; +%% +#if defined _MSC_VER +#pragma warning(pop) +#endif +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |