C# Класс Irony.Parsing.Grammar

Показать файл Открыть проект Примеры использования класса

Открытые свойства

Свойство Тип Описание
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

Открытые методы

Метод Описание
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

Защищенные методы

Метод Описание
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

Приватные методы

Метод Описание
ClearCurrentGrammar ( ) : void
RegisterPunctuation ( ) : void
Symbol ( string symbol ) : KeyTerm
Symbol ( string symbol, string name ) : KeyTerm
SymbolsToTerms ( IEnumerable symbols ) : IEnumerable

Описание методов

AddOperatorReportGroup() защищенный Метод

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.
Результат void

AddTermsReportGroup() защищенный Метод

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.
Результат void

AddToNoReportGroup() защищенный Метод

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
Результат void

ConstructParserErrorMessage() публичный Метод

public ConstructParserErrorMessage ( ParsingContext context, StringSet expectedTerms ) : string
context ParsingContext
expectedTerms StringSet
Результат string

CreateAstNode() публичный Метод

public CreateAstNode ( ParsingContext context, ParseTreeNode nodeInfo ) : void
context ParsingContext
nodeInfo ParseTreeNode
Результат void

CreateRuntime() публичный Метод

public CreateRuntime ( Irony.Parsing.LanguageData data ) : LanguageRuntime
data Irony.Parsing.LanguageData
Результат LanguageRuntime

CreateTokenFilters() публичный Метод

public CreateTokenFilters ( Irony.Parsing.LanguageData language, TokenFilterList filters ) : void
language Irony.Parsing.LanguageData
filters TokenFilterList
Результат void

FlagIsSet() публичный Метод

public FlagIsSet ( LanguageFlags flag ) : bool
flag LanguageFlags
Результат bool

GetParseNodeCaption() публичный Метод

public GetParseNodeCaption ( ParseTreeNode node ) : string
node ParseTreeNode
Результат string

Grammar() публичный Метод

public Grammar ( ) : System
Результат System

Grammar() публичный Метод

public Grammar ( bool caseSensitive ) : System
caseSensitive bool
Результат System

ImplyPrecedenceHere() защищенный Метод

protected ImplyPrecedenceHere ( int precedence ) : GrammarHint
precedence int
Результат GrammarHint

ImplyPrecedenceHere() защищенный Метод

protected ImplyPrecedenceHere ( int precedence, Associativity associativity ) : GrammarHint
precedence int
associativity Associativity
Результат GrammarHint

MakePlusRule() публичный статический Метод

public static MakePlusRule ( Irony.Parsing.NonTerminal listNonTerminal, BnfTerm listMember ) : BnfExpression
listNonTerminal Irony.Parsing.NonTerminal
listMember BnfTerm
Результат BnfExpression

MakePlusRule() публичный статический Метод

public static MakePlusRule ( Irony.Parsing.NonTerminal listNonTerminal, BnfTerm delimiter, BnfTerm listMember ) : BnfExpression
listNonTerminal Irony.Parsing.NonTerminal
delimiter BnfTerm
listMember BnfTerm
Результат BnfExpression

MakePlusRule() публичный статический Метод

public static MakePlusRule ( Irony.Parsing.NonTerminal listNonTerminal, BnfTerm delimiter, BnfTerm listMember, TermListOptions options ) : BnfExpression
listNonTerminal Irony.Parsing.NonTerminal
delimiter BnfTerm
listMember BnfTerm
options TermListOptions
Результат BnfExpression

MakeStarRule() публичный статический Метод

public static MakeStarRule ( Irony.Parsing.NonTerminal listNonTerminal, BnfTerm listMember ) : BnfExpression
listNonTerminal Irony.Parsing.NonTerminal
listMember BnfTerm
Результат BnfExpression

MakeStarRule() публичный статический Метод

public static MakeStarRule ( Irony.Parsing.NonTerminal listNonTerminal, BnfTerm delimiter, BnfTerm listMember ) : BnfExpression
listNonTerminal Irony.Parsing.NonTerminal
delimiter BnfTerm
listMember BnfTerm
Результат BnfExpression

MakeStarRule() публичный статический Метод

public static MakeStarRule ( Irony.Parsing.NonTerminal listNonTerminal, BnfTerm delimiter, BnfTerm listMember, TermListOptions options ) : BnfExpression
listNonTerminal Irony.Parsing.NonTerminal
delimiter BnfTerm
listMember BnfTerm
options TermListOptions
Результат BnfExpression

MarkMemberSelect() публичный Метод

public MarkMemberSelect ( ) : void
Результат void

MarkNotReported() публичный Метод

public MarkNotReported ( ) : void
Результат void

MarkPunctuation() публичный Метод

public MarkPunctuation ( ) : void
Результат void

MarkReservedWords() публичный Метод

public MarkReservedWords ( ) : void
Результат void

MarkTransient() публичный Метод

public MarkTransient ( ) : void
Результат void

OnGrammarDataConstructed() публичный Метод

public OnGrammarDataConstructed ( Irony.Parsing.LanguageData language ) : void
language Irony.Parsing.LanguageData
Результат void

OnLanguageDataConstructed() публичный Метод

public OnLanguageDataConstructed ( Irony.Parsing.LanguageData language ) : void
language Irony.Parsing.LanguageData
Результат void

OnResolvingConflict() публичный Метод

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
Результат void

OnScannerSelectTerminal() публичный Метод

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
Результат void

PreferShiftHere() защищенный Метод

protected PreferShiftHere ( ) : GrammarHint
Результат GrammarHint

ReduceHere() защищенный Метод

protected ReduceHere ( ) : GrammarHint
Результат GrammarHint

RegisterBracePair() публичный Метод

public RegisterBracePair ( string openBrace, string closeBrace ) : void
openBrace string
closeBrace string
Результат void

RegisterOperators() публичный Метод

public RegisterOperators ( int precedence ) : void
precedence int
Результат void

RegisterOperators() публичный Метод

public RegisterOperators ( int precedence, Associativity associativity ) : void
precedence int
associativity Associativity
Результат void

ResolveInCode() защищенный Метод

protected ResolveInCode ( ) : GrammarHint
Результат GrammarHint

RunSample() публичный Метод

public RunSample ( ParseTree parsedSample ) : string
parsedSample ParseTree
Результат string

ToTerm() публичный Метод

public ToTerm ( string text ) : KeyTerm
text string
Результат KeyTerm

ToTerm() публичный Метод

public ToTerm ( string text, string name ) : KeyTerm
text string
name string
Результат KeyTerm

TryMatch() публичный Метод

public TryMatch ( ParsingContext context, ISourceStream source ) : Token
context ParsingContext
source ISourceStream
Результат Token

Описание свойств

CaseSensitive публичное свойство

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
Результат bool

ConsoleGreeting публичное свойство

public string ConsoleGreeting
Результат string

ConsolePrompt публичное свойство

public string ConsolePrompt
Результат string

ConsolePromptMoreInput публичное свойство

public string ConsolePromptMoreInput
Результат string

ConsoleTitle публичное свойство

public string ConsoleTitle
Результат string

Dedent публичное свойство

public Terminal,Irony.Parsing Dedent
Результат Irony.Parsing.Terminal

DefaultCulture публичное свойство

public CultureInfo,System.Globalization DefaultCulture
Результат System.Globalization.CultureInfo

DefaultLiteralNodeType публичное свойство

public Type,System DefaultLiteralNodeType
Результат System.Type

DefaultNodeType публичное свойство

public Type,System DefaultNodeType
Результат System.Type

Delimiters публичное свойство

public string Delimiters
Результат string

Empty публичное свойство

public Terminal,Irony.Parsing Empty
Результат Irony.Parsing.Terminal

Eof публичное свойство

public Terminal,Irony.Parsing Eof
Результат Irony.Parsing.Terminal

Eos публичное свойство

public Terminal,Irony.Parsing Eos
Результат Irony.Parsing.Terminal

FallbackTerminals публичное свойство

public TerminalSet FallbackTerminals
Результат TerminalSet

GrammarComments публичное свойство

public string GrammarComments
Результат string

Indent публичное свойство

public Terminal,Irony.Parsing Indent
Результат Irony.Parsing.Terminal

KeyTerms публичное свойство

public KeyTermTable KeyTerms
Результат KeyTermTable

LanguageFlags публичное свойство

public LanguageFlags LanguageFlags
Результат LanguageFlags

LanguageStringComparer публичное свойство

public StringComparer LanguageStringComparer
Результат StringComparer

LineStartTerminal публичное свойство

public Terminal,Irony.Parsing LineStartTerminal
Результат Irony.Parsing.Terminal

LineTerminators публичное свойство

public string LineTerminators
Результат string

NewLine публичное свойство

public NewLineTerminal,Irony.Parsing NewLine
Результат NewLineTerminal

NonGrammarTerminals публичное свойство

public TerminalSet NonGrammarTerminals
Результат TerminalSet

Root публичное свойство

The main root entry for the grammar.
public NonTerminal,Irony.Parsing Root
Результат Irony.Parsing.NonTerminal

SnippetRoots публичное свойство

Alternative roots for parsing code snippets.
public NonTerminalSet SnippetRoots
Результат NonTerminalSet

SyntaxError публичное свойство

public Terminal,Irony.Parsing SyntaxError
Результат Irony.Parsing.Terminal

TermReportGroups публичное свойство

public TermReportGroupList TermReportGroups
Результат TermReportGroupList

WhitespaceChars публичное свойство

public string WhitespaceChars
Результат string