Derleyici Tasarımı
Yüklüyor...
Arıyor...
Eşleşme Yok
Derleyici Front End'i
Lexer
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
++;
}
lexeme
Ham lexer çıktısı.
Definition
lexer.h:21
lexeme::kind
enum lexeme::lexeme_kind kind
lexeme::lexeme_kind
lexeme_kind
Definition
lexer.h:29
lexeme::seminfo
const char * seminfo
Definition
lexer.h:23
lexeme::seminfo_len
size_t seminfo_len
Definition
lexer.h:26
lexer
lexer.
Definition
lexer.h:14
lexer::current
const char * current
Definition
lexer.h:16
Oluşturan
1.9.8