C# 클래스 Irony.Parsing.Grammar

파일 보기 프로젝트 열기: o2platform/O2.Platform.Projects 1 사용 예제들

공개 프로퍼티들

프로퍼티 타입 설명
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