%{
+#include <config.h>
#include <iostream>
#include <sstream>
static Function* current_function = 0;
static Type* current_type = 0;
static Field* current_field = 0;
-static ClassMember::Visbility current_visibility;
+static ClassMember::Visibility current_visibility;
class ParseError : public std::exception
{
%token T_CLASS
%token T_STRUCT
%token T_STATIC
+%token T_SUSPEND
+%token T_CUSTOM
%token T_CONST
%token T_UNSIGNED
%token T_SIGNED
%token T_BOOL
%token T_CHAR
%token T_SHORT
-%token T_INT
%token T_LONG
-%token T_FLOAT
%token T_DOUBLE
%token T_PUBLIC
%token T_PROTECTED
current_function->docu_comment = last_docucomment;
last_docucomment = "";
}
- parameter_list ')' maybe_const abstract_declaration ';'
+ parameter_list ')' function_attributes abstract_declaration ';'
{
$$ = current_function;
}
;
-maybe_const:
+function_attributes:
/* empty */
- | T_CONST
+ | T_CONST function_attributes
+ | T_CUSTOM '(' T_STRING ')' function_attributes
+ {
+ current_function->parameter_spec = $3;
+ current_function->custom = true;
+ }
+ | T_SUSPEND function_attributes
+ {
+ current_function->suspend = true;
+ }
;
abstract_declaration: