about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--numericx.c91
1 files changed, 85 insertions, 6 deletions
diff --git a/numericx.c b/numericx.c
index bf853ba..344e19d 100644
--- a/numericx.c
+++ b/numericx.c
@@ -6,10 +6,21 @@
 
 #define PROG_NAME "numericx"
 
+
+/* ||COMPILATION FLAGS|| */
+
+/*
+ * Show debug message of step by step
+ * incrementation of the number
+ */
 #ifndef DEBUG
 #define DEBUG false
 #endif
 
+/*
+ * Configuration of the corresponding numeral system
+ * to have the units place of the end (on the right)
+ */
 #ifndef TO_UNITS_ON_THE_END
 #define TO_UNITS_ON_THE_END false
 #endif
@@ -18,6 +29,11 @@
 #define FROM_UNITS_ON_THE_END false
 #endif
 
+/*
+ * Configuration of the corresponding numeral system
+ * to start counting on the second number, being the
+ * first number void
+ */
 #ifndef TO_FIRST_NUMBER_VOID
 #define TO_FIRST_NUMBER_VOID false
 #endif
@@ -26,6 +42,11 @@
 #define FROM_FIRST_NUMBER_VOID false
 #endif
 
+/* Configuration of the corresponding numeral system
+ * to have the first number as an infinite number,
+ * for example, if the first number is 'A', then
+ * A == AA == AAA == AAAA ...
+ */
 #ifndef TO_INFINITE_BASE
 #define TO_INFINITE_BASE false
 #endif
@@ -34,6 +55,9 @@
 #define FROM_INFINITE_BASE false
 #endif
 
+
+/* ||DATA STRUCTURE|| */
+
 typedef struct NumeralPtr
 {
 	char const* symbol;
@@ -41,10 +65,17 @@ typedef struct NumeralPtr
 	struct NumeralPtr *previous;
 } numeral_ptr;
 
+
+/* ||FUNCTIONS|| */
+
 /*
- * Creates new digit for numeral_ptr
- * Return pointer to new numeral_ptr
- * Returns NULL in case of no memory
+ * Creates new digit for numeral_ptr.
+ * It needs the last_numeral ('last_numeral') into which will
+ * add the new numeral, and also need to know the symbol of the
+ * new numeral ('to_first').
+ *
+ * Return pointer to new numeral_ptr.
+ * Returns NULL in case of no memory.
  */
 numeral_ptr*
 new_digit(numeral_ptr* last_numeral, char const* to_first)
@@ -63,6 +94,15 @@ new_digit(numeral_ptr* last_numeral, char const* to_first)
 	return starting_point;
 }
 
+/*
+ * Creates a number of the form numeral_ptr that
+ * begins with 'case' number of cases, and all cases
+ * are set to 'to_first' char.
+ *
+ * Returns pointer to numeral_ptr.
+ * Returns NULL in case of no memory (because depends
+ * on new_digit() ).
+ */
 numeral_ptr*
 numeral_infinity(char const* to_first, size_t cases)
 {
@@ -78,6 +118,13 @@ numeral_infinity(char const* to_first, size_t cases)
 	return starting_case;
 }
 
+/* Increments numeral_ptr 'numeral' one unit up.
+ * It needs 'num_first' as the first numeral of the numerical
+ * system. Also needs 'num_last' as the last numeral of the
+ * numerical system.
+ * If incrementing, the function adds a new digit/numeral, it
+ * will use the 'brand_new_digit' as its numeral/digit.
+ */
 void
 increment(numeral_ptr* numeral, char* num_first, char* num_last, char* brand_new_digit)
 {
@@ -99,12 +146,19 @@ increment(numeral_ptr* numeral, char* num_first, char* num_last, char* brand_new
 		++(numeral->symbol);
 }
 
+/*
+ * Decrements a string 'number' by one unit.
+ * It needs to know the first numeral ('first_numeral') and also the
+ * last numeral ('last_numeral'). It also needs the numeral system in
+ * form of a string ('numeral_system') to know which is the numeral
+ * before the actual numeral that needs decrementation.
+ */
 void
-decrement_number_string(char* number, char* first_number, char* last_number, char* numeral_system)
+decrement_number_string(char* number, char* first_numeral, char* last_numeral, char* numeral_system)
 {
-	while( *number == *first_number )
+	while( *number == *first_numeral )
 	{
-		*number = *last_number;
+		*number = *last_numeral;
 		++number;
 	}
 
@@ -121,6 +175,11 @@ decrement_number_string(char* number, char* first_number, char* last_number, cha
 	}
 }
 
+/*
+ * Compares if a numeral_ptr ('numeral') matches the string ('number_arg').
+ *
+ * Return true if matches, false if numeral_ptr doesn't match the string.
+ */
 bool
 is_the_same(numeral_ptr* numeral, char* number_arg)
 {
@@ -139,6 +198,9 @@ is_the_same(numeral_ptr* numeral, char* number_arg)
 	return (*number_arg == '\0') ? true : false;
 }
 
+/*
+ * Prints to standard output numeral_ptr ('numeral').
+ */
 void
 print_numeral(numeral_ptr* numeral)
 {
@@ -163,6 +225,9 @@ print_numeral(numeral_ptr* numeral)
 	}
 }
 
+/*
+ * Reverse a string.
+ */
 void
 reverse_string(char* string)
 {
@@ -177,6 +242,14 @@ reverse_string(char* string)
 	}
 }
 
+/*
+ * Check if string 'number' belongs to the numerical
+ * system ('numeral_system'), which is also a string.
+ * Belonging mean all the symbols of 'number' are included
+ * in 'numeral_system'.
+ *
+ * Return true if it belongs, false otherwise.
+ */
 bool
 is_valid_number(char* numeral_system, char *number)
 {
@@ -194,6 +267,9 @@ is_valid_number(char* numeral_system, char *number)
 	return true;
 }
 
+/*
+ * Free up numeral_ptr ('numeral').
+ */
 void
 free_numeral(numeral_ptr* numeral)
 {
@@ -207,6 +283,9 @@ free_numeral(numeral_ptr* numeral)
 	}
 }
 
+
+/* ||MAIN FUNCTION|| */
+
 int
 main(int argc, char* argv[])
 {