[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[7509] parsetexi check_node_label
From: |
gavinsmith0123 |
Subject: |
[7509] parsetexi check_node_label |
Date: |
Sun, 13 Nov 2016 19:35:33 +0000 (UTC) |
Revision: 7509
http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=7509
Author: gavin
Date: 2016-11-13 19:35:32 +0000 (Sun, 13 Nov 2016)
Log Message:
-----------
parsetexi check_node_label
Modified Paths:
--------------
trunk/tp/parsetexi/convert.c
trunk/tp/parsetexi/convert.h
trunk/tp/parsetexi/end_line.c
trunk/tp/parsetexi/parser.h
trunk/tp/parsetexi/separator.c
Modified: trunk/tp/parsetexi/convert.c
===================================================================
--- trunk/tp/parsetexi/convert.c 2016-11-13 18:45:19 UTC (rev 7508)
+++ trunk/tp/parsetexi/convert.c 2016-11-13 19:35:32 UTC (rev 7509)
@@ -30,6 +30,30 @@
#define ADD(x) text_append (result, x)
+char *
+node_extra_to_texi (NODE_SPEC_EXTRA *nse)
+{
+ TEXT result;
+
+ if (!nse)
+ return "";
+ text_init (&result);
+
+ if (nse->manual_content
+ && nse->manual_content->contents.number > 0)
+ {
+ text_append_n (&result, "(", 1);
+ convert_to_texinfo_internal (nse->manual_content, &result);
+ text_append_n (&result, ")", 1);
+ }
+ if (nse->node_content
+ && nse->node_content->contents.number > 0)
+ {
+ convert_to_texinfo_internal (nse->node_content, &result);
+ }
+ return result.text;
+}
+
static void
expand_cmd_args_to_texi (ELEMENT *e, TEXT *result)
{
Modified: trunk/tp/parsetexi/convert.h
===================================================================
--- trunk/tp/parsetexi/convert.h 2016-11-13 18:45:19 UTC (rev 7508)
+++ trunk/tp/parsetexi/convert.h 2016-11-13 19:35:32 UTC (rev 7509)
@@ -1,2 +1,3 @@
char *convert_to_texinfo (ELEMENT *e);
char *convert_to_text (ELEMENT *e, int *superfluous_arg);
+char *node_extra_to_texi (NODE_SPEC_EXTRA *nse);
Modified: trunk/tp/parsetexi/end_line.c
===================================================================
--- trunk/tp/parsetexi/end_line.c 2016-11-13 18:45:19 UTC (rev 7508)
+++ trunk/tp/parsetexi/end_line.c 2016-11-13 19:35:32 UTC (rev 7509)
@@ -28,6 +28,37 @@
#include "indices.h"
#include "errors.h"
+void
+check_internal_node (NODE_SPEC_EXTRA *nse)
+{
+ if (nse && nse->manual_content
+ && nse->manual_content->contents.number > 0)
+ {
+ line_error ("syntax for an external node used for `%s'",
+ node_extra_to_texi (nse));
+ }
+}
+
+int
+check_empty_node (NODE_SPEC_EXTRA *nse,
+ enum command_id cmd)
+{
+ if (!nse || !nse->node_content || nse->node_content->contents.number == 0)
+ {
+ line_error ("empty argument in @%s", command_name(cmd));
+ }
+ else
+ return 1;
+}
+
+int
+check_node_label (NODE_SPEC_EXTRA *nse,
+ enum command_id cmd)
+{
+ check_internal_node (nse);
+ return check_empty_node (nse, cmd);
+}
+
static int
is_decimal_number (char *string)
{
@@ -1048,7 +1079,7 @@
// 2950
NODE_SPEC_EXTRA *float_label;
float_label = parse_node_manual (args_child_by_index (f, 1));
- // TODO check_internal_node
+ check_internal_node (float_label);
register_label (f, float_label);
}
@@ -1630,19 +1661,12 @@
add_extra_node_spec_array (current, "nodes_manuals", nodes_manuals);
- /*Check that the node name doesn't have a filename element for referring
- to an external manual (_check_internal_node), and that it is not empty
- (_check_empty_node). */
- //check_node_label ();
+ check_internal_node (nodes_manuals[0]);
if (nodes_manuals[0])
{
add_extra_contents (current, "node_content",
nodes_manuals[0]->node_content);
-
- /* This sets 'node_content' and 'normalized' on the node, among
- other things (which were already set in parse_node_manual).
- Are we normalizing the name twice? */
register_label (current, nodes_manuals[0]);
}
Modified: trunk/tp/parsetexi/parser.h
===================================================================
--- trunk/tp/parsetexi/parser.h 2016-11-13 18:45:19 UTC (rev 7508)
+++ trunk/tp/parsetexi/parser.h 2016-11-13 19:35:32 UTC (rev 7509)
@@ -25,6 +25,7 @@
NODE_SPEC_EXTRA *parse_node_manual (ELEMENT *node);
ELEMENT *end_line (ELEMENT *current);
ELEMENT *parse_special_misc_command (char *line, enum command_id cmd);
+int check_node_label (NODE_SPEC_EXTRA *nse, enum command_id cmd);
typedef struct {
char *type;
Modified: trunk/tp/parsetexi/separator.c
===================================================================
--- trunk/tp/parsetexi/separator.c 2016-11-13 18:45:19 UTC (rev 7508)
+++ trunk/tp/parsetexi/separator.c 2016-11-13 19:35:32 UTC (rev 7509)
@@ -293,7 +293,7 @@
NODE_SPEC_EXTRA *parsed_anchor;
current->parent->line_nr = line_nr;
parsed_anchor = parse_node_manual (current);
- if (1) // TODO check_node_label ()
+ if (check_node_label (parsed_anchor, CM_anchor))
{
register_label (current->parent, parsed_anchor);
if (current_region ())
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [7509] parsetexi check_node_label,
gavinsmith0123 <=