1
0
mirror of git://projects.qi-hardware.com/eda-tools.git synced 2024-11-30 04:57:11 +02:00
Commit Graph

132 Commits

Author SHA1 Message Date
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
Werner Almesberger
9681d44ca4 b2/subst.c: use vstring for modified regexp 2012-05-20 20:57:18 -03:00
Werner Almesberger
4e39ca2e31 b2/: move variable-length strings to vstring.[ch], for sharing 2012-05-20 20:54:07 -03:00
Werner Almesberger
8e6357f4fa b2/boom.c: add substitution query mode (option -q) 2012-05-20 20:33:15 -03:00
Werner Almesberger
04d858e047 b2/: export field hierarchy and substitution rules from lang.y 2012-05-20 20:33:14 -03:00
Werner Almesberger
fd14c5200a b2/: add processing of substitution rules 2012-05-20 20:33:14 -03:00
Werner Almesberger
9fd1dc56e7 b2/: add parsing of substitution rules (WIP) 2012-05-20 20:33:14 -03:00
Werner Almesberger
702343cabc b2/: connect stock to provider 2012-05-01 15:21:32 -03:00
Werner Almesberger
5d7f4fc662 b2/lang.l: print file name in diagnostics 2012-05-01 15:07:38 -03:00
Werner Almesberger
9a06757420 b2/: move file opening from boom.c to lang.l and combine setup code 2012-05-01 15:04:24 -03:00
Werner Almesberger
82d532e4a2 b2/: add provider database (WIP) 2012-05-01 14:57:12 -03:00
Werner Almesberger
c3a68453d0 b2/: add currency database 2012-04-30 22:49:33 -03:00
Werner Almesberger
24a32525e2 b2/: add dumping of stock information
Also use part_add without first calling part_lookup, since the latter is
implicit.
2012-04-30 20:40:11 -03:00
Werner Almesberger
450769e031 b2/: add options to set file type on the command line 2012-04-30 20:19:55 -03:00
Werner Almesberger
e99a9f4705 b2/: add parsing of part inventories (WIP)
Also simplify representation of packaging variants.
2012-04-30 20:19:55 -03:00
Werner Almesberger
1394c6b61c b2/: make top-level hierarchy item an action, not just a rule
This allows the definition of optional global fields. For now, we (ab)use
this for FP (footprint).
2012-04-28 23:30:50 -03:00
Werner Almesberger
6c49fdd789 b2/: dump part records (for debugging only) 2012-04-28 23:26:22 -03:00
Werner Almesberger
edcc61a6f4 b2/: normalize relative values to 1, not 100 2012-04-28 23:26:00 -03:00
Werner Almesberger
e7b2e65795 b2/db.c (part_add): fix jumbled initialization mess 2012-04-28 22:55:34 -03:00
Werner Almesberger
c92ba6f21a b2/Makefile: target "try" to run the example setup 2012-04-28 22:52:09 -03:00
Werner Almesberger
331fbdda6a b2/: add parameter conversion 2012-04-28 22:50:15 -03:00
Werner Almesberger
b172117a1c b2/bitset.h: fix logic of bitset_empty 2012-04-28 22:49:40 -03:00
Werner Almesberger
eabe0dc910 b2/: new diagnostic function yywarnf 2012-04-28 22:38:06 -03:00
Werner Almesberger
8aa94edd2f b2/: moved declarations of diagnostic functions from util.h to lang.h 2012-04-28 22:12:33 -03:00
Werner Almesberger
433b03a59d b2/: allow ...% to be recognized as a single WORD (for values) 2012-04-28 11:57:47 -03:00
Werner Almesberger
98f2fc8337 b2/lang.l: reset lineno for new file and count newlines in comment 2012-04-28 11:51:47 -03:00
Werner Almesberger
90e541cd7a b2/: add parsing of part characteristics (WIP) 2012-04-28 11:46:42 -03:00
Werner Almesberger
08b1ed1c51 b2/boom.c: move opening of file as stdin to separate function 2012-04-28 11:41:07 -03:00
Werner Almesberger
1817efd6dc b2/: add syntax switch 2012-04-26 03:02:48 -03:00
Werner Almesberger
3fff9373e3 b2/: choose better names for creator functions in chr.c 2012-04-26 02:48:08 -03:00
Werner Almesberger
b3c865e6fd b2/: add C-style comments 2012-04-25 19:37:53 -03:00
Werner Almesberger
45196de62f b2/HIERARCHY: add diodes, to make the example more interesting 2012-04-25 19:30:47 -03:00
Werner Almesberger
75479a894b b2/: syntax change: use = for instead of : for format declarations 2012-04-25 18:25:35 -03:00
Werner Almesberger
6bb8b03ef8 b2/: first tentative version of hierarchy parser, with example 2012-04-25 17:14:39 -03:00
Werner Almesberger
7fe553a4fc b2/Makefile: add "spotless" target 2012-04-19 20:09:18 -03:00
Werner Almesberger
c274c1d07b b2/Makefile: remove y.output on "make clean" 2012-04-19 20:08:25 -03:00
Werner Almesberger
9d5c6989e2 b2/Makefile: add dependency generation (.d method) 2012-04-19 20:06:02 -03:00
Werner Almesberger
aa2fe3ef16 b2: BOOM rewrite (WIP) 2012-03-18 13:24:12 -03:00