You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by Apache Wiki <wi...@apache.org> on 2008/07/13 08:56:45 UTC
[Thrift Wiki] Update of "ThriftIDL" by ChadWalters
Dear Wiki user,
You have subscribed to a wiki page or wiki category on "Thrift Wiki" for change notification.
The following page has been changed by ChadWalters:
http://wiki.apache.org/thrift/ThriftIDL
The comment on the change is:
Add initial stab at definitions
------------------------------------------------------------------------------
= Description =
- Here is an informal description of the Thrift IDL:
+ ''Under construction''
- ''To be added''
+ Here is a description of the Thrift IDL:
+
+ {{{Document ::= Header* Definition*}}}
+
+ {{{Header ::= Include | CppInclude | Namespace | XsdNamespace}}}
+
+ {{{Include ::= 'include' Literal}}}
+
+ {{{CppInclude ::= 'cpp_include' Literal}}}
+
+ {{{Namespace ::= 'namespace' ( ( NamespaceType Identifier ) |}}}
+ {{{ ( 'smalltalk.category' STIdentifier ) )}}}
+
+ {{{NamespaceType ::= '*' | LangID | 'smalltalk.prefix'}}}
+
+ {{{LangID ::= 'cpp' | 'java' | 'php' | 'py' | 'perl' | 'rb' |}}}
+ {{{ 'cocoa' | 'csharp'}}}
+
+ {{{XsdNamespace ::= 'xsd_namespace' Literal}}}
+
+ {{{Definition ::= Const | Typedef | Enum | Senum | Struct | Xception | Service}}}
+
+ {{{Const ::=}}}
+
+ {{{Typedef ::=}}}
+
+ {{{Enum ::=}}}
+
+ {{{Senum ::=}}}
+
+ {{{Struct ::= 'struct' Identifier XSDAll? '{' FieldList '}'}}}
+
+ {{{Xception ::=}}}
+
+ {{{Service ::= 'service' Identifier ( 'extends' Identifier )? '{' FunctionList '}'}}}
+
+ {{{XSDAll ::=}}}
+
+ {{{FieldList ::=}}}
+
+ {{{FunctionList ::=}}}
+
+ {{{Literal ::= ('"' [^"]* '"') | ("'" [^']* "'")}}}
+
+ {{{Identifier ::= ( Letter | '_' ) ( Letter | Digit | '.' | '_' )*}}}
+
+ {{{STIdentifier ::= ( Letter | '_' ) ( Letter | Digit | '.' | '_' | '-' )*}}}
+
+ {{{Letter ::= ['A'-'Z'] | ['a'-'z']}}}
+
+ {{{Digit ::= ['0'-'9']}}}
= Examples =