From a7a4db6efabc650ddb7d6bbf97868619c49bbd82 Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Thu, 16 Nov 2017 23:54:23 +0000 Subject: [PATCH] lex: allow for struct/union in types in args etc --- Applications/SmallC/lex.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Applications/SmallC/lex.c b/Applications/SmallC/lex.c index a2a98d07..e212a29b 100644 --- a/Applications/SmallC/lex.c +++ b/Applications/SmallC/lex.c @@ -196,11 +196,21 @@ void blanks(void) { /** * returns declaration type - * @return VOID, CCHAR, CINT, UCHAR, UINT + * @return VOID, CCHAR, CINT, UCHAR, UINT. STRUCT * * FIXME: wants rewriting to collect property bits and base type right */ int get_type(void) { + int otag; + char symbol_name[NAMEMAX]; + int sflag = 0; + if (sflag = amatch("struct", 6) || amatch("union", 5)) { + if (symname(symbol_name) == 0) + illname(); + if ((otag = find_tag(symbol_name)) == -1) + error("unknown struct/union"); + return STRUCT; + } if (amatch ("void", 4)) { return VOID; } -- 2.34.1