diff options
| author | Mosder <xmosder12@gmail.com> | 2026-07-22 01:16:45 +0200 |
|---|---|---|
| committer | Mosder <xmosder12@gmail.com> | 2026-07-22 01:16:45 +0200 |
| commit | 5d463a7f4c721629a1996be6d19634338290a539 (patch) | |
| tree | 5c681a524990ad8b181dea567d6dc7629d01e8c9 /analyzer/utils/roman.h | |
| parent | 1f664d5b6396fb24c8ce4990ba8882118abb8dcd (diff) | |
refactor: generalized parser structs with offsetof and put them into separate files
Diffstat (limited to 'analyzer/utils/roman.h')
| -rw-r--r-- | analyzer/utils/roman.h | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/analyzer/utils/roman.h b/analyzer/utils/roman.h index b4f5d3f..cebd16e 100644 --- a/analyzer/utils/roman.h +++ b/analyzer/utils/roman.h @@ -1,9 +1,26 @@ // utils/roman.h // functions for roman numbers -#define ROMAN_CHAR_COUNT 13 -#define ROMAN_NUMS {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1} -#define ROMAN_CHARS {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"} +typedef struct { + int num; + char *symbol; +} RomanSymbol; + +static const RomanSymbol roman_symbols[] = { + {1000, "M"}, + {900, "CM"}, + {500, "D"}, + {400, "CD"}, + {100, "C"}, + {90, "XC"}, + {50, "L"}, + {40, "XL"}, + {10, "X"}, + {9, "IX"}, + {5, "V"}, + {4, "IV"}, + {1, "I"}, +}; // convert a arabic number to roman number // params: |
