gramática lexical - Lexical grammar

Em ciência da computação , uma gramática lexical é uma gramática formal que define a sintaxe de fichas . O programa é escrito usando caracteres que são definidos pela estrutura lexical da língua utilizada. O conjunto de caracteres é equivalente ao alfabeto usado por qualquer linguagem escrita. A gramática lexical estabelece as regras que regem como uma sequência de caracteres é dividida em subseqüências de caracteres, cada parte que representa um token individual. Este é frequentemente definida em termos de expressões regulares .

Por exemplo, a gramática lexical para muitas linguagens de programação especifica que uma cadeia literal começa com um " caráter e continua até que uma correspondência " é encontrado ( escapar torna isso mais complicado), que um identificador é um alfanuméricos seqüência (letras e dígitos, geralmente também permitindo sublinhados, e não permitindo dígitos iniciais), e que um número inteiro literal é uma sequência de dígitos. Assim, na seguinte sequência de caracteres "ABC" xyz1 23 os tokens são corda , identificador e número (mais fichas de espaço em branco), porque o carácter de espaço termina a sequência de caracteres que constituem o identificador. Além disso, certas sequências são categorizados como palavras-chave - estes têm, geralmente, a mesma forma que os identificadores (geralmente palavras alfabética), mas são classificados separadamente; formalmente eles têm um tipo de token diferente.

Exemplos

expressões regulares para regras lexicais comuns seguem (por exemplo, C).

corda unescaped literal (citação, seguido por não-aspas, terminando em uma citação):

"[^"]*"

corda escapou literal (citação, seguido por caracteres de escape ou não-aspas, terminando em uma citação):

"(\.|[^\"])*"

Literal inteiro:

[0-9]+

decimal inteiro literal (não zero):

[1-9][0-9]*|0

inteiro hexadecimal literal:

0[Xx][0-9A-Fa-f]+

inteiro octal literal:

0[0-7]+

identificador:

[A-Za-z_][A-Za-z0-9_]*

Veja também

Referências

links externos