예제 #1
0
 /// <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;
 }
예제 #2
0
 /// <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;
 }
예제 #3
0
 /// <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;
 }