summaryrefslogtreecommitdiff
path: root/eval.c
AgeCommit message (Collapse)Author
2022-02-02When seeing (expr1)(expr2), evaluate expr2 firstPeter Mikkelsen
2022-01-28Implement membership (X∊Y), excluding (X~Y) and union (X∪Y)Peter Mikkelsen
2022-01-28Add strand assignment (a (b c) d)←1 (2 3) 4Peter Mikkelsen
2022-01-26Implement a new "mixed" type which can be either of the three scalar types: ↵Peter Mikkelsen
int, float, rune. This allows scalar arrays with mixed scalar types
2022-01-24Don't open symbols when lexingPeter Mikkelsen
2022-01-24re-open symbols before read, as they may have changed due to shadowing. ↵Peter Mikkelsen
Example of code this commit fixes: before: a←10 {a←⍵ ⋄ a} 20 10 a 10 now: a←10 {a←⍵ ⋄ a} 20 20 a 10
2022-01-24Make sure variables are as local as they need to bePeter Mikkelsen
2022-01-24Implement ⍺⍵⍶⍹ as get-set variables, which may make it easier to do ↵Peter Mikkelsen
TCO later.
2022-01-24Implement Dop'sPeter Mikkelsen
2022-01-24Special case assignment to allow assigning to ⍺ if unset, and throw syntax ↵Peter Mikkelsen
error on assignment to ⍵
2022-01-23Move the call to simplifyarray into runfuncPeter Mikkelsen
2022-01-22Implement Agh trainsPeter Mikkelsen
2022-01-22Implement fgh and gh trainsPeter Mikkelsen
2022-01-22Implement ⎕DIV for allowing division by zero to result in 0 if neededPeter Mikkelsen
2022-01-21Get ready for hybridsPeter Mikkelsen
2022-01-21Implement better error handling, but still no error guardsPeter Mikkelsen
2022-01-20Implement better dnfs semanticsPeter Mikkelsen
2022-01-20Implement guards, and start work on ↑ and ↓Peter Mikkelsen
2022-01-15Implement quad names for variablesPeter Mikkelsen
2022-01-15Rework printer to add vertical padding tooPeter Mikkelsen
2022-01-14Add code to simplify arrays of nested scalars, sometimes created by ↵Peter Mikkelsen
functions or operators
2022-01-14Implement code for running operators (both monadic and dyadic).Peter Mikkelsen
Also implement ⍨ and ⍥ since they are very simple
2022-01-13Free arrays in variables when assigning new data to themPeter Mikkelsen
2022-01-13Implement basic reference counting for arrays, which so theyPeter Mikkelsen
get freed when not in use anymore.
2022-01-12Make some stuff un-shyPeter Mikkelsen
2022-01-12Rework parenthesis, so they are build by the lexer, but evaluated by the ↵Peter Mikkelsen
evaluator/parser.
2022-01-12Add dfn evaluation, and localized ⎕IOPeter Mikkelsen
2022-01-12Add dfn parsing, but not evaluation yetPeter Mikkelsen
2022-01-12Don't print variables that have just been assigned. They are shyPeter Mikkelsen
2022-01-12Add statements separated by ⋄Peter Mikkelsen
2022-01-11First try at implementing variablesPeter Mikkelsen
2022-01-11Turn off eval debug prints by defaultPeter Mikkelsen
2022-01-11Add dyadic function application, and implement dyadic ⍴Peter Mikkelsen
2022-01-10when seeing ((, reduce the rightmost FIRSTPeter Mikkelsen
2022-01-10Implement ( expr ) and improve strandingPeter Mikkelsen
2022-01-09Add rule for monadic function applicationPeter Mikkelsen
2022-01-09Add basic code for parser/evaluator. Can do simple strandingPeter Mikkelsen
2022-01-08Add initial code, just to get startedPeter Mikkelsen