|
KCC - Kayte C Compiler 1.10.0
A C compiler implementation with preprocessor, lexer, parser, and code generator
|
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) |
Type definitions for KCC compiler with Objective-C support.
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.
| typedef struct ASTNode ASTNode |
AST Node structure.
Main AST node structure supporting both C and Objective-C constructs.
| enum ASTNodeType |
| enum ConditionalType |
| enum ObjCMethodType |
| enum TokenType |
| const char * ast_node_type_to_string | ( | ASTNodeType | type | ) |