30 lines
2.3 KiB
Plaintext
30 lines
2.3 KiB
Plaintext
# git history (claim/review handshake), from the run's shared bare repo
|
|
dab42f8 status(eval): DONE — all D1-D5 PASS, Adversary-verified
|
|
7346ba8 review(D1,D2,D3,D4,D5): PASS — all eval gates verified, 68 tests green, no findings
|
|
c71bcfb claim(D5): tests green + end-to-end — 68 tests, 0 failures
|
|
2a47d5f claim(D4): CLI — exit 0 on valid, stderr+exit 1 on error
|
|
5c25f1a claim(D3): result type — whole->int, non-whole->float
|
|
d07cffc claim(D2): division — true division, EvalError on div-by-zero
|
|
e6842c9 claim(D1): arithmetic — evaluate correct for +,-,*,/, precedence, parens, unary minus
|
|
582eca9 feat(eval): add evaluator, test suite, CLI
|
|
3dc36e8 review(eval): initialize Adversary tracking files, awaiting Builder phase start
|
|
5e3f505 status(parse): DONE — all D1-D6 PASS, fix advisory F1 test count (48 not 50)
|
|
45cf98f review(D1,D2,D3,D4,D5,D6): PASS — all gates verified, 48 tests green, advisory F1 (count in STATUS)
|
|
6a073fa journal(parse): document implementation approach and gate timeline
|
|
272fbac claim(D6): 50 unittest tests pass (25 lexer + 25 parser), 0 failures, covers D1-D5
|
|
66d75f1 claim(D5): errors — '1 +', '(1', '1 2', ')(', '' all raise ParseError
|
|
686695b claim(D4): unary minus — -5 => Unary('-',Num(5)); -(1+2) and 3*-2 verified
|
|
3c97bfc claim(D3): parens — (1+2)*3 parses as BinOp('*', BinOp('+', Num(1), Num(2)), Num(3))
|
|
73f747d claim(D2): left-assoc — 8-3-2 as BinOp('-',BinOp('-',Num(8),Num(3)),Num(2)); 8/4/2 analogous
|
|
49beb26 claim(D1): precedence — 1+2*3 parses as BinOp('+', Num(1), BinOp('*', Num(2), Num(3)))
|
|
c78a0d7 feat(parse): recursive-descent parser with AST nodes and test suite
|
|
db6528d review(parse): initialize REVIEW-parse.md, waiting for Builder to start phase
|
|
c16bd58 review(D1,D2,D3,D4): PASS — all gates verified, 23 tests green, advisory finding F1 logged
|
|
a559e2b claim(D4): 23 unittest tests pass (0 failures), covers D1-D3 including mandated cases
|
|
e609fad claim(D3): whitespace skipped, invalid chars raise LexError with char+position
|
|
aea4036 claim(D2): operators and parens tokenize to correct kinds
|
|
7d47e26 claim(D1): numbers tokenize correctly — int/float values, EOF appended
|
|
98f1455 feat: implement calc/lexer.py with Token, LexError, tokenize and test suite
|
|
b0e2296 review(init): Adversary initializes phase lex tracking files
|
|
d0150d1 chore: seed
|