/// <summary> /// Get the value indicating if the given constant is evaluable in compile time. /// </summary> /// <param name="type"></param> /// <returns></returns> private bool IsEvaluable(PseudoConstUse.Types type) { switch (type) { case PseudoConstUse.Types.File: case PseudoConstUse.Types.Dir: return(false); default: return(true); } }
/// <summary> /// Gets token corresponding to given pseudo constant <paramref name="type"/>. /// </summary> /// <param name="type">Pseudo constant type.</param> /// <returns>Corresponding token.</returns> public static Tokens GetPseudoConstUseToken(PseudoConstUse.Types type) { switch (type) { case PseudoConstUse.Types.Class: return(Tokens.T_CLASS_C); case PseudoConstUse.Types.Trait: return(Tokens.T_TRAIT_C); case PseudoConstUse.Types.Namespace: return(Tokens.T_NS_C); case PseudoConstUse.Types.Function: return(Tokens.T_FUNC_C); case PseudoConstUse.Types.Method: return(Tokens.T_METHOD_C); case PseudoConstUse.Types.File: return(Tokens.T_FILE); case PseudoConstUse.Types.Line: return(Tokens.T_LINE); case PseudoConstUse.Types.Dir: return(Tokens.T_DIR); default: throw new ArgumentException(); } }
public virtual LangElement PseudoConstUse(Span span, PseudoConstUse.Types type) { return(new PseudoConstUse(span, type)); }
public BoundPseudoConst(PseudoConstUse.Types type) { this.Type = type; }
public override LangElement PseudoConstUse(Span span, PseudoConstUse.Types type) => CountLE(base.PseudoConstUse(span, type));