Eval Versions Save

Eval is a lightweight interpreter framework written in Swift, evaluating expressions at runtime

1.3.3

5 years ago

No changes in public-facing API

1.3.2

5 years ago

Updated with new & modified Swiftlint rules and Swift 4.2 language constructs

1.3.1

6 years ago

Updated with new & modified Swiftlint rules and Swift 4.1 language constructs

1.3.0

6 years ago

Features

  • Updates to template example project
    • Support for nil/empty/optional value types
    • A lot of new operators
    • Spaceless tags in template example
    • Embedded if/if-else statements

Additions

  • Proper linter support with a lot of checks
  • Automatic releases 🎉
    • If a commit with "Version x.x.x" found in its title, then version references in files get automatically replaced, commit and tagging happens, also pod trunk gets updated with the new podspec, automatically!
    • In fact, 1.3 was automatically released using the script

1.2.0

6 years ago

Features

  • Huge performance optimisations
  • Large number of additions to Template example
  • Backward option for patterns, which allows 3 - 2 - 1 to be handled correctly. Previously was interpreted as 3 - (2 - 1)
  • Breaking changes:
    • Matcher renamed to Pattern
    • InterpreterContext renamed to Context
    • Variables now have options rather than Bool parameters
  • Matcher part is extracted to its own file

Additions

  • Example apps and test updates
  • Documentation update

1.1.0

6 years ago

Features

  • Making component Equatable when appropriate
  • Publicating Variable mapping API
  • Generic TemplateInterpreter -> Now allows other types (such as NSAttributedStrings to be parsed). Made it open protection level, so it now allows subclassing.
  • Debugging support: context now holds debug steps when parsing expressions
  • Minor API changes

Additions

  • 100% line documentation coverage
  • Example projects: Color + NSAttribtuedString parser
  • Carthage support

1.0.0

6 years ago

Features

  • Ability to parse typed expressions
    • Custom data types and functions
    • Loads of examples in the unit tests
  • Ability to parse template expressions
    • Inner parts of recognised expressions can use typed interpreters for further evaluation
  • Context for supporting evaluations
    • Only variables for now
    • Possible to add general context and evaluation-specific ones
  • Support for expressions with embedded parentheses: a - (b * (c + d))

Additions

  • Initial documentation
  • Example project: Full template engine
    • Loads of helpers for operator and function creation
  • Continous integration pipeline
    • Built, test, lint
  • Automatic documentation update
    • Generated from line comments and README pages