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
78bcb8d3de
schhist/schhist2web: correct handling of deferred columns
...
This fixes two bugs:
- the last column could leave td=true, causing an extra column to be
erroneously inserted at the beginning of the next row
- a deferred <TD> at the end of the row would be output before $s,
placing it right after the last thumbnail instead of the end of
the thumbnail section
Also combines flushing of "td" for all code paths that produce a
difference image.
2012-05-23 01:53:33 -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
d8f5c95ecb
schhist/schhist2web: correctly align shared columns
...
When sharing columns, the "unchanged" bar wasn't centered unless the
sheet was the first sheet in that column.
2012-05-11 22:07:10 -03:00
Werner Almesberger
cc5732bbf3
schhist/schhist2web (ordered_names): fix typo in pattern
2012-05-11 03:18:33 -03:00
Werner Almesberger
1468a33268
schhist2web: column sharing with SCHHIST_ORDER=...:first=next=...:... (WIP)
...
This only shows the first name in the header. Should generate a new header
line when a sheet is a column changes. Should also complain when sheets
collide. Needs more testing.
2012-05-11 02:47:18 -03:00
Werner Almesberger
b7816b9dad
schhist/schhist2web: truncate commit entries after 300 characters
...
This limit includes the entire entry, including the author and the date.
2012-05-11 01:45:07 -03:00
Werner Almesberger
9365a23f7c
schhist/sanitize-profile: treat LibDir as a list
2012-05-11 00:53:05 -03:00
Werner Almesberger
881bf33be0
rescue files from svn.openmoko.org
2012-05-01 23:09:24 -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