C# 클래스 Bike.Interpreter.Interpreter

파일 보기 프로젝트 열기: buunguyen/bike 1 사용 예제들

공개 메소드들

메소드 설명
AddHandler ( object target, string name, BikeFunction bikeFunc, Interpreter interpreter, bool isStatic ) : void
CallBikeFunction ( BikeFunction function, object self, System.Arguments arguments ) : object
CallBikeFunction ( BikeFunction function, object self, object argValues ) : object
CallDelegate ( Delegate currentTarget, object args ) : object
CallInstanceFunction ( object target, Type typeParams, string funcName, object args ) : object
CallInstanceFunction ( object target, string funcName, object args ) : object
CallStaticFunction ( Type type, Type typeParams, string funcName, object args ) : object
CallStaticFunction ( Type type, string funcName, object args ) : object
CreateInstance ( Type type, object args ) : object
GetInstanceIndexer ( object target, object args ) : object
GetInstanceProperty ( object target, string propName ) : object
GetStaticProperty ( Type type, string propName ) : object
HashCode ( object obj ) : int
Is ( object obj, Type type ) : bool
MarshallArgumentsToBike ( object clrObjects ) : object[]
MarshallArgumentsToClr ( object bikeObjects ) : object[]
MarshallToBike ( object dotNetObject ) : object
MarshallToClr ( object bikeObject ) : object
Modulus ( object lv, object rv ) : object
OpAdd ( object lv, object rv ) : object
OpAnd ( object lv, Func rvThunk ) : object
OpDivide ( object lv, object rv ) : object
OpDoubleMinus ( object value ) : object
OpDoublePlus ( object value ) : object
OpEqual ( object lv, object rv ) : BikeBoolean
OpGreaterThan ( object lv, object rv ) : object
OpGreaterThanOrEqual ( object lv, object rv ) : object
OpLessThan ( object lv, object rv ) : object
OpLessThanOrEqual ( object lv, object rv ) : object
OpMinus ( object value ) : object
OpMinus ( object lv, object rv ) : object
OpMultiply ( object lv, object rv ) : object
OpNot ( object value ) : BikeBoolean
OpNotEqual ( object lv, object rv ) : BikeBoolean
OpOr ( object lv, Func rvThunk ) : object
OpPlus ( object value ) : object
Run ( string coreCodePath, string filePath = null ) : void
SetInstanceIndexer ( object target, object args, object value ) : void
SetInstanceProperty ( object target, string propName, object value ) : void
SetStaticProperty ( Type type, string propName, object value ) : void
Stringify ( object obj, bool printError = false ) : string
TryInvokeMemberMissing ( BikeObject target, string name, bool &success ) : object
Walk ( AdditiveExpression node ) : object
Walk ( AndExpression node ) : object
Walk ( ArrayLiteral node ) : object
Walk ( BreakStatement node ) : object
Walk ( CallExpression node ) : object
Walk ( CaseClause node ) : object
Walk ( ConditionalExpression node ) : object
Walk ( EmptyStatement node ) : object
Walk ( EqualityExpression node ) : object
Walk ( ExecExpression node ) : object
Walk ( Expression node ) : object
Walk ( ExpressionStatement node ) : object
Walk ( ForInStatement node ) : object
Walk ( FunctionDeclaration node ) : object
Walk ( FunctionExpression node ) : object
Walk ( Identifier node ) : object
Walk ( IfStatement node ) : object
Walk ( IndexSuffix node ) : object
Walk ( LeftAssignmentExpression node ) : object
Walk ( LoadStatement node ) : object
Walk ( MemberExpression node ) : object
Walk ( MultiplicativeExpression node ) : object
Walk ( NextStatement node ) : object
Walk ( ObjectLiteral node ) : object
Walk ( OrExpression node ) : object
Walk ( PrimitiveLiteral node ) : object
Walk ( RelationalExpression node ) : object
Walk ( ReturnStatement node ) : object
Walk ( SelfExpression node ) : object
Walk ( SourceElements node ) : object
Walk ( SourceUnitTree node ) : object
Walk ( StatementBlock node ) : object
Walk ( SwitchStatement node ) : object
Walk ( ThrowStatement node ) : object
Walk ( TryStatement node ) : object
Walk ( TypeDescriptor node ) : object
Walk ( TypeDescriptorSuffix node ) : object
Walk ( UnaryExpression node ) : object
Walk ( VariableDeclaration node ) : object
Walk ( VariableStatement node ) : object
Walk ( WhileStatement node ) : object

비공개 메소드들

메소드 설명
AccessOneByOne ( object currentTarget, object previousTarget, List suffixes ) : object
AssignSwitch ( string @operator, object target, Node suffix, Func lvThunk, Func rvThunk, bool staticDotNetAssign = false ) : object
Call ( CallExpression node, IEnumerable suffixes ) : object
CaseMatch ( CaseClause caseClause, object o ) : bool
Execute ( string source, string filePath = null ) : object
GetArgumentValues ( System.Arguments arguments ) : object[]
GetFirstObjectFromMember ( ExprNode memberExp, List suffixes ) : object
InterceptArrayIndex ( object target, string funcName, object args, object &result ) : bool
InterceptObjectPassThrough ( object target, string funcName, object args, object &result ) : bool

This interception is to make sure arguments are passed as-is, instead of being converted to CLR equivalents.

InterceptStringIndexGetter ( object target, string funcName, object args, object &result ) : bool
Interpreter ( InterpretationContext context ) : System
IsInRange ( decimal number, Type targetNumberType ) : bool
IsNumber ( Type type ) : bool
IsNumber ( object dotNetObject ) : bool
LoadAndExecute ( string filePath ) : object
Member ( MemberExpression node, IEnumerable suffixes ) : object
PerformAssign ( object target, Node suffix, object value, bool staticDotNetAssign ) : object
PerformInvocation ( object target, string funcName, object args ) : object
TryConvert ( Type targetType, object owner, object &value ) : bool
TryGetInstanceField ( object target, string fieldName, bool &exist ) : object
TryGetInstanceProperty ( object target, string propName, bool &exist ) : object
TryGetStaticField ( Type type, string fieldName, bool &exist ) : object
TryGetStaticProperty ( Type type, string propName, bool &exist ) : object

메소드 상세

AddHandler() 공개 메소드

public AddHandler ( object target, string name, BikeFunction bikeFunc, Interpreter interpreter, bool isStatic ) : void
target object
name string
bikeFunc Bike.Interpreter.Builtin.BikeFunction
interpreter Interpreter
isStatic bool
리턴 void

CallBikeFunction() 공개 메소드

public CallBikeFunction ( BikeFunction function, object self, System.Arguments arguments ) : object
function Bike.Interpreter.Builtin.BikeFunction
self object
arguments System.Arguments
리턴 object

CallBikeFunction() 공개 메소드

public CallBikeFunction ( BikeFunction function, object self, object argValues ) : object
function Bike.Interpreter.Builtin.BikeFunction
self object
argValues object
리턴 object

CallDelegate() 공개 메소드

public CallDelegate ( Delegate currentTarget, object args ) : object
currentTarget System.Delegate
args object
리턴 object

CallInstanceFunction() 공개 메소드

public CallInstanceFunction ( object target, Type typeParams, string funcName, object args ) : object
target object
typeParams System.Type
funcName string
args object
리턴 object

CallInstanceFunction() 공개 메소드

public CallInstanceFunction ( object target, string funcName, object args ) : object
target object
funcName string
args object
리턴 object

CallStaticFunction() 공개 메소드

public CallStaticFunction ( Type type, Type typeParams, string funcName, object args ) : object
type System.Type
typeParams System.Type
funcName string
args object
리턴 object

CallStaticFunction() 공개 메소드

public CallStaticFunction ( Type type, string funcName, object args ) : object
type System.Type
funcName string
args object
리턴 object

CreateInstance() 공개 메소드

public CreateInstance ( Type type, object args ) : object
type System.Type
args object
리턴 object

GetInstanceIndexer() 공개 메소드

public GetInstanceIndexer ( object target, object args ) : object
target object
args object
리턴 object

GetInstanceProperty() 공개 메소드

public GetInstanceProperty ( object target, string propName ) : object
target object
propName string
리턴 object

GetStaticProperty() 공개 메소드

public GetStaticProperty ( Type type, string propName ) : object
type System.Type
propName string
리턴 object

HashCode() 공개 메소드

public HashCode ( object obj ) : int
obj object
리턴 int

Is() 공개 메소드

public Is ( object obj, Type type ) : bool
obj object
type System.Type
리턴 bool

MarshallArgumentsToBike() 공개 메소드

public MarshallArgumentsToBike ( object clrObjects ) : object[]
clrObjects object
리턴 object[]

MarshallArgumentsToClr() 공개 메소드

public MarshallArgumentsToClr ( object bikeObjects ) : object[]
bikeObjects object
리턴 object[]

MarshallToBike() 공개 메소드

public MarshallToBike ( object dotNetObject ) : object
dotNetObject object
리턴 object

MarshallToClr() 공개 메소드

public MarshallToClr ( object bikeObject ) : object
bikeObject object
리턴 object

Modulus() 공개 메소드

public Modulus ( object lv, object rv ) : object
lv object
rv object
리턴 object

OpAdd() 공개 메소드

public OpAdd ( object lv, object rv ) : object
lv object
rv object
리턴 object

OpAnd() 공개 메소드

public OpAnd ( object lv, Func rvThunk ) : object
lv object
rvThunk Func
리턴 object

OpDivide() 공개 메소드

public OpDivide ( object lv, object rv ) : object
lv object
rv object
리턴 object

OpDoubleMinus() 공개 메소드

public OpDoubleMinus ( object value ) : object
value object
리턴 object

OpDoublePlus() 공개 메소드

public OpDoublePlus ( object value ) : object
value object
리턴 object

OpEqual() 공개 메소드

public OpEqual ( object lv, object rv ) : BikeBoolean
lv object
rv object
리턴 Bike.Interpreter.Builtin.BikeBoolean

OpGreaterThan() 공개 메소드

public OpGreaterThan ( object lv, object rv ) : object
lv object
rv object
리턴 object

OpGreaterThanOrEqual() 공개 메소드

public OpGreaterThanOrEqual ( object lv, object rv ) : object
lv object
rv object
리턴 object

OpLessThan() 공개 메소드

public OpLessThan ( object lv, object rv ) : object
lv object
rv object
리턴 object

OpLessThanOrEqual() 공개 메소드

public OpLessThanOrEqual ( object lv, object rv ) : object
lv object
rv object
리턴 object

OpMinus() 공개 메소드

public OpMinus ( object value ) : object
value object
리턴 object

OpMinus() 공개 메소드

public OpMinus ( object lv, object rv ) : object
lv object
rv object
리턴 object

OpMultiply() 공개 메소드

public OpMultiply ( object lv, object rv ) : object
lv object
rv object
리턴 object

OpNot() 공개 메소드

public OpNot ( object value ) : BikeBoolean
value object
리턴 Bike.Interpreter.Builtin.BikeBoolean

OpNotEqual() 공개 메소드

public OpNotEqual ( object lv, object rv ) : BikeBoolean
lv object
rv object
리턴 Bike.Interpreter.Builtin.BikeBoolean

OpOr() 공개 메소드

public OpOr ( object lv, Func rvThunk ) : object
lv object
rvThunk Func
리턴 object

OpPlus() 공개 메소드

public OpPlus ( object value ) : object
value object
리턴 object

Run() 공개 메소드

public Run ( string coreCodePath, string filePath = null ) : void
coreCodePath string
filePath string
리턴 void

SetInstanceIndexer() 공개 메소드

public SetInstanceIndexer ( object target, object args, object value ) : void
target object
args object
value object
리턴 void

SetInstanceProperty() 공개 메소드

public SetInstanceProperty ( object target, string propName, object value ) : void
target object
propName string
value object
리턴 void

SetStaticProperty() 공개 메소드

public SetStaticProperty ( Type type, string propName, object value ) : void
type System.Type
propName string
value object
리턴 void

Stringify() 공개 메소드

public Stringify ( object obj, bool printError = false ) : string
obj object
printError bool
리턴 string

TryInvokeMemberMissing() 공개 메소드

public TryInvokeMemberMissing ( BikeObject target, string name, bool &success ) : object
target Bike.Interpreter.Builtin.BikeObject
name string
success bool
리턴 object

Walk() 공개 메소드

public Walk ( AdditiveExpression node ) : object
node AdditiveExpression
리턴 object

Walk() 공개 메소드

public Walk ( AndExpression node ) : object
node AndExpression
리턴 object

Walk() 공개 메소드

public Walk ( ArrayLiteral node ) : object
node ArrayLiteral
리턴 object

Walk() 공개 메소드

public Walk ( BreakStatement node ) : object
node BreakStatement
리턴 object

Walk() 공개 메소드

public Walk ( CallExpression node ) : object
node CallExpression
리턴 object

Walk() 공개 메소드

public Walk ( CaseClause node ) : object
node CaseClause
리턴 object

Walk() 공개 메소드

public Walk ( ConditionalExpression node ) : object
node ConditionalExpression
리턴 object

Walk() 공개 메소드

public Walk ( EmptyStatement node ) : object
node EmptyStatement
리턴 object

Walk() 공개 메소드

public Walk ( EqualityExpression node ) : object
node EqualityExpression
리턴 object

Walk() 공개 메소드

public Walk ( ExecExpression node ) : object
node ExecExpression
리턴 object

Walk() 공개 메소드

public Walk ( Expression node ) : object
node Expression
리턴 object

Walk() 공개 메소드

public Walk ( ExpressionStatement node ) : object
node ExpressionStatement
리턴 object

Walk() 공개 메소드

public Walk ( ForInStatement node ) : object
node ForInStatement
리턴 object

Walk() 공개 메소드

public Walk ( FunctionDeclaration node ) : object
node FunctionDeclaration
리턴 object

Walk() 공개 메소드

public Walk ( FunctionExpression node ) : object
node FunctionExpression
리턴 object

Walk() 공개 메소드

public Walk ( Identifier node ) : object
node Identifier
리턴 object

Walk() 공개 메소드

public Walk ( IfStatement node ) : object
node IfStatement
리턴 object

Walk() 공개 메소드

public Walk ( IndexSuffix node ) : object
node IndexSuffix
리턴 object

Walk() 공개 메소드

public Walk ( LeftAssignmentExpression node ) : object
node LeftAssignmentExpression
리턴 object

Walk() 공개 메소드

public Walk ( LoadStatement node ) : object
node LoadStatement
리턴 object

Walk() 공개 메소드

public Walk ( MemberExpression node ) : object
node MemberExpression
리턴 object

Walk() 공개 메소드

public Walk ( MultiplicativeExpression node ) : object
node MultiplicativeExpression
리턴 object

Walk() 공개 메소드

public Walk ( NextStatement node ) : object
node NextStatement
리턴 object

Walk() 공개 메소드

public Walk ( ObjectLiteral node ) : object
node ObjectLiteral
리턴 object

Walk() 공개 메소드

public Walk ( OrExpression node ) : object
node OrExpression
리턴 object

Walk() 공개 메소드

public Walk ( PrimitiveLiteral node ) : object
node PrimitiveLiteral
리턴 object

Walk() 공개 메소드

public Walk ( RelationalExpression node ) : object
node RelationalExpression
리턴 object

Walk() 공개 메소드

public Walk ( ReturnStatement node ) : object
node ReturnStatement
리턴 object

Walk() 공개 메소드

public Walk ( SelfExpression node ) : object
node SelfExpression
리턴 object

Walk() 공개 메소드

public Walk ( SourceElements node ) : object
node SourceElements
리턴 object

Walk() 공개 메소드

public Walk ( SourceUnitTree node ) : object
node SourceUnitTree
리턴 object

Walk() 공개 메소드

public Walk ( StatementBlock node ) : object
node StatementBlock
리턴 object

Walk() 공개 메소드

public Walk ( SwitchStatement node ) : object
node SwitchStatement
리턴 object

Walk() 공개 메소드

public Walk ( ThrowStatement node ) : object
node ThrowStatement
리턴 object

Walk() 공개 메소드

public Walk ( TryStatement node ) : object
node TryStatement
리턴 object

Walk() 공개 메소드

public Walk ( TypeDescriptor node ) : object
node TypeDescriptor
리턴 object

Walk() 공개 메소드

public Walk ( TypeDescriptorSuffix node ) : object
node TypeDescriptorSuffix
리턴 object

Walk() 공개 메소드

public Walk ( UnaryExpression node ) : object
node UnaryExpression
리턴 object

Walk() 공개 메소드

public Walk ( VariableDeclaration node ) : object
node VariableDeclaration
리턴 object

Walk() 공개 메소드

public Walk ( VariableStatement node ) : object
node VariableStatement
리턴 object

Walk() 공개 메소드

public Walk ( WhileStatement node ) : object
node WhileStatement
리턴 object