hell/compiler/hell.l
2025-03-10 15:57:12 -04:00

46 lines
1.3 KiB
Plaintext

%%
"func" { printf("int"); }
local { printf("static"); }
"import" { printf("#include"); }
"str" { printf("char"); }
/*** Data types ***/
integer { printf("int"); }
decimal { printf("float"); }
character { printf("char"); }
large_decimal { printf("double"); }
CLion { printf("void"); }
"An integer is the number zero (0), a positive natural number (1, 2, 3,...), or the negation of a positive natural number (-1, -2, -3,...)." { printf("int"); }
"A character is a semiotic sign, symbol, grapheme, or glyph - typically a letter, a numerical digit, an ideogram, a hieroglyph, a punctiation mark, or another typographic mark." { printf("char"); }
"A decimal numeral (also often just decimal or, less correctly, decimal number), refers generally to the notation of a number in the decimal numeral system." { printf("float"); }
/*** Library declarations ***/
/* ioutils */
"hell:std.ioutils" { printf("<stdio.h>"); }
"hell:std.ioutils.writeln" { printf("printf"); }
"hell:std.ioutils.readln" { printf("scanf"); }
/* procutils */
"hell:std.unix" { printf("<unistd.h>"); }
/* keygen */
"hell:std.keygen" { printf("<hellkeygen.h>"); }
"hell:std.keygen.gen" { printf("keygen_gen"); }
/* rng */
"hell:std.rng" { printf("<hellrng.h"); }
"hell:std.rng.gen" { printf("rng_randint"); }