/// <summary> /// Create new reference /// </summary> /// <param name="syntax">reference's syntax</param> /// <param name="argIdx">index in local scope</param> /// <param name="upEnvIdx">index (relative offset) of environment</param> /// <param name="upVarIdx">index of variable inside referenced environment</param> public AstReference(Syntax syntax, AstReferenceType type, int argIdx, int upEnvIdx, int upVarIdx) : base(syntax) { ReferenceType = type; VarIdx = (byte)argIdx; UpEnvIdx = (short)upEnvIdx; UpVarIdx = (short)upVarIdx; }
/// <summary> /// Create new reference /// </summary> /// <param name="syntax">reference's syntax</param> /// <param name="argIdx">index in local scope</param> /// <param name="upEnvIdx">index (relative offset) of environment</param> /// <param name="upVarIdx">index of variable inside referenced environment</param> public AstReference(Syntax syntax, AstReferenceType type, int argIdx, int upEnvIdx, int upVarIdx) : base(syntax) { Identifier = ((SyntaxName)syntax).asName; ReferenceType = type; VarIdx = (byte)argIdx; UpEnvIdx = (short)upEnvIdx; UpVarIdx = (short)upVarIdx; }
/// <summary> /// Create new reference /// </summary> /// <param name="syntax">reference's syntax</param> /// <param name="argIdx">index in local scope</param> /// <param name="upEnvIdx">index (relative offset) of environment</param> /// <param name="upVarIdx">index of variable inside referenced environment</param> public AstReference(Syntax syntax, AstReferenceType type, int argIdx) : base(syntax) { ReferenceType = type; VarIdx = (byte)argIdx; }