diff options
| author | Eugen Wissner <belka@caraus.de> | 2026-07-19 17:09:40 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2026-07-19 18:30:21 +0200 |
| commit | cdbc1695a93910df5729779de31912a3b4b4172b (patch) | |
| tree | 43a4c5a192df7060f8a36c75d339be7ac5722f72 /boot/symbol.cc | |
| parent | cd2ee0c97348444779a155909b7ec78d89cfd2e0 (diff) | |
| download | elna-cdbc1695a93910df5729779de31912a3b4b4172b.tar.gz | |
Support unary plus operation
Diffstat (limited to 'boot/symbol.cc')
| -rw-r--r-- | boot/symbol.cc | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/boot/symbol.cc b/boot/symbol.cc index 6ad89b7..7b45612 100644 --- a/boot/symbol.cc +++ b/boot/symbol.cc @@ -420,6 +420,33 @@ namespace elna::boot return false; } + bool is_numeric_type(const type& checked) + { + type resolved = resolve_underlying_type(checked); + + return is_primitive_type(resolved, "Int") + || is_primitive_type(resolved, "Word") + || is_primitive_type(resolved, "Float"); + } + + bool is_integral_type(const type& checked) + { + type resolved = resolve_underlying_type(checked); + + return is_primitive_type(resolved, "Int") + || is_primitive_type(resolved, "Word"); + } + + bool is_discrete_type(const type& checked) + { + type resolved = resolve_underlying_type(checked); + + return is_primitive_type(resolved, "Int") + || is_primitive_type(resolved, "Word") + || is_primitive_type(resolved, "Bool") + || is_primitive_type(resolved, "Char"); + } + bool is_any_pointer_type(const type& checked) { return checked.get<pointer_type>() != nullptr |
