Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/usr.bin/xlint/lint1 Add _Generic C11 support.
details: https://anonhg.NetBSD.org/src/rev/48e3a382285a
branches: trunk
changeset: 818889:48e3a382285a
user: christos <christos%NetBSD.org@localhost>
date: Sat Nov 05 01:09:30 2016 +0000
description:
Add _Generic C11 support.
diffstat:
usr.bin/xlint/lint1/cgram.y | 25 +++++++++++++++++++++++--
usr.bin/xlint/lint1/scan.l | 5 +++--
2 files changed, 26 insertions(+), 4 deletions(-)
diffs (95 lines):
diff -r c517d5627016 -r 48e3a382285a usr.bin/xlint/lint1/cgram.y
--- a/usr.bin/xlint/lint1/cgram.y Sat Nov 05 01:08:58 2016 +0000
+++ b/usr.bin/xlint/lint1/cgram.y Sat Nov 05 01:09:30 2016 +0000
@@ -1,5 +1,5 @@
%{
-/* $NetBSD: cgram.y,v 1.80 2016/08/19 10:58:15 christos Exp $ */
+/* $NetBSD: cgram.y,v 1.81 2016/11/05 01:09:30 christos Exp $ */
/*
* Copyright (c) 1996 Christopher G. Demetriou. All Rights Reserved.
@@ -35,7 +35,7 @@
#include <sys/cdefs.h>
#if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: cgram.y,v 1.80 2016/08/19 10:58:15 christos Exp $");
+__RCSID("$NetBSD: cgram.y,v 1.81 2016/11/05 01:09:30 christos Exp $");
#endif
#include <stdlib.h>
@@ -163,6 +163,7 @@
%token T_ELLIPSE
%token T_REAL
%token T_IMAG
+%token T_GENERIC
/* storage classes (extern, static, auto, register and typedef) */
%token <y_scl> T_SCLASS
@@ -289,6 +290,7 @@
%type <y_tnode> expr_stmnt_val
%type <y_tnode> expr_stmnt_list
%type <y_tnode> term
+%type <y_tnode> generic_expr
%type <y_tnode> func_arg_list
%type <y_op> point_or_arrow
%type <y_type> type_name
@@ -1539,6 +1541,22 @@
}
;
+association:
+ type_name T_COLON expr
+ | T_DEFAULT T_COLON expr
+ ;
+
+association_list:
+ association
+ | association_list T_COMMA association
+ ;
+
+generic_expr:
+ T_GENERIC T_LPARN expr T_COMMA association_list T_RPARN {
+ $$ = $3;
+ }
+ ;
+
do_stmnt:
do stmnt {
CLRWFLGS(__FILE__, __LINE__);
@@ -1730,6 +1748,9 @@
| term {
$$ = $1;
}
+ | generic_expr {
+ $$ = $1;
+ }
;
term:
diff -r c517d5627016 -r 48e3a382285a usr.bin/xlint/lint1/scan.l
--- a/usr.bin/xlint/lint1/scan.l Sat Nov 05 01:08:58 2016 +0000
+++ b/usr.bin/xlint/lint1/scan.l Sat Nov 05 01:09:30 2016 +0000
@@ -1,5 +1,5 @@
%{
-/* $NetBSD: scan.l,v 1.66 2016/07/20 17:42:14 christos Exp $ */
+/* $NetBSD: scan.l,v 1.67 2016/11/05 01:09:30 christos Exp $ */
/*
* Copyright (c) 1996 Christopher G. Demetriou. All Rights Reserved.
@@ -35,7 +35,7 @@
#include <sys/cdefs.h>
#if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: scan.l,v 1.66 2016/07/20 17:42:14 christos Exp $");
+__RCSID("$NetBSD: scan.l,v 1.67 2016/11/05 01:09:30 christos Exp $");
#endif
#include <stdlib.h>
@@ -263,6 +263,7 @@
{ "extern", T_SCLASS, EXTERN, 0, 0, 0, 0, 0, 0 },
{ "float", T_TYPE, 0, FLOAT, 0, 0, 0, 0, 0 },
{ "for", T_FOR, 0, 0, 0, 0, 0, 0, 0 },
+ { "_Generic", T_GENERIC, 0, 0, 0, 0, 1, 0, 0 },
{ "goto", T_GOTO, 0, 0, 0, 0, 0, 0, 0 },
{ "if", T_IF, 0, 0, 0, 0, 0, 0, 0 },
{ "__imag__", T_IMAG, 0, 0, 0, 0, 1, 0, 0 },
Home |
Main Index |
Thread Index |
Old Index