[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[6856] parsetexi update
From: |
Gavin D. Smith |
Subject: |
[6856] parsetexi update |
Date: |
Sun, 13 Dec 2015 23:12:53 +0000 |
Revision: 6856
http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=6856
Author: gavin
Date: 2015-12-13 23:12:52 +0000 (Sun, 13 Dec 2015)
Log Message:
-----------
parsetexi update
Modified Paths:
--------------
trunk/parsetexi/commands.h
trunk/parsetexi/end_line.c
trunk/parsetexi/extra.c
trunk/parsetexi/handle_commands.c
trunk/parsetexi/indices.c
trunk/parsetexi/labels.c
trunk/parsetexi/menus.c
trunk/parsetexi/parser.c
trunk/parsetexi/parser.h
trunk/parsetexi/separator.c
Modified: trunk/parsetexi/commands.h
===================================================================
--- trunk/parsetexi/commands.h 2015-12-13 21:31:20 UTC (rev 6855)
+++ trunk/parsetexi/commands.h 2015-12-13 23:12:52 UTC (rev 6856)
@@ -78,6 +78,10 @@
#define CF_index_entry_command 0x40000000
#define CF_global_unique 0x80000000
+/* NOTE: We've run out of spaces for flags, but some of these may not
+ be used, or may not be necessary. For example, region could be done
+ as BLOCK_region in data instead. */
+
/* Types of misc command (has CF_misc flag). Values for COMMAND.data. */
/* See Common.pm:376 */
#define MISC_special -1
Modified: trunk/parsetexi/end_line.c
===================================================================
--- trunk/parsetexi/end_line.c 2015-12-13 21:31:20 UTC (rev 6855)
+++ trunk/parsetexi/end_line.c 2015-12-13 23:12:52 UTC (rev 6856)
@@ -912,7 +912,7 @@
asprintf (&s, "%d", prototypes->contents.number);
add_extra_string (current->parent, "max_columns", s);
}
- add_extra_key_contents (current->parent, "prototypes", prototypes);
+ add_extra_contents (current->parent, "prototypes", prototypes);
}
else
{
@@ -983,14 +983,14 @@
e->cmd = CM_bullet;
e->parent_type = route_not_in_tree;
e->parent = current;
- add_extra_key_element (current, "command_as_argument", e);
+ add_extra_element (current, "command_as_argument", e);
contents = new_element (ET_NONE);
contents2 = new_element (ET_NONE);
contents2->parent_type = route_not_in_tree;
add_to_contents_as_array (contents2, e);
add_to_element_contents (contents, contents2);
- add_extra_key_contents_array (current, "block_command_line_contents",
+ add_extra_contents_array (current, "block_command_line_contents",
contents);
}
else if (item_line_command (current->cmd)
@@ -1002,14 +1002,14 @@
e->cmd = CM_asis;
e->parent_type = route_not_in_tree;
e->parent = current;
- add_extra_key_element (current, "command_as_argument", e);
+ add_extra_element (current, "command_as_argument", e);
contents = new_element (ET_NONE);
contents2 = new_element (ET_NONE);
contents2->parent_type = route_not_in_tree;
add_to_contents_as_array (contents2, e);
add_to_element_contents (contents, contents2);
- add_extra_key_contents_array (current, "block_command_line_contents",
+ add_extra_contents_array (current, "block_command_line_contents",
contents);
// FIXME: code duplication
}
@@ -1075,7 +1075,7 @@
if (arg_type > 0)
{
ELEMENT *args = parse_line_command_args (current);
- add_extra_key_misc_args (current, "misc_args", args);
+ add_extra_misc_args (current, "misc_args", args);
}
else if (arg_type == MISC_text) /* 3118 */
{
@@ -1213,7 +1213,7 @@
is not empty (_check_empty_node). */
//check_node_label ();
- add_extra_key_contents (current, "node_content",
+ add_extra_contents (current, "node_content",
nodes_manuals[0]->node_content);
/* This sets 'node_content' and 'normalized' on the node, among
@@ -1243,7 +1243,7 @@
else
{
// 3266
- add_extra_key_contents (current, "misc_content", misc_content);
+ add_extra_contents (current, "misc_content", misc_content);
if ((current->parent->cmd == CM_ftable
|| current->parent->cmd == CM_vtable)
&& (current->cmd == CM_item || current->cmd == CM_itemx))
@@ -1309,8 +1309,8 @@
else
{ // 3295
// FIXME: end_elt correct?
- add_extra_key_element (end_elt, "command", closed_command);
- add_extra_key_element (closed_command, "end_command", end_elt);
+ add_extra_element (end_elt, "command", closed_command);
+ add_extra_element (closed_command, "end_command", end_elt);
close_command_cleanup (closed_command);
// 3301 INLINE_INSERTCOPYING
@@ -1374,7 +1374,7 @@
if ((misc_args = lookup_extra_key (misc_cmd, "misc_args")))
{
char *s;
- add_extra_key_misc_args (current, "columnfractions",
+ add_extra_misc_args (current, "columnfractions",
misc_args->value);
asprintf (&s, "%d", misc_args->value->contents.number);
add_extra_string (current, "max_columns", s);
@@ -1402,9 +1402,9 @@
{
if (!lookup_extra_key (current_node, "associated_section"))
{
- add_extra_key_element
+ add_extra_element
(current_node, "associated_section", current);
- add_extra_key_element
+ add_extra_element
(current, "associated_node", current_node);
}
}
Modified: trunk/parsetexi/extra.c
===================================================================
--- trunk/parsetexi/extra.c 2015-12-13 21:31:20 UTC (rev 6855)
+++ trunk/parsetexi/extra.c 2015-12-13 23:12:52 UTC (rev 6856)
@@ -36,7 +36,7 @@
/* Add an extra key that is a reference to another element (for example,
'associated_section' on a node command element. */
void
-add_extra_key_element (ELEMENT *e, char *key, ELEMENT *value)
+add_extra_element (ELEMENT *e, char *key, ELEMENT *value)
{
add_extra_key (e, key, value);
e->extra[e->extra_number - 1].type = extra_element;
@@ -45,7 +45,7 @@
/* Add an extra key that is a reference to the contents array of another
element (for example, 'node_content' on a node command element). */
void
-add_extra_key_contents (ELEMENT *e, char *key, ELEMENT *value)
+add_extra_contents (ELEMENT *e, char *key, ELEMENT *value)
{
add_extra_key (e, key, value);
e->extra[e->extra_number - 1].type = extra_element_contents;
@@ -53,7 +53,7 @@
/* An array of content arrays. */
void
-add_extra_key_contents_array (ELEMENT *e, char *key, ELEMENT *value)
+add_extra_contents_array (ELEMENT *e, char *key, ELEMENT *value)
{
add_extra_key (e, key, value);
e->extra[e->extra_number - 1].type = extra_element_contents_array;
@@ -62,21 +62,21 @@
/* Add an extra key that is a reference to the text field of another
element. */
void
-add_extra_key_text (ELEMENT *e, char *key, ELEMENT *value)
+add_extra_text (ELEMENT *e, char *key, ELEMENT *value)
{
add_extra_key (e, key, value);
e->extra[e->extra_number - 1].type = extra_element_text;
}
void
-add_extra_key_index_entry (ELEMENT *e, char *key, INDEX_ENTRY_REF *value)
+add_extra_index_entry (ELEMENT *e, char *key, INDEX_ENTRY_REF *value)
{
add_extra_key (e, key, (ELEMENT *) value);
e->extra[e->extra_number - 1].type = extra_index_entry;
}
void
-add_extra_key_misc_args (ELEMENT *e, char *key, ELEMENT *value)
+add_extra_misc_args (ELEMENT *e, char *key, ELEMENT *value)
{
if (!value) return;
add_extra_key (e, key, value);
Modified: trunk/parsetexi/handle_commands.c
===================================================================
--- trunk/parsetexi/handle_commands.c 2015-12-13 21:31:20 UTC (rev 6855)
+++ trunk/parsetexi/handle_commands.c 2015-12-13 23:12:52 UTC (rev 6856)
@@ -172,7 +172,7 @@
/* TODO: Could we have just set misc->args directly as args? */
if (args->contents.number > 0 && arg_spec != MISC_skipline)
- add_extra_key_misc_args (misc, "misc_args", args);
+ add_extra_misc_args (misc, "misc_args", args);
else
{
for (i = 0; i < args->contents.number; i++)
@@ -454,7 +454,7 @@
if (parent->cmd == CM_titlepage)
{
// TODO 4595 global author
- add_extra_key_element (current, "titlepage", parent);
+ add_extra_element (current, "titlepage", parent);
found = 1; break;
}
else if (parent->cmd == CM_quotation
@@ -467,10 +467,10 @@
else
{
e = new_element (ET_NONE);
- add_extra_key_contents (parent, "authors", e);
+ add_extra_contents (parent, "authors", e);
}
add_to_contents_as_array (e, current);
- add_extra_key_element (current, "quotation", parent);
+ add_extra_element (current, "quotation", parent);
found = 1; break;
}
}
Modified: trunk/parsetexi/indices.c
===================================================================
--- trunk/parsetexi/indices.c 2015-12-13 21:31:20 UTC (rev 6855)
+++ trunk/parsetexi/indices.c 2015-12-13 23:12:52 UTC (rev 6856)
@@ -271,7 +271,7 @@
ier->index = idx;
ier->entry = idx->index_number - 1;
- add_extra_key_index_entry (current, "index_entry", ier);
+ add_extra_index_entry (current, "index_entry", ier);
if (!current_section)
line_warn ("entry for index `%s' outside of any node", idx->name);
Modified: trunk/parsetexi/labels.c
===================================================================
--- trunk/parsetexi/labels.c 2015-12-13 21:31:20 UTC (rev 6855)
+++ trunk/parsetexi/labels.c 2015-12-13 23:12:52 UTC (rev 6856)
@@ -29,7 +29,6 @@
and must be unique in the document. Corresponds to @node, @anchor, and
second arg of @float. */
void
-//register_label (ELEMENT *current, ELEMENT *label)
register_label (ELEMENT *current, NODE_SPEC_EXTRA *label)
{
char *normalized = label->normalized;
@@ -49,5 +48,5 @@
// 2504
add_extra_string (current, "normalized", normalized);
- add_extra_key_contents (current, "node_content", label->node_content);
+ add_extra_contents (current, "node_content", label->node_content);
}
Modified: trunk/parsetexi/menus.c
===================================================================
--- trunk/parsetexi/menus.c 2015-12-13 21:31:20 UTC (rev 6855)
+++ trunk/parsetexi/menus.c 2015-12-13 23:12:52 UTC (rev 6856)
@@ -35,7 +35,7 @@
if (arg->type == ET_menu_entry_name)
{
- add_extra_key_element (current, "menu_entry_name", arg);
+ add_extra_element (current, "menu_entry_name", arg);
// Check menu label isn't empty
}
@@ -53,7 +53,7 @@
}
else if (arg->type == ET_menu_entry_description)
{
- add_extra_key_element (current, "menu_entry_description", arg);
+ add_extra_element (current, "menu_entry_description", arg);
}
}
}
Modified: trunk/parsetexi/parser.c
===================================================================
--- trunk/parsetexi/parser.c 2015-12-13 21:31:20 UTC (rev 6855)
+++ trunk/parsetexi/parser.c 2015-12-13 23:12:52 UTC (rev 6856)
@@ -566,8 +566,8 @@
if (command)
{
- add_extra_key_element (e, "command", command);
- add_extra_key_element (command, "spaces_after_command", e);
+ add_extra_element (e, "command", command);
+ add_extra_element (command, "spaces_after_command", e);
}
*line_inout = line;
@@ -885,7 +885,7 @@
command_name(current->cmd));
if (!current->type)
current->type = ET_command_as_argument;
- add_extra_key_element (current->parent->parent,
+ add_extra_element (current->parent->parent,
"command_as_argument", current);
current = current->parent;
}
Modified: trunk/parsetexi/parser.h
===================================================================
--- trunk/parsetexi/parser.h 2015-12-13 21:31:20 UTC (rev 6855)
+++ trunk/parsetexi/parser.h 2015-12-13 23:12:52 UTC (rev 6856)
@@ -74,12 +74,12 @@
#include "dump_perl.h"
/* In extra.c */
-void add_extra_key_element (ELEMENT *e, char *key, ELEMENT *value);
-void add_extra_key_contents (ELEMENT *e, char *key, ELEMENT *value);
-void add_extra_key_contents_array (ELEMENT *e, char *key, ELEMENT *value);
-void add_extra_key_text (ELEMENT *e, char *key, ELEMENT *value);
-void add_extra_key_index_entry (ELEMENT *e, char *key, INDEX_ENTRY_REF *value);
-void add_extra_key_misc_args (ELEMENT *e, char *key, ELEMENT *value);
+void add_extra_element (ELEMENT *e, char *key, ELEMENT *value);
+void add_extra_contents (ELEMENT *e, char *key, ELEMENT *value);
+void add_extra_contents_array (ELEMENT *e, char *key, ELEMENT *value);
+void add_extra_text (ELEMENT *e, char *key, ELEMENT *value);
+void add_extra_index_entry (ELEMENT *e, char *key, INDEX_ENTRY_REF *value);
+void add_extra_misc_args (ELEMENT *e, char *key, ELEMENT *value);
void add_extra_node_spec (ELEMENT *e, char *key, NODE_SPEC_EXTRA *value);
void add_extra_node_spec_array (ELEMENT *, char *, NODE_SPEC_EXTRA **value);
void add_extra_def_args (ELEMENT *e, char *key, DEF_ARGS_EXTRA *value);
Modified: trunk/parsetexi/separator.c
===================================================================
--- trunk/parsetexi/separator.c 2015-12-13 21:31:20 UTC (rev 6855)
+++ trunk/parsetexi/separator.c 2015-12-13 23:12:52 UTC (rev 6856)
@@ -23,6 +23,7 @@
#include "errors.h"
#include "convert.h"
#include "input.h"
+#include "labels.h"
// 3600
/* Add the contents of CURRENT as an element to the extra value with
@@ -55,7 +56,7 @@
{
value = new_element (ET_NONE);
value->parent_type = route_not_in_tree;
- add_extra_key_contents_array (current->parent, key, value);
+ add_extra_contents_array (current->parent, key, value);
}
add_to_contents_as_array (value, new);
@@ -80,6 +81,8 @@
command_data(current->cmd).data);
counter_dec (&count_remaining_args);
+ // TODO 4899 definfoenclose
+
arg = new_element (ET_NONE);
add_to_element_args (current, arg);
current = arg;
@@ -117,8 +120,8 @@
command_name(command));
else
{
- add_extra_key_element (current->parent, "float", float);
- add_extra_key_element (float, command_name(command),
+ add_extra_element (current->parent, "float", float);
+ add_extra_element (float, command_name(command),
current->parent);
}
}
@@ -151,7 +154,7 @@
e = new_element (ET_empty_spaces_before_argument);
text_append_n (&e->text, line, n);
add_to_element_contents (current, e);
- add_extra_key_element (current->parent,
+ add_extra_element (current->parent,
"spaces_before_argument", e);
line += n;
}
@@ -174,7 +177,7 @@
/* See comment in parser.c:merge_text */
text_append (&e->text, "");
add_to_element_contents (current, e);
- add_extra_key_element (current->parent,
+ add_extra_element (current->parent,
"spaces_before_argument", e);
}
else if (command_data(command).data == BRACE_inline)
@@ -193,13 +196,17 @@
b = new_element (ET_bracketed);
add_to_element_contents (current, b);
current = b;
- /* TODO: Record the line number if we are in a def_line in case @
- protects the end of the line. */
+
+ /* We need the line number here in case @ protects the
+ end of the line. */
+ if (current->parent->parent->type == ET_def_line)
+ current->line_nr = line_nr;
+
e = new_element (ET_empty_spaces_before_argument);
text_append (&e->text, ""); /* See comment in parser.c:merge_text */
add_to_element_contents (current, e);
debug ("BRACKETED in def/multitable");
-
+ add_extra_element (current, "spaces_before_argument", e);
}
else if (current->type == ET_rawpreformatted)
{
@@ -219,11 +226,8 @@
current = b;
debug ("BRACKETED in math");
}
-#if 0
-
else
- /*error*/;
-#endif
+ line_error ("misplaced {");
*line_inout = line;
return current;
@@ -257,26 +261,32 @@
else if (command_data(current->parent->cmd).data > 0)
{
// 5033
- isolate_last_space (current, 0);
+ /* @inline* always have end spaces considered as normal text */
+ if (!command_flags(current->parent) & CF_inline)
+ isolate_last_space (current, 0);
register_command_arg (current, "brace_command_contents");
- //remove_empty_content_arguments ();
+ remove_empty_content_arguments (current);
}
closed_command = current->parent->cmd;
debug ("CLOSING(brace) %s", command_data(closed_command).cmdname);
counter_pop (&count_remaining_args);
- // 5044 check for brace command that doesn't take arguments has in
- // fact been given arguments.
+ // 5044
+ if (current->contents.number > 0
+ && command_data(closed_command).data == 0)
+ line_warn ("command @%s does not accept arguments",
+ command_name(closed_command));
if (closed_command == CM_anchor) // 5051
{
NODE_SPEC_EXTRA *parsed_anchor;
current->parent->line_nr = line_nr;
parsed_anchor = parse_node_manual (current);
- if (1) // check_node_label ()
+ if (1) // TODO check_node_label ()
{
register_label (current->parent, parsed_anchor);
+ // TODO "regions stack"
}
}
else if (command_data(closed_command).flags & CF_ref) // 5062
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [6856] parsetexi update,
Gavin D. Smith <=