[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[7445] parsetexi update
From: |
gavinsmith0123 |
Subject: |
[7445] parsetexi update |
Date: |
Sun, 9 Oct 2016 16:13:45 +0000 (UTC) |
Revision: 7445
http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=7445
Author: gavin
Date: 2016-10-09 16:13:45 +0000 (Sun, 09 Oct 2016)
Log Message:
-----------
parsetexi update
Modified Paths:
--------------
trunk/tp/parsetexi/def.c
trunk/tp/parsetexi/element_types.c
trunk/tp/parsetexi/element_types.h
trunk/tp/parsetexi/element_types.txt
trunk/tp/parsetexi/end_line.c
Modified: trunk/tp/parsetexi/def.c
===================================================================
--- trunk/tp/parsetexi/def.c 2016-10-09 16:07:00 UTC (rev 7444)
+++ trunk/tp/parsetexi/def.c 2016-10-09 16:13:45 UTC (rev 7445)
@@ -121,18 +121,12 @@
if (e->contents.list[0]->type == ET_bracketed)
{
ELEMENT *bracketed = remove_from_contents (e, 0);
- ELEMENT *returned = new_element (ET_bracketed_def_content);
- KEY_PAIR *k;
- isolate_last_space (bracketed, ET_empty_space_at_end_def_bracketed);
+ bracketed->type = ET_bracketed_def_content;
- returned->contents = bracketed->contents;
- returned->parent_type = route_not_in_tree;
- k = lookup_extra_key (bracketed, "spaces_before_argument");
- if (k)
- add_extra_element (returned, "spaces_before_argument", k->value);
+ isolate_last_space (bracketed, 0);
- return returned;
+ return bracketed;
}
else if (e->contents.list[0]->cmd != CM_NONE) // 2363
{
@@ -222,7 +216,7 @@
{
/* The return value - suitable for "def_args" extra value. */
DEF_ARGS_EXTRA *def_args;
- int i;
+ int i, args_start;
ELEMENT *arg_line; /* Copy of argument line. */
ELEMENT *arg, *spaces; /* Arguments and spaces extracted from line. */
@@ -295,6 +289,7 @@
e = new_element (ET_NONE);
text_append (&e->text, category);
insert_into_contents (arg_line, e, 0);
+ e->parent = 0;
e->parent_type = route_not_in_tree;
}
else
@@ -302,6 +297,7 @@
/* Used when category text has a space in it. */
e = new_element (ET_bracketed);
insert_into_contents (arg_line, e, 0);
+ e->parent = 0;
e->parent_type = route_not_in_tree;
e1 = new_element (ET_NONE);
text_append_n (&e1->text, category + 1, strlen (category) - 2);
@@ -363,6 +359,8 @@
add_to_def_args_extra (def_args, "name", arg);
/* ARGUMENTS */
+
+ args_start = def_args->nelements;
// 2441
while (arg_line->contents.number > 0)
{
@@ -395,9 +393,8 @@
if (len == 0)
break;
- e = new_element (ET_NONE);
+ e = new_element (ET_delimiter);
e->parent_type = route_not_in_tree;
- // e = new_element (ET_delimiter); //TODO : No such type
text_append_n (&e->text, p, len);
add_to_def_args_extra (def_args, "delimiter", e);
p += len;
@@ -412,11 +409,34 @@
// 2460 - argtype
- /* TODO: Change some of the left sides to 'typearg'.
- What's the difference between this and type? */
+ /* Change some of the left sides to 'typearg'. This matters for
+ the DocBook output. */
if (command == CM_deftypefn || command == CM_deftypeop
|| command == CM_deftp)
{
+ int i, next_is_type = 1;
+ for (i = args_start; i < def_args->nelements; i++)
+ {
+ if (!strcmp ("spaces", def_args->labels[i]))
+ {
+ }
+ else if (!strcmp ("delimiter", def_args->labels[i]))
+ {
+ next_is_type = 1;
+ }
+ else if (def_args->elements[i]->cmd
+ && def_args->elements[i]->cmd != CM_code)
+ {
+ next_is_type = 1;
+ }
+ else if (next_is_type)
+ {
+ def_args->labels[i] = "typearg";
+ next_is_type = 0;
+ }
+ else
+ next_is_type = 0;
+ }
}
destroy_element (arg_line);
Modified: trunk/tp/parsetexi/element_types.c
===================================================================
--- trunk/tp/parsetexi/element_types.c 2016-10-09 16:07:00 UTC (rev 7444)
+++ trunk/tp/parsetexi/element_types.c 2016-10-09 16:13:45 UTC (rev 7445)
@@ -60,5 +60,6 @@
"row_prototype",
"elided",
"elided_block",
+"delimiter",
};
Modified: trunk/tp/parsetexi/element_types.h
===================================================================
--- trunk/tp/parsetexi/element_types.h 2016-10-09 16:07:00 UTC (rev 7444)
+++ trunk/tp/parsetexi/element_types.h 2016-10-09 16:13:45 UTC (rev 7445)
@@ -61,6 +61,7 @@
ET_row_prototype,
ET_elided,
ET_elided_block,
+ET_delimiter,
};
extern char *element_type_names[];
Modified: trunk/tp/parsetexi/element_types.txt
===================================================================
--- trunk/tp/parsetexi/element_types.txt 2016-10-09 16:07:00 UTC (rev
7444)
+++ trunk/tp/parsetexi/element_types.txt 2016-10-09 16:13:45 UTC (rev
7445)
@@ -88,3 +88,6 @@
elided
elided_block
+# for def commands
+delimiter
+
Modified: trunk/tp/parsetexi/end_line.c
===================================================================
--- trunk/tp/parsetexi/end_line.c 2016-10-09 16:07:00 UTC (rev 7444)
+++ trunk/tp/parsetexi/end_line.c 2016-10-09 16:13:45 UTC (rev 7445)
@@ -2119,8 +2119,46 @@
if (index_entry) // 2822
{
ELEMENT *index_contents = new_element (ET_NONE);
+ ELEMENT *e;
+
+ // 2824
+ if (class)
+ {
+ if (def_command == CM_defop
+ || def_command == CM_deftypeop
+ || def_command == CM_defmethod
+ || def_command == CM_deftypemethod)
+ {
+ /* NAME on CLASS */
+
+ add_to_contents_as_array (index_contents, name);
+
+ e = new_element (ET_NONE);
+ /* TODO should translate this */
+ text_append (&e->text, " on ");
+ add_to_contents_as_array (index_contents, e);
+
+ add_to_contents_as_array (index_contents, class);
+ }
+ else if (def_command == CM_defivar
+ || def_command == CM_deftypeivar)
+ {
+ /* NAME of CLASS */
+ add_to_contents_as_array (index_contents, name);
+
+ e = new_element (ET_NONE);
+ /* TODO should translate this */
+ text_append (&e->text, " of ");
+ add_to_contents_as_array (index_contents, e);
+
+ add_to_contents_as_array (index_contents, class);
+ }
+ }
index_contents->parent_type = route_not_in_tree;
- add_to_contents_as_array (index_contents, index_entry);
+
+ if (index_contents->contents.number == 0)
+ add_to_contents_as_array (index_contents, index_entry);
+
enter_index_entry (def_command,
original_def_command,
current->parent,
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [7445] parsetexi update,
gavinsmith0123 <=