Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Add support for `gsize' eqn token (introduced in second-edition troff). | Kristaps Dzonsons | 2011-07-22 | 1 | -11/+31 |
| | |||||
* | Add all rendered symbols used by eqn. I use the Second-Edition User's | Kristaps Dzonsons | 2011-07-22 | 1 | -42/+87 |
| | | | | | Manual (1978) for this, so it should catch most of them. They just map into the mandoc_char escaped characters. | ||||
* | Support translating Greek characters in eqn. | Kristaps Dzonsons | 2011-07-22 | 1 | -0/+94 |
| | |||||
* | Fix left/right nesting in eqn. | Kristaps Dzonsons | 2011-07-22 | 1 | -3/+7 |
| | |||||
* | Protect macro expansion. | Kristaps Dzonsons | 2011-07-22 | 1 | -1/+1 |
| | |||||
* | Use a macro instead of doing a string-fragment compare. I just get | Kristaps Dzonsons | 2011-07-22 | 1 | -28/+23 |
| | | | | | | worried that I'm going to write the wrong size on both sides of the equality (I've already done it a few times). This cleans up the code readability a bit. | ||||
* | Give lists their own eqn function. | Kristaps Dzonsons | 2011-07-22 | 1 | -35/+50 |
| | |||||
* | Accomodate for hard-spaces with tildes. For now, consider them regular | Kristaps Dzonsons | 2011-07-22 | 1 | -4/+16 |
| | | | | | | spaces. Also allow for tabs. Finally, have the parser correctly handle open and close brackets smooshed against other terms. All of these handle "details" noted in the CACM paper. | ||||
* | Fix eqn handling of PILE clauses (multiple ABOVE statements may be | Kristaps Dzonsons | 2011-07-21 | 1 | -17/+14 |
| | | | | specified for each PILE). | ||||
* | Complete eqn.7 parsing. Features all productions from the original 1975 | Kristaps Dzonsons | 2011-07-21 | 1 | -116/+231 |
| | | | | | | | | CACM paper in an LR(1) parse (1 -> eqn_rewind()). Right now the code is a little jungly, but will clear up as I consolidate parse components. The AST structure will also be cleaned up, as right now it's pretty ad hoc (this won't change the parse itself). I added the mandoc_strndup() function will here. | ||||
* | Support `size' constructs in eqn.7. Generalise mandoc_strontou to this | Kristaps Dzonsons | 2011-07-21 | 1 | -2/+12 |
| | | | | effect. | ||||
* | Full support for eqn positionals (above, over, sup, sub, etc.). | Kristaps Dzonsons | 2011-07-21 | 1 | -2/+21 |
| | |||||
* | Add eqn subexpression fonts. | Kristaps Dzonsons | 2011-07-21 | 1 | -12/+31 |
| | |||||
* | Add support for markers. These decorate the last box: see eqn.7. | Kristaps Dzonsons | 2011-07-21 | 1 | -5/+33 |
| | |||||
* | Support nested `{, }' subexpressions in eqn. Document in code. | Kristaps Dzonsons | 2011-07-21 | 1 | -10/+49 |
| | |||||
* | Make `undef' not expand its argument before undefining it. Document | Kristaps Dzonsons | 2011-07-21 | 1 | -15/+21 |
| | | | | this and have the same behaviour apply to `set' and `define'. | ||||
* | Flip eqn into using parsed nodes. I've temporarily disabled printing | Kristaps Dzonsons | 2011-07-21 | 1 | -31/+64 |
| | | | | | | | these in the front-ends except for -Ttree, which will display the parsed tree. While here, fix that quoted strings aren't scanned for replacement parts. | ||||
* | Finish the eqn syntactic parser. This correctly parses terms and does | Kristaps Dzonsons | 2011-07-21 | 1 | -184/+180 |
| | | | | | | | the proper `define' dance, which amounts to pure word-replace (you can, say, define `foo' as `define' then define `define' as something else). eqn.c is now ready for some semantic parsing of `box' and `eqn' productions as defined by the grammar. | ||||
* | Definitions in eqn.7 are actually recursive. Do this and add crude | Kristaps Dzonsons | 2011-07-18 | 1 | -7/+29 |
| | | | | protection that we don't nest back to ourselves. | ||||
* | Fix lost allocation. | Kristaps Dzonsons | 2011-07-17 | 1 | -2/+0 |
| | |||||
* | Remember to NULL-ify new keys/vals. | Kristaps Dzonsons | 2011-07-17 | 1 | -0/+1 |
| | |||||
* | Provide implementations of `define', `set', and `unset'. | Kristaps Dzonsons | 2011-07-17 | 1 | -55/+196 |
| | | | | | | Tie them into the stream of data. Document these appropriate, bringing in the grammar as defined by the original eqn manual (Kernighan/Richie). | ||||
* | Warn if equation `define' key is quoted (groff-ism). | Kristaps Dzonsons | 2011-07-17 | 1 | -4/+16 |
| | |||||
* | Add initial `define' support for eqn(7). | Kristaps Dzonsons | 2011-07-17 | 1 | -6/+111 |
| | | | | | | | | | This works by iterating over a simple list. It's a slow, auditable early implementation. Data is read (the reading function will be reused) then parsed, then the line re-run if remaining stuff exists. Note this function isn't the same as mandoc_getarg(), as eqn(7) uses a different system for reading quoted strings. This doesn't actually use the defines. | ||||
* | Have equation be allocated with mparse. Will be needed for logging of | Kristaps Dzonsons | 2011-07-12 | 1 | -1/+3 |
| | | | | messages. | ||||
* | Step 1 of restructuring: libmandoc.h. Move all compiler-set-specific | Kristaps Dzonsons | 2011-03-22 | 1 | -1/+0 |
| | | | | | | | | | | stuff into libmandoc.h, including old mdoc.h/man.h/roff.h functions now used by read.c. The motivation behind this is to tighten the relationship between the underlying compilers while keeping parse data hidden from general callers (e.g., main.c). While here, also move register values from mandoc.h into libmandoc.h as noted by schwarze@. See above for explanation. | ||||
* | Make lint shut up a little bit. | Kristaps Dzonsons | 2011-03-15 | 1 | -0/+1 |
| | |||||
* | Allow EQN data to be pushed down into libmdoc via mdoc_addeqn(). Only | Kristaps Dzonsons | 2011-02-09 | 1 | -2/+2 |
| | | | | the adding itself is implemented; equation data is not yet shown. | ||||
* | Add initial EQN support to mandoc. This parses, then throws away, data | Kristaps Dzonsons | 2011-02-06 | 1 | -0/+81 |
between EQ and EN roff blocks. EQN is different from TBL in that data after .EQ is unilaterally considered an equation until an .EN. Thus, there's no need to jump through hoops in having table spans and so on. This is ONLY the parse code framework in libroff. EQN is not yet passed into the backends. |