From 19fca6712fdcf18c2a93866d604ea94170477a1b Mon Sep 17 00:00:00 2001 From: Antoine Chavasse Date: Sat, 13 Jun 2009 17:18:27 +0200 Subject: [PATCH] Grammar WIP. --- src/idl/parser/grammar_tokens.h | 4 ++++ src/idl/parser/grammar_type.h | 13 ++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/idl/parser/grammar_tokens.h b/src/idl/parser/grammar_tokens.h index 31cf076..75f389e 100644 --- a/src/idl/parser/grammar_tokens.h +++ b/src/idl/parser/grammar_tokens.h @@ -31,6 +31,8 @@ namespace fail { namespace idlparser struct RightBracket : Token< ']' > {}; struct LeftParen : Token< '(' > {}; struct RightParen : Token< ')' > {}; + struct Less : Token< '<' > {}; + struct Greater : Token< '>' > {}; struct Colon : Token< ':' > {}; struct SemiColon : Token< ';' > {}; struct Comma : Token< ',' > {}; @@ -58,6 +60,8 @@ namespace fail { namespace idlparser struct KWdouble : pegtl::string< 'd', 'o', 'u', 'b', 'l', 'e' > {}; struct KWstring : pegtl::string< 's', 't', 'r', 'i', 'n', 'g' > {}; struct KWdynamicbuffer : pegtl::string< 'd', 'y', 'n', 'a', 'm', 'i', 'c', 'b', 'u', 'f', 'f', 'e', 'r' > {}; + + struct KWshared_ptr : pegtl::string< 's', 'h', 'a', 'r', 'e', 'd', '_', 'p', 't', 'r' > {}; }} #endif diff --git a/src/idl/parser/grammar_type.h b/src/idl/parser/grammar_type.h index f926d74..97e355c 100644 --- a/src/idl/parser/grammar_type.h +++ b/src/idl/parser/grammar_type.h @@ -22,11 +22,13 @@ namespace fail { namespace idlparser { struct BasicType; + struct PointerType; + struct ClassRef; struct Type : seq< opt< Spacing >, - BasicType, + sor< BasicType, PointerType >, opt< Spacing > > {}; @@ -48,6 +50,15 @@ namespace fail { namespace idlparser KWdynamicbuffer > {}; + + struct PointerType : + seq< + KWshared_ptr, + Less, + opt< Padded< KWconst > >, + ClassRef, + Greater + > {}; }} #endif -- 2.11.4.GIT