C# grammar (based on ecma-334 spec) -- Robin Debreuil Fri Mar 5, 2004 11:50 -- A (mostly) complete cs parser. It parses into a tree structure loosely based on the CodeDom. Does not yet do #if preprocessor segments, and no unsafe code (as of yet). You can test by downloading the CSharp.zip file and dragging cs files into CSharp.exe. The zip includes the grammar file, as well as the cs token classes (the grammar uses a heterogeneous tree, though that should be simple to turn off). -- permalink: http://www.debreuil.com/CSharp. TJP: copied src, exe to antlr.org and changed link as debreuil's links are dead.
Class | Description |
---|---|
AssemblyScope | |
BlockScope | |
BuiltInDefinition | Base class for Definitions. Definitions may be variables, or scopes that have names. |
Definition | Base class for Definitions. Definitions may be variables, or scopes that have names. |
DefinitionCollection | A strongly-typed collection of IDefinition objects. |
ExpressionRoot | |
ExpressionRootCollection | A strongly-typed collection of ExpressionRoot objects. |
MemberScope | |
NamespaceScope | |
OverloadableDefinition | Base class for Definitions. Definitions may be variables, or scopes that have names. |
Scope | |
ScopeCollection | A strongly-typed collection of Scope objects. |
Symbol | |
TypeScope | |
TypeScopeCollection | A strongly-typed collection of TypeScope objects. |
Interface | Description |
---|---|
DefinitionCollection.IDefinitionCollectionEnumerator | Supports type-safe iteration over a DefinitionCollection. |
ExpressionRootCollection.IExpressionRootCollectionEnumerator | Supports type-safe iteration over a ExpressionRootCollection. |
IDefinition | Interface for Defintions. Definitions may be variable declarations, or scope declarations that have names (like types or methods, but not blocks or accessors). Note: With members that can declare multiple types at once, like fields or events, the declarator is the IDefinition. |
INamedScope | Interface used to differentiate between named scopes (ns, types, members) and unnamed (asm, block). |
ISymbol | |
ScopeCollection.IScopeCollectionEnumerator | Supports type-safe iteration over a ScopeCollection. |
TypeScopeCollection.ITypeScopeCollectionEnumerator | Supports type-safe iteration over a TypeScopeCollection. |
Enumeration | Description |
---|---|
DefinitionCollection.Tag | |
ExpressionRootCollection.Tag | |
LiteralType | An enumeration of the built in types, from 'lowest' to 'highest'. |
ScopeCollection.Tag | |
TypeScopeCollection.Tag |