package FrontC

  1. Overview
  2. Docs
val version : string
exception BadModifier
exception BadType
exception UnconsistentDef
type size =
  1. | NO_SIZE
  2. | SHORT
  3. | LONG
  4. | LONG_LONG
and sign =
  1. | NO_SIGN
  2. | SIGNED
  3. | UNSIGNED
and storage =
  1. | NO_STORAGE
  2. | AUTO
  3. | STATIC
  4. | EXTERN
  5. | REGISTER
and base_type =
  1. | NO_TYPE
  2. | VOID
  3. | CHAR of sign
  4. | INT of size * sign
  5. | BITFIELD of sign * expression
  6. | FLOAT of bool
  7. | DOUBLE of bool
  8. | PTR of base_type
  9. | RESTRICT_PTR of base_type
  10. | ARRAY of base_type * expression
  11. | STRUCT of string * name_group list
  12. | UNION of string * name_group list
  13. | PROTO of proto
  14. | OLD_PROTO of old_proto
  15. | NAMED_TYPE of string
  16. | ENUM of string * enum_item list
  17. | CONST of base_type
  18. | VOLATILE of base_type
  19. | GNU_TYPE of gnu_attrs * base_type
  20. | TYPE_LINE of string * int * base_type
and name = string * base_type * gnu_attrs * expression
and name_group = base_type * storage * name list
and single_name = base_type * storage * name
and enum_item = string * expression
and proto = base_type * single_name list * bool
and old_proto = base_type * string list * bool
and definition =
  1. | FUNDEF of single_name * body
  2. | OLDFUNDEF of single_name * name_group list * body
  3. | DECDEF of name_group
  4. | TYPEDEF of name_group * gnu_attrs
  5. | ONLYTYPEDEF of name_group
and file = definition list
and body = definition list * statement
and statement =
  1. | NOP
  2. | COMPUTATION of expression
  3. | BLOCK of body
  4. | SEQUENCE of statement * statement
  5. | IF of expression * statement * statement
  6. | WHILE of expression * statement
  7. | DOWHILE of expression * statement
  8. | FOR of expression * expression * expression * statement
  9. | BREAK
  10. | CONTINUE
  11. | RETURN of expression
  12. | SWITCH of expression * statement
  13. | CASE of expression * statement
  14. | DEFAULT of statement
  15. | LABEL of string * statement
  16. | GOTO of string
  17. | ASM of string
  18. | GNU_ASM of string * gnu_asm_arg list * gnu_asm_arg list * string list
  19. | STAT_LINE of statement * string * int
and gnu_asm_arg = string * string * expression
and binary_operator =
  1. | ADD
  2. | SUB
  3. | MUL
  4. | DIV
  5. | MOD
  6. | AND
  7. | OR
  8. | BAND
  9. | BOR
  10. | XOR
  11. | SHL
  12. | SHR
  13. | EQ
  14. | NE
  15. | LT
  16. | GT
  17. | LE
  18. | GE
  19. | ASSIGN
  20. | ADD_ASSIGN
  21. | SUB_ASSIGN
  22. | MUL_ASSIGN
  23. | DIV_ASSIGN
  24. | MOD_ASSIGN
  25. | BAND_ASSIGN
  26. | BOR_ASSIGN
  27. | XOR_ASSIGN
  28. | SHL_ASSIGN
  29. | SHR_ASSIGN
and unary_operator =
  1. | MINUS
  2. | PLUS
  3. | NOT
  4. | BNOT
  5. | MEMOF
  6. | ADDROF
  7. | PREINCR
  8. | PREDECR
  9. | POSINCR
  10. | POSDECR
and expression =
  1. | NOTHING
  2. | UNARY of unary_operator * expression
  3. | BINARY of binary_operator * expression * expression
  4. | QUESTION of expression * expression * expression
  5. | CAST of base_type * expression
  6. | CALL of expression * expression list
  7. | COMMA of expression list
  8. | CONSTANT of constant
  9. | VARIABLE of string
  10. | EXPR_SIZEOF of expression
  11. | TYPE_SIZEOF of base_type
  12. | INDEX of expression * expression
  13. | MEMBEROF of expression * string
  14. | MEMBEROFPTR of expression * string
  15. | GNU_BODY of body
  16. | EXPR_LINE of expression * string * int
and constant =
  1. | CONST_INT of string
  2. | CONST_FLOAT of string
  3. | CONST_CHAR of string
  4. | CONST_STRING of string
  5. | CONST_COMPOUND of expression list
and gnu_attrs = gnu_attr list
and gnu_attr =
  1. | GNU_NONE
  2. | GNU_CALL of string * gnu_attr list
  3. | GNU_ID of string
  4. | GNU_CST of constant
  5. | GNU_EXTENSION
  6. | GNU_INLINE