3 Copyright 2007-2009 Antoine Chavasse <a.chavasse@gmail.com>
5 This file is part of Fail.
7 Fail is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License version 3
9 as published by the Free Software Foundation.
11 Fail is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
19 #ifndef FAIL_IDL_PARSER_GRAMMAR_CLASS_H
20 #define FAIL_IDL_PARSER_GRAMMAR_CLASS_H
22 #include "actions_class.h"
24 namespace fail
{ namespace idlparser
26 struct InheritanceList
;
42 ifapply
< identifier
, capture
< cap_ClassName
> >,
44 opt
< InheritanceList
>,
45 enclose
< LeftBrace
, ClassContent
, RightBrace
>,
57 ifapply
< identifier
, capture
< cap_ClassName
> >,
59 opt
< InheritanceList
>,
60 enclose
< LeftBrace
, ClassContent
, RightBrace
>,
68 FailList
< identifier
, ColonColon
, AddClassRefComponent
>
71 struct InheritanceList
:
74 FailList
< ClassRef
, Comma
, AddSuperClass
>
79 pegtl::plus
< sor
< FlagList
, Signal
, Function
, Attribute
, Enum
> >,
86 ifapply
< identifier
, capture
< cap_MemberName
> >,
95 opt
< FailList
< Type
, Comma
> >,
103 ifapply
< StaticMethod
, NewStaticMethod
>,
104 ifapply
< Ctor
, NewCtor
>,
105 ifapply
< Method
, NewMethod
>
110 opt
< Padded
< ifapply
< KWvirtual
, SetVirtual
> > >,
111 sor
< Padded
< KWvoid
>, Type
>,
112 not_at
< capture
< cap_ClassName
> >,
113 ifapply
< identifier
, capture
< cap_MemberName
> >,
119 struct StaticMethod
:
122 sor
< Padded
< KWvoid
>, Type
>,
123 not_at
< capture
< cap_ClassName
> >,
124 ifapply
< identifier
, capture
< cap_MemberName
> >,
131 Padded
< capture
< cap_ClassName
> >,
139 ifapply
< identifier
, AddParam
>
145 apply
< NewParamList
>,
146 opt
< FailList
< Param
, Comma
> >,