<commit_before>Integer Math
============

Tests
-----
[X] Unit Test Project
[X] Invalid UTF-8 Error Test
[X] Unsupported Character Error Test
[X] Both Errors (Alternating) Test

Runtime
-------
[X] TypeChecker: Type, Number, IntegerLiteral.Value() -> Number
[X] TypeRuntime { Run(Type) -> Print Result }
[X] Integer tests

Math
----
[X] Add/Subtract Operators

[X] Multiply/Divide Operators
[ ] Precedence

[ ] ProducesBecause { Values(): ValueSet, BecauseAll(): Iterator<(Expression, ValueSet)> }
[ ] Expression { Produces() -> Iterator<ProducesBecause> }
[ ] Type.Contains(value)
[X] Type::Single(Value)
[ ] Expression as Producer
[X] Type Error: Divide By Zero

[X] Negative/Positive Operators

Parens
------
[ ] Expression Operator "(", ")"
[ ] Parse Error: Unclosed Paren
[ ] Parse Error: Unopened Paren Error

Space
-----
[ ] Whitespace, Tabs

[ ] Compound Term Grouping

[ ] Newlines; Record Line / Column Data
[ ] Parse Error: Line Too Long (4K characters)

[ ] Single-Line Comment
[ ] Errors: Invalid UTF-8, Comment Too Long. Denormalized OK. Unsupported Characters OK.

Errors
------
[ ] Display error context

[ ] Display context with possible fixes

[X] Parse Error: Improve Unsupported Character Error (many characters)

Objects
=======

Nothing
-------
[ ] "nothing"
[X] Type::Nothing

[X] Empty source file -> nothing

[ ] Empty parentheses -> nothing

[ ] Error: cannot apply operator [/*+-] to "nothing" (either left or right side or both)

Sequences
---------
[ ] Sequence Operator ";"
[ ] Trailing Semicolon Acceptable
[ ] Final Operator In Sequence is Return Value

Newline Sequences
-----------------
[ ] Newline Statement Separation
[ ] Newline Statement Continuation

Properties
----------
[ ] Property Declaration
[ ] "Missing" Value
[ ] Parse Error: Identifier Too Large
[ ] Parse Error: Identifier Starts With Number
[ ] Parse Error: Identifier Must Be Immediately After ":"
[ ] Parse Error: Identifier Required In Declaration

[ ] Object Extend On ";" and "\n" (combine / overwrite properties)

[ ] Property Assignment (=)
[ ] Parse Error: Missing Operand

[ ] Property Reference (Identifier)
[ ] Object.GetProperty(Identifier) -> Object
[ ] Error: Property not declared

[ ] Error: Property not declared - check for misspelled, give suggestion

Lazy Declaration
----------------
[ ] Out Of Order Declaration ("[:]A: B; :B: 2")
[ ] Parse Error: Missing : in front of declaration

Apply
-----
[ ] Apply Operator (Extend With Block) "F <+ A: 1" or "F <+ { A: 1; B: 2 }"
[ ] BecauseOf multiple reasons! Figure out error dedup strategies here ...

Functions
=========

Series
------
[ ] Series Operator (,)

[ ] Trailing Comma Acceptable

Function Calls
--------------

[ ] Call Operator Overload: ("Call :: { :Arguments, ... }")

[ ] Function Call: "F Arguments"

[ ] Function Declaration Syntax: ":F(:A,:B,:C)"

[ ] Inline Function Declaration Syntax

Indented Function Calls
-----------------------
[ ] Child Block Function Arguments
[ ] Parse Error: Inconsistent Indent Characters (space vs. tab)
[ ] Parse Error: Multiple Undent

Conditionals
============

Booleans
--------
[ ] "true", "false"
[ ] Value::True, Value::False
[ ] Error: Appropriate Operator Errors

If/Else
-------

Comparison Operators
--------------------

Boolean Operators
-----------------<commit_msg>Update TODO<commit_after>Integer Math
============

Tests
-----
[X] Unit Test Project
[X] Invalid UTF-8 Error Test
[X] Unsupported Character Error Test
[X] Both Errors (Alternating) Test

Runtime
-------
[X] TypeChecker: Type, Number, IntegerLiteral.Value() -> Number
[X] TypeRuntime { Run(Type) -> Print Result }
[X] Integer tests

Math
----
[X] Add/Subtract Operators
[X] Multiply/Divide Operators
[X] Precedence

Types
-----
[X] Type::Single(Value)
[X] Type Error: Divide By Zero
[X] Negative/Positive Operators

Parens
------
[X] Expression Operator "(", ")"
[X] Parse Error: Unclosed Paren
[X] Parse Error: Unopened Paren Error

Space
-----
[X] Whitespace, Tabs
[X] Compound Term Grouping
[ ] Newlines; Record Line / Column Data
[ ] Parse Error: Line Too Long (4K characters)
[ ] Single-Line Comment
[ ] Errors: Invalid UTF-8, Comment Too Long. Denormalized OK. Unsupported Characters OK.

Visual Studio Code Extension
----------------------------
[ ] Syntax highlighting
[ ] Error reporting

Command Line
------------
[ ] Display error context
[ ] Display context with possible fixes

Objects
=======

Nothing
-------
[X] Type::Nothing
[X] Empty source file -> nothing
[X] Empty parentheses -> nothing
[X] Error: cannot apply operator [/*+-] to "nothing" (either left or right side or both)

Sequences
---------
[ ] Sequence Operator ";"
[ ] Trailing Semicolon Acceptable
[ ] Final Operator In Sequence is Return Value

Newline Sequences
-----------------
[ ] Newline Statement Separation
[ ] Newline Statement Continuation

Properties
----------
[ ] Property Declaration
[ ] "Missing" Value
[ ] Parse Error: Identifier Too Large
[ ] Parse Error: Identifier Starts With Number
[ ] Parse Error: Identifier Must Be Immediately After ":"
[ ] Parse Error: Identifier Required In Declaration
[ ] Object Extend On ";" and "\n" (combine / overwrite properties)

Property Reference
------------------
[ ] Property Reference (Identifier)
[ ] "nothing"
[ ] Object.GetProperty(Identifier) -> Object
[ ] Error: Property not declared
[ ] Error: Property not declared - check for misspelled, give suggestion
[ ] Out Of Order Declaration ("[:]A: B; :B: 2")
[ ] Parse Error: Missing : in front of declaration

Property Assignment
-------------------
[ ] Property Assignment (=)
[ ] Parse Error: Missing Operand

Apply
-----
[ ] Apply Operator (Extend With Block) "F <+ A: 1" or "F <+ { A: 1; B: 2 }"
[ ] Because of multiple reasons! Figure out error dedup strategies here ...

Functions
=========

List
------
[ ] List Operator (,)
[ ] Trailing Comma Acceptable

Function Calls
--------------

[ ] Call Operator Overload: ("Call :: { :Arguments, ... }")
[ ] Function Call: "F Arguments"
[ ] Function Declaration Syntax: ":F(:A,:B,:C)"
[ ] Inline Function Declaration Syntax

Indented Function Calls
-----------------------
[ ] Child Block Function Arguments
[ ] Parse Error: Inconsistent Indent Characters (space vs. tab)
[ ] Parse Error: Multiple Undent

Conditionals
============

Booleans
--------
[ ] "true", "false"
[ ] Value::True, Value::False
[ ] Error: Appropriate Operator Errors

If/Else
-------

Comparison Operators
--------------------

Boolean Operators
-----------------
{'fraction_non_alphanumeric': 0.18375540457072267, 'fraction_numerical': 0.0021618282890673254, 'mean_word_length': 3.1706374758531872, 'pattern_counts': {'":': 4, '<': 9, '<?xml version=': 0, '>': 16, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2197853', 'n_tokens_mistral': 1940, 'n_tokens_neox': 1846, 'n_words': 680}