C# Class Irony.Parsing.Grammar

Show file Open project: o2platform/O2.Platform.Projects Class Usage Examples

Public Properties

Property Type Description
CaseSensitive bool
ConsoleGreeting string
ConsolePrompt string
ConsolePromptMoreInput string
ConsoleTitle string
Dedent Irony.Parsing.Terminal
DefaultCulture System.Globalization.CultureInfo
DefaultLiteralNodeType System.Type
DefaultNodeType System.Type
Delimiters string
Empty Irony.Parsing.Terminal
Eof Irony.Parsing.Terminal
Eos Irony.Parsing.Terminal
FallbackTerminals TerminalSet
GrammarComments string
Indent Irony.Parsing.Terminal
KeyTerms KeyTermTable
LanguageFlags LanguageFlags
LanguageStringComparer StringComparer
LineStartTerminal Irony.Parsing.Terminal
LineTerminators string
NewLine NewLineTerminal
NonGrammarTerminals TerminalSet
Root Irony.Parsing.NonTerminal
SnippetRoots NonTerminalSet
SyntaxError Irony.Parsing.Terminal
TermReportGroups TermReportGroupList
WhitespaceChars string

Public Methods

Method Description
ConstructParserErrorMessage ( ParsingContext context, StringSet expectedTerms ) : string
CreateAstNode ( ParsingContext context, ParseTreeNode nodeInfo ) : void
CreateRuntime ( Irony.Parsing.LanguageData data ) : LanguageRuntime
CreateTokenFilters ( Irony.Parsing.LanguageData language, TokenFilterList filters ) : void
FlagIsSet ( LanguageFlags flag ) : bool
GetParseNodeCaption ( ParseTreeNode node ) : string
Grammar ( ) : System
Grammar ( bool caseSensitive ) : System
MakePlusRule ( Irony.Parsing.NonTerminal listNonTerminal, BnfTerm listMember ) : BnfExpression
MakePlusRule ( Irony.Parsing.NonTerminal listNonTerminal, BnfTerm delimiter, BnfTerm listMember ) : BnfExpression
MakePlusRule ( Irony.Parsing.NonTerminal listNonTerminal, BnfTerm delimiter, BnfTerm listMember, TermListOptions options ) : BnfExpression
MakeStarRule ( Irony.Parsing.NonTerminal listNonTerminal, BnfTerm listMember ) : BnfExpression
MakeStarRule ( Irony.Parsing.NonTerminal listNonTerminal, BnfTerm delimiter, BnfTerm listMember ) : BnfExpression
MakeStarRule ( Irony.Parsing.NonTerminal listNonTerminal, BnfTerm delimiter, BnfTerm listMember, TermListOptions options ) : BnfExpression
MarkMemberSelect ( ) : void
MarkNotReported ( ) : void
MarkPunctuation ( ) : void
MarkReservedWords ( ) : void
MarkTransient ( ) : void
OnGrammarDataConstructed ( Irony.Parsing.LanguageData language ) : void
OnLanguageDataConstructed ( Irony.Parsing.LanguageData language ) : void
OnResolvingConflict ( ConflictResolutionArgs args ) : void

Override this method to provide custom conflict resolution; for example, custom code may decide proper shift or reduce action based on preview of tokens ahead.

OnScannerSelectTerminal ( ParsingContext context ) : void

Override this method to help scanner select a terminal to create token when there are more than one candidates for an input char. Context.CurrentTerminals contains candidate terminals; leave a single terminal in this list as the one to use.

RegisterBracePair ( string openBrace, string closeBrace ) : void
RegisterOperators ( int precedence ) : void
RegisterOperators ( int precedence, Associativity associativity ) : void
RunSample ( ParseTree parsedSample ) : string
ToTerm ( string text ) : KeyTerm
ToTerm ( string text, string name ) : KeyTerm
TryMatch ( ParsingContext context, ISourceStream source ) : Token

Protected Methods

Method Description
AddOperatorReportGroup ( string alias ) : void

Adds a group and an alias for all operator symbols used in the grammar.

AddTermsReportGroup ( string alias ) : void

Creates a terminal reporting group, so all terminals in the group will be reported as a single "alias" in syntex error messages like "Syntax error, expected: [list of terms]"

AddToNoReportGroup ( ) : void

Adds symbols to a group with no-report type, so symbols will not be shown in expected lists in syntax error messages.

ImplyPrecedenceHere ( int precedence ) : GrammarHint
ImplyPrecedenceHere ( int precedence, Associativity associativity ) : GrammarHint
PreferShiftHere ( ) : GrammarHint
ReduceHere ( ) : GrammarHint
ResolveInCode ( ) : GrammarHint

Private Methods

Method Description
ClearCurrentGrammar ( ) : void
RegisterPunctuation ( ) : void
Symbol ( string symbol ) : KeyTerm
Symbol ( string symbol, string name ) : KeyTerm
SymbolsToTerms ( IEnumerable symbols ) : IEnumerable

Method Details

AddOperatorReportGroup() protected method

Adds a group and an alias for all operator symbols used in the grammar.
protected AddOperatorReportGroup ( string alias ) : void
alias string An alias for operator symbols.
return void

AddTermsReportGroup() protected method

Creates a terminal reporting group, so all terminals in the group will be reported as a single "alias" in syntex error messages like "Syntax error, expected: [list of terms]"
protected AddTermsReportGroup ( string alias ) : void
alias string An alias for all terminals in the group.
return void

AddToNoReportGroup() protected method

Adds symbols to a group with no-report type, so symbols will not be shown in expected lists in syntax error messages.
protected AddToNoReportGroup ( ) : void
return void

ConstructParserErrorMessage() public method

public ConstructParserErrorMessage ( ParsingContext context, StringSet expectedTerms ) : string
context ParsingContext
expectedTerms StringSet
return string

CreateAstNode() public method

public CreateAstNode ( ParsingContext context, ParseTreeNode nodeInfo ) : void
context ParsingContext
nodeInfo ParseTreeNode
return void

CreateRuntime() public method

public CreateRuntime ( Irony.Parsing.LanguageData data ) : LanguageRuntime
data Irony.Parsing.LanguageData
return LanguageRuntime

CreateTokenFilters() public method

public CreateTokenFilters ( Irony.Parsing.LanguageData language, TokenFilterList filters ) : void
language Irony.Parsing.LanguageData
filters TokenFilterList
return void

FlagIsSet() public method

public FlagIsSet ( LanguageFlags flag ) : bool
flag LanguageFlags
return bool

GetParseNodeCaption() public method

public GetParseNodeCaption ( ParseTreeNode node ) : string
node ParseTreeNode
return string

Grammar() public method

public Grammar ( ) : System
return System

Grammar() public method

public Grammar ( bool caseSensitive ) : System
caseSensitive bool
return System

ImplyPrecedenceHere() protected method

protected ImplyPrecedenceHere ( int precedence ) : GrammarHint
precedence int
return GrammarHint

ImplyPrecedenceHere() protected method

protected ImplyPrecedenceHere ( int precedence, Associativity associativity ) : GrammarHint
precedence int
associativity Associativity
return GrammarHint

MakePlusRule() public static method

public static MakePlusRule ( Irony.Parsing.NonTerminal listNonTerminal, BnfTerm listMember ) : BnfExpression
listNonTerminal Irony.Parsing.NonTerminal
listMember BnfTerm
return BnfExpression

MakePlusRule() public static method

public static MakePlusRule ( Irony.Parsing.NonTerminal listNonTerminal, BnfTerm delimiter, BnfTerm listMember ) : BnfExpression
listNonTerminal Irony.Parsing.NonTerminal
delimiter BnfTerm
listMember BnfTerm
return BnfExpression

MakePlusRule() public static method

public static MakePlusRule ( Irony.Parsing.NonTerminal listNonTerminal, BnfTerm delimiter, BnfTerm listMember, TermListOptions options ) : BnfExpression
listNonTerminal Irony.Parsing.NonTerminal
delimiter BnfTerm
listMember BnfTerm
options TermListOptions
return BnfExpression

MakeStarRule() public static method

public static MakeStarRule ( Irony.Parsing.NonTerminal listNonTerminal, BnfTerm listMember ) : BnfExpression
listNonTerminal Irony.Parsing.NonTerminal
listMember BnfTerm
return BnfExpression

MakeStarRule() public static method

public static MakeStarRule ( Irony.Parsing.NonTerminal listNonTerminal, BnfTerm delimiter, BnfTerm listMember ) : BnfExpression
listNonTerminal Irony.Parsing.NonTerminal
delimiter BnfTerm
listMember BnfTerm
return BnfExpression

MakeStarRule() public static method

public static MakeStarRule ( Irony.Parsing.NonTerminal listNonTerminal, BnfTerm delimiter, BnfTerm listMember, TermListOptions options ) : BnfExpression
listNonTerminal Irony.Parsing.NonTerminal
delimiter BnfTerm
listMember BnfTerm
options TermListOptions
return BnfExpression

MarkMemberSelect() public method

public MarkMemberSelect ( ) : void
return void

MarkNotReported() public method

public MarkNotReported ( ) : void
return void

MarkPunctuation() public method

public MarkPunctuation ( ) : void
return void

MarkReservedWords() public method

public MarkReservedWords ( ) : void
return void

MarkTransient() public method

public MarkTransient ( ) : void
return void

OnGrammarDataConstructed() public method

public OnGrammarDataConstructed ( Irony.Parsing.LanguageData language ) : void
language Irony.Parsing.LanguageData
return void

OnLanguageDataConstructed() public method

public OnLanguageDataConstructed ( Irony.Parsing.LanguageData language ) : void
language Irony.Parsing.LanguageData
return void

OnResolvingConflict() public method

Override this method to provide custom conflict resolution; for example, custom code may decide proper shift or reduce action based on preview of tokens ahead.
public OnResolvingConflict ( ConflictResolutionArgs args ) : void
args ConflictResolutionArgs
return void

OnScannerSelectTerminal() public method

Override this method to help scanner select a terminal to create token when there are more than one candidates for an input char. Context.CurrentTerminals contains candidate terminals; leave a single terminal in this list as the one to use.
public OnScannerSelectTerminal ( ParsingContext context ) : void
context ParsingContext
return void

PreferShiftHere() protected method

protected PreferShiftHere ( ) : GrammarHint
return GrammarHint

ReduceHere() protected method

protected ReduceHere ( ) : GrammarHint
return GrammarHint

RegisterBracePair() public method

public RegisterBracePair ( string openBrace, string closeBrace ) : void
openBrace string
closeBrace string
return void

RegisterOperators() public method

public RegisterOperators ( int precedence ) : void
precedence int
return void

RegisterOperators() public method

public RegisterOperators ( int precedence, Associativity associativity ) : void
precedence int
associativity Associativity
return void

ResolveInCode() protected method

protected ResolveInCode ( ) : GrammarHint
return GrammarHint

RunSample() public method

public RunSample ( ParseTree parsedSample ) : string
parsedSample ParseTree
return string

ToTerm() public method

public ToTerm ( string text ) : KeyTerm
text string
return KeyTerm

ToTerm() public method

public ToTerm ( string text, string name ) : KeyTerm
text string
name string
return KeyTerm

TryMatch() public method

public TryMatch ( ParsingContext context, ISourceStream source ) : Token
context ParsingContext
source ISourceStream
return Token

Property Details

CaseSensitive public property

Gets case sensitivity of the grammar. Read-only, true by default. Can be set to false only through a parameter to grammar constructor.
public bool CaseSensitive
return bool

ConsoleGreeting public property

public string ConsoleGreeting
return string

ConsolePrompt public property

public string ConsolePrompt
return string

ConsolePromptMoreInput public property

public string ConsolePromptMoreInput
return string

ConsoleTitle public property

public string ConsoleTitle
return string

Dedent public property

public Terminal,Irony.Parsing Dedent
return Irony.Parsing.Terminal

DefaultCulture public property

public CultureInfo,System.Globalization DefaultCulture
return System.Globalization.CultureInfo

DefaultLiteralNodeType public property

public Type,System DefaultLiteralNodeType
return System.Type

DefaultNodeType public property

public Type,System DefaultNodeType
return System.Type

Delimiters public property

public string Delimiters
return string

Empty public property

public Terminal,Irony.Parsing Empty
return Irony.Parsing.Terminal

Eof public property

public Terminal,Irony.Parsing Eof
return Irony.Parsing.Terminal

Eos public property

public Terminal,Irony.Parsing Eos
return Irony.Parsing.Terminal

FallbackTerminals public property

public TerminalSet FallbackTerminals
return TerminalSet

GrammarComments public property

public string GrammarComments
return string

Indent public property

public Terminal,Irony.Parsing Indent
return Irony.Parsing.Terminal

KeyTerms public property

public KeyTermTable KeyTerms
return KeyTermTable

LanguageFlags public property

public LanguageFlags LanguageFlags
return LanguageFlags

LanguageStringComparer public property

public StringComparer LanguageStringComparer
return StringComparer

LineStartTerminal public property

public Terminal,Irony.Parsing LineStartTerminal
return Irony.Parsing.Terminal

LineTerminators public property

public string LineTerminators
return string

NewLine public property

public NewLineTerminal,Irony.Parsing NewLine
return NewLineTerminal

NonGrammarTerminals public property

public TerminalSet NonGrammarTerminals
return TerminalSet

Root public property

The main root entry for the grammar.
public NonTerminal,Irony.Parsing Root
return Irony.Parsing.NonTerminal

SnippetRoots public property

Alternative roots for parsing code snippets.
public NonTerminalSet SnippetRoots
return NonTerminalSet

SyntaxError public property

public Terminal,Irony.Parsing SyntaxError
return Irony.Parsing.Terminal

TermReportGroups public property

public TermReportGroupList TermReportGroups
return TermReportGroupList

WhitespaceChars public property

public string WhitespaceChars
return string