texinfo-commits
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]