projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
tons of progress on macros
[pspp]
/
src
/
language
/
control
/
define.c
diff --git
a/src/language/control/define.c
b/src/language/control/define.c
index c21c66a73cab91b9eed75dfd1713159317561857..e91505c726ee271a84891c601e8d453f183a41e7 100644
(file)
--- a/
src/language/control/define.c
+++ b/
src/language/control/define.c
@@
-113,9
+113,23
@@
cmd_define (struct lexer *lexer, struct dataset *ds UNUSED)
}
else
{
}
else
{
+ if (lex_token (lexer) == T_MACRO_ID)
+ {
+ lex_error (lexer, _("Keyword macro parameter must be named in "
+ "definition without \"!\" prefix."));
+ goto error;
+ }
if (!lex_force_id (lexer))
goto error;
if (!lex_force_id (lexer))
goto error;
+ if (is_macro_keyword (lex_tokss (lexer)))
+ {
+ lex_error (lexer, _("Cannot use macro keyword \"%s\" "
+ "as an argument name."),
+ lex_tokcstr (lexer));
+ goto error;
+ }
+
p->positional = false;
p->name = xasprintf ("!%s", lex_tokcstr (lexer));
lex_get (lexer);
p->positional = false;
p->name = xasprintf ("!%s", lex_tokcstr (lexer));
lex_get (lexer);