aboutsummaryrefslogtreecommitdiff
path: root/src/debug.c
blob: 3fe77847808f2b7fc25885c037ef0b6eb4b5b338 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
/* ************************************************************************** */
/*                                                                            */
/*                                                        :::      ::::::::   */
/*   debug.c                                            :+:      :+:    :+:   */
/*                                                    +:+ +:+         +:+     */
/*   By: charles <me@cacharle.xyz>                  +#+  +:+       +#+        */
/*                                                +#+#+#+#+#+   +#+           */
/*   Created: 2020/09/16 15:58:35 by charles           #+#    #+#             */
/*   Updated: 2020/09/16 16:18:11 by charles          ###   ########.fr       */
/*                                                                            */
/* ************************************************************************** */
#include <stdio.h>

#include "lexer.h"

void	debug_tok_lst(t_tok_lst *tokens)
{
	while (tokens != NULL)
	{
		// FIXME libft for safer correction
		printf("[%#06x] |%s|%s\n", tokens->tag, tokens->content, tokens->tag & TAG_STICK ? " STICK" : "");
		tokens = tokens->next;
	}
}

int		debug_lexer(char *input)
{
	int			status;
	t_tok_lst	*out;

	status = lexer(input, &out);
	if (status != 0)
		return (status);
	debug_tok_lst(out);
	return (status);
}

/* void token_debug(void *v) */
/* { */
/* 	t_token *t; */
/*  */
/* 	t= v; */
/* 	printf("[%4d %d] (%s)\n", t->tag, !!(t->tag & TAG_STICK), t->content); */
/* } */
/*  */
/* void token_put(void *v) */
/* { */
/* 	t_token *t; */
/*  */
/* 	t= v; */
/* 	printf("%s ", t->content); */
/* } */
/*  */
/* void print_level(int level) */
/* { */
/* 	while (level-- > 0) */
/* 		printf("  "); */
/* } */
/*  */
/* void ast_print(int level, t_ast *ast) */
/* { */
/* 	if (ast->tag == AST_PARENT) */
/* 	{ */
/* 		print_level(level); */
/* 		printf("parent: redir [ "); */
/* 		ft_lstiter(ast->redirs, token_put); */
/* 		printf(" ]\n"); */
/* 		ast_print(level + 1, ast->parent_ast); */
/* 	} */
/* 	else if (ast->tag == AST_CMD) */
/* 	{ */
/* 		print_level(level); */
/* 		printf("cmd: [ "); */
/* 		ft_lstiter(ast->cmd_argv, token_put); */
/* 		printf(" ] redirs: ["); */
/* 		ft_lstiter(ast->redirs, token_put); */
/* 		printf(" ]"); */
/* 	} */
/* 	else if (ast->tag == AST_OP) { */
/* 		#<{(| printf("SEP: %d\n", ast->op.sep); |)}># */
/* 		print_level(level); */
/* 		#<{(| printf("redirs: ["); |)}># */
/* 		#<{(| ft_lstiter(ast->redirs, token_put); |)}># */
/* 		#<{(| printf(" ] "); |)}># */
/* 		printf("{\n"); */
/*  */
/* 		print_level(level); */
/* 		printf(" left:\n"); */
/* 		ast_print(level + 1, ast->op.left); */
/*  */
/* 		printf("\n"); */
/* 		print_level(level); */
/* 		printf(" right:\n"); */
/* 		ast_print(level + 1, ast->op.right); */
/*  */
/* 		printf("\n"); */
/* 		print_level(level); */
/* 		printf("}\n"); */
/* 	} */
/* } */