aboutsummaryrefslogtreecommitdiff
path: root/source/ca-valencia/svl
AgeCommit message (Expand)Author
2018-01-15update translations after first de-fuzzying roundChristian Lohmaier
2017-12-12resurrect some translated strings via compendiumChristian Lohmaier
2017-10-19update templates for 6.0.0 alpha1Christian Lohmaier
2017-09-14convert to gettext formatCaolán McNamara
2017-04-28update translations for 5.4.0 alpha1Christian Lohmaier
2015-04-19update translations for 5.0.0 Alpha1Christian Lohmaier
2014-04-20update translations for 4.3.0 alpha1Christian Lohmaier
2013-12-09update translations for 4.2.0 Beta2Christian Lohmaier
2013-09-04renamed translations/source/ca-XV to translations/sourcei/ca-valenciaEike Rathke
2'>feature/slidehack2 LibreOffice 核心代码仓库文档基金会
summaryrefslogtreecommitdiff
path: root/idlc
diff options
context:
space:
mode:
authorJuergen Schmidt <jsc@openoffice.org>2001-03-15 11:25:06 +0000
committerJuergen Schmidt <jsc@openoffice.org>2001-03-15 11:25:06 +0000
commitea4bd2c669909d300834aa0465365b3072b6254e (patch)
tree5e728bfd43834159b3564783d77396d3ad2eaf0f /idlc
parent4a26896241acd02b7e239d3f149c0566cc8fd88b (diff)
new
Diffstat (limited to 'idlc')
-rw-r--r--idlc/inc/idlc/astarray.hxx100
-rw-r--r--idlc/inc/idlc/astattribute.hxx115
-rw-r--r--idlc/inc/idlc/astbasetype.hxx89
-rw-r--r--idlc/inc/idlc/astconstant.hxx92
-rw-r--r--idlc/inc/idlc/astconstants.hxx76
-rw-r--r--idlc/inc/idlc/astdeclaration.hxx174
-rw-r--r--idlc/inc/idlc/astenum.hxx97
-rw-r--r--idlc/inc/idlc/astexception.hxx79
-rw-r--r--idlc/inc/idlc/astexpression.hxx232
-rw-r--r--idlc/inc/idlc/astinterface.hxx113
-rw-r--r--idlc/inc/idlc/astinterfacemember.hxx89
-rw-r--r--idlc/inc/idlc/astmember.hxx92
-rw-r--r--idlc/inc/idlc/astmodule.hxx85
-rw-r--r--idlc/inc/idlc/astneeds.hxx84
-rw-r--r--idlc/inc/idlc/astobserves.hxx84
-rw-r--r--idlc/inc/idlc/astoperation.hxx111
-rw-r--r--idlc/inc/idlc/astparameter.hxx95
-rw-r--r--idlc/inc/idlc/astscope.hxx114
-rw-r--r--idlc/inc/idlc/astsequence.hxx92
-rw-r--r--idlc/inc/idlc/astservice.hxx85
-rw-r--r--idlc/inc/idlc/astservicemember.hxx89
-rw-r--r--idlc/inc/idlc/aststack.hxx92
-rw-r--r--idlc/inc/idlc/aststruct.hxx94
-rw-r--r--idlc/inc/idlc/asttype.hxx79
-rw-r--r--idlc/inc/idlc/asttypedef.hxx86
-rw-r--r--idlc/inc/idlc/astunion.hxx106
-rw-r--r--idlc/inc/idlc/astunionbranch.hxx84
-rw-r--r--idlc/inc/idlc/astunionlabel.hxx87
-rw-r--r--idlc/inc/idlc/errorhandler.hxx183
-rw-r--r--idlc/inc/idlc/fehelper.hxx161
-rw-r--r--idlc/inc/idlc/idlc.hxx175
-rw-r--r--idlc/inc/idlc/idlctypes.hxx296
-rw-r--r--idlc/inc/idlc/options.hxx116
-rw-r--r--idlc/prj/build.lst4
-rw-r--r--idlc/prj/d.lst7
-rw-r--r--idlc/test/const.idl48
-rw-r--r--idlc/test/enum.idl24
-rw-r--r--idlc/test/exception.idl20
-rw-r--r--idlc/test/interface.idl51
-rw-r--r--idlc/test/service.idl44
-rw-r--r--idlc/test/struct.idl197
-rw-r--r--idlc/test/typelookup.idl63
-rw-r--r--idlc/test/union.idl35
43 files changed, 4239 insertions, 0 deletions
diff --git a/idlc/inc/idlc/astarray.hxx b/idlc/inc/idlc/astarray.hxx
new file mode 100644
index 000000000000..6fd83c56db3f
--- /dev/null
+++ b/idlc/inc/idlc/astarray.hxx
@@ -0,0 +1,100 @@
+/*************************************************************************
+ *
+ * $RCSfile: astarray.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: jsc $ $Date: 2001-03-15 12:23:01 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source 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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifndef _IDLC_ASTARRAY_HXX_
+#define _IDLC_ASTARRAY_HXX_
+
+#ifndef _IDLC_ASTTYPE_HXX_
+#include <idlc/asttype.hxx>
+#endif
+#ifndef _IDLC_ASTSCOPE_HXX_
+#include <idlc/astscope.hxx>
+#endif
+
+class AstArray : public AstType
+{
+public:
+ AstArray(const ::rtl::OString& name, AstType* pType, const ExprList& rDimExpr, AstScope* pScope);
+ AstArray(AstType* pType, const ExprList& rDimExpr, AstScope* pScope);
+
+ virtual ~AstArray() {}
+
+ AstType* getType()
+ { return m_pType; }
+ void setType(AstType* pType)
+ {
+ m_pType = pType;
+ setName(makeName());
+ }
+ ExprList* getDimExpressions()
+ { return &m_dimExpressions; }
+ sal_uInt32 getDimension()
+ { return m_dimension; }
+
+private:
+ ::rtl::OString makeName();
+
+ AstType* m_pType;
+ sal_uInt32 m_dimension;
+ ExprList m_dimExpressions;
+};
+
+#endif // _IDLC_ASTARRAY_HXX_
+
diff --git a/idlc/inc/idlc/astattribute.hxx b/idlc/inc/idlc/astattribute.hxx
new file mode 100644
index 000000000000..1c0c169fe4b0
--- /dev/null
+++ b/idlc/inc/idlc/astattribute.hxx
@@ -0,0 +1,115 @@
+/*************************************************************************
+ *
+ * $RCSfile: astattribute.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: jsc $ $Date: 2001-03-15 12:23:01 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source 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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifndef _IDLC_ASTATTRIBUTE_HXX_
+#define _IDLC_ASTATTRIBUTE_HXX_
+
+#ifndef _IDLC_ASTDECLARATION_HXX_
+#include <idlc/astdeclaration.hxx>
+#endif
+
+class AstAttribute : public AstDeclaration
+{
+public:
+ AstAttribute(sal_uInt32 flags, AstType *pType, const ::rtl::OString& name, AstScope* pScope)
+ : AstDeclaration(NT_attribute, name, pScope)
+ , m_flags(flags)
+ , m_pType(pType)
+ {}
+ AstAttribute(NodeType nodeType, sal_uInt32 flags, AstType *pType, const ::rtl::OString& name, AstScope* pScope)
+ : AstDeclaration(nodeType, name, pScope)
+ , m_flags(flags)
+ , m_pType(pType)
+ {}
+ virtual ~AstAttribute() {}
+
+ AstType* getType()
+ { return m_pType; }
+ const sal_Bool isReadonly()
+ { return ((m_flags & AF_READONLY) == AF_READONLY); }
+ const sal_Bool isOptional()
+ { return ((m_flags & AF_OPTIONAL) == AF_OPTIONAL); }
+ const sal_Bool isAttribute()
+ { return ((m_flags & AF_ATTRIBUTE) == AF_ATTRIBUTE); }
+ const sal_Bool isProperty()
+ { return ((m_flags & AF_PROPERTY) == AF_PROPERTY); }
+ const sal_Bool isBound()
+ { return ((m_flags & AF_BOUND) == AF_BOUND); }
+ const sal_Bool isMayBeVoid()
+ { return ((m_flags & AF_MAYBEVOID) == AF_MAYBEVOID); }
+ const sal_Bool isConstrained()
+ { return ((m_flags & AF_CONSTRAINED) == AF_CONSTRAINED); }
+ const sal_Bool isTransient()
+ { return ((m_flags & AF_TRANSIENT) == AF_TRANSIENT); }
+ const sal_Bool isMayBeAmbiguous()
+ { return ((m_flags & AF_MAYBEAMBIGUOUS) == AF_MAYBEAMBIGUOUS); }
+ const sal_Bool isMayBeDefault()
+ { return ((m_flags & AF_MAYBEDEFAULT) == AF_MAYBEDEFAULT); }
+ const sal_Bool isRemoveable()
+ { return ((m_flags & AF_REMOVEABLE) == AF_REMOVEABLE); }
+
+ sal_Bool dumpBlob(RegistryTypeWriter& rBlob, sal_uInt16 index);
+private:
+ const sal_uInt32 m_flags;
+ AstType* m_pType;
+};
+
+#endif // _IDLC_ASTATTRIBUTE_HXX_
+
diff --git a/idlc/inc/idlc/astbasetype.hxx b/idlc/inc/idlc/astbasetype.hxx
new file mode 100644
index 000000000000..49c726ebb565
--- /dev/null
+++ b/idlc/inc/idlc/astbasetype.hxx
@@ -0,0 +1,89 @@
+/*************************************************************************
+ *
+ * $RCSfile: astbasetype.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: jsc $ $Date: 2001-03-15 12:23:01 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source 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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifndef _IDLC_ASTBASETYPE_HXX_
+#define _IDLC_ASTBASETYPE_HXX_
+
+#ifndef _IDLC_ASTTYPE_HXX_
+#include <idlc/asttype.hxx>
+#endif
+#ifndef _IDLC_ASTEXPRESSION_HXX_
+#include <idlc/astexpression.hxx>
+#endif
+
+
+class AstBaseType : public AstType
+{
+public:
+ AstBaseType(const ExprType type, const ::rtl::OString& name, AstScope* pScope)
+ : AstType(NT_predefined, name, pScope)
+ , m_exprType(type)
+ {}
+
+ virtual ~AstBaseType() {}
+
+ const ExprType getExprType()
+ { return m_exprType; }
+private:
+ const ExprType m_exprType;
+};
+
+#endif // _IDLC_ASTBASETYPE_HXX_
+
diff --git a/idlc/inc/idlc/astconstant.hxx b/idlc/inc/idlc/astconstant.hxx
new file mode 100644
index 000000000000..8c0f9c1a81a6
--- /dev/null
+++ b/idlc/inc/idlc/astconstant.hxx
@@ -0,0 +1,92 @@
+/*************************************************************************
+ *
+ * $RCSfile: astconstant.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: jsc $ $Date: 2001-03-15 12:23:01 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source 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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifndef _IDLC_ASTCONSTANT_HXX_
+#define _IDLC_ASTCONSTANT_HXX_
+
+#ifndef _IDLC_ASTDECLARATION_HXX_
+#include <idlc/astdeclaration.hxx>
+#endif
+#ifndef _IDLC_ASTEXPRESSION_HXX_
+#include <idlc/astexpression.hxx>
+#endif
+
+class AstConstant : public AstDeclaration
+{
+public:
+ AstConstant(const ExprType type, const NodeType nodeType,
+ AstExpression* pExpr, const ::rtl::OString& name, AstScope* pScope);
+ AstConstant(const ExprType type, AstExpression* pExpr,
+ const ::rtl::OString& name, AstScope* pScope);
+ virtual ~AstConstant();
+
+ AstExpression* getConstValue()
+ { return m_pConstValue; }
+ const ExprType getConstValueType()
+ { return m_constValueType; }
+
+ sal_Bool dumpBlob(RegistryTypeWriter& rBlob, sal_uInt16 index);
+private:
+ AstExpression* m_pConstValue;
+ const ExprType m_constValueType;
+};
+
+#endif // _IDLC_ASTCONSTANT_HXX_
+
diff --git a/idlc/inc/idlc/astconstants.hxx b/idlc/inc/idlc/astconstants.hxx
new file mode 100644
index 000000000000..23ae2d59ad43
--- /dev/null
+++ b/idlc/inc/idlc/astconstants.hxx
@@ -0,0 +1,76 @@
+/*************************************************************************
+ *
+ * $RCSfile: astconstants.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: jsc $ $Date: 2001-03-15 12:23:01 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source 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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifndef _IDLC_ASTCONSTANTS_HXX_
+#define _IDLC_ASTCONSTANTS_HXX_
+
+#include <idlc/astmodule.hxx>
+
+class AstConstants : public AstModule
+{
+public:
+ AstConstants(const ::rtl::OString& name, AstScope* pScope)
+ : AstModule(NT_constants, name, pScope)
+ {}
+ virtual ~AstConstants() {}
+};
+
+#endif // _IDLC_ASTCONSTANTS_HXX_
+
diff --git a/idlc/inc/idlc/astdeclaration.hxx b/idlc/inc/idlc/astdeclaration.hxx
new file mode 100644
index 000000000000..bc887c4e1aa0
--- /dev/null
+++ b/idlc/inc/idlc/astdeclaration.hxx
@@ -0,0 +1,174 @@
+/*************************************************************************
+ *
+ * $RCSfile: astdeclaration.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: jsc $ $Date: 2001-03-15 12:23:01 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source 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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifndef _IDLC_ASTDECLARATION_HXX_
+#define _IDLC_ASTDECLARATION_HXX_
+
+#ifndef _IDLC_IDLC_HXX_
+#include <idlc/idlc.hxx>
+#endif
+#ifndef _REGISTRY_REGISTRY_HXX_
+#include <registry/registry.hxx>
+#endif
+#ifndef _REGISTRY_REFLWRIT_HXX_
+#include <registry/reflwrit.hxx>
+#endif
+
+class AstScope;
+
+// Enum defining the different kinds of Ast nodes
+enum NodeType
+{
+ NT_object, // Denotes an object
+ NT_service, // Denotes an servcie
+ NT_interface_member, // Denotes an interface which is exported from object
+ NT_service_member, // Denotes an service which is exported from object
+ NT_observes, // Denotes an observed interface
+ NT_needs, // Denotes an needed service
+ NT_module, // Denotes a module
+ NT_root, // Denotes the root of AST
+ NT_interface, // Denotes an interface
+ NT_constants, // Denotes a constant group
+ NT_const, // Denotes a constant
+ NT_exception, // Denotes an exception
+ NT_attribute, // Denotes an attribute
+ NT_property, // Denotes an property
+ NT_operation, // Denotes an operation
+ NT_parameter, // Denotes an op. parameter
+ NT_union, // Denotes a union
+ NT_union_branch, // Denotes a union branch
+ NT_struct, // Denotes a structure
+ NT_member, // Denotes a member in structure, exception
+ NT_enum, // Denotes an enumeration
+ NT_enum_val, // Denotes an enum. value
+ NT_array, // Denotes an IDL array
+ NT_sequence, // Denotes an IDL sequence
+ NT_typedef, // Denotes a typedef
+ NT_predefined // Denotes a predefined type
+};
+
+class AstDeclaration
+{
+public:
+ // Constructors
+ AstDeclaration(const NodeType type, const ::rtl::OString& name, AstScope* pScope);
+ virtual ~AstDeclaration();
+
+ // Data access
+ void setName(const ::rtl::OString& name);
+ const ::rtl::OString& getLocalName()
+ { return m_localName; }
+ const ::rtl::OString& getScopedName()
+ { return m_scopedName; }
+ const ::rtl::OString& getFullName()
+ { return m_fullName; }
+ virtual const sal_Char* getRelativName()
+ { return m_fullName.getStr()+1; }
+ AstScope* getScope()
+ { return m_pScope; }
+ void setScope(AstScope* pSc)
+ { m_pScope = pSc; }
+ const NodeType getNodeType()
+ { return m_nodeType; }
+ sal_Bool isInMainfile()
+ { return m_bInMainFile; }
+ void setInMainfile(sal_Bool bInMainfile)
+ { m_bInMainFile = bInMainfile; }
+ sal_Bool isImported()
+ { return m_bImported; }
+ void setImported(sal_Bool bImported)
+ { m_bImported = bImported; }
+ sal_Int32 getLineNumber()
+ { return m_lineNumber; }
+ void setLineNumber(sal_Int32 lineNumber)
+ { m_lineNumber = lineNumber; }
+ const ::rtl::OString& getFileName()
+ { return m_fileName; }
+ void setFileName(const ::rtl::OString& rFileName)
+ { m_fileName = rFileName; }
+ const ::rtl::OUString& getDocumentation()
+ { return m_documentation; }
+ void setDocumentation(const ::rtl::OUString& rDocumentation)
+ { m_documentation = rDocumentation; }
+ sal_Bool isAdded()
+ { return m_bIsAdded; }
+ void markAsAdded()
+ { m_bIsAdded = sal_True; }
+
+ sal_Bool isType();
+ sal_Bool hasAncestor(AstDeclaration* pDecl);
+
+ virtual sal_Bool dump(RegistryKey& rKey, RegistryTypeWriterLoader* pLoader);
+protected:
+ ::rtl::OString m_localName;
+ ::rtl::OString m_scopedName; // full qualified name
+ ::rtl::OString m_fullName; // full qualified name with '/' as seperator
+ AstScope* m_pScope;
+ const NodeType m_nodeType;
+ sal_Bool m_bImported; // imported ?
+ sal_Bool m_bIsAdded; // mark declaration as added in scope
+ sal_Bool m_bInMainFile; // defined in main file
+ sal_Int32 m_lineNumber; // line number defined in
+ ::rtl::OString m_fileName; // fileName defined in
+ ::rtl::OUString m_documentation; // fileName defined in
+};
+
+#endif // _IDLC_ASTDECLARATION_HXX_
+
diff --git a/idlc/inc/idlc/astenum.hxx b/idlc/inc/idlc/astenum.hxx
new file mode 100644
index 000000000000..f27cac8e7ec9
--- /dev/null
+++ b/idlc/inc/idlc/astenum.hxx
@@ -0,0 +1,97 @@
+/*************************************************************************
+ *
+ * $RCSfile: astenum.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: jsc $ $Date: 2001-03-15 12:23:01 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source 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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifndef _IDLC_ASTENUM_HXX_
+#define _IDLC_ASTENUM_HXX_
+
+#ifndef _IDLC_ASTTYPE_HXX_
+#include <idlc/asttype.hxx>
+#endif
+#ifndef _IDLC_ASTSCOPE_HXX_
+#include <idlc/astscope.hxx>
+#endif
+#ifndef _IDLC_ASTCONSTANT_HXX_
+#include <idlc/astconstant.hxx>
+#endif
+
+class AstEnum : public AstType
+ , public AstScope
+{
+public:
+ AstEnum(const ::rtl::OString& name, AstScope* pScope);
+
+ virtual ~AstEnum();
+
+ void setEnumValueCount(sal_Int32 count)
+ { m_enumValueCount = count; }
+ sal_Int32 getEnumValueCount()
+ { return m_enumValueCount++; }
+
+ AstConstant* checkValue(AstExpression* pExpr);
+
+ virtual sal_Bool dump(RegistryKey& rKey, RegistryTypeWriterLoader* pLoader);
+
+ virtual AstDeclaration* addDeclaration(AstDeclaration* pDecl);
+private:
+ sal_Int32 m_enumValueCount;
+};
+
+#endif // _IDLC_ASTENUM_HXX_
+
diff --git a/idlc/inc/idlc/astexception.hxx b/idlc/inc/idlc/astexception.hxx
new file mode 100644
index 000000000000..45db73725749
--- /dev/null
+++ b/idlc/inc/idlc/astexception.hxx
@@ -0,0 +1,79 @@
+/*************************************************************************
+ *
+ * $RCSfile: astexception.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: jsc $ $Date: 2001-03-15 12:23:01 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source 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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifndef _IDLC_ASTEXCEPTION_HXX_
+#define _IDLC_ASTEXCEPTION_HXX_
+
+#ifndef _IDLC_ASTSTRUCT_HXX_
+#include <idlc/aststruct.hxx>
+#endif
+
+class AstException : public AstStruct
+{
+public:
+ AstException(const ::rtl::OString& name, AstException* pBaseType, AstScope* pScope)
+ : AstStruct(NT_exception, name, pBaseType, pScope)
+ {}
+
+ virtual ~AstException() {}
+};
+
+#endif // _IDLC_ASTEXCEPTION_HXX_
+
diff --git a/idlc/inc/idlc/astexpression.hxx b/idlc/inc/idlc/astexpression.hxx
new file mode 100644
index 000000000000..2ad48b4293a8
--- /dev/null
+++ b/idlc/inc/idlc/astexpression.hxx
@@ -0,0 +1,232 @@
+/*************************************************************************
+ *
+ * $RCSfile: astexpression.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: jsc $ $Date: 2001-03-15 12:23:01 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source 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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifndef _IDLC_ASTEXPRESSION_HXX_
+#define _IDLC_ASTEXPRESSION_HXX_
+
+#ifndef _IDLC_IDLC_HXX_
+#include <idlc/idlc.hxx>
+#endif
+
+// Enum to define all the different operators to combine expressions
+enum ExprComb
+{
+ EC_add, // '+'
+ EC_minus, // '-'
+ EC_mul, // '*'
+ EC_div, // '/'
+ EC_mod, // '%'
+ EC_or, // '|'
+ EC_xor, // '^'
+ EC_and, // '&'
+ EC_left, // '<<'
+ EC_right, // '>>'
+ EC_u_plus, // unary '+'
+ EC_u_minus, // unary '-'
+ EC_bit_neg, // '~'
+ EC_none, // No operator (missing)
+ EC_symbol // a symbol (function or constant name)
+};
+
+// Enum to define the different kinds of evaluation possible
+enum EvalKind
+{
+ EK_const, // Must evaluate to constant
+ EK_positive_int // Must evaluate to positive integer
+};
+
+// Enum to define expression type
+enum ExprType
+{
+ ET_short, // Expression value is short
+ ET_ushort, // Expression value is unsigned short
+ ET_long, // Expression value is long
+ ET_ulong, // Expression value is unsigned long
+ ET_hyper, // Expression value is hyper (64 bit)
+ ET_uhyper, // Expression value is unsigned hyper
+ ET_float, // Expression value is 32-bit float
+ ET_double, // Expression value is 64-bit float
+ ET_char, // Expression value is char
+ ET_byte, // Expression value is byte
+ ET_boolean, // Expression value is boolean
+ ET_string, // Expression value is char *
+ ET_any, // Expression value is any of above
+ ET_void, // Expression value is void (absent)
+ ET_type, // Expression value is type
+ ET_none, // Expression value is missing
+ ET_pseudo // Expression value is pseudo (for keywords)
+};
+
+// Structure to describe value of constant expression and its type
+struct AstExprValue
+{
+ union
+ {
+ sal_uInt8 byval; // Contains byte expression value
+ sal_Int16 sval; // Contains short expression value
+ sal_uInt16 usval; // Contains unsigned short expr value
+ sal_Int32 lval; // Contains long expression value
+ sal_uInt32 ulval; // Contains unsigned long expr value
+ sal_Int64 hval; // Contains hyper expression value
+ sal_uInt64 uhval; // Contains unsigned hyper expr value
+ sal_Bool bval; // Contains boolean expression value
+ float fval; // Contains 32-bit float expr value
+ double dval; // Contains 64-bit float expr value
+ sal_Char cval; // Contains char expression value
+ ::rtl::OString* strval; // Contains String * expr value
+ sal_uInt32 eval; // Contains enumeration value
+ } u;
+ ExprType et;
+};
+
+sal_Char* SAL_CALL exprTypeToString(ExprType t);
+
+class AstExpression
+{
+public:
+ // Constructor(s)
+ AstExpression(AstExpression *pExpr, ExprType et);
+ AstExpression(ExprComb c, AstExpression *pExpr1, AstExpression *pExpr2);
+
+ AstExpression(sal_Int16 s);
+ AstExpression(sal_uInt16 us);
+ AstExpression(sal_Int32 l);
+ AstExpression(sal_Int32 l, ExprType et);
+ AstExpression(sal_uInt32 ul);
+ AstExpression(sal_Int64 h);
+ AstExpression(sal_uInt64 uh);
+ AstExpression(float f);
+ AstExpression(double d);
+ AstExpression(sal_Char c);
+ AstExpression(::rtl::OString* s, sal_Bool bIsScopedName = sal_False);
+
+ virtual ~AstExpression();
+
+ // Data Accessors
+ AstScope* getScope()
+ { return m_pScope; }
+ void setScope(AstScope* pScope)
+ { m_pScope = pScope; }
+ sal_Int32 getLine()
+ { return m_lineNo; }
+ void setLine(sal_Int32 l)
+ { m_lineNo = l; }
+ const ::rtl::OString& getFileName()
+ { return m_fileName; }
+ void setFileName(const ::rtl::OString& fileName)
+ { m_fileName = fileName; }
+ ExprComb getCombOperator()
+ { return m_combOperator; }
+ void setCombOperator(ExprComb new_ec)
+ { m_combOperator = new_ec; }
+ AstExprValue* getExprValue()
+ { return m_exprValue; }
+ void setExprValue(AstExprValue *pEv)
+ { m_exprValue = pEv; }
+ AstExpression* getExpr1()
+ { return m_subExpr1; }
+ void setExpr1(AstExpression *pExpr)
+ { m_subExpr1 = pExpr; }
+ AstExpression* getExpr2()
+ { return m_subExpr2; }
+ void setExpr2(AstExpression *pExpr)
+ { m_subExpr2 = pExpr; }
+ ::rtl::OString* getSymbolicName()
+ { return m_pSymbolicName; }
+ void setSymbolicName(::rtl::OString* pSymbolicName)
+ { m_pSymbolicName = pSymbolicName; }
+
+ // Evaluation and value coercion
+ AstExprValue* eval(EvalKind ek);
+ AstExprValue* coerce(ExprType type, sal_Bool bAssign=sal_True);
+
+ // Evaluate then store value inside this AstExpression
+ void evaluate(EvalKind ek);
+
+ // Compare to AstExpressions
+ sal_Bool operator==(AstExpression *pExpr);
+ sal_Bool compare(AstExpression *pExpr);
+
+ ::rtl::OString toString();
+ void dump() {}
+private:
+ // Fill out the lineno, filename and definition scope details
+ void fillDefinitionDetails();
+ // Internal evaluation
+ AstExprValue* eval_internal(EvalKind ek);
+ // Evaluate different sets of operators
+ AstExprValue* eval_bin_op(EvalKind ek);
+ AstExprValue* eval_bit_op(EvalKind ek);
+ AstExprValue* eval_un_op(EvalKind ek);
+ AstExprValue* eval_symbol(EvalKind ek);
+
+ AstScope* m_pScope; // scope defined in
+ sal_Int32 m_lineNo; // line number defined in
+ ::rtl::OString m_fileName; // fileName defined in
+
+ ExprComb m_combOperator;
+ AstExpression* m_subExpr1;
+ AstExpression* m_subExpr2;
+ AstExprValue* m_exprValue;
+ ::rtl::OString* m_pSymbolicName;
+};
+
+#endif // _IDLC_ASTEXPRESSION_HXX_
+
diff --git a/idlc/inc/idlc/astinterface.hxx b/idlc/inc/idlc/astinterface.hxx
new file mode 100644
index 000000000000..4f3e5e37a935
--- /dev/null
+++ b/idlc/inc/idlc/astinterface.hxx
@@ -0,0 +1,113 @@
+/*************************************************************************
+ *
+ * $RCSfile: astinterface.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: jsc $ $Date: 2001-03-15 12:23:01 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source 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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifndef _IDLC_ASTINTERFACE_HXX_
+#define _IDLC_ASTINTERFACE_HXX_
+
+#ifndef _IDLC_ASTTYPE_HXX_
+#include <idlc/asttype.hxx>
+#endif
+#ifndef _IDLC_ASTSCOPE_HXX_
+#include <idlc/astscope.hxx>
+#endif
+
+
+class AstInterface : public AstType
+ , public AstScope
+{
+public:
+ AstInterface(const ::rtl::OString& name, DeclList* pInherits, sal_Bool bIsDefined, AstScope* pScope);
+ virtual ~AstInterface();
+
+ const DeclList& getInheritedInterfaces()
+ { return m_inheritedInterfaces; }
+ void setInheritedInterfaces(const DeclList& inherits)
+ {
+ m_inheritedInterfaces = inherits;
+ }
+ sal_Int32 nInheritedInterfaces()
+ {
+ return m_inheritedInterfaces.size();
+ }
+
+ void setForwarded(sal_Bool bForwarded)
+ { m_bForwarded = bForwarded; }
+ sal_Bool isForwarded()
+ { return m_bForwarded; }
+ void setForwardedInSameFile(sal_Bool bForwarded)
+ { m_bForwardedInSameFile = bForwarded; }
+ sal_Bool isForwardedInSameFile()
+ { return m_bForwardedInSameFile; }
+
+ void setDefined(sal_Bool bIsDefined)
+ { m_bIsDefined = bIsDefined; }
+ sal_Bool isDefined()
+ { return m_bIsDefined; }
+
+ virtual sal_Bool dump(RegistryKey& rKey, RegistryTypeWriterLoader* pLoader);
+private:
+ DeclList m_inheritedInterfaces;
+ sal_Bool m_bIsDefined;
+ sal_Bool m_bForwarded;
+ sal_Bool m_bForwardedInSameFile;
+};
+
+#endif // _IDLC_ASTINTERFACE_HXX_
+
diff --git a/idlc/inc/idlc/astinterfacemember.hxx b/idlc/inc/idlc/astinterfacemember.hxx
new file mode 100644
index 000000000000..94d5c01dc917
--- /dev/null
+++ b/idlc/inc/idlc/astinterfacemember.hxx
@@ -0,0 +1,89 @@
+/*************************************************************************
+ *
+ * $RCSfile: astinterfacemember.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: jsc $ $Date: 2001-03-15 12:23:01 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source 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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifndef _IDLC_ASTINTERFACEMEMBER_HXX_
+#define _IDLC_ASTINTERFACEMEMBER_HXX_
+
+#ifndef _IDLC_ASTINTERFACE_HXX_
+#include <idlc/astinterface.hxx>
+#endif
+
+class AstInterfaceMember : public AstDeclaration
+{
+public:
+ AstInterfaceMember(const sal_uInt32 flags, AstInterface* pRealInterface,
+ const ::rtl::OString& name, AstScope* pScope)
+ : AstDeclaration(NT_interface_member, name, pScope)
+ , m_pRealInterface(pRealInterface)
+ , m_flags(flags)
+ {}
+ virtual ~AstInterfaceMember() {}
+
+ AstInterface* getRealInterface()
+ { return m_pRealInterface; }
+ sal_Bool isOptional()
+ { return ((m_flags & AF_OPTIONAL) == AF_OPTIONAL); }
+private:
+ const sal_uInt32 m_flags;
+ AstInterface* m_pRealInterface;
+};
+
+#endif // _IDLC_ASTINTERFACEMEMBER_HXX_
+
diff --git a/idlc/inc/idlc/astmember.hxx b/idlc/inc/idlc/astmember.hxx
new file mode 100644
index 000000000000..ac8fa70eb877
--- /dev/null
+++ b/idlc/inc/idlc/astmember.hxx
@@ -0,0 +1,92 @@
+/*************************************************************************
+ *
+ * $RCSfile: astmember.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: jsc $ $Date: 2001-03-15 12:23:01 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source 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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifndef _IDLC_ASTMEMBER_HXX_
+#define _IDLC_ASTMEMBER_HXX_
+
+#ifndef _IDLC_ASTDECLARATION_HXX_
+#include <idlc/astdeclaration.hxx>
+#endif
+
+class AstMember : public AstDeclaration
+{
+public:
+ AstMember(AstType *pType, const ::rtl::OString& name, AstScope* pScope)
+ : AstDeclaration(NT_member, name, pScope)
+ , m_pType(pType)
+ {}
+ AstMember(const NodeType type,
+ AstType *pType,
+ const ::rtl::OString& name,
+ AstScope* pScope)
+ : AstDeclaration(type, name, pScope)
+ , m_pType(pType)
+ {}
+ virtual ~AstMember() {}
+
+ AstType* getType()
+ { return m_pType; }
+
+private:
+ AstType* m_pType;
+};
+
+#endif // _IDLC_ASTMEMBER_HXX_
+
diff --git a/idlc/inc/idlc/astmodule.hxx b/idlc/inc/idlc/astmodule.hxx
new file mode 100644
index 000000000000..0c35bf3486a3
--- /dev/null
+++ b/idlc/inc/idlc/astmodule.hxx
@@ -0,0 +1,85 @@
+/*************************************************************************
+ *
+ * $RCSfile: astmodule.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: jsc $ $Date: 2001-03-15 12:23:01 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source 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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifndef _IDLC_ASTMODULE_HXX_
+#define _IDLC_ASTMODULE_HXX_
+
+#include <idlc/astdeclaration.hxx>
+#include <idlc/astscope.hxx>
+
+class AstModule : public AstDeclaration
+ , public AstScope
+{
+public:
+ AstModule(const ::rtl::OString& name, AstScope* pScope)
+ : AstDeclaration(NT_module, name, pScope)
+ , AstScope(NT_module)
+ {}
+ AstModule(NodeType type, const ::rtl::OString& name, AstScope* pScope)
+ : AstDeclaration(type, name, pScope)
+ , AstScope(type)
+ {}
+ virtual ~AstModule() {}
+
+ virtual sal_Bool dump(RegistryKey& rKey, RegistryTypeWriterLoader* pLoader);
+};
+
+#endif // _IDLC_ASTMODULE_HXX_
+
diff --git a/idlc/inc/idlc/astneeds.hxx b/idlc/inc/idlc/astneeds.hxx
new file mode 100644
index 000000000000..b5b4929fb563
--- /dev/null
+++ b/idlc/inc/idlc/astneeds.hxx
@@ -0,0 +1,84 @@
+/*************************************************************************
+ *
+ * $RCSfile: astneeds.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: jsc $ $Date: 2001-03-15 12:23:01 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source 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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifndef _IDLC_ASTNEEDS_HXX_
+#define _IDLC_ASTNEEDS_HXX_
+
+#ifndef _IDLC_ASTSERVICE_HXX_
+#include <idlc/astservice.hxx>
+#endif
+
+class AstNeeds : public AstDeclaration
+{
+public:
+ AstNeeds(AstService* pRealService, const ::rtl::OString& name, AstScope* pScope)
+ : AstDeclaration(NT_needs, name, pScope)
+ , m_pRealService(pRealService)
+ {}
+ virtual ~AstNeeds() {}
+
+ AstService* getRealService()
+ { return m_pRealService; }
+private:
+ AstService* m_pRealService;
+};
+
+#endif // _IDLC_ASTNEEDS_HXX_
+
diff --git a/idlc/inc/idlc/astobserves.hxx b/idlc/inc/idlc/astobserves.hxx
new file mode 100644
index 000000000000..72b566ac8e2f
--- /dev/null
+++ b/idlc/inc/idlc/astobserves.hxx
@@ -0,0 +1,84 @@
+/*************************************************************************
+ *
+ * $RCSfile: astobserves.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: jsc $ $Date: 2001-03-15 12:23:01 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source 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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifndef _IDLC_ASTOBSERVES_HXX_
+#define _IDLC_ASTOBSERVES_HXX_
+
+#ifndef _IDLC_ASTINTERFACE_HXX_
+#include <idlc/astinterface.hxx>
+#endif
+
+class AstObserves : public AstDeclaration
+{
+public:
+ AstObserves(AstInterface* pRealInterface, const ::rtl::OString& name, AstScope* pScope)
+ : AstDeclaration(NT_observes, name, pScope)
+ , m_pRealInterface(pRealInterface)
+ {}
+ virtual ~AstObserves() {}
+
+ AstInterface* getRealInterface()
+ { return m_pRealInterface; }
+private:
+ AstInterface* m_pRealInterface;
+};
+
+#endif // _IDLC_ASTOBSERVES_HXX_
+
diff --git a/idlc/inc/idlc/astoperation.hxx b/idlc/inc/idlc/astoperation.hxx
new file mode 100644
index 000000000000..ea3e52f7fc15
--- /dev/null
+++ b/idlc/inc/idlc/astoperation.hxx
@@ -0,0 +1,111 @@
+/*************************************************************************
+ *
+ * $RCSfile: astoperation.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: jsc $ $Date: 2001-03-15 12:23:01 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source 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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifndef _IDLC_ASTOPERATION_HXX_
+#define _IDLC_ASTOPERATION_HXX_
+
+#ifndef _IDLC_ASTDECLARATION_HXX_
+#include <idlc/astdeclaration.hxx>
+#endif
+#ifndef _IDLC_ASTSCOPE_HXX_
+#include <idlc/astscope.hxx>
+#endif
+
+#define OP_NONE 0x0000
+#define OP_ONEWAY 0x0001
+
+class AstType;
+
+class AstOperation : public AstDeclaration
+ , public AstScope
+{
+public:
+ AstOperation(sal_uInt32 flags, AstType* pReturnType, const ::rtl::OString& name, AstScope* pScope)
+ : AstDeclaration(NT_operation, name, pScope)
+ , AstScope(NT_operation)
+ , m_flags(flags)
+ , m_pReturnType(pReturnType)
+ {}
+ virtual ~AstOperation() {}
+
+ sal_Bool isOneway()
+ { return ((m_flags & OP_ONEWAY) == OP_ONEWAY); }
+ sal_Bool isVoid();
+ AstType* getReturnType()
+ { return m_pReturnType; }
+
+ void addExceptions(StringList* pExceptions);
+ const DeclList& getExceptions()
+ { return m_exceptions; }
+ sal_uInt16 nExceptions()
+ { return m_exceptions.size(); }
+
+ sal_Bool dumpBlob(RegistryTypeWriter& rBlob, sal_uInt16 index);
+
+ // scope management
+ virtual AstDeclaration* addDeclaration(AstDeclaration* pDecl);
+private:
+ sal_uInt32 m_flags;
+ AstType* m_pReturnType;
+ DeclList m_exceptions;
+};
+
+#endif // _IDLC_ASTOPERATION_HXX_
+
diff --git a/idlc/inc/idlc/astparameter.hxx b/idlc/inc/idlc/astparameter.hxx
new file mode 100644
index 000000000000..afe2a13deb5d
--- /dev/null
+++ b/idlc/inc/idlc/astparameter.hxx
@@ -0,0 +1,95 @@
+/*************************************************************************
+ *
+ * $RCSfile: astparameter.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: jsc $ $Date: 2001-03-15 12:23:01 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source 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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifndef _IDLC_ASTPARAMETER_HXX_
+#define _IDLC_ASTPARAMETER_HXX_
+
+#ifndef _IDLC_ASTMEMBER_HXX_
+#include <idlc/astmember.hxx>
+#endif
+
+enum Direction
+{
+ DIR_IN,
+ DIR_OUT,
+ DIR_INOUT
+};
+
+class AstParameter : public AstMember
+{
+public:
+ AstParameter(Direction direction, AstType *pType, const ::rtl::OString& name, AstScope* pScope)
+ : AstMember(NT_parameter, pType, name, pScope)
+ , m_direction(direction)
+ , m_pType(pType)
+ {}
+ virtual ~AstParameter() {}
+
+ Direction getDirection()
+ { return m_direction; }
+ AstType* getType()
+ { return m_pType; }
+private:
+ Direction m_direction;
+ AstType* m_pType;
+};
+
+#endif // _IDLC_ASTPARAMETER_HXX_
+
diff --git a/idlc/inc/idlc/astscope.hxx b/idlc/inc/idlc/astscope.hxx
new file mode 100644
index 000000000000..9f3a842fba91
--- /dev/null
+++ b/idlc/inc/idlc/astscope.hxx
@@ -0,0 +1,114 @@
+/*************************************************************************
+ *
+ * $RCSfile: astscope.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: jsc $ $Date: 2001-03-15 12:23:01 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source 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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifndef _IDLC_ASTSCOPE_HXX_
+#define _IDLC_ASTSCOPE_HXX_
+
+#ifndef _IDLC_IDLC_HXX_
+#include <idlc/idlc.hxx>
+#endif
+
+class AstExpression;
+#ifndef _IDLC_ASTDECLARATION_HXX_
+#include <idlc/astdeclaration.hxx>
+#endif
+#ifndef _IDLC_ASTEXPRESSION_HXX_
+#include <idlc/astexpression.hxx>
+#endif
+
+class AstScope
+{
+public:
+ AstScope(NodeType nodeType);
+ virtual ~AstScope();
+
+ const NodeType getScopeNodeType()
+ { return m_nodeType; }
+
+ virtual AstDeclaration* addDeclaration(AstDeclaration* pDecl);
+
+ sal_uInt32 nMembers()
+ { return m_declarations.size(); }
+ DeclList::iterator getIteratorBegin()
+ { return m_declarations.begin(); }
+ DeclList::iterator getIteratorEnd()
+ { return m_declarations.end(); }
+ sal_uInt16 getNodeCount(NodeType nType);
+
+ // Name look up mechanism
+ AstDeclaration* lookupByName(const ::rtl::OString& scopedName);
+ // Look up the identifier 'name' specified only in the local scope
+ AstDeclaration* lookupByNameLocal(const ::rtl::OString& name);
+
+ AstDeclaration* lookupInForwarded(const ::rtl::OString& scopedName);
+ AstDeclaration* lookupInInherited(const ::rtl::OString& scopedName);
+
+ // Look up a predefined type by its ExprType
+ AstDeclaration* lookupPrimitiveType(ExprType type);
+
+ AstDeclaration* lookupForAdd(AstDeclaration* pDecl);
+
+private:
+ DeclList m_declarations;
+ const NodeType m_nodeType;
+};
+
+#endif // _IDLC_ASTSCOPE_HXX_
+
diff --git a/idlc/inc/idlc/astsequence.hxx b/idlc/inc/idlc/astsequence.hxx
new file mode 100644
index 000000000000..1044d7305e7d
--- /dev/null
+++ b/idlc/inc/idlc/astsequence.hxx
@@ -0,0 +1,92 @@
+/*************************************************************************
+ *
+ * $RCSfile: astsequence.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: jsc $ $Date: 2001-03-15 12:23:01 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source 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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifndef _IDLC_ASTSEQUENCE_HXX_
+#define _IDLC_ASTSEQUENCE_HXX_
+
+#ifndef _IDLC_ASTTYPE_HXX_
+#include <idlc/asttype.hxx>
+#endif
+
+class AstSequence : public AstType
+{
+public:
+ AstSequence(AstType* pMemberType, AstScope* pScope)
+ : AstType(NT_sequence, ::rtl::OString("[]")+pMemberType->getScopedName(), pScope)
+ , m_pMemberType(pMemberType)
+ , m_pRelativName(NULL)
+ {}
+ virtual ~AstSequence()
+ {
+ if ( m_pRelativName )
+ delete m_pRelativName;
+ }
+
+ AstType* getMemberType()
+ { return m_pMemberType; }
+
+ virtual const sal_Char* getRelativName();
+private:
+ AstType* m_pMemberType;
+ ::rtl::OString* m_pRelativName;
+};
+
+#endif // _IDLC_ASTSEQUENCE_HXX_
+
diff --git a/idlc/inc/idlc/astservice.hxx b/idlc/inc/idlc/astservice.hxx
new file mode 100644
index 000000000000..dee7b4727be5
--- /dev/null
+++ b/idlc/inc/idlc/astservice.hxx
@@ -0,0 +1,85 @@
+/*************************************************************************
+ *
+ * $RCSfile: astservice.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: jsc $ $Date: 2001-03-15 12:23:01 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source 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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifndef _IDLC_ASTSERVICE_HXX_
+#define _IDLC_ASTSERVICE_HXX_
+
+#ifndef _IDLC_ASTDECLARATION_HXX_
+#include <idlc/astdeclaration.hxx>
+#endif
+#ifndef _IDLC_ASTSCOPE_HXX_
+#include <idlc/astscope.hxx>
+#endif
+
+class AstService : public AstDeclaration
+ , public AstScope
+{
+public:
+ AstService(const ::rtl::OString& name, AstScope* pScope)
+ : AstDeclaration(NT_service, name, pScope)
+ , AstScope(NT_service)
+ {}
+ virtual ~AstService() {}
+
+ virtual sal_Bool dump(RegistryKey& rKey, RegistryTypeWriterLoader* pLoader);
+};
+
+#endif // _IDLC_ASTSERVICE_HXX_
+
diff --git a/idlc/inc/idlc/astservicemember.hxx b/idlc/inc/idlc/astservicemember.hxx
new file mode 100644
index 000000000000..9cc8258a172c
--- /dev/null
+++ b/idlc/inc/idlc/astservicemember.hxx
@@ -0,0 +1,89 @@
+/*************************************************************************
+ *
+ * $RCSfile: astservicemember.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: jsc $ $Date: 2001-03-15 12:23:01 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source 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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifndef _IDLC_ASTSERVICEMEMBER_HXX_
+#define _IDLC_ASTSERVICEMEMBER_HXX_
+
+#ifndef _IDLC_ASTSERVICE_HXX_
+#include <idlc/astservice.hxx>
+#endif
+
+class AstServiceMember : public AstDeclaration
+{
+public:
+ AstServiceMember(const sal_uInt32 flags, AstService* pRealService,
+ const ::rtl::OString& name, AstScope* pScope)
+ : AstDeclaration(NT_service_member, name, pScope)
+ , m_pRealService(pRealService)
+ , m_flags(flags)
+ {}
+ virtual ~AstServiceMember() {}
+
+ AstService* getRealService()
+ { return m_pRealService; }
+ sal_Bool isOptional()
+ { return ((m_flags & AF_OPTIONAL) == AF_OPTIONAL); }
+private:
+ const sal_uInt32 m_flags;
+ AstService* m_pRealService;
+};
+
+#endif // _IDLC_ASTSERVICEMEMBER_HXX_
+
diff --git a/idlc/inc/idlc/aststack.hxx b/idlc/inc/idlc/aststack.hxx
new file mode 100644
index 000000000000..459b959892ad
--- /dev/null
+++ b/idlc/inc/idlc/aststack.hxx
@@ -0,0 +1,92 @@
+/*************************************************************************
+ *
+ * $RCSfile: aststack.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: jsc $ $Date: 2001-03-15 12:23:01 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source 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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifndef _IDLC_ASTSTACK_HXX_
+#define _IDLC_ASTSTACK_HXX_
+
+#ifndef _SAL_TYPES_H_
+#include <sal/types.h>
+#endif
+
+class AstScope;
+
+class AstStack
+{
+public:
+ AstStack();
+ virtual ~AstStack();
+
+ sal_uInt32 depth();
+ AstScope* top();
+ AstScope* bottom();
+ AstScope* nextToTop();
+ AstScope* topNonNull();
+ AstStack* push(AstScope* pScope);
+ void pop();
+ void clear();
+
+private:
+ AstScope** m_stack;
+ sal_uInt32 m_size;
+ sal_uInt32 m_top;
+};
+
+#endif // _IDLC_ASTSTACK_HXX_
+
diff --git a/idlc/inc/idlc/aststruct.hxx b/idlc/inc/idlc/aststruct.hxx
new file mode 100644
index 000000000000..f264ed503719
--- /dev/null
+++ b/idlc/inc/idlc/aststruct.hxx
@@ -0,0 +1,94 @@
+/*************************************************************************
+ *
+ * $RCSfile: aststruct.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: jsc $ $Date: 2001-03-15 12:23:01 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source 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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifndef _IDLC_ASTSTRUCT_HXX_
+#define _IDLC_ASTSTRUCT_HXX_
+
+#ifndef _IDLC_ASTTYPE_HXX_
+#include <idlc/asttype.hxx>
+#endif
+#ifndef _IDLC_ASTSCOPE_HXX_
+#include <idlc/astscope.hxx>
+#endif
+
+class AstStruct;
+typedef ::std::vector< AstStruct* > InheritedTypes;
+
+class AstStruct : public AstType
+ , public AstScope
+{
+public:
+ AstStruct(const ::rtl::OString& name, AstStruct* pBaseType, AstScope* pScope);
+ AstStruct(const NodeType type,
+ const ::rtl::OString& name,
+ AstStruct* pBaseType,
+ AstScope* pScope);
+ virtual ~AstStruct();
+
+ AstStruct* getBaseType()
+ { return m_pBaseType; }
+
+ virtual sal_Bool dump(RegistryKey& rKey, RegistryTypeWriterLoader* pLoader);
+private:
+ AstStruct* m_pBaseType;
+};
+
+#endif // _IDLC_ASTSTRUCT_HXX_
+
diff --git a/idlc/inc/idlc/asttype.hxx b/idlc/inc/idlc/asttype.hxx
new file mode 100644
index 000000000000..a3b6fb78c6d8
--- /dev/null
+++ b/idlc/inc/idlc/asttype.hxx
@@ -0,0 +1,79 @@
+/*************************************************************************
+ *
+ * $RCSfile: asttype.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: jsc $ $Date: 2001-03-15 12:23:01 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source 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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifndef _IDLC_ASTTYPE_HXX_
+#define _IDLC_ASTTYPE_HXX_
+
+#ifndef _IDLC_ASTDECLARATION_HXX_
+#include <idlc/astdeclaration.hxx>
+#endif
+
+class AstType : public AstDeclaration
+{
+public:
+ AstType(const NodeType type, const ::rtl::OString& name, AstScope* pScope)
+ : AstDeclaration(type, name, pScope)
+ {}
+
+ virtual ~AstType() {}
+};
+
+#endif // _IDLC_ASTTYPE_HXX_
+
diff --git a/idlc/inc/idlc/asttypedef.hxx b/idlc/inc/idlc/asttypedef.hxx
new file mode 100644
index 000000000000..57a5cdcaf13d
--- /dev/null
+++ b/idlc/inc/idlc/asttypedef.hxx
@@ -0,0 +1,86 @@
+/*************************************************************************
+ *
+ * $RCSfile: asttypedef.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: jsc $ $Date: 2001-03-15 12:23:01 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source 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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifndef _IDLC_ASTTYPEDEF_HXX_
+#define _IDLC_ASTTYPEDEF_HXX_
+
+#ifndef _IDLC_ASTTYPE_HXX_
+#include <idlc/asttype.hxx>
+#endif
+
+class AstTypeDef : public AstType
+{
+public:
+ AstTypeDef(AstType* pBaseType, const ::rtl::OString& name, AstScope* pScope)
+ : AstType(NT_typedef, name, pScope)
+ , m_pBaseType(pBaseType)
+ {}
+ virtual ~AstTypeDef() {}
+
+ AstType* getBaseType()
+ { return m_pBaseType; }
+
+ virtual sal_Bool dump(RegistryKey& rKey, RegistryTypeWriterLoader* pLoader);
+private:
+ AstType* m_pBaseType;
+};
+
+#endif // _IDLC_ASTTYPEDEF_HXX_
+
diff --git a/idlc/inc/idlc/astunion.hxx b/idlc/inc/idlc/astunion.hxx
new file mode 100644
index 000000000000..074e93bab1a2
--- /dev/null
+++ b/