1
0
mirror of git://projects.qi-hardware.com/eda-tools.git synced 2024-11-26 01:16:16 +02:00
Commit Graph

87 Commits

Author SHA1 Message Date
Werner Almesberger
39382b1872 b2/: add test for redundant conditions in hierarchy 2012-05-31 15:35:31 -03:00
Werner Almesberger
2239440ef1 b2/new function yywarn; make yyerror reuse yyerrorf 2012-05-31 15:35:27 -03:00
Werner Almesberger
52e58cccbe b2/test/Common: drop that tacky "file-" prefix in pseudo-filenames
Just a plain "h", "c", etc., will do nicely. Also updated the one test
set we have so far.
2012-05-31 15:35:25 -03:00
Werner Almesberger
b0ed4364dc b2/: new option -v to control verbosity level; move hierarchy dump from parser to boom.c 2012-05-31 15:35:21 -03:00
Werner Almesberger
ef60e92699 b2/test/hierfld: field definitions in hierarchy 2012-05-31 15:35:17 -03:00
Werner Almesberger
88ad25e42c add regression test infrastructure 2012-05-30 12:12:43 -03:00
Werner Almesberger
60de30cea0 new option -N to override file names in diagnostics (for regression testing) 2012-05-30 12:12:43 -03:00
Werner Almesberger
b6a4a80652 separate dumping of hierchy rules from dumping of fields
With only one function, top-level fields definitions were printed in
a style as if they were rules and not fields.
2012-05-30 11:53:58 -03:00
Werner Almesberger
9b1277886b b2/extract-symbols: don't strip leading / from directory 2012-05-24 00:20:56 -03:00
Werner Almesberger
2ce3b7f82b b2/bom.c (bom_subst): include input variables in the part's list of variables 2012-05-24 00:09:20 -03:00
Werner Almesberger
1e21ea8a40 b2/param.c: new function merge_vars to merge prioritized lists of variables 2012-05-24 00:08:44 -03:00
Werner Almesberger
5fb156ab93 b2/lang.l: allow commas (,) in words
For 74AUP1G08GW,125
2012-05-23 23:25:33 -03:00
Werner Almesberger
7717e7fc3c b2/extract-symbols: extract cref-symbol map from KiCad schematics 2012-05-23 23:24:38 -03:00
Werner Almesberger
c582c47960 b2/: use -Wmissing-prototypes and -Wmissing-declarations 2012-05-23 19:33:10 -03:00
Werner Almesberger
8759410f80 b2/: use -Wshadow (and fix the place where this caused trouble) 2012-05-23 19:29:04 -03:00
Werner Almesberger
24abc2c49c b2/: use -Wextra (and fix places where this caused trouble) 2012-05-23 18:48:59 -03:00
Werner Almesberger
66aea07f23 b2/: add BOM dumping; dump processed BOM entries 2012-05-23 18:26:27 -03:00
Werner Almesberger
ec04163f44 b2/: run variable substitution on BOM entries (untested) 2012-05-23 18:13:26 -03:00
Werner Almesberger
4fb17f6e95 b2/bom.h (struct bom): remove unused "next" pointer 2012-05-23 17:41:57 -03:00
Werner Almesberger
f22378937d b2/: add parsing of supplemental symbol information (option -X) 2012-05-23 17:27:55 -03:00
Werner Almesberger
a537cc5503 b2/subst.c (parse_var): use unique_n 2012-05-23 17:23:14 -03:00
Werner Almesberger
b9066c6331 b2/util.c: new function unique_n for strings limited by length and not NUL 2012-05-23 17:23:14 -03:00
Werner Almesberger
9445f2c85b b2/bom.c (bom_parse_line): check that components reference are unique 2012-05-23 17:23:14 -03:00
Werner Almesberger
ddd22ba16c b2/: add parsing of KiCad eeschema BOMs (option -b) 2012-05-23 17:23:14 -03:00
Werner Almesberger
7c8fc30541 b2/boom.c (usage): -Q wasn't mentioned; explain -q and -Q 2012-05-23 15:14:58 -03:00
Werner Almesberger
db279b7920 b2/subex.c (compose): use stralloc_n instead of open-coding its functionality 2012-05-23 14:18:02 -03:00
Werner Almesberger
c9bd26a34d b2/Makefile: generate dependencies also for YACC- and LEX-generated files
We need explicit rules to compile lex.yy.c and y.tab.c for the relaxed
CFLAGS. However, this means that the implicit rule was not used and
therefore no dependencies were generated.
2012-05-22 16:09:22 -03:00
Werner Almesberger
4f142c1250 b2/: for consistency, make "break/continue $" equivalent to "break/continue"
Plus a bit of code simplification.
2012-05-22 15:57:55 -03:00
Werner Almesberger
694d48b56a b2/: make the match name after "break" and "continue" optional
If the name is omitted, we jump back / out of the current block.
2012-05-22 15:47:02 -03:00
Werner Almesberger
107280b6d5 b2/: rename "again" to "continue" 2012-05-22 15:44:31 -03:00
Werner Almesberger
bb809b0d6c b2/: make "again" include the match; make "break" pop the stack 2012-05-22 15:29:27 -03:00
Werner Almesberger
2ce2da5c30 b2/subst.c (resolve_jump): use pointer comparison instead of strcmp
Both come from "unique".
2012-05-22 14:27:39 -03:00
Werner Almesberger
21702781bc b2/: use re_nsub instead of maintaining our own equivalent
We still need to count parentheses in prepare_re for the current index
into "units", but the rest can ue re_nsub.
2012-05-22 13:51:57 -03:00
Werner Almesberger
148d5e85ac b2/: regexec puts first substring into pmatch[1] and not pmatch[0]
Also clean up the hard-coded number of matches.
2012-05-22 13:49:49 -03:00
Werner Almesberger
3d2eca34ff b2/: meta-variable $ for "previously matched variable"
We need this for iterative processing of FN.
2012-05-22 13:01:39 -03:00
Werner Almesberger
2946b830f1 b2/subst.c (prepare_re): fail on bad (#unit) syntax instead of ignoring 2012-05-22 12:07:41 -03:00
Werner Almesberger
d2171eba47 b2/: add "ignore" keyword for substitution rules
This allows us to decide in the project-specific rules how to indicate
DNP/NC/DNS/... parts. In the original BOOM, F1 == NC was hard-coded.
2012-05-21 23:17:33 -03:00
Werner Almesberger
2014e6053e b2/eval.c (decode_mult): also support "G" prefix
Not that we'd need giga-anything anytime soon, but since all the rest
also recognizes G, we support it here for consistency.
2012-05-21 22:35:55 -03:00
Werner Almesberger
2c5850ebe6 b2/: correct some whitespace anomalies 2012-05-21 21:25:29 -03:00
Werner Almesberger
256a096220 b2/boom.c: add parametric part selection (with option -Q) 2012-05-21 21:23:31 -03:00
Werner Almesberger
bcf4696dd9 b2/db.c: add (somewhat crude) parametric part selection 2012-05-21 21:23:31 -03:00
Werner Almesberger
4a3e517935 b2/: move basic handling of variables from subex to param 2012-05-21 19:46:42 -03:00
Werner Almesberger
c1b6b2a5e4 b2/: use (general) "struct param" to replace (specialized) "struct var" 2012-05-21 19:26:36 -03:00
Werner Almesberger
061e8f5872 b2/: rename "name" field in struct value to more generic "s", for better sharing 2012-05-21 14:44:33 -03:00
Werner Almesberger
fdac542592 b2/: add relop to struct param, in preparation of merge with struct var 2012-05-21 14:35:51 -03:00
Werner Almesberger
3ad6c2c44b b2/: move all error handling from subex to subst
This makes checking of variables more strict: a variable can only
be used in the right -hand side of an assignment if it has been
assigned by an unconditional predecessor or if it has been matched
by a parent.

Things that wouldn't work anymore:

REF=X* {
	FN=*V { X=Y }
	Z=$X	/* we can't be sure X=Y was taken */
}

FN=*R {
	X=$REF	/* no previous use of REF */
}
2012-05-21 00:20:07 -03:00
Werner Almesberger
6fd5313917 b2/: assigments to can express inequalities 2012-05-20 23:16:51 -03:00
Werner Almesberger
a34702cd8d b2/: move relational operators to relop.[ch] (for sharing)
This also fixes a bug in dump_one_field, which switched > and >=
2012-05-20 23:04:41 -03:00
Werner Almesberger
99e5777448 b2/: finish unit handling and move most of its processing to the match side
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.
2012-05-20 22:02:50 -03:00
Werner Almesberger
adecef8d4a b2/: use glob syntax instead of RE syntax for substitutions 2012-05-20 21:05:17 -03:00