summary refs log tree commit diff
path: root/bin/hilex/c.l
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2021-01-12 22:06:56 -0500
committerJune McEnroe <june@causal.agency>2021-01-12 22:06:56 -0500
commitd5727a5964c859359c0b6e4fcf5b4e91ec8f4569 (patch)
tree8ae2001f305e343a1f73dd34cb2b9d545de571ec /bin/hilex/c.l
parentConsolidate hilex formatters into hilex.c (diff)
downloadsrc-d5727a5964c859359c0b6e4fcf5b4e91ec8f4569.tar.gz
src-d5727a5964c859359c0b6e4fcf5b4e91ec8f4569.zip
Move hilex out of hilex directory
Diffstat (limited to 'bin/hilex/c.l')
-rw-r--r--bin/hilex/c.l139
1 files changed, 0 insertions, 139 deletions
diff --git a/bin/hilex/c.l b/bin/hilex/c.l
deleted file mode 100644
index 21e7d44b..00000000
--- a/bin/hilex/c.l
+++ /dev/null
@@ -1,139 +0,0 @@
-/* Copyright (C) 2020  C. McEnroe <june@causal.agency>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-%option prefix="c11"
-%option noyywrap
-
-%{
-#include "hilex.h"
-%}
-
-%s MacroLine MacroInclude
-%x CharLiteral StringLiteral
-
-ident [_[:alpha:]][_[:alnum:]]*
-width "*"|[0-9]+
-
-%%
-	static int pop = INITIAL;
-
-[[:blank:]]+ { return Normal; }
-
-^"%"[%{}]? {
-	BEGIN(pop = MacroLine);
-	return Macro;
-}
-
-([-+*/%&|^=!<>]|"<<"|">>")"="? |
-[=~.?:]|"++"|"--"|"&&"|"||"|"->" |
-sizeof|(_A|alignof) {
-	return Operator;
-}
-
-([1-9][0-9]*|"0"[0-7]*|"0x"[[:xdigit:]]+)([ulUL]{0,3}) |
-[0-9]*("."[0-9]*)?([eE][+-]?[0-9]+)?[flFL]? |
-"0x"[[:xdigit:]]*("."[[:xdigit:]]*)?([pP][+-]?[0-9]+)[flFL]? {
-	return Number;
-}
-
-auto|break|case|const|continue|default|do|else|enum|extern|for|goto|if|inline |
-register|restrict|return|static|struct|switch|typedef|union|volatile|while |
-(_A|a)lignas|_Atomic|_Generic|(_N|n)oreturn|(_S|s)tatic_assert |
-(_T|t)hread_local {
-	return Keyword;
-}
-
-^"#"[[:blank:]]*(include|import) {
-	BEGIN(pop = MacroInclude);
-	return Macro;
-}
-^"#"[[:blank:]]*{ident} {
-	BEGIN(pop = MacroLine);
-	return Macro;
-}
-<MacroInclude>"<"[^>]+">" {
-	return String;
-}
-<MacroLine,MacroInclude>{
-	"\n" {
-		BEGIN(pop = INITIAL);
-		return Normal;
-	}
-	"\\\n" { return Macro; }
-	{ident} { return Macro; }
-}
-
-{ident} { return Identifier; }
-
-"//"([^\n]|"\\\n")* |
-"/*"([^*]|"*"[^/])*"*"+"/" {
-	return Comment;
-}
-
-[LUu]?"'" {
-	BEGIN(CharLiteral);
-	return String;
-}
-([LU]|u8?)?"\"" {
-	BEGIN(StringLiteral);
-	return String;
-}
-
-<CharLiteral,StringLiteral>{
-	"\\"[''""?\\abfnrtv] |
-	"\\"([0-7]{1,3}) |
-	"\\x"([[:xdigit:]]{2}) |
-	"\\u"([[:xdigit:]]{4}) |
-	"\\U"([[:xdigit:]]{8}) {
-		return StringEscape;
-	}
-}
-<StringLiteral>{
-	"%%" |
-	"%"[ #+-0]*{width}?("."{width})?([Lhjltz]|hh|ll)?[AEFGXacdefginopsux] {
-		return StringFormat;
-	}
-}
-
-<CharLiteral>{
-	"'" {
-		BEGIN(pop);
-		return String;
-	}
-	[^\\'']+|. { return String; }
-}
-<StringLiteral>{
-	"\"" {
-		BEGIN(pop);
-		return String;
-	}
-	[^%\\""]+|. { return String; }
-}
-
-<MacroLine,MacroInclude>. {
-	return Macro;
-}
-
-.|\n { return Normal; }
-
-%{
-	(void)yyunput;
-	(void)input;
-%}
-
-%%
-
-const struct Lexer LexC = { yylex, &yyin, &yytext };