Skip to content

Latest commit

 

History

History
79 lines (58 loc) · 3.66 KB

README.template

File metadata and controls

79 lines (58 loc) · 3.66 KB

Neobem

Neobem is a preprocessor programming language primarily targeted for the idf input files for EnergyPlus. It also supports the Building Description Language used for DOE-2.

You can download the entire user manual in PDF form here or view online at neobem.io.

Quick links:

INCLUDE doc/intro.md

INCLUDE doc/getting_started.md

Support

If you believe you have come across a bug, please open a new GitHub issue. Please attempt to produce a "minimum reproducible example (MRE)" file that reproduces the problem. If the code snippet is small enough, include directly in the issue, otherwise attach the associated file.

You can also attempt to get support on Unmet Hours, a site similar in spirit to Stack Overflow, but for building energy modelers. Make sure to tag the question with neobem as I have an email alert set up for those questions.

Contributing

Feedback and contributions are welcomed. Small contributions can made directly in Pull Requests. If you'd like to propose a more significant or more fundamental change, I ask that it first be discussed to prevent wasted effort. Please use the "Discussions" within the GitHub repository, likely in the "General" or "Ideas" category.

If the change adds functionality, corresponding unit tests would be expected. Tests are located in the test project/directory.

For coding style conventions, you can follow the conventions laid out by Microsoft (link).

Building from Source

Building from source requires the following dependencies:

  1. A .NET environment. Typically installed with Visual Studio, Rider, or directly through the SDK libraries.
  2. ANTLR and Java. I typically use the open source version of Java at jdk.java.net.
  3. Optional: A redo. This is a make alternative (see original description from Daniel J. Bernstein). There are several existing implementations out there. I now use the redo from zombiezen and have used apenwarrs redo in the past. However, just to get things building, there is a minimal do shell executable in the root of the repository.

You can then follow along with the steps in the GitHub workflow that tests building commits (.github/workflows/dotnet.yml).

The minimum steps after .NET and Java installation are:

# Get ANTLR (version 4.9.3 in this example)
curl --output antlr-4.9.3-complete.jar https://www.antlr.org/download/antlr-4.9.3-complete.jar
# Compile ANTLR grammars - environment variables ANTLR_JAR and CLASSPATH required.
export ANTLR_JAR="$(pwd)"/antlr-4.9.3-complete.jar
export CLASSPATH=.:"$(pwd)/antlr-4.9.3-complete.jar"
./do src/antlr/compiled
./do src/antlr/excelrange/compiled
./do src/antlr/idf/compiled
# Run redo targets
./do src/Help.cs src/Version.cs test/TestFileDirectory.cs
# Build
dotnet build src
dotnet build test