Draft: Semantic analysis
This MR is for a baseline semantic analysis, and will be ready when at least reference validity checks and all the commented out diagnostics are addable (will need to wait for #43 (closed)/#40 (closed) and #30, and #17 would also be very useful).
Currently implements a basic "skeleton" of semantic analysis implementations for shape, pattern, language (word sub-tokens are not complete yet) and color tokens. These check for the presence of required tokens using is_none()
and is_empty()
, and check for duplicates of secondary arguments (for example, multiple TranslationToken
T_WORD
tokens are allowed, but I have a check for whether the same word is given 2 translations).
They mostly all have commented out checks for reference validity.
Most of the rest of the checks are custom to each object type.