C# Class Bike.Interpreter.Interpreter

Mostrar archivo Open project: buunguyen/bike Class Usage Examples

Public Methods

Method Description
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

Private Methods

Method Description
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

Method Details

AddHandler() public method

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
return void

CallBikeFunction() public method

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

CallBikeFunction() public method

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

CallDelegate() public method

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

CallInstanceFunction() public method

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

CallInstanceFunction() public method

public CallInstanceFunction ( object target, string funcName, object args ) : object
target object
funcName string
args object
return object

CallStaticFunction() public method

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

CallStaticFunction() public method

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

CreateInstance() public method

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

GetInstanceIndexer() public method

public GetInstanceIndexer ( object target, object args ) : object
target object
args object
return object

GetInstanceProperty() public method

public GetInstanceProperty ( object target, string propName ) : object
target object
propName string
return object

GetStaticProperty() public method

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

HashCode() public method

public HashCode ( object obj ) : int
obj object
return int

Is() public method

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

MarshallArgumentsToBike() public method

public MarshallArgumentsToBike ( object clrObjects ) : object[]
clrObjects object
return object[]

MarshallArgumentsToClr() public method

public MarshallArgumentsToClr ( object bikeObjects ) : object[]
bikeObjects object
return object[]

MarshallToBike() public method

public MarshallToBike ( object dotNetObject ) : object
dotNetObject object
return object

MarshallToClr() public method

public MarshallToClr ( object bikeObject ) : object
bikeObject object
return object

Modulus() public method

public Modulus ( object lv, object rv ) : object
lv object
rv object
return object

OpAdd() public method

public OpAdd ( object lv, object rv ) : object
lv object
rv object
return object

OpAnd() public method

public OpAnd ( object lv, Func rvThunk ) : object
lv object
rvThunk Func
return object

OpDivide() public method

public OpDivide ( object lv, object rv ) : object
lv object
rv object
return object

OpDoubleMinus() public method

public OpDoubleMinus ( object value ) : object
value object
return object

OpDoublePlus() public method

public OpDoublePlus ( object value ) : object
value object
return object

OpEqual() public method

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

OpGreaterThan() public method

public OpGreaterThan ( object lv, object rv ) : object
lv object
rv object
return object

OpGreaterThanOrEqual() public method

public OpGreaterThanOrEqual ( object lv, object rv ) : object
lv object
rv object
return object

OpLessThan() public method

public OpLessThan ( object lv, object rv ) : object
lv object
rv object
return object

OpLessThanOrEqual() public method

public OpLessThanOrEqual ( object lv, object rv ) : object
lv object
rv object
return object

OpMinus() public method

public OpMinus ( object value ) : object
value object
return object

OpMinus() public method

public OpMinus ( object lv, object rv ) : object
lv object
rv object
return object

OpMultiply() public method

public OpMultiply ( object lv, object rv ) : object
lv object
rv object
return object

OpNot() public method

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

OpNotEqual() public method

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

OpOr() public method

public OpOr ( object lv, Func rvThunk ) : object
lv object
rvThunk Func
return object

OpPlus() public method

public OpPlus ( object value ) : object
value object
return object

Run() public method

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

SetInstanceIndexer() public method

public SetInstanceIndexer ( object target, object args, object value ) : void
target object
args object
value object
return void

SetInstanceProperty() public method

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

SetStaticProperty() public method

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

Stringify() public method

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

TryInvokeMemberMissing() public method

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

Walk() public method

public Walk ( AdditiveExpression node ) : object
node AdditiveExpression
return object

Walk() public method

public Walk ( AndExpression node ) : object
node AndExpression
return object

Walk() public method

public Walk ( ArrayLiteral node ) : object
node ArrayLiteral
return object

Walk() public method

public Walk ( BreakStatement node ) : object
node BreakStatement
return object

Walk() public method

public Walk ( CallExpression node ) : object
node CallExpression
return object

Walk() public method

public Walk ( CaseClause node ) : object
node CaseClause
return object

Walk() public method

public Walk ( ConditionalExpression node ) : object
node ConditionalExpression
return object

Walk() public method

public Walk ( EmptyStatement node ) : object
node EmptyStatement
return object

Walk() public method

public Walk ( EqualityExpression node ) : object
node EqualityExpression
return object

Walk() public method

public Walk ( ExecExpression node ) : object
node ExecExpression
return object

Walk() public method

public Walk ( Expression node ) : object
node Expression
return object

Walk() public method

public Walk ( ExpressionStatement node ) : object
node ExpressionStatement
return object

Walk() public method

public Walk ( ForInStatement node ) : object
node ForInStatement
return object

Walk() public method

public Walk ( FunctionDeclaration node ) : object
node FunctionDeclaration
return object

Walk() public method

public Walk ( FunctionExpression node ) : object
node FunctionExpression
return object

Walk() public method

public Walk ( Identifier node ) : object
node Identifier
return object

Walk() public method

public Walk ( IfStatement node ) : object
node IfStatement
return object

Walk() public method

public Walk ( IndexSuffix node ) : object
node IndexSuffix
return object

Walk() public method

public Walk ( LeftAssignmentExpression node ) : object
node LeftAssignmentExpression
return object

Walk() public method

public Walk ( LoadStatement node ) : object
node LoadStatement
return object

Walk() public method

public Walk ( MemberExpression node ) : object
node MemberExpression
return object

Walk() public method

public Walk ( MultiplicativeExpression node ) : object
node MultiplicativeExpression
return object

Walk() public method

public Walk ( NextStatement node ) : object
node NextStatement
return object

Walk() public method

public Walk ( ObjectLiteral node ) : object
node ObjectLiteral
return object

Walk() public method

public Walk ( OrExpression node ) : object
node OrExpression
return object

Walk() public method

public Walk ( PrimitiveLiteral node ) : object
node PrimitiveLiteral
return object

Walk() public method

public Walk ( RelationalExpression node ) : object
node RelationalExpression
return object

Walk() public method

public Walk ( ReturnStatement node ) : object
node ReturnStatement
return object

Walk() public method

public Walk ( SelfExpression node ) : object
node SelfExpression
return object

Walk() public method

public Walk ( SourceElements node ) : object
node SourceElements
return object

Walk() public method

public Walk ( SourceUnitTree node ) : object
node SourceUnitTree
return object

Walk() public method

public Walk ( StatementBlock node ) : object
node StatementBlock
return object

Walk() public method

public Walk ( SwitchStatement node ) : object
node SwitchStatement
return object

Walk() public method

public Walk ( ThrowStatement node ) : object
node ThrowStatement
return object

Walk() public method

public Walk ( TryStatement node ) : object
node TryStatement
return object

Walk() public method

public Walk ( TypeDescriptor node ) : object
node TypeDescriptor
return object

Walk() public method

public Walk ( TypeDescriptorSuffix node ) : object
node TypeDescriptorSuffix
return object

Walk() public method

public Walk ( UnaryExpression node ) : object
node UnaryExpression
return object

Walk() public method

public Walk ( VariableDeclaration node ) : object
node VariableDeclaration
return object

Walk() public method

public Walk ( VariableStatement node ) : object
node VariableStatement
return object

Walk() public method

public Walk ( WhileStatement node ) : object
node WhileStatement
return object