mirror of
git://projects.qi-hardware.com/eda-tools.git
synced 2024-12-23 15:45:11 +02:00
99e5777448
The ${foo#unit} syntax didn't really make sense because it created a large number of potential error conditions on the assignment side and didn't help with finding compatible fields. With all this moved to the match side, an invalid syntax simply causes a mismatch.
36 lines
638 B
Plaintext
36 lines
638 B
Plaintext
REF=R[0-9]* {
|
|
T=R
|
|
VAL=(#R) { R=$1 }
|
|
TOL = 5%
|
|
FN=*% { TOL=$$ }
|
|
break REF
|
|
// end break again
|
|
}
|
|
|
|
/*
|
|
pattern:
|
|
() | like in RE
|
|
* ? like in glob
|
|
(#U) expect a numeric value of unit U (use substring to get canonical value)
|
|
|
|
subst: $1 ... $field
|
|
|
|
substring:
|
|
$1, $2, ...
|
|
variable:
|
|
$foo, ...
|
|
with curly braces:
|
|
${foo}, ...
|
|
input variable:
|
|
$$
|
|
|
|
Caveat:
|
|
|
|
Wrong: FN=* { X=$FN } there is no variable called FN
|
|
Right: FN=* { X=$$ } yields the Fn field selected by FN
|
|
|
|
Wrong: VAL=(#R) { R=$VAL } yields literal value
|
|
Wrong: VAL=(#R) { R=$$ } yields literal value
|
|
Right: VAL=(#R) { R=$1 } yield canonicalized value
|
|
*/
|