summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2014-01-03 23:57:39 +1100
committerDavid Gibson <david@gibson.dropbear.id.au>2014-01-04 10:04:20 +1100
commitfa3f3f0ebd154b0ef22cb83cd8efc50b7bbe181d (patch)
treebe9adec8df387e2b548ed5e158f83db35b28d4bc
parentc854434dc2e955d2053bccb6c763dcfb75d0842b (diff)
downloaddevice-tree-compiler-fa3f3f0ebd154b0ef22cb83cd8efc50b7bbe181d.tar.gz
Clean up parser error messages
Generally edit parser error messages for brevity and clarity. Replace the print_error() function with a a new macro for brevity and clarity in the source. Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
-rw-r--r--dtc-parser.y44
1 files changed, 18 insertions, 26 deletions
diff --git a/dtc-parser.y b/dtc-parser.y
index 7ee436f..42c4d75 100644
--- a/dtc-parser.y
+++ b/dtc-parser.y
@@ -24,8 +24,12 @@
#include "srcpos.h"
extern int yylex(void);
-extern void print_error(YYLTYPE *loc, char const *fmt, ...);
extern void yyerror(char const *s);
+#define ERROR(loc, ...) \
+ do { \
+ srcpos_error((loc), "Error", __VA_ARGS__); \
+ treesource_error = true; \
+ } while (0)
extern struct boot_info *the_boot_info;
extern bool treesource_error;
@@ -145,17 +149,18 @@ devicetree:
if (target)
merge_nodes(target, $3);
else
- print_error(&@2, "label or path, '%s', not found", $2);
+ ERROR(&@2, "Label or path %s not found", $2);
$$ = $1;
}
| devicetree DT_DEL_NODE DT_REF ';'
{
struct node *target = get_node_by_ref($1, $3);
- if (!target)
- print_error(&@3, "label or path, '%s', not found", $3);
- else
+ if (target)
delete_node(target);
+ else
+ ERROR(&@3, "Label or path %s not found", $3);
+
$$ = $1;
}
@@ -271,10 +276,9 @@ arrayprefix:
bits = $2;
if ((bits != 8) && (bits != 16) &&
- (bits != 32) && (bits != 64))
- {
- print_error(&@2, "Only 8, 16, 32 and 64-bit elements"
- " are currently supported");
+ (bits != 32) && (bits != 64)) {
+ ERROR(&@2, "Array elements must be"
+ " 8, 16, 32 or 64-bits");
bits = 32;
}
@@ -299,9 +303,8 @@ arrayprefix:
* mask), all bits are one.
*/
if (($2 > mask) && (($2 | mask) != -1ULL))
- print_error(&@2,
- "integer value out of range "
- "%016lx (%d bits)", $1.bits);
+ ERROR(&@2, "Value out of range for"
+ " %d-bit array element", $1.bits);
}
$$.data = data_append_integer($1.data, $2, $1.bits);
@@ -315,7 +318,7 @@ arrayprefix:
REF_PHANDLE,
$2);
else
- print_error(&@2, "References are only allowed in "
+ ERROR(&@2, "References are only allowed in "
"arrays with 32-bit elements.");
$$.data = data_append_integer($1.data, val, $1.bits);
@@ -435,7 +438,7 @@ subnodes:
}
| subnode propdef
{
- print_error(&@2, "syntax error: properties must precede subnodes");
+ ERROR(&@2, "Properties must precede subnodes");
YYERROR;
}
;
@@ -458,18 +461,7 @@ subnode:
%%
-void print_error(YYLTYPE *loc, char const *fmt, ...)
-{
- va_list va;
-
- va_start(va, fmt);
- srcpos_verror(loc, "Error", fmt, va);
- va_end(va);
-
- treesource_error = true;
-}
-
void yyerror(char const *s)
{
- print_error(&yylloc, "%s", s);
+ ERROR(&yylloc, "%s", s);
}