Skip to content

Releases: mitchpaulus/neobem

v0.9.0

14 Sep 11:59
Compare
Choose a tag to compare

Added

  • String functions: upper, lower, and contains.
  • CLI flags are now passed down through import statements.

v0.8.1

27 Dec 16:35
Compare
Choose a tag to compare
Update CHANGELOG, bump version

v0.8.0

06 Nov 19:58
Compare
Choose a tag to compare

0.8.0 - 2023-11-06

Added

  • Added modulo operation mod
  • Added fold function
  • Added literal * * parsing for DOE-2 files
  • Added ability to pass boolean flags through CLI
  • Added exists function for checking for boolean flags

Changed

  • Added short circuit logic evaluation for and and or operators

0.7.0 - 2022-02-20

20 Feb 20:14
3d58144
Compare
Choose a tag to compare

0.7.0 - 2022-02-20

Added

  • DOE-2 support added. Can now parse input file in the Building Description Language (BDL) format.

Changed

  • Release binaries are not trimmed, due to compiler warnings about possible behavior changes.

What's Changed

Full Changelog: v0.6.0...v0.7.0

0.6.0 - 2022-01-29

29 Jan 21:34
Compare
Choose a tag to compare

0.6.0 - 2022-01-29

Added

  • Added new syntax for integrating with the NREL Building Component Library.

Changed

  • Now releasing executable as a single file.
  • Numbers are now printing with 4 significant figures on output.

0.5.0 - 2021-09-17

18 Sep 02:38
Compare
Choose a tag to compare

Added

  • Added new dedicated operators for mapping, filtering, and piping. The operators are |=, |>, and ->.

  • Added new possible terminator for idf objects, $. This is important when building objects that can have arbitrary lengths, such as Wall:Detailed. There will likely be a different allowed character for aesthetic purposes in future version.

  • Added range syntax. Can quickly make lists with integers like 0..10.

  • New log statement. Allows for simple debugging. Prints value of an expression to standard error.

  • Documentation is now available in HTML form. See it live at neobem.io.

Changed

  • BREAKING: The order of the parameters for the map and filter function have swapped. Old programs will have to swap the order or move to the more concise operators |= and |>.

  • BREAKING: The order of the parameters for the join function has swapped. Old programs will also have to swap this.

Fixed

  • Vast improvements to the formatter. - The documentation for the 'has' function was previously incorrect on the order of the parameters. - Documentation that attempted to use a logarithm now uses the actual logarithm function.

v0.4.0

23 Jul 00:36
Compare
Choose a tag to compare

0.4.0 - 2021-07-22

Added

  • Ability to load in JSON data
  • Ability to load in XML data
  • A print statement is now allowed within a function. Previously it
    was only allowed at the root scope of a file.
  • Added three new built in functions: type, guid, and replace.
  • Added formatting option -f or --fmt, analogous to gofmt.
  • When loading a delimited text file, there is an option to skip a
    number of header rows.

Changed

  • BREAKING: The grammar for imports was updated. The as 'name'
    token has been now forced to be an identifier, not a string. All
    strings will need to have the quotations removed, and the name made
    into a valid identifier.

  • The URI portion of the import statement now is generalized to be an
    expression, instead of a string. This means that the URI for an import
    can now be dynamic. This is not a breaking change.

  • Box characters can now be used for inline data tables. Generally, the
    formatter will be used to redraw the inline data tables with these
    box characters.

Fixed

  • The program now exits immediately on any errors in lexing or parsing.
    Previously would still try to walk the broken syntax tree.

v0.3.0

14 Mar 03:20
Compare
Choose a tag to compare

0.3.0

Changed

  • BREAKING: Structures now act as true associative arrays. You can
    use any string expression as the key.

  • BREAKING: Because the structures can now use any string as the
    key, the sanitation of column headers when loading from Excel has been
    removed.

  • BREAKING: Inline data table headers are now strings, not identifiers.

Added

  • String escaping is now supported for the following characters:

    • '\n' for newline
    • '\r' for carriage return
    • '\t' for tab
    • '\'' for single quote
    • '\\' for the backslash character itself
  • New built in functions:

    • keys: returns all the current keys in a structure
    • has: check whether a structure has a given key initialized
    • init: return all but the last element in a list
    • last: return the last element in a list
    • join: join a list of strings together with a separator string
  • Pretty print the IDF objects by default.

  • Added ability to create empty structure.

  • Added equality comparisons between booleans, empty lists (like list == []), and comparison of lists with different lengths.

  • Trailing commas are now allowed in both lists and structures ([1, 2, 3,] is valid).

  • '+' operator is now defined for 'string + number'

  • '+' operator is now defined for two structures.

Fixed

  • Comments called from within functions now have replacements made.

v0.2.0

27 Feb 22:28
Compare
Choose a tag to compare

0.2.0

Changed

  • Executable is now called nbem instead of bemp.

Added

  • Vast documentation additions, including 'Getting Started' section.
  • Boolean literal syntax, (i.e. true, false, , ).
  • Let binding syntax.
  • Replacement ability in comments.
  • Loading from Excel functionality.
  • Grammar and functionality for exports.
  • Ability to import from web location.
  • Ability to read input from standard input.

Fixed

  • Printing of lists of lists now flattens output as expected.
  • lambda expressions can now properly return values.
  • Variable assignment with nested structures now works as expected.

Removed

  • data syntax. Replaced with load function.

v0.1.0 Initial Release

07 Feb 03:30
Compare
Choose a tag to compare

Initial Release - has the basics, but much more to go!