Skip to content

Commit

Permalink
Prepare for 1.4.0 release
Browse files Browse the repository at this point in the history
  • Loading branch information
yuxuanchiadm committed Jun 4, 2019
1 parent 34ba54c commit d7d236a
Show file tree
Hide file tree
Showing 46 changed files with 163 additions and 734 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ language: scala
jdk:
- openjdk8
scala:
- 2.12.5
- 2.12.8
30 changes: 20 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,27 +35,27 @@ Add following to your `pom.xml` if using maven:
<dependencies>
<dependency>
<groupId>org.lamcalcj</groupId>
<artifactId>lamcalcj-ast</artifactId>
<artifactId>lamcalcj-ast_2.12</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>org.lamcalcj</groupId>
<artifactId>lamcalcj-compiler</artifactId>
<artifactId>lamcalcj-compiler_2.12</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>org.lamcalcj</groupId>
<artifactId>lamcalcj-pretty-print</artifactId>
<artifactId>lamcalcj-pretty-print_2.12</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>org.lamcalcj</groupId>
<artifactId>lamcalcj-reducer</artifactId>
<artifactId>lamcalcj-reducer_2.12</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>org.lamcalcj</groupId>
<artifactId>lamcalcj-utils</artifactId>
<artifactId>lamcalcj-utils_2.12</artifactId>
<version>1.4.0</version>
</dependency>
</dependencies>
Expand All @@ -72,14 +72,24 @@ repositories {
}
dependencies {
compile 'org.lamcalcj:lamcalcj-ast:1.4.0'
compile 'org.lamcalcj:lamcalcj-compiler:1.4.0'
compile 'org.lamcalcj:lamcalcj-pretty-print:1.4.0'
compile 'org.lamcalcj:lamcalcj-reducer:1.4.0'
compile 'org.lamcalcj:lamcalcj-utils:1.4.0'
compile 'org.lamcalcj:lamcalcj-ast_2.12:1.4.0'
compile 'org.lamcalcj:lamcalcj-compiler_2.12:1.4.0'
compile 'org.lamcalcj:lamcalcj-pretty-print_2.12:1.4.0'
compile 'org.lamcalcj:lamcalcj-reducer_2.12:1.4.0'
compile 'org.lamcalcj:lamcalcj-utils_2.12:1.4.0'
}
```

Add following to your `build.sbt` if using sbt:

```
libraryDependencies += "org.lamcalcj" %% "lamcalcj-ast" % "1.4.0"
libraryDependencies += "org.lamcalcj" %% "lamcalcj-compiler" % "1.4.0"
libraryDependencies += "org.lamcalcj" %% "lamcalcj-pretty-print" % "1.4.0"
libraryDependencies += "org.lamcalcj" %% "lamcalcj-reducer" % "1.4.0"
libraryDependencies += "org.lamcalcj" %% "lamcalcj-utils" % "1.4.0"
```

# Examples

- GUI Interface: [https://github.com/yuxuanchiadm/lambdacore](https://github.com/yuxuanchiadm/lambdacore)
92 changes: 92 additions & 0 deletions build.sbt
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
import sbtcrossproject.CrossPlugin.autoImport.{crossProject, CrossType}

ThisBuild / organization := "org.lamcalcj"
ThisBuild / version := "1.4.0"
ThisBuild / scalaVersion := "2.12.8"
ThisBuild / organizationName := "LamcalcJ"
ThisBuild / startYear := Option(2019)
ThisBuild / developers += Developer("yuxuanchiadm", "Yu Xuanchi", "[email protected]", url("https://github.com/yuxuanchiadm"))
ThisBuild / publishMavenStyle := true
ThisBuild / publishTo := Option(MavenRepository("lamcalcj-maven", "https://api.bintray.com/maven/yuxuanchiadm/lamcalcj-maven/lamcalcj/;publish=1"))
ThisBuild / credentials += Credentials(Path.userHome / ".sbt" / ".credentials")

name := "lamcalcj-parent"
autoScalaLibrary := false
artifacts := Seq()

lazy val ast = crossProject(JSPlatform, JVMPlatform)
.crossType(CrossType.Full)
.in(file("lamcalcj-ast"))
.settings(
name := "lamcalcj-ast",

libraryDependencies += "org.scalatest" %%% "scalatest" % "3.0.7" % Test
)
lazy val astJS = ast.js
lazy val astJVM = ast.jvm

lazy val utils = crossProject(JSPlatform, JVMPlatform)
.crossType(CrossType.Full)
.in(file("lamcalcj-utils"))
.dependsOn(ast)
.settings(
name := "lamcalcj-utils",

libraryDependencies += "org.scalatest" %%% "scalatest" % "3.0.7" % Test
)
lazy val utilsJS = utils.js
lazy val utilsJVM = utils.jvm

lazy val parser = crossProject(JSPlatform, JVMPlatform)
.crossType(CrossType.Full)
.in(file("lamcalcj-parser"))
.dependsOn(utils)
.settings(
name := "lamcalcj-parser",

libraryDependencies += "org.scalatest" %%% "scalatest" % "3.0.7" % Test
)
lazy val parserJS = parser.js
lazy val parserJVM = parser.jvm

lazy val compiler = crossProject(JSPlatform, JVMPlatform)
.crossType(CrossType.Full)
.in(file("lamcalcj-compiler"))
.dependsOn(ast)
.dependsOn(parser)
.settings(
name := "lamcalcj-compiler",

libraryDependencies += "org.scalatest" %%% "scalatest" % "3.0.7" % Test
)
lazy val compilerJS = compiler.js
lazy val compilerJVM = compiler.jvm

lazy val pretty = crossProject(JSPlatform, JVMPlatform)
.crossType(CrossType.Full)
.in(file("lamcalcj-pretty-print"))
.dependsOn(ast)
.dependsOn(utils)
.dependsOn(compiler % Test)
.settings(
name := "lamcalcj-pretty-print",

libraryDependencies += "org.scalatest" %%% "scalatest" % "3.0.7" % Test
)
lazy val prettyJS = pretty.js
lazy val prettyJVM = pretty.jvm

lazy val reducer = crossProject(JSPlatform, JVMPlatform)
.crossType(CrossType.Full)
.in(file("lamcalcj-reducer"))
.dependsOn(ast)
.dependsOn(utils)
.dependsOn(compiler % Test)
.dependsOn(pretty % Test)
.settings(
name := "lamcalcj-reducer",

libraryDependencies += "org.scalatest" %%% "scalatest" % "3.0.7" % Test
)
lazy val reducerJS = reducer.js
lazy val reducerJVM = reducer.jvm
20 changes: 0 additions & 20 deletions lamcalcj-ast/.gitignore

This file was deleted.

69 changes: 0 additions & 69 deletions lamcalcj-ast/pom.xml

This file was deleted.

20 changes: 0 additions & 20 deletions lamcalcj-compiler/.gitignore

This file was deleted.

79 changes: 0 additions & 79 deletions lamcalcj-compiler/pom.xml

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package org.lamcalcj.compiler

import java.io.Reader

import org.lamcalcj.parser._
import org.lamcalcj.parser.Combinator._
import org.lamcalcj.parser.Parser._
Expand Down Expand Up @@ -63,7 +61,7 @@ object Compiler {
term <- lambdaSeparatorP(recursive(() => lambdaEnclosedTermP(boundVars)))
_ <- lambdaSyntax.applicationInfixP
arguments <- lambdaSeparatorP(recursive(() => lambdaArgumentP(boundVars)))
} yield arguments.foldLeft(term)(App(_, _))))
} yield arguments.foldLeft(term)(App)))

def lambdaArgumentP(boundVars: Map[String, Identifier]): Parser[Text, Map[String, Identifier], List[Term]] =
lambdaSyntax.argumentP(lambdaSeparatorP(manySepBy(lambdaSeparatorP(recursive(() => lambdaEnclosedTermP(boundVars))), lambdaSyntax.argumentInfixP)))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package org.lamcalcj.compiler

import java.io.StringReader

import org.lamcalcj.parser.Text

import org.scalatest.FunSpec
Expand Down
Loading

0 comments on commit d7d236a

Please sign in to comment.