aboutsummaryrefslogtreecommitdiff
path: root/gen/gen_lexer.c
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2023-05-01 22:14:52 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2023-05-01 22:14:52 +0300
commitedeea202fb6297fc5ae749a91ac8f9fb67b59fae (patch)
tree01ed39a91664d3fff485de42d44647f4e4b7c24c /gen/gen_lexer.c
parentb35787f4f2cf24e61b82f1eec6a5ff5eed4ba70b (diff)
downloadek-edeea202fb6297fc5ae749a91ac8f9fb67b59fae.tar.gz
ek-edeea202fb6297fc5ae749a91ac8f9fb67b59fae.zip
update license stuff
Diffstat (limited to 'gen/gen_lexer.c')
-rw-r--r--gen/gen_lexer.c206
1 files changed, 104 insertions, 102 deletions
diff --git a/gen/gen_lexer.c b/gen/gen_lexer.c
index afc5c7b..55b19e0 100644
--- a/gen/gen_lexer.c
+++ b/gen/gen_lexer.c
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-3.0-or-later */
+/* SPDX-License-Identifier: copyleft-next-0.3.1 */
#line 2 "gen/gen_lexer.c"
@@ -594,8 +594,10 @@ static const flex_int16_t yy_chk[433] =
#define YY_MORE_ADJ 0
#define YY_RESTORE_YY_MORE_OFFSET
#line 1 "src/lexer.l"
+/* SPDX-License-Identifier: copyleft-next-0.3.1 */
+/* Copyright 2023 Kim Kuparinen < kimi.h.kuparinen@gmail.com > */
#define YY_NO_INPUT 1
-#line 3 "src/lexer.l"
+#line 6 "src/lexer.l"
#define FROM_LEXER
#include <ek/parser.h>
#include <ek/debug.h>
@@ -618,10 +620,10 @@ static void update_yylloc(struct parser *parser, YYLTYPE *lloc, const char *text
}
#define YY_USER_ACTION update_yylloc(parser, yylloc, yytext);
-#line 620 "gen/gen_lexer.c"
-
#line 622 "gen/gen_lexer.c"
+#line 624 "gen/gen_lexer.c"
+
#define INITIAL 0
#define SC_COMMENT 1
@@ -879,9 +881,9 @@ YY_DECL
}
{
-#line 44 "src/lexer.l"
+#line 47 "src/lexer.l"
-#line 883 "gen/gen_lexer.c"
+#line 885 "gen/gen_lexer.c"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@@ -940,23 +942,23 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 45 "src/lexer.l"
+#line 48 "src/lexer.l"
{/* skip line comments */}
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 47 "src/lexer.l"
+#line 50 "src/lexer.l"
{BEGIN(SC_COMMENT);}
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 49 "src/lexer.l"
+#line 52 "src/lexer.l"
{++parser->comment_nesting;}
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 50 "src/lexer.l"
+#line 53 "src/lexer.l"
{
if (parser->comment_nesting)
--parser->comment_nesting;
@@ -966,135 +968,135 @@ YY_RULE_SETUP
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 57 "src/lexer.l"
+#line 60 "src/lexer.l"
{}
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 58 "src/lexer.l"
+#line 61 "src/lexer.l"
{}
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 59 "src/lexer.l"
+#line 62 "src/lexer.l"
{}
YY_BREAK
case 8:
/* rule 8 can match eol */
YY_RULE_SETUP
-#line 60 "src/lexer.l"
+#line 63 "src/lexer.l"
{}
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 63 "src/lexer.l"
+#line 66 "src/lexer.l"
{return SCOPE;}
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 64 "src/lexer.l"
+#line 67 "src/lexer.l"
{return LPAREN;}
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 65 "src/lexer.l"
+#line 68 "src/lexer.l"
{return RPAREN;}
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 66 "src/lexer.l"
+#line 69 "src/lexer.l"
{return LBRACE;}
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 67 "src/lexer.l"
+#line 70 "src/lexer.l"
{return RBRACE;}
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 68 "src/lexer.l"
+#line 71 "src/lexer.l"
{return LBRACKET;}
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 69 "src/lexer.l"
+#line 72 "src/lexer.l"
{return RBRACKET;}
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 70 "src/lexer.l"
+#line 73 "src/lexer.l"
{return DOT;}
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 71 "src/lexer.l"
+#line 74 "src/lexer.l"
{return COMMA;}
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 72 "src/lexer.l"
+#line 75 "src/lexer.l"
{return SEMICOLON;}
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 73 "src/lexer.l"
+#line 76 "src/lexer.l"
{return COLON;}
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 74 "src/lexer.l"
+#line 77 "src/lexer.l"
{return BANG;}
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 75 "src/lexer.l"
+#line 78 "src/lexer.l"
{return PASTE;}
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 76 "src/lexer.l"
+#line 79 "src/lexer.l"
{return AT;}
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 78 "src/lexer.l"
+#line 81 "src/lexer.l"
{return PLUS;}
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 79 "src/lexer.l"
+#line 82 "src/lexer.l"
{return MINUS;}
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 80 "src/lexer.l"
+#line 83 "src/lexer.l"
{return STAR;}
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 81 "src/lexer.l"
+#line 84 "src/lexer.l"
{return DIV;}
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 82 "src/lexer.l"
+#line 85 "src/lexer.l"
{return REM;}
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 83 "src/lexer.l"
+#line 86 "src/lexer.l"
{return XOR;}
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 84 "src/lexer.l"
+#line 87 "src/lexer.l"
{return POW;}
YY_BREAK
case 30:
/* rule 30 can match eol */
YY_RULE_SETUP
-#line 86 "src/lexer.l"
+#line 89 "src/lexer.l"
{
/* regular character constant, 'a' */
yylval->integer = yytext[1];
@@ -1103,7 +1105,7 @@ YY_RULE_SETUP
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 92 "src/lexer.l"
+#line 95 "src/lexer.l"
{
/* hex character constant, '\xef' */
/* handling is slightly different from C, here it's more or less just
@@ -1114,7 +1116,7 @@ YY_RULE_SETUP
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 100 "src/lexer.l"
+#line 103 "src/lexer.l"
{
/* octal character constant, '\033' */
yylval->integer = strtoll(yytext + 2, NULL, 8);
@@ -1123,7 +1125,7 @@ YY_RULE_SETUP
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 106 "src/lexer.l"
+#line 109 "src/lexer.l"
{
/* binary character constant, '\b101' */
yylval->integer = strtoll(yytext + 3, NULL, 2);
@@ -1132,7 +1134,7 @@ YY_RULE_SETUP
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 112 "src/lexer.l"
+#line 115 "src/lexer.l"
{
/* escaped character constant */
yylval->integer = match_escape(yytext[2]);
@@ -1141,273 +1143,273 @@ YY_RULE_SETUP
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 118 "src/lexer.l"
+#line 121 "src/lexer.l"
{return SQUOTE;}
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 120 "src/lexer.l"
+#line 123 "src/lexer.l"
{return AND;}
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 121 "src/lexer.l"
+#line 124 "src/lexer.l"
{return LAND;}
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 122 "src/lexer.l"
+#line 125 "src/lexer.l"
{return OR;}
YY_BREAK
case 39:
YY_RULE_SETUP
-#line 123 "src/lexer.l"
+#line 126 "src/lexer.l"
{return LOR;}
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 125 "src/lexer.l"
+#line 128 "src/lexer.l"
{return TILDE;}
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 126 "src/lexer.l"
+#line 129 "src/lexer.l"
{return TO;}
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 127 "src/lexer.l"
+#line 130 "src/lexer.l"
{return LT;}
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 128 "src/lexer.l"
+#line 131 "src/lexer.l"
{return GT;}
YY_BREAK
case 44:
YY_RULE_SETUP
-#line 129 "src/lexer.l"
+#line 132 "src/lexer.l"
{return LE;}
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 130 "src/lexer.l"
+#line 133 "src/lexer.l"
{return GE;}
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 131 "src/lexer.l"
+#line 134 "src/lexer.l"
{return NE;}
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 132 "src/lexer.l"
+#line 135 "src/lexer.l"
{return EQ;}
YY_BREAK
case 48:
YY_RULE_SETUP
-#line 134 "src/lexer.l"
+#line 137 "src/lexer.l"
{return FATARROW;}
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 136 "src/lexer.l"
+#line 139 "src/lexer.l"
{return LSHIFT;}
YY_BREAK
case 50:
YY_RULE_SETUP
-#line 137 "src/lexer.l"
+#line 140 "src/lexer.l"
{return RSHIFT;}
YY_BREAK
case 51:
YY_RULE_SETUP
-#line 139 "src/lexer.l"
+#line 142 "src/lexer.l"
{return PLUSSELF;}
YY_BREAK
case 52:
YY_RULE_SETUP
-#line 140 "src/lexer.l"
+#line 143 "src/lexer.l"
{return MINUSSELF;}
YY_BREAK
case 53:
YY_RULE_SETUP
-#line 141 "src/lexer.l"
+#line 144 "src/lexer.l"
{return DIVSELF;}
YY_BREAK
case 54:
YY_RULE_SETUP
-#line 142 "src/lexer.l"
+#line 145 "src/lexer.l"
{return REMSELF;}
YY_BREAK
case 55:
YY_RULE_SETUP
-#line 143 "src/lexer.l"
+#line 146 "src/lexer.l"
{return XORSELF;}
YY_BREAK
case 56:
YY_RULE_SETUP
-#line 144 "src/lexer.l"
+#line 147 "src/lexer.l"
{return POWSELF;}
YY_BREAK
case 57:
YY_RULE_SETUP
-#line 145 "src/lexer.l"
+#line 148 "src/lexer.l"
{return ORSELF;}
YY_BREAK
case 58:
YY_RULE_SETUP
-#line 146 "src/lexer.l"
+#line 149 "src/lexer.l"
{return ORSELF;}
YY_BREAK
case 59:
YY_RULE_SETUP
-#line 147 "src/lexer.l"
+#line 150 "src/lexer.l"
{return LSHIFTSELF;}
YY_BREAK
case 60:
YY_RULE_SETUP
-#line 148 "src/lexer.l"
+#line 151 "src/lexer.l"
{return RSHIFTSELF;}
YY_BREAK
case 61:
YY_RULE_SETUP
-#line 149 "src/lexer.l"
+#line 152 "src/lexer.l"
{return ELLIPSIS;}
YY_BREAK
case 62:
YY_RULE_SETUP
-#line 151 "src/lexer.l"
+#line 154 "src/lexer.l"
{return AS;}
YY_BREAK
case 63:
YY_RULE_SETUP
-#line 152 "src/lexer.l"
+#line 155 "src/lexer.l"
{return PUB;}
YY_BREAK
case 64:
YY_RULE_SETUP
-#line 153 "src/lexer.l"
+#line 156 "src/lexer.l"
{return DEFER;}
YY_BREAK
case 65:
YY_RULE_SETUP
-#line 154 "src/lexer.l"
+#line 157 "src/lexer.l"
{return UNION;}
YY_BREAK
case 66:
YY_RULE_SETUP
-#line 155 "src/lexer.l"
+#line 158 "src/lexer.l"
{return STRUCT;}
YY_BREAK
case 67:
YY_RULE_SETUP
-#line 156 "src/lexer.l"
+#line 159 "src/lexer.l"
{return TYPEDEF;}
YY_BREAK
case 68:
YY_RULE_SETUP
-#line 157 "src/lexer.l"
+#line 160 "src/lexer.l"
{return IMPORT;}
YY_BREAK
case 69:
YY_RULE_SETUP
-#line 158 "src/lexer.l"
+#line 161 "src/lexer.l"
{return TYPEOF;}
YY_BREAK
case 70:
YY_RULE_SETUP
-#line 159 "src/lexer.l"
+#line 162 "src/lexer.l"
{return SIZEOF;}
YY_BREAK
case 71:
YY_RULE_SETUP
-#line 160 "src/lexer.l"
+#line 163 "src/lexer.l"
{return EMBED;}
YY_BREAK
case 72:
YY_RULE_SETUP
-#line 161 "src/lexer.l"
+#line 164 "src/lexer.l"
{return IF;}
YY_BREAK
case 73:
YY_RULE_SETUP
-#line 162 "src/lexer.l"
+#line 165 "src/lexer.l"
{return GOTO;}
YY_BREAK
case 74:
YY_RULE_SETUP
-#line 163 "src/lexer.l"
+#line 166 "src/lexer.l"
{return ELSE;}
YY_BREAK
case 75:
YY_RULE_SETUP
-#line 164 "src/lexer.l"
+#line 167 "src/lexer.l"
{return SWITCH;}
YY_BREAK
case 76:
YY_RULE_SETUP
-#line 165 "src/lexer.l"
+#line 168 "src/lexer.l"
{return CASE;}
YY_BREAK
case 77:
YY_RULE_SETUP
-#line 166 "src/lexer.l"
+#line 169 "src/lexer.l"
{return FOR;}
YY_BREAK
case 78:
YY_RULE_SETUP
-#line 167 "src/lexer.l"
+#line 170 "src/lexer.l"
{return WHILE;}
YY_BREAK
case 79:
YY_RULE_SETUP
-#line 168 "src/lexer.l"
+#line 171 "src/lexer.l"
{return DO;}
YY_BREAK
case 80:
YY_RULE_SETUP
-#line 169 "src/lexer.l"
+#line 172 "src/lexer.l"
{return MUT;}
YY_BREAK
case 81:
YY_RULE_SETUP
-#line 170 "src/lexer.l"
+#line 173 "src/lexer.l"
{return CONST;}
YY_BREAK
case 82:
YY_RULE_SETUP
-#line 171 "src/lexer.l"
+#line 174 "src/lexer.l"
{return RETURN;}
YY_BREAK
case 83:
YY_RULE_SETUP
-#line 172 "src/lexer.l"
+#line 175 "src/lexer.l"
{return EXTERN;}
YY_BREAK
case 84:
YY_RULE_SETUP
-#line 173 "src/lexer.l"
+#line 176 "src/lexer.l"
{return ENUM;}
YY_BREAK
case 85:
YY_RULE_SETUP
-#line 174 "src/lexer.l"
+#line 177 "src/lexer.l"
{return DEFINE;}
YY_BREAK
case 86:
YY_RULE_SETUP
-#line 175 "src/lexer.l"
+#line 178 "src/lexer.l"
{return BREAK;}
YY_BREAK
case 87:
YY_RULE_SETUP
-#line 176 "src/lexer.l"
+#line 179 "src/lexer.l"
{return CONTINUE;}
YY_BREAK
case 88:
/* rule 88 can match eol */
YY_RULE_SETUP
-#line 178 "src/lexer.l"
+#line 181 "src/lexer.l"
{
/* seems risky, I know, but letting the parser choose when to allocate a
* new string seems to help with syntax error cleanup */
@@ -1417,7 +1419,7 @@ YY_RULE_SETUP
YY_BREAK
case 89:
YY_RULE_SETUP
-#line 185 "src/lexer.l"
+#line 188 "src/lexer.l"
{
yylval->integer = strtoll(yytext, 0, 0);
return INT;
@@ -1425,7 +1427,7 @@ YY_RULE_SETUP
YY_BREAK
case 90:
YY_RULE_SETUP
-#line 190 "src/lexer.l"
+#line 193 "src/lexer.l"
{
yylval->dbl = strtod(yytext, 0);
return FLOAT;
@@ -1433,7 +1435,7 @@ YY_RULE_SETUP
YY_BREAK
case 91:
YY_RULE_SETUP
-#line 195 "src/lexer.l"
+#line 198 "src/lexer.l"
{
yylval->str = yytext;
return ID;
@@ -1442,12 +1444,12 @@ YY_RULE_SETUP
case 92:
/* rule 92 can match eol */
YY_RULE_SETUP
-#line 201 "src/lexer.l"
+#line 204 "src/lexer.l"
{/* skip whitespace */}
YY_BREAK
case 93:
YY_RULE_SETUP
-#line 203 "src/lexer.l"
+#line 206 "src/lexer.l"
{
struct src_issue issue;
issue.level = SRC_ERROR;
@@ -1461,10 +1463,10 @@ YY_RULE_SETUP
YY_BREAK
case 94:
YY_RULE_SETUP
-#line 213 "src/lexer.l"
+#line 216 "src/lexer.l"
YY_FATAL_ERROR( "flex scanner jammed" );
YY_BREAK
-#line 1466 "gen/gen_lexer.c"
+#line 1468 "gen/gen_lexer.c"
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(SC_COMMENT):
yyterminate();
@@ -2596,6 +2598,6 @@ void yyfree (void * ptr , yyscan_t yyscanner)
#define YYTABLES_NAME "yytables"
-#line 213 "src/lexer.l"
+#line 216 "src/lexer.l"