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