KCC - Kayte C Compiler 1.10.0
A C compiler implementation with preprocessor, lexer, parser, and code generator
Loading...
Searching...
No Matches
types.h File Reference

Type definitions for KCC compiler with Objective-C support. More...

#include <stddef.h>
#include <stdbool.h>
#include <stdio.h>

Go to the source code of this file.

Data Structures

struct  Token
 Token structure. More...
struct  ObjCMethodParam
 Objective-C method parameter. More...
struct  ASTNode
 AST Node structure. More...
struct  Lexer
 Lexer structure. More...
struct  Parser
 Parser structure. More...
struct  CodeGenerator
 CodeGenerator structure. More...
struct  MacroParam
 Macro parameter. More...
struct  Macro
 Macro definition. More...
struct  ConditionalState
 Conditional state tracking. More...
struct  IncludeFile
 Include file tracking. More...

Macros

#define MAX_MACRO_NAME   64
#define MAX_MACRO_BODY   512
#define MAX_MACRO_PARAMS   32
#define MAX_MACROS   256
#define MAX_INCLUDE_DEPTH   32
#define MAX_LINE_LENGTH   1024

Typedefs

typedef struct Token Token
 Token structure.
typedef struct ObjCMethodParam ObjCMethodParam
 Objective-C method parameter.
typedef struct ASTNode ASTNode
 AST Node structure.
typedef struct Lexer Lexer
 Lexer structure.
typedef struct Parser Parser
 Parser structure.
typedef struct CodeGenerator CodeGenerator
 CodeGenerator structure.
typedef struct MacroParam MacroParam
 Macro parameter.
typedef struct Macro Macro
 Macro definition.
typedef struct ConditionalState ConditionalState
 Conditional state tracking.
typedef struct IncludeFile IncludeFile
 Include file tracking.

Enumerations

enum  TokenType {
  TOKEN_EOF = -1 , TOKEN_UNKNOWN = 0 , TOKEN_INT , TOKEN_CHAR_KW ,
  TOKEN_VOID , TOKEN_FLOAT , TOKEN_DOUBLE , TOKEN_IF ,
  TOKEN_ELSE , TOKEN_WHILE , TOKEN_FOR , TOKEN_RETURN ,
  TOKEN_BREAK , TOKEN_CONTINUE , TOKEN_STRUCT , TOKEN_UNION ,
  TOKEN_ENUM , TOKEN_TYPEDEF , TOKEN_STATIC , TOKEN_EXTERN ,
  TOKEN_CONST , TOKEN_AT , TOKEN_INTERFACE , TOKEN_IMPLEMENTATION ,
  TOKEN_PROTOCOL , TOKEN_END , TOKEN_PROPERTY , TOKEN_SYNTHESIZE ,
  TOKEN_DYNAMIC , TOKEN_SELECTOR , TOKEN_CLASS , TOKEN_PRIVATE ,
  TOKEN_PROTECTED , TOKEN_PUBLIC , TOKEN_PACKAGE , TOKEN_OPTIONAL ,
  TOKEN_REQUIRED , TOKEN_AUTORELEASEPOOL , TOKEN_TRY , TOKEN_CATCH ,
  TOKEN_FINALLY , TOKEN_THROW , TOKEN_SYNCHRONIZED , TOKEN_AT_INTERFACE ,
  TOKEN_AT_IMPLEMENTATION , TOKEN_AT_PROTOCOL , TOKEN_AT_PROPERTY , TOKEN_AT_SYNTHESIZE ,
  TOKEN_AT_DYNAMIC , TOKEN_AT_CLASS , TOKEN_AT_SELECTOR , TOKEN_AT_ENCODE ,
  TOKEN_AT_SYNCHRONIZED , TOKEN_AT_TRY , TOKEN_AT_CATCH , TOKEN_AT_FINALLY ,
  TOKEN_AT_THROW , TOKEN_AT_END , TOKEN_AT_IDENTIFIER , TOKEN_NSSTRING_LITERAL ,
  TOKEN_NSARRAY_LITERAL , TOKEN_NSDICTIONARY_LITERAL , TOKEN_BOXED_EXPRESSION , TOKEN_BOXED_NUMBER ,
  TOKEN_RETAIN , TOKEN_RELEASE , TOKEN_AUTORELEASE , TOKEN_STRONG ,
  TOKEN_WEAK , TOKEN_UNSAFE_UNRETAINED , TOKEN_AUTORELEASING , TOKEN_ATOMIC ,
  TOKEN_NONATOMIC , TOKEN_ASSIGN_ATTR , TOKEN_COPY , TOKEN_READONLY ,
  TOKEN_READWRITE , TOKEN_GETTER , TOKEN_SETTER , TOKEN_ID ,
  TOKEN_CLASS_KW , TOKEN_SEL , TOKEN_IMP , TOKEN_BOOL_KW ,
  TOKEN_YES , TOKEN_NO , TOKEN_NIL , TOKEN_NULL ,
  TOKEN_SELF , TOKEN_SUPER , TOKEN_INSTANCETYPE , TOKEN_NSSTRING ,
  TOKEN_NSARRAY , TOKEN_NSDICTIONARY , TOKEN_NSOBJECT , TOKEN_ENCODE ,
  TOKEN_IDENTIFIER , TOKEN_NUMBER , TOKEN_STRING , TOKEN_STRING_OBJC ,
  TOKEN_CHAR , TOKEN_PLUS , TOKEN_MINUS , TOKEN_MULTIPLY ,
  TOKEN_DIVIDE , TOKEN_MODULO , TOKEN_ASSIGN , TOKEN_EQUAL ,
  TOKEN_NOT_EQUAL , TOKEN_LESS , TOKEN_LESS_EQUAL , TOKEN_GREATER ,
  TOKEN_GREATER_EQUAL , TOKEN_AND , TOKEN_OR , TOKEN_NOT ,
  TOKEN_BITWISE_AND , TOKEN_BITWISE_OR , TOKEN_BITWISE_XOR , TOKEN_BITWISE_NOT ,
  TOKEN_LEFT_SHIFT , TOKEN_RIGHT_SHIFT , TOKEN_INCREMENT , TOKEN_DECREMENT ,
  TOKEN_PLUS_ASSIGN , TOKEN_MINUS_ASSIGN , TOKEN_ARROW , TOKEN_DOT ,
  TOKEN_LPAREN , TOKEN_RPAREN , TOKEN_LBRACE , TOKEN_RBRACE ,
  TOKEN_LBRACKET , TOKEN_RBRACKET , TOKEN_SEMICOLON , TOKEN_COMMA ,
  TOKEN_COLON , TOKEN_QUESTION , TOKEN_NEWLINE
}
 Token types for lexical analysis. More...
enum  DataType {
  TYPE_UNKNOWN , TYPE_VOID , TYPE_INT , TYPE_FLOAT ,
  TYPE_DOUBLE , TYPE_CHAR , TYPE_BOOL , TYPE_ID ,
  TYPE_CLASS , TYPE_SEL , TYPE_POINTER , TYPE_STRUCT ,
  TYPE_UNION , TYPE_ENUM
}
 Data types supported by the compiler. More...
enum  ASTNodeType {
  AST_FUNCTION_DECLARATION , AST_VARIABLE_DECLARATION , AST_PARAMETER , AST_STRUCT_DECLARATION ,
  AST_UNION_DECLARATION , AST_ENUM_DECLARATION , AST_TYPEDEF_DECLARATION , AST_OBJC_INTERFACE ,
  AST_OBJC_IMPLEMENTATION , AST_OBJC_PROTOCOL , AST_OBJC_CATEGORY , AST_OBJC_METHOD_DECLARATION ,
  AST_OBJC_PROPERTY_DECLARATION , AST_OBJC_SYNTHESIZE , AST_OBJC_DYNAMIC , AST_COMPOUND_STATEMENT ,
  AST_EXPRESSION_STATEMENT , AST_IF_STATEMENT , AST_WHILE_STATEMENT , AST_FOR_STATEMENT ,
  AST_RETURN_STATEMENT , AST_BREAK_STATEMENT , AST_CONTINUE_STATEMENT , AST_OBJC_TRY_STATEMENT ,
  AST_OBJC_CATCH_STATEMENT , AST_OBJC_FINALLY_STATEMENT , AST_OBJC_THROW_STATEMENT , AST_OBJC_SYNCHRONIZED_STATEMENT ,
  AST_OBJC_AUTORELEASEPOOL_STATEMENT , AST_BINARY_OP , AST_UNARY_OP , AST_ASSIGNMENT ,
  AST_FUNCTION_CALL , AST_IDENTIFIER , AST_NUMBER_LITERAL , AST_STRING_LITERAL ,
  AST_CHAR_LITERAL , AST_MEMBER_ACCESS , AST_ARRAY_ACCESS , AST_TERNARY_OP ,
  AST_OBJC_MESSAGE_SEND , AST_OBJC_STRING_LITERAL , AST_OBJC_SELECTOR_EXPR , AST_OBJC_PROTOCOL_EXPR ,
  AST_OBJC_ENCODE_EXPR , AST_OBJC_BOOLEAN_LITERAL , AST_PROGRAM
}
 AST Node types. More...
enum  ObjCMethodType { OBJC_INSTANCE_METHOD , OBJC_CLASS_METHOD }
 Objective-C method type. More...
enum  ObjCPropertyAttributes {
  OBJC_PROPERTY_ASSIGN = 1 << 0 , OBJC_PROPERTY_RETAIN = 1 << 1 , OBJC_PROPERTY_COPY = 1 << 2 , OBJC_PROPERTY_READONLY = 1 << 3 ,
  OBJC_PROPERTY_READWRITE = 1 << 4 , OBJC_PROPERTY_NONATOMIC = 1 << 5 , OBJC_PROPERTY_ATOMIC = 1 << 6 , OBJC_PROPERTY_STRONG = 1 << 7 ,
  OBJC_PROPERTY_WEAK = 1 << 8
}
 Objective-C property attributes. More...
enum  MacroType { MACRO_OBJECT , MACRO_FUNCTION }
 Macro types. More...
enum  ConditionalType {
  COND_NONE , COND_IF , COND_IFDEF , COND_IFNDEF ,
  COND_ELIF , COND_ELSE
}
 Conditional compilation state. More...

Functions

const char * token_type_to_string (TokenType type)
const char * data_type_to_string (DataType type)
const char * ast_node_type_to_string (ASTNodeType type)
const char * objc_method_type_to_string (ObjCMethodType type)
DataType token_to_data_type (TokenType type)

Detailed Description

Type definitions for KCC compiler with Objective-C support.

Author
KCC Development Team
Version
1.10.0

This file contains all type definitions, enums, and structures used throughout the KCC compiler, including support for both C and Objective-C language constructs.

Definition in file types.h.

Macro Definition Documentation

◆ MAX_INCLUDE_DEPTH

#define MAX_INCLUDE_DEPTH   32

Definition at line 551 of file types.h.

◆ MAX_LINE_LENGTH

#define MAX_LINE_LENGTH   1024

Definition at line 552 of file types.h.

◆ MAX_MACRO_BODY

#define MAX_MACRO_BODY   512

Definition at line 548 of file types.h.

◆ MAX_MACRO_NAME

#define MAX_MACRO_NAME   64

Definition at line 547 of file types.h.

◆ MAX_MACRO_PARAMS

#define MAX_MACRO_PARAMS   32

Definition at line 549 of file types.h.

◆ MAX_MACROS

#define MAX_MACROS   256

Definition at line 550 of file types.h.

Typedef Documentation

◆ ASTNode

typedef struct ASTNode ASTNode

AST Node structure.

Main AST node structure supporting both C and Objective-C constructs.

Enumeration Type Documentation

◆ ASTNodeType

AST Node types.

Enumeration of all AST node types, including C and Objective-C constructs.

Definition at line 215 of file types.h.

◆ ConditionalType

Conditional compilation state.

Definition at line 586 of file types.h.

◆ DataType

enum DataType

Data types supported by the compiler.

Definition at line 193 of file types.h.

◆ MacroType

enum MacroType

Macro types.

Definition at line 557 of file types.h.

◆ ObjCMethodType

Objective-C method type.

Definition at line 281 of file types.h.

◆ ObjCPropertyAttributes

Objective-C property attributes.

Definition at line 289 of file types.h.

◆ TokenType

enum TokenType

Token types for lexical analysis.

Enumeration of all token types supported by the lexer, including C language tokens and Objective-C extensions.

Definition at line 24 of file types.h.

Function Documentation

◆ ast_node_type_to_string()

const char * ast_node_type_to_string ( ASTNodeType type)

Definition at line 124 of file utils.c.

◆ data_type_to_string()

const char * data_type_to_string ( DataType type)

Definition at line 107 of file utils.c.

◆ token_to_data_type()

DataType token_to_data_type ( TokenType type)

Definition at line 91 of file utils.c.

◆ token_type_to_string()

const char * token_type_to_string ( TokenType type)

Definition at line 547 of file lexer.c.