Derleyici Tasarımı
Yüklüyor...
Arıyor...
Eşleşme Yok
Lexer için Yardımcı Fonsiyonlar
static struct lexeme lexeme(struct lexer *l, enum lexeme_kind kind)
{
return (struct lexeme) {
.seminfo = l->start,
.seminfo_len = (size_t) (l->current - l->start),
.kind = kind
};
}
/* Lexer'da okunmamış karakter kaldı mı? */
static bool is_at_end(struct lexer *l)
{
return *l->current == '\0';
}
/* Mevcut karakter. */
static char peek(struct lexer *l)
{
return l->current[0];
}
/* Varsa, bir sonraki karakter. */
static char peek_next(struct lexer *l)
{
return is_at_end(l) ? '\0' : l->current[1];
}
/* Mevcut karakteri consume ederek bir sonraki karaktere geç. */
static void advance(struct lexer *l)
{
l->current++;
}
Ham lexer çıktısı.
Definition lexer.h:21
enum lexeme::lexeme_kind kind
lexeme_kind
Definition lexer.h:29
const char * seminfo
Definition lexer.h:23
size_t seminfo_len
Definition lexer.h:26
lexer.
Definition lexer.h:14
const char * current
Definition lexer.h:16