aboutsummaryrefslogtreecommitdiffstats
path: root/print.c
diff options
context:
space:
mode:
authorGalin Simeonov <gts@volconst.com>2021-05-31 22:02:10 +0300
committerGalin Simeonov <gts@volconst.com>2021-07-15 18:00:15 +0300
commit255a49ba5a41b3854dbdfebdec75fb6229450507 (patch)
tree616ea5786cb91d03ef609d32b402941dc30e926b /print.c
parentf768d9bdb84e846d89aac66a4f3433a44241c298 (diff)
downloadMEGATRON-255a49ba5a41b3854dbdfebdec75fb6229450507.tar.gz
added cmake file
Diffstat (limited to 'print.c')
-rw-r--r--print.c294
1 files changed, 0 insertions, 294 deletions
diff --git a/print.c b/print.c
deleted file mode 100644
index 614a6c9..0000000
--- a/print.c
+++ /dev/null
@@ -1,294 +0,0 @@
-#ifndef PRINT_C
-#define PRINT_C PRINT_C
-#include<print.h>
-
-void print_keyword_enum(enum Keyword code)
-{
- switch(code)
- {
- case KW_MACHINE:
- printf("KW_MACHINE");
- break;
- case KW_FROM:
- printf("KW_FROM");
- break;
- case KW_TO:
- printf("KW_TO");
- break;
- case KW_ON:
- printf("KW_ON");
- break;
- case KW_ID:
- printf("KW_ID");
- break;
- case KW_STRING:
- printf("KW_STRING");
- break;
- case KW_NOP:
- printf("KW_NOP");
- break;
- case KW_EOF:
- printf("KW_EOF");
- break;
- case KW_OPEN_SQUARE:
- printf("KW_OPEN_SQUARE");
- break;
- case KW_CLOSE_SQUARE:
- printf("KW_CLOSE_SQUARE");
- break;
- case KW_PIPE:
- printf("KW_PIPE");
- break;
- case KW_SEMI_COLUMN:
- printf("KW_SEMI_COLUMN");
- break;
- case KW_STARTING:
- printf("KW_STARTING");
- break;
- case KW_STATES:
- printf("KW_STATES");
- break;
- case KW_EVENTS:
- printf("KW_EVENTS");
- break;
- case KW_EVENT:
- printf("KW_EVENT");
- break;
- case KW_TRANSITIONS:
- printf("KW__TRANSITIONS");
- break;
- case KW_EXECUTE:
- printf("KW_EXECUTE");
- break;
- case KW_COMMA:
- printf("KW_COMMA");
- break;
- default:
- printf("LEXERROR");
- }
-}
-void print_token(struct token *token)
-{
- size_t i;
- assert(token);
-
- printf("[ ");
- print_keyword_enum(token->type);
- printf(" ");
- for(i=0;i<token->size;++i)
- printf("%c",token->data[i]);
- printf(" ] ");
-
-}
-void print_tokens(struct Queue *tokens)
-{
- struct Queue_Node *it;
- assert(tokens);
-
- for(it=tokens->first;it!=NULL;it=it->prev)
- {
- print_token( (struct token*)(it->data));
- printf(" ");
- }
-}
-void print_ast_enum(enum AST_Type type)
-{
- switch(type)
- {
- case AST_TYPE_MACHINE:
- printf("AST_TYPE_MACHINE");
- break;
- case AST_TYPE_STATE:
- printf("AST_TYPE_STATE");
- break;
- case AST_TYPE_STATES:
- printf("AST_TYPE_STATES");
- break;
- case AST_TYPE_EVENT:
- printf("AST_TYPE_EVENT");
- break;
- case AST_TYPE_EVENTS:
- printf("AST_TYPE_EVENTS");
- break;
- case AST_TYPE_TRANSITION:
- printf("AST_TYPE_TRANSITION");
- break;
- case AST_TYPE_TRANSITIONS:
- printf("AST_TYPE_TRANSITIONS");
- break;
- case AST_TYPE_COMMAND:
- printf("AST_TYPE_COMMAND");
- break;
- case AST_TYPE_PIPELINE:
- printf("AST_TYPE_PIPELINE");
- break;
- default:
- printf("AST_NOP");
- }
-
-}
-void print_ast(struct AST *tree)
-{
- assert(tree);
-
- switch(tree->type)
- {
- case AST_TYPE_MACHINE:
- print_ast_machine((struct AST_Machine*)tree);
- break;
- case AST_TYPE_STATE:
- print_ast_state((struct AST_State*)tree);
- break;
- case AST_TYPE_STATES:
- print_ast_states((struct AST_States*)tree);
- break;
- case AST_TYPE_EVENT:
- print_ast_event((struct AST_Event*)tree);
- break;
- case AST_TYPE_EVENTS:
- print_ast_events((struct AST_Events*)tree);
- break;
- case AST_TYPE_TRANSITION:
- print_ast_transition((struct AST_Transition*)tree);
- break;
- case AST_TYPE_TRANSITIONS:
- print_ast_transitions((struct AST_Transitions*)tree);
- break;
- case AST_TYPE_COMMAND:
- print_ast_command((struct AST_Command*)tree);
- break;
- case AST_TYPE_PIPELINE:
- print_ast_pipeline((struct AST_Pipeline*)tree);
- break;
- default:
- printf("noast");
- }
-}
-void print_ast_state(struct AST_State* tree)
-{
- assert(tree);
-
- printf("[ STATE: ");
- print_ast_enum(tree->type);
- printf("]");
-}
-void print_ast_event(struct AST_Event* tree)
-{
- assert(tree);
-
- printf("[ EVENT: ");
- print_ast_enum(tree->type);
- printf("]");
-}
-void print_ast_states(struct AST_States* tree)
-{
- size_t i;
- assert(tree);
-
- printf("STATES [\n");
- for(i=0;i<tree->number_of_states;++i)
- {
- print_ast_state(tree->states[i]);
- printf(" ");
- }
- printf("\n ] END STATES \n");
-}
-void print_ast_events(struct AST_Events* tree)
-{
- size_t i;
- assert(tree);
-
- printf("EVENTS [\n");
- for(i=0;i<tree->number_of_events;++i)
- {
- print_ast_event(tree->events[i]);
- printf(" ");
- }
- printf("\n ] END EVENTS \n");
-}
-void print_ast_transition(struct AST_Transition* tree)
-{
- assert(tree);
-
- printf("TRANSITION [\nFROM");
- print_ast_state(tree->from);
- printf(" TO ");
- print_ast_state(tree->to);
- printf(" COMMAND {");
- if(tree->pipeline==NULL)
- {
- printf("NULL");
- }else
- {
- print_ast_pipeline(tree->pipeline);
- }
-
-}
-void print_ast_command(struct AST_Command* tree)
-{
- assert(tree);
-
- printf("( command ");
- print_token(tree->function_name);
- if(tree->argument==NULL)
- {
- printf(" NOARGUMENTS ");
- }else
- {
- printf(" \"");
- print_token(tree->argument);
- printf("\" ");
- }
- printf(")");
-}
-void print_ast_pipeline(struct AST_Pipeline* tree)
-{
- size_t i;
- assert(tree);
- printf("PIPELINE <");
- for(i=0;i<tree->size;++i)
- {
- print_ast_command(tree->pipeline[i]);
- printf(" | ");
- }
- printf("> PIPELINE_END");
-}
-void print_ast_machine(struct AST_Machine* tree)
-{
- assert(tree);
- printf("MACHINE ");
- print_token(tree->id);
- printf(" [\n");
- print_ast_states(tree->states);
- print_ast_events(tree->events);
- print_ast_transitions(tree->transitions);
- printf("] MACHINE_END\n");
-}
-void print_ast_transitions(struct AST_Transitions* tree)
-{
- size_t i;
- assert(tree);
- printf("TRANSITIONS [\n");
- for(i=0;i<tree->size;++i)
- {
- print_ast_transition(tree->transitions[i]);
- printf("\n");
- }
- printf("] TRANSITIONS_END\n");
-}
-void print_error(struct Error *error)
-{
- assert(error);
- printf("Error: %s, line %ld row %ld\n",error->message,error->row,error->column);
-}
-void print_errors(struct Translation_Data *translation_data)
-{
- struct Queue_Node *it;
- assert(translation_data);
-
- for(it=translation_data->errors->first;it!=NULL;it=it->prev)
- {
- print_error(it->data);
- }
-}
-#endif