# Internal representation (IR) development ## Expression types - [x] Bool - [x] Int - [x] Float - [x] Binary - [x] Range - [x] Var - [x] VarDecl - [x] unexpected error outside of `let` - [x] Call - [x] ExternalCall - [x] Operator - [x] unexpected error outside of `BinaryOp` - [x] RowCondition - [x] UnaryNot - [x] BinaryOp - [x] Subexpression - [x] Block - [x] Closure - [x] MatchBlock - [x] in `match` - [x] unexpected error outside of `match` - [x] List - [x] Table - [x] Record - [x] Keyword - [x] unexpected error - [x] ValueWithUnit - [x] DateTime - [x] Filepath - [x] Directory - [x] GlobPattern - [x] String - [x] RawString - [x] CellPath - [x] FullCellPath - [x] ImportPattern - [x] as parser info - [x] unexpected error - [x] Overlay - [x] as parser info - [x] unexpected error - [x] Signature - [x] (does nothing, handled by parser) - [x] StringInterpolation - [x] GlobInterpolation - [x] Nothing - [x] Garbage - [x] garbage encountered error ## Keywords - [x] `if` - [x] `match` - [x] `let`, `mut` - [x] `const` - [x] `try` - [x] `loop` - [x] `while` - [x] `for` - [x] `return` ## Misc. TODO - [ ] Verify / test redirection behavior - [x] Custom command block eval - [x] ~~Generate block from `RowCondition` in parser, to support `where`~~ - [x] just use the block, it's already there - [x] `timeit` - [x] `metadata` - [x] `export-env` - [ ] Make all Nushell tests pass with IR - [x] Environment variable for running tests with IR - [ ] Replace parser info with enum (rather than using `Expression`) - [ ] Spans are probably not correct yet - [ ] Decide what to do about constant evaluation - [ ] ~~Clean up declared variables when leaving block scope~~ - [ ] current evaluator doesn't do this, but we can quite easily - [ ] revisit in the future because right now we just `gather_captures()` and create new variables vec anyway - [ ] Unknown args (these are just positional)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up