C# Класс IronPython.Compiler.Parser

Summary description for Parser.
Наследование: IDisposable
Показать файл Открыть проект Примеры использования класса

Private Properties

Свойство Тип Описание
AddTrailers IronPython.Compiler.Ast.Expression
AddTrailers IronPython.Compiler.Ast.Expression
BadSourceError System.Exception
CheckSuiteEofError void
CheckUniqueArgument void
CheckUniqueParameter void
CompleteParameterName void
CreateParser Parser
CreateParserWorker Parser
Eat bool
EatEndOfInput IronPython.Compiler.Token
EatNewLine bool
EatNoEof bool
Error IronPython.Compiler.Ast.ErrorExpression
ErrorStmt IronPython.Compiler.Ast.ExpressionStatement
FetchLookahead void
FinishArgListOrGenExpr IronPython.Compiler.Ast.Arg[]
FinishArgumentList IronPython.Compiler.Ast.Arg[]
FinishAssignments IronPython.Compiler.Ast.Statement
FinishBytesPlus System.Bytes
FinishCallExpr IronPython.Compiler.Ast.CallExpression
FinishDictComp IronPython.Compiler.Ast.DictionaryComprehension
FinishDictOrSetValue IronPython.Compiler.Ast.Expression
FinishExpressionListAsExpr IronPython.Compiler.Ast.Expression
FinishKeywordArgument IronPython.Compiler.Ast.Arg
FinishLambdef IronPython.Compiler.Ast.Expression
FinishListComp IronPython.Compiler.Ast.ListComprehension
FinishListValue IronPython.Compiler.Ast.Expression
FinishOldLambdef IronPython.Compiler.Ast.Expression
FinishParsing IronPython.Compiler.Ast.PythonAst
FinishSetComp IronPython.Compiler.Ast.SetComprehension
FinishSlice IronPython.Compiler.Ast.Expression
FinishSmallStmt IronPython.Compiler.Ast.Statement
FinishStringConversion IronPython.Compiler.Ast.Expression
FinishStringPlus string
FinishTupleOrGenExp IronPython.Compiler.Ast.Expression
FinishUnaryNegate IronPython.Compiler.Ast.Expression
FixName string
GetAssignOperator IronPython.Compiler.Ast.PythonOperator
GetBinaryOperator IronPython.Compiler.Ast.PythonOperator
GetEnd int
GetErrorMessage string
GetPrivatePrefix string
GetSourceSpan Microsoft.Scripting.SourceSpan
GetStart int
InternalParseInteractiveInput IronPython.Compiler.Ast.Statement
IsPrivateName bool
MakeTupleOrExpr IronPython.Compiler.Ast.Expression
MakeTupleOrExpr IronPython.Compiler.Ast.Expression
MarkFunctionContainsFinally void
MaybeEat bool
MaybeEatNewLine bool
MaybeParseAsName string
NestGenExpr Statement
NeverTestToken bool
NextToken Token
ParseAndTest Expression
ParseAsNameList void
ParseAssertStmt AssertStatement
ParseClassDef ClassDefinition
ParseClassOrFuncBody Statement
ParseCompFor ComprehensionFor
ParseCompIf ComprehensionIf
ParseCompIter ComprehensionIterator[]
ParseComparison Expression
ParseConditionalTest Expression
ParseDecorated Statement
ParseDecorators List
ParseDelStmt Statement
ParseExecStmt ExecStatement
ParseExpr Expression
ParseExpr Expression
ParseExprList List
ParseExprStmt Statement
ParseExpression Expression
ParseExpressionList List
ParseFactor Expression
ParseFileWorker PythonAst
ParseFinallySuite Statement
ParseForStmt ForStatement
ParseFromImportStmt FromImportStatement
ParseFuncDef FunctionDefinition
ParseGenExprFor ForStatement
ParseGenExprIf IfStatement
ParseGeneratorExpression Expression
ParseGlobalStmt GlobalStatement
ParseIfStmt IfStatement
ParseIfStmtTest IfStatementTest
ParseImportStmt ImportStatement
ParseLambdaHelperEnd Expression
ParseLambdaHelperStart FunctionDefinition
ParseListCompFor ComprehensionFor
ParseListCompIter ComprehensionIterator[]
ParseLoopSuite Statement
ParseModuleName ModuleName
ParseNotTest Expression
ParseOldExpression Expression
ParseOldExpressionList List
ParseOldExpressionListAsExpr Expression
ParseOrTest Expression
ParseParameter Parameter
ParseParameterName Parameter
ParsePower Expression
ParsePrimary Expression
ParsePrintStmt PrintStatement
ParseRaiseStmt RaiseStatement
ParseRelativeModuleName ModuleName
ParseReturnStmt Statement
ParseSimpleStmt Statement
ParseSliceEnd Expression
ParseSmallStmt Statement
ParseStmt Statement
ParseSublist Expression
ParseSublistParameter Expression
ParseSubscriptList Expression
ParseSuite Statement
ParseTarget Expression
ParseTargetList List
ParseTestList List
ParseTestListAsExpr Expression
ParseTestListAsExpr Expression
ParseTestListAsExprError Expression
ParseTestListAsExpression Expression
ParseTryStatement Statement
ParseTryStmtHandler TryStatementHandler
ParseVarArgsList Parameter[]
ParseWhileStmt WhileStatement
ParseWithItem WithItem
ParseWithStmt WithStatement
ParseYieldExpression Expression
ParseYieldStmt Statement
Parser System
PeekToken Token
PeekToken bool
PeekToken bool
PopFunction FunctionDefinition
PushFunction void
ReadName string
ReadNameMaybeNone string
ReadNames string[]
ReportSyntaxError void
ReportSyntaxError void
ReportSyntaxError void
ReportSyntaxError void
ReportSyntaxError void
ReportSyntaxError void
SetPrivatePrefix string
StartParsing void

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

Метод Описание
CreateParser ( CompilerContext context, PythonOptions options ) : Parser
Dispose ( ) : void
GetNextAutoIndentSize ( string text, int autoIndentTabWidth ) : int

Given the interactive text input for a compound statement, calculate what the indentation level of the next line should be

ParseFile ( bool makeModule ) : PythonAst
ParseFile ( bool makeModule, bool returnValue ) : PythonAst
ParseInteractiveCode ( ScriptCodeParseResult &properties ) : PythonAst

Parse one or more lines of interactive input

ParseSingleStatement ( ) : PythonAst
ParseTopExpression ( ) : PythonAst
Reset ( ) : void
Reset ( SourceUnit sourceUnit, ModuleOptions languageFeatures ) : void

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

Метод Описание
AddTrailers ( Expression ret ) : Expression
AddTrailers ( Expression ret, bool allowGeneratorExpression ) : Expression
BadSourceError ( BadSourceException bse ) : Exception
CheckSuiteEofError ( IronPython.Compiler.TokenWithSpan cur ) : void
CheckUniqueArgument ( List names, Arg arg ) : void
CheckUniqueParameter ( HashSet names, string name ) : void
CompleteParameterName ( Node node, string name, HashSet names ) : void
CreateParser ( CompilerContext context, PythonOptions options, bool verbatim ) : Parser
CreateParserWorker ( CompilerContext context, PythonOptions options, bool verbatim ) : Parser
Eat ( TokenKind kind ) : bool
EatEndOfInput ( ) : IronPython.Compiler.Token
EatNewLine ( ) : bool

Eats a new line token throwing if the next token isn't a new line. Python always tokenizes to have only 1 new line character in a row. But we also craete NLToken's and ignore them except for error reporting purposes. This gives us the same errors as CPython and also matches the behavior of the standard library tokenize module. This function eats any present NL tokens and throws them away.

EatNoEof ( TokenKind kind ) : bool
Error ( ) : ErrorExpression
ErrorStmt ( ) : IronPython.Compiler.Ast.ExpressionStatement
FetchLookahead ( ) : void
FinishArgListOrGenExpr ( ) : IronPython.Compiler.Ast.Arg[]
FinishArgumentList ( Arg first ) : IronPython.Compiler.Ast.Arg[]
FinishAssignments ( Expression right ) : Statement
FinishBytesPlus ( System.Bytes s ) : System.Bytes
FinishCallExpr ( Expression target ) : IronPython.Compiler.Ast.CallExpression
FinishDictComp ( Expression key, Expression value ) : DictionaryComprehension
FinishDictOrSetValue ( ) : Expression
FinishExpressionListAsExpr ( Expression expr ) : Expression
FinishKeywordArgument ( Expression t ) : Arg
FinishLambdef ( ) : Expression
FinishListComp ( Expression item ) : ListComprehension
FinishListValue ( ) : Expression
FinishOldLambdef ( ) : Expression
FinishParsing ( Statement ret ) : IronPython.Compiler.Ast.PythonAst
FinishSetComp ( Expression item ) : SetComprehension
FinishSlice ( Expression e0, int start ) : Expression
FinishSmallStmt ( Statement stmt ) : Statement
FinishStringConversion ( ) : Expression
FinishStringPlus ( string s ) : string
FinishTupleOrGenExp ( ) : Expression
FinishUnaryNegate ( ) : Expression
FixName ( string name ) : string
GetAssignOperator ( IronPython.Compiler.Token t ) : IronPython.Compiler.Ast.PythonOperator
GetBinaryOperator ( IronPython.Compiler.OperatorToken token ) : IronPython.Compiler.Ast.PythonOperator
GetEnd ( ) : int
GetErrorMessage ( IronPython.Compiler.Token t, int errorCode ) : string
GetPrivatePrefix ( string name ) : string
GetSourceSpan ( ) : Microsoft.Scripting.SourceSpan
GetStart ( ) : int
InternalParseInteractiveInput ( bool &parsingMultiLineCmpdStmt, bool &isEmptyStmt ) : Statement
IsPrivateName ( string name ) : bool
MakeTupleOrExpr ( List l, bool trailingComma ) : Expression
MakeTupleOrExpr ( List l, bool trailingComma, bool expandable ) : Expression
MarkFunctionContainsFinally ( ) : void
MaybeEat ( TokenKind kind ) : bool
MaybeEatNewLine ( ) : bool

Maybe eats a new line token returning true if the token was eaten. Python always tokenizes to have only 1 new line character in a row. But we also craete NLToken's and ignore them except for error reporting purposes. This gives us the same errors as CPython and also matches the behavior of the standard library tokenize module. This function eats any present NL tokens and throws them away.

MaybeParseAsName ( ) : string
NestGenExpr ( Statement current, Statement nested ) : Statement
NeverTestToken ( Token t ) : bool
NextToken ( ) : Token
ParseAndTest ( ) : Expression
ParseAsNameList ( List l, List las ) : void
ParseAssertStmt ( ) : AssertStatement
ParseClassDef ( ) : ClassDefinition
ParseClassOrFuncBody ( ) : Statement
ParseCompFor ( ) : ComprehensionFor
ParseCompIf ( ) : ComprehensionIf
ParseCompIter ( ) : ComprehensionIterator[]
ParseComparison ( ) : Expression
ParseConditionalTest ( Expression trueExpr ) : Expression
ParseDecorated ( ) : Statement
ParseDecorators ( ) : List
ParseDelStmt ( ) : Statement
ParseExecStmt ( ) : ExecStatement
ParseExpr ( ) : Expression
ParseExpr ( int precedence ) : Expression
ParseExprList ( ) : List
ParseExprStmt ( ) : Statement
ParseExpression ( ) : Expression
ParseExpressionList ( bool &trailingComma ) : List
ParseFactor ( ) : Expression
ParseFileWorker ( bool makeModule, bool returnValue ) : PythonAst
ParseFinallySuite ( Statement finallySuite ) : Statement
ParseForStmt ( ) : ForStatement
ParseFromImportStmt ( ) : FromImportStatement
ParseFuncDef ( ) : FunctionDefinition
ParseGenExprFor ( ) : ForStatement
ParseGenExprIf ( ) : IfStatement
ParseGeneratorExpression ( Expression expr ) : Expression
ParseGlobalStmt ( ) : GlobalStatement
ParseIfStmt ( ) : IfStatement
ParseIfStmtTest ( ) : IfStatementTest
ParseImportStmt ( ) : ImportStatement
ParseLambdaHelperEnd ( FunctionDefinition func, Expression expr ) : Expression
ParseLambdaHelperStart ( string name ) : FunctionDefinition
ParseListCompFor ( ) : ComprehensionFor
ParseListCompIter ( ) : ComprehensionIterator[]
ParseLoopSuite ( ) : Statement
ParseModuleName ( ) : ModuleName
ParseNotTest ( ) : Expression
ParseOldExpression ( ) : Expression
ParseOldExpressionList ( bool &trailingComma ) : List
ParseOldExpressionListAsExpr ( ) : Expression
ParseOrTest ( ) : Expression
ParseParameter ( int position, HashSet names ) : Parameter
ParseParameterName ( HashSet names, ParameterKind kind ) : Parameter
ParsePower ( ) : Expression
ParsePrimary ( ) : Expression
ParsePrintStmt ( ) : PrintStatement
ParseRaiseStmt ( ) : RaiseStatement
ParseRelativeModuleName ( ) : ModuleName
ParseReturnStmt ( ) : Statement
ParseSimpleStmt ( ) : Statement
ParseSliceEnd ( ) : Expression
ParseSmallStmt ( ) : Statement
ParseStmt ( ) : Statement
ParseSublist ( HashSet names ) : Expression
ParseSublistParameter ( HashSet names ) : Expression
ParseSubscriptList ( ) : Expression
ParseSuite ( ) : Statement
ParseTarget ( ) : Expression
ParseTargetList ( bool &trailingComma ) : List
ParseTestList ( ) : List
ParseTestListAsExpr ( ) : Expression
ParseTestListAsExpr ( Expression expr ) : Expression
ParseTestListAsExprError ( ) : Expression
ParseTestListAsExpression ( ) : Expression
ParseTryStatement ( ) : Statement
ParseTryStmtHandler ( ) : TryStatementHandler
ParseVarArgsList ( TokenKind terminator ) : Parameter[]
ParseWhileStmt ( ) : WhileStatement
ParseWithItem ( ) : WithItem
ParseWithStmt ( ) : WithStatement
ParseYieldExpression ( ) : Expression

Peek if the next token is a 'yield' and parse a yield expression. Else return null. Called w/ yield already eaten.

ParseYieldStmt ( ) : Statement
Parser ( CompilerContext context, Tokenizer tokenizer, ErrorSink errorSink, ParserSink parserSink, ModuleOptions languageFeatures ) : System
PeekToken ( ) : Token
PeekToken ( Token check ) : bool
PeekToken ( TokenKind kind ) : bool
PopFunction ( ) : FunctionDefinition
PushFunction ( FunctionDefinition function ) : void
ReadName ( ) : string
ReadNameMaybeNone ( ) : string
ReadNames ( ) : string[]
ReportSyntaxError ( Token t, IndexSpan span, int errorCode, bool allowIncomplete ) : void
ReportSyntaxError ( TokenWithSpan t ) : void
ReportSyntaxError ( TokenWithSpan t, int errorCode ) : void
ReportSyntaxError ( int start, int end, string message ) : void
ReportSyntaxError ( int start, int end, string message, int errorCode ) : void
ReportSyntaxError ( string message ) : void
SetPrivatePrefix ( string name ) : string
StartParsing ( ) : void

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

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

public static CreateParser ( CompilerContext context, PythonOptions options ) : Parser
context CompilerContext
options PythonOptions
Результат Parser

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

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

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

Given the interactive text input for a compound statement, calculate what the indentation level of the next line should be
public static GetNextAutoIndentSize ( string text, int autoIndentTabWidth ) : int
text string
autoIndentTabWidth int
Результат int

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

public ParseFile ( bool makeModule ) : PythonAst
makeModule bool
Результат PythonAst

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

public ParseFile ( bool makeModule, bool returnValue ) : PythonAst
makeModule bool
returnValue bool
Результат PythonAst

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

Parse one or more lines of interactive input
public ParseInteractiveCode ( ScriptCodeParseResult &properties ) : PythonAst
properties ScriptCodeParseResult
Результат PythonAst

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

public ParseSingleStatement ( ) : PythonAst
Результат PythonAst

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

public ParseTopExpression ( ) : PythonAst
Результат PythonAst

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

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

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

public Reset ( SourceUnit sourceUnit, ModuleOptions languageFeatures ) : void
sourceUnit SourceUnit
languageFeatures ModuleOptions
Результат void