2023-11-13 21:03:29 -05:00
|
|
|
/*
|
|
|
|
Copyright (c) 2023 : Ognjen 'xolatile' Milan Robovic
|
|
|
|
|
|
|
|
Xhartae is free software! You will redistribute it or modify it under the terms of the GNU General Public License by Free Software Foundation.
|
|
|
|
And when you do redistribute it or modify it, it will use either version 3 of the License, or (at yours truly opinion) any later version.
|
|
|
|
It is distributed in the hope that it will be useful or harmful, it really depends... But no warranty what so ever, seriously. See GNU/GPLv3.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef CHAPTER_4_HEADER
|
|
|
|
#define CHAPTER_4_HEADER
|
|
|
|
|
|
|
|
#include "chapter_0.h"
|
|
|
|
#include "chapter_1.h"
|
|
|
|
#include "chapter_2.h"
|
|
|
|
#include "chapter_3.h"
|
|
|
|
|
|
|
|
/*
|
|
|
|
I believe that this chapter should be a breakpoint for you to write a simple C program. So far, we've learned in:
|
|
|
|
|
2023-11-16 10:13:23 -05:00
|
|
|
- chapter 0: To format our code properly in order to increase readability and we've implemented some core functions for memory management, strings and input / output.
|
2023-11-13 21:03:29 -05:00
|
|
|
- chapter 1: To declare and define functions, and we've covered character and file descriptor related functions, as well as ASCII table and discussed C keywords.
|
|
|
|
- chapter 2: To use external variables, function pointers and minor part of 'libncurses' reimplementation that doesn't care about portability.
|
|
|
|
- chapter 3: To use standard library 'printf' function, and to implement variadic argument functions, while also covering switch statement in more depth.
|
|
|
|
|
|
|
|
From this moment onwards, some chapters will have few functions called 'program_*', which we can use to forge even larger programs. They'll each have their own dependencies, for
|
|
|
|
example, some of them will require functions from some or all previous chapter source and header files, but I'll make sure not to use in them functions that'll be in future
|
|
|
|
chapters. Instead of that, we'll (re)implement newer stuff with different approach if necessary. That way, you can be sure that if you're reading chapter four, for example, it'll
|
|
|
|
only use functions and variables defined in chapters zero to three. Lets begin.
|
|
|
|
|
2023-12-02 07:06:26 -05:00
|
|
|
I'll write this huge 'syntax_render_file' function in procedural style, so to say, and in the next chapter, we'll reimplement it in more modular way, using other functions. Learning
|
2023-11-16 10:13:23 -05:00
|
|
|
anything, including the C programming language, is like a journey. Maybe you think it won't last long, and it ends up being quite long journey, or maybe you think it'll be very
|
|
|
|
long, that you'll walk miles and miles, and it ends up being short (you rage-quit). The final destination you're going towards always depends on where you left-off, where you're
|
|
|
|
coming from. For example, if you wrote Ada, you'll like chapter four, if you wrote C++, you'll like chapter five.
|
2023-11-13 21:03:29 -05:00
|
|
|
*/
|
|
|
|
|
2023-12-02 07:06:26 -05:00
|
|
|
extern void syntax_delete (void);
|
|
|
|
extern int syntax_define (int enrange, int derange, char * begin, char * end, char escape, int colour, int effect);
|
|
|
|
extern int syntax_select (char * string, int * length);
|
|
|
|
|
|
|
|
extern void syntax_highlight_c (void);
|
|
|
|
extern void syntax_highlight_ada (void);
|
|
|
|
|
|
|
|
extern void syntax_render_file (char * text_file, int x, int y);
|
2023-11-13 21:03:29 -05:00
|
|
|
|
|
|
|
#endif
|