C# Class Bike.Interpreter.Interpreter

Afficher le fichier Open project: buunguyen/bike Class Usage Examples

Méthodes publiques

Méthode 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

Méthode 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 méthode

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
Résultat void

CallBikeFunction() public méthode

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

CallBikeFunction() public méthode

public CallBikeFunction ( BikeFunction function, object self, object argValues ) : object
function Bike.Interpreter.Builtin.BikeFunction
self object
argValues object
Résultat object

CallDelegate() public méthode

public CallDelegate ( Delegate currentTarget, object args ) : object
currentTarget System.Delegate
args object
Résultat object

CallInstanceFunction() public méthode

public CallInstanceFunction ( object target, Type typeParams, string funcName, object args ) : object
target object
typeParams System.Type
funcName string
args object
Résultat object

CallInstanceFunction() public méthode

public CallInstanceFunction ( object target, string funcName, object args ) : object
target object
funcName string
args object
Résultat object

CallStaticFunction() public méthode

public CallStaticFunction ( Type type, Type typeParams, string funcName, object args ) : object
type System.Type
typeParams System.Type
funcName string
args object
Résultat object

CallStaticFunction() public méthode

public CallStaticFunction ( Type type, string funcName, object args ) : object
type System.Type
funcName string
args object
Résultat object

CreateInstance() public méthode

public CreateInstance ( Type type, object args ) : object
type System.Type
args object
Résultat object

GetInstanceIndexer() public méthode

public GetInstanceIndexer ( object target, object args ) : object
target object
args object
Résultat object

GetInstanceProperty() public méthode

public GetInstanceProperty ( object target, string propName ) : object
target object
propName string
Résultat object

GetStaticProperty() public méthode

public GetStaticProperty ( Type type, string propName ) : object
type System.Type
propName string
Résultat object

HashCode() public méthode

public HashCode ( object obj ) : int
obj object
Résultat int

Is() public méthode

public Is ( object obj, Type type ) : bool
obj object
type System.Type
Résultat bool

MarshallArgumentsToBike() public méthode

public MarshallArgumentsToBike ( object clrObjects ) : object[]
clrObjects object
Résultat object[]

MarshallArgumentsToClr() public méthode

public MarshallArgumentsToClr ( object bikeObjects ) : object[]
bikeObjects object
Résultat object[]

MarshallToBike() public méthode

public MarshallToBike ( object dotNetObject ) : object
dotNetObject object
Résultat object

MarshallToClr() public méthode

public MarshallToClr ( object bikeObject ) : object
bikeObject object
Résultat object

Modulus() public méthode

public Modulus ( object lv, object rv ) : object
lv object
rv object
Résultat object

OpAdd() public méthode

public OpAdd ( object lv, object rv ) : object
lv object
rv object
Résultat object

OpAnd() public méthode

public OpAnd ( object lv, Func rvThunk ) : object
lv object
rvThunk Func
Résultat object

OpDivide() public méthode

public OpDivide ( object lv, object rv ) : object
lv object
rv object
Résultat object

OpDoubleMinus() public méthode

public OpDoubleMinus ( object value ) : object
value object
Résultat object

OpDoublePlus() public méthode

public OpDoublePlus ( object value ) : object
value object
Résultat object

OpEqual() public méthode

public OpEqual ( object lv, object rv ) : BikeBoolean
lv object
rv object
Résultat Bike.Interpreter.Builtin.BikeBoolean

OpGreaterThan() public méthode

public OpGreaterThan ( object lv, object rv ) : object
lv object
rv object
Résultat object

OpGreaterThanOrEqual() public méthode

public OpGreaterThanOrEqual ( object lv, object rv ) : object
lv object
rv object
Résultat object

OpLessThan() public méthode

public OpLessThan ( object lv, object rv ) : object
lv object
rv object
Résultat object

OpLessThanOrEqual() public méthode

public OpLessThanOrEqual ( object lv, object rv ) : object
lv object
rv object
Résultat object

OpMinus() public méthode

public OpMinus ( object value ) : object
value object
Résultat object

OpMinus() public méthode

public OpMinus ( object lv, object rv ) : object
lv object
rv object
Résultat object

OpMultiply() public méthode

public OpMultiply ( object lv, object rv ) : object
lv object
rv object
Résultat object

OpNot() public méthode

public OpNot ( object value ) : BikeBoolean
value object
Résultat Bike.Interpreter.Builtin.BikeBoolean

OpNotEqual() public méthode

public OpNotEqual ( object lv, object rv ) : BikeBoolean
lv object
rv object
Résultat Bike.Interpreter.Builtin.BikeBoolean

OpOr() public méthode

public OpOr ( object lv, Func rvThunk ) : object
lv object
rvThunk Func
Résultat object

OpPlus() public méthode

public OpPlus ( object value ) : object
value object
Résultat object

Run() public méthode

public Run ( string coreCodePath, string filePath = null ) : void
coreCodePath string
filePath string
Résultat void

SetInstanceIndexer() public méthode

public SetInstanceIndexer ( object target, object args, object value ) : void
target object
args object
value object
Résultat void

SetInstanceProperty() public méthode

public SetInstanceProperty ( object target, string propName, object value ) : void
target object
propName string
value object
Résultat void

SetStaticProperty() public méthode

public SetStaticProperty ( Type type, string propName, object value ) : void
type System.Type
propName string
value object
Résultat void

Stringify() public méthode

public Stringify ( object obj, bool printError = false ) : string
obj object
printError bool
Résultat string

TryInvokeMemberMissing() public méthode

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

Walk() public méthode

public Walk ( AdditiveExpression node ) : object
node AdditiveExpression
Résultat object

Walk() public méthode

public Walk ( AndExpression node ) : object
node AndExpression
Résultat object

Walk() public méthode

public Walk ( ArrayLiteral node ) : object
node ArrayLiteral
Résultat object

Walk() public méthode

public Walk ( BreakStatement node ) : object
node BreakStatement
Résultat object

Walk() public méthode

public Walk ( CallExpression node ) : object
node CallExpression
Résultat object

Walk() public méthode

public Walk ( CaseClause node ) : object
node CaseClause
Résultat object

Walk() public méthode

public Walk ( ConditionalExpression node ) : object
node ConditionalExpression
Résultat object

Walk() public méthode

public Walk ( EmptyStatement node ) : object
node EmptyStatement
Résultat object

Walk() public méthode

public Walk ( EqualityExpression node ) : object
node EqualityExpression
Résultat object

Walk() public méthode

public Walk ( ExecExpression node ) : object
node ExecExpression
Résultat object

Walk() public méthode

public Walk ( Expression node ) : object
node Expression
Résultat object

Walk() public méthode

public Walk ( ExpressionStatement node ) : object
node ExpressionStatement
Résultat object

Walk() public méthode

public Walk ( ForInStatement node ) : object
node ForInStatement
Résultat object

Walk() public méthode

public Walk ( FunctionDeclaration node ) : object
node FunctionDeclaration
Résultat object

Walk() public méthode

public Walk ( FunctionExpression node ) : object
node FunctionExpression
Résultat object

Walk() public méthode

public Walk ( Identifier node ) : object
node Identifier
Résultat object

Walk() public méthode

public Walk ( IfStatement node ) : object
node IfStatement
Résultat object

Walk() public méthode

public Walk ( IndexSuffix node ) : object
node IndexSuffix
Résultat object

Walk() public méthode

public Walk ( LeftAssignmentExpression node ) : object
node LeftAssignmentExpression
Résultat object

Walk() public méthode

public Walk ( LoadStatement node ) : object
node LoadStatement
Résultat object

Walk() public méthode

public Walk ( MemberExpression node ) : object
node MemberExpression
Résultat object

Walk() public méthode

public Walk ( MultiplicativeExpression node ) : object
node MultiplicativeExpression
Résultat object

Walk() public méthode

public Walk ( NextStatement node ) : object
node NextStatement
Résultat object

Walk() public méthode

public Walk ( ObjectLiteral node ) : object
node ObjectLiteral
Résultat object

Walk() public méthode

public Walk ( OrExpression node ) : object
node OrExpression
Résultat object

Walk() public méthode

public Walk ( PrimitiveLiteral node ) : object
node PrimitiveLiteral
Résultat object

Walk() public méthode

public Walk ( RelationalExpression node ) : object
node RelationalExpression
Résultat object

Walk() public méthode

public Walk ( ReturnStatement node ) : object
node ReturnStatement
Résultat object

Walk() public méthode

public Walk ( SelfExpression node ) : object
node SelfExpression
Résultat object

Walk() public méthode

public Walk ( SourceElements node ) : object
node SourceElements
Résultat object

Walk() public méthode

public Walk ( SourceUnitTree node ) : object
node SourceUnitTree
Résultat object

Walk() public méthode

public Walk ( StatementBlock node ) : object
node StatementBlock
Résultat object

Walk() public méthode

public Walk ( SwitchStatement node ) : object
node SwitchStatement
Résultat object

Walk() public méthode

public Walk ( ThrowStatement node ) : object
node ThrowStatement
Résultat object

Walk() public méthode

public Walk ( TryStatement node ) : object
node TryStatement
Résultat object

Walk() public méthode

public Walk ( TypeDescriptor node ) : object
node TypeDescriptor
Résultat object

Walk() public méthode

public Walk ( TypeDescriptorSuffix node ) : object
node TypeDescriptorSuffix
Résultat object

Walk() public méthode

public Walk ( UnaryExpression node ) : object
node UnaryExpression
Résultat object

Walk() public méthode

public Walk ( VariableDeclaration node ) : object
node VariableDeclaration
Résultat object

Walk() public méthode

public Walk ( VariableStatement node ) : object
node VariableStatement
Résultat object

Walk() public méthode

public Walk ( WhileStatement node ) : object
node WhileStatement
Résultat object