forked from norman-ipn/Errores
-
Notifications
You must be signed in to change notification settings - Fork 1
Tokens C
Guillermo-SP edited this page Nov 18, 2012
·
2 revisions
Un símbolo atómico sintácticamente de un programa fuente
token
→ identifier | keyword | literal-constant | operator | punctuation
c-character
→ letter | digit | c-symbol | escape-sequence
character-literal
→ ' c-character '
decimal-literal
→ nonzero-digit digit *
digit
→ 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
escape-sequence
→ simple-escape-sequence
| octal-escape-sequence
| hexadecimal-escape-sequence
hexadecimal-digit
→ 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9
| A | B | C | D | E | F | a | b | c | d | e | f
hexadecimal-escape-sequence
→ ( \x | \X ) hexadecimal-digit hexadecimal-digit *
hexadecimal-literal
→ ( 0x | 0X ) hexadecimal-digit hexadecimal-digit *
identifier
→ ( letter | _ ) ( letter | digit | _ ) *
integer-literal
→ decimal-literal
| octal-literal
| hexadecimal-literal
integer-suffix
→ unsigned-suffix
| long-suffix
| long-suffix unsigned-suffix
| unsigned-suffix long-suffix
keyword
→ auto | else | register | union | break | enum | return | unsigned | case | extern | short | void | char | float | signed | volatile | const | for | sizeof | while | continue | goto | static | default | if | struct | do | int | switch | double | long | typ
l-character
→ letter | digit | space | escape-sequence
| ! | # | $ | % | & | ( | ) | * | + | , | - | . | /
| : | ; | < | = | > | ?
| @ | [ | ] | ^ | _
| ` | { | | | } | ~
letter
→ a | b | c | d | e | f | g | h | i | j | k | l | m
| n | o | p | q | r | s | t | u | v | w | x | y | z
| A | B | C | D | E | F | G | H | I | J | K | L | M
| N | O | P | Q | R | S | T | U | V | W | X | Y | Z
literal-constant
→ integer-literal
| real-literal
| character-literal
| string-literal
long-suffix
→ l | L
nonzero-digit
→ 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
octal-escape-sequence
→ \ octal-digit
| \ octal-digit octal-digit
| \ octal-digit octal-digit octal-digit
octal-literal
→ 0 octal-digit *
s-character
→ letter | digit | s-symbol | escape-sequence
simple-escape-sequence
string-literal
→ ( character-size-prefix | ε ) ( " s-character * " ) *
unsigned-suffix
→ u | U
- Los Tokens pueden ser separados por espacios en blanco.
- Tokens también se separan cuando el siguiente carácter no puede ser parte de la corriente de símbolos: por ejemplo, la cadena de a + b tiene tres fichas: a, +, y b. El primer símbolo, a, es un identificador, y el + siguiente no puede ser parte de un identificador. El segundo símbolo, +, es un operador, y el siguiente no puede ser parte del operador.
- Algunos símbolos son los operadores y los signos de puntuación al mismo tiempo.
C Etymology Token: http://c.comsci.us/etymology/token/token.html