Home | History | Annotate | Line # | Download | only in unit-tests
varparse-errors.mk revision 1.2
      1  1.2  rillig # $NetBSD: varparse-errors.mk,v 1.2 2020/12/01 20:15:23 rillig Exp $
      2  1.1  rillig 
      3  1.1  rillig # Tests for parsing and evaluating all kinds of variable expressions.
      4  1.1  rillig #
      5  1.1  rillig # This is the basis for redesigning the error handling in Var_Parse and
      6  1.1  rillig # Var_Subst, collecting typical and not so typical use cases.
      7  1.1  rillig #
      8  1.1  rillig # See also:
      9  1.1  rillig #	VarParseResult
     10  1.1  rillig #	Var_Parse
     11  1.1  rillig #	Var_Subst
     12  1.1  rillig 
     13  1.1  rillig PLAIN=		plain value
     14  1.1  rillig 
     15  1.1  rillig LITERAL_DOLLAR=	To get a dollar, double $$ it.
     16  1.1  rillig 
     17  1.1  rillig INDIRECT=	An ${:Uindirect} value.
     18  1.1  rillig 
     19  1.1  rillig REF_UNDEF=	A reference to an ${UNDEF}undefined variable.
     20  1.1  rillig 
     21  1.1  rillig ERR_UNCLOSED=	An ${UNCLOSED variable expression.
     22  1.1  rillig 
     23  1.1  rillig ERR_BAD_MOD=	An ${:Uindirect:Z} expression with an unknown modifier.
     24  1.1  rillig 
     25  1.1  rillig ERR_EVAL=	An evaluation error ${:Uvalue:C,.,\3,}.
     26  1.1  rillig 
     27  1.1  rillig # In a conditional, a variable expression that is not enclosed in quotes is
     28  1.1  rillig # expanded using the flags VARE_UNDEFERR and VARE_WANTRES.
     29  1.1  rillig # The variable itself must be defined.
     30  1.1  rillig # It may refer to undefined variables though.
     31  1.1  rillig .if ${REF_UNDEF} != "A reference to an undefined variable."
     32  1.1  rillig .  error
     33  1.1  rillig .endif
     34  1.1  rillig 
     35  1.2  rillig # As of 2020-12-01, errors in the variable name are silently ignored.
     36  1.2  rillig VAR.${:U:Z}=	unknown modifier in the variable name
     37  1.2  rillig .if ${VAR.} != "unknown modifier in the variable name"
     38  1.2  rillig .  error
     39  1.2  rillig .endif
     40  1.2  rillig 
     41  1.2  rillig # As of 2020-12-01, errors in the variable name are silently ignored.
     42  1.2  rillig VAR.${:U:Z}post=	unknown modifier with text in the variable name
     43  1.2  rillig .if ${VAR.post} != "unknown modifier with text in the variable name"
     44  1.2  rillig .  error
     45  1.2  rillig .endif
     46  1.2  rillig 
     47  1.1  rillig all:
     48