Skip to content

Commit aff2e5f

Browse files
authored
Merge pull request #27 from polystat/develop
Version 0.1
2 parents 776acd2 + 448bf32 commit aff2e5f

27 files changed

+2222
-1659
lines changed

.github/workflows/gradle-build.yml

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ jobs:
1212
strategy:
1313
matrix:
1414
os: [
15-
ubuntu-latest,
1615
macos-latest,
1716
windows-latest
1817
]
@@ -32,3 +31,28 @@ jobs:
3231
with:
3332
arguments: test
3433

34+
gradle_ubuntu:
35+
runs-on: ubuntu-latest
36+
steps:
37+
- uses: actions/checkout@v2
38+
39+
- uses: actions/setup-java@v1
40+
with:
41+
java-version: 16
42+
43+
- run: |
44+
wget http://ftp.gnu.org/gnu/bison/bison-3.8.tar.gz
45+
tar -zxvf bison-3.8.tar.gz
46+
cd bison-3.8
47+
./configure
48+
make
49+
sudo make install
50+
bison -V
51+
52+
- uses: gradle/gradle-build-action@v1
53+
with:
54+
arguments: build
55+
56+
- uses: gradle/gradle-build-action@v1
57+
with:
58+
arguments: test

README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,17 @@ bugs in our code. It is also much easier to work with abstraction layer than wit
3434

3535
---
3636

37+
## Requirements
38+
39+
In order to compile project from source code, you need to have
40+
41+
- Bison 3.7+
42+
- Java 15+
43+
44+
installed. Bison is currently bundled with the project for Windows and macOS. On Linux, you may use package manager to easily install Bison (but check the Bison version; some distos, like Ubuntu, like to ship outdated versions of software).
45+
46+
---
47+
3748
## Usage
3849

3950
To build, run:

build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
#/bin/sh
22

3-
./gradlew fatJar
3+
./gradlew fatJar test
44
cp build/libs/* j2eo.jar

src/main/java/eotree/EOCopy.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public EOCopy(EOExpr trg, List<EOBnd> args) {
1515
@Override
1616
public String generateEO(int indent) {
1717
return trg.generateEO(indent) + args.stream()
18-
.map(arg -> " " + arg.generateEO(indent + 1))
18+
.map(arg -> "\n" + arg.generateEO(indent + 1))
1919
.collect(Collectors.joining());
2020
}
2121
}

src/main/java/eotree/EOObject.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public String generateEO(int indent) {
2424
.map(attr -> attr.generateEO(indent))
2525
.collect(Collectors.joining(" ")) +
2626
(varargAttr
27-
.map(attr -> " " + attr.generateEO(indent) + "...")
27+
.map(attr -> (freeAttrs.size() > 0 ? " " : "") + attr.generateEO(indent) + "...")
2828
.orElse("")) +
2929
"]\n" +
3030
bndAttrs.stream()

src/main/java/eotree/EOProgram.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,6 @@ public String generateEO(int indent) {
2828
"\n" +
2929
bnds.stream()
3030
.map(bnd -> bnd.generateEO(indent))
31-
.collect(Collectors.joining("\n"));
31+
.collect(Collectors.joining("\n")) + "\n";
3232
}
3333
}

src/main/java/eotree/data/EOFloatData.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@ public EOFloatData(Float f) {
1515

1616
@Override
1717
public String generateEO(int indent) {
18-
return f.toString();
18+
return indent(indent) + f.toString();
1919
}
2020
}

src/main/java/eotree/data/EOIntData.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@ public EOIntData(Integer i) {
1515

1616
@Override
1717
public String generateEO(int indent) {
18-
return i.toString();
18+
return indent(indent) + i.toString();
1919
}
2020
}

src/main/java/eotree/data/EOStringData.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@ public EOStringData(String str) {
1515

1616
@Override
1717
public String generateEO(int indent) {
18-
return "\"" + str + "\"";
18+
return indent(indent) + "\"" + str + "\"";
1919
}
2020
}

src/main/java/lexer/Scanner.java

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
public class Scanner implements JavaParser.Lexer
1010
{
1111
private static String sourcePath;
12-
private static char[] sourceText;
12+
private char[] sourceText;
1313

14-
public static boolean read(String path)
14+
public boolean read(String path)
1515
{
1616
sourcePath = path;
1717
try {
@@ -28,12 +28,12 @@ public static boolean read(String path)
2828

2929
// Machinery for reading bytes from the source ///////////////////////
3030

31-
private static int currentLine = 0;
32-
private static int currentPos = 0;
33-
private static int globalPos = -1;
34-
private static char currentChar = '\0';
31+
private int currentLine = 0;
32+
private int currentPos = 0;
33+
private int globalPos = -1;
34+
private char currentChar = '\0';
3535

36-
private static char getChar()
36+
private char getChar()
3737
{
3838
if ( currentChar == '\0' )
3939
{
@@ -44,7 +44,7 @@ private static char getChar()
4444
return currentChar;
4545
}
4646

47-
private static void forgetChar()
47+
private void forgetChar()
4848
{
4949
currentChar = '\0';
5050
}
@@ -77,18 +77,18 @@ public void yyerror(String msg) {
7777

7878
// Detecting the current token //////////////////////////////
7979

80-
private static Token currentToken;
81-
public static Token get()
80+
private Token currentToken;
81+
public Token get()
8282
{
8383
if ( currentToken == null ) currentToken = getToken();
8484
return currentToken;
8585
}
86-
public static void forget()
86+
public void forget()
8787
{
8888
currentToken = null;
8989
}
9090

91-
private static Token getToken()
91+
private Token getToken()
9292
{
9393
char ch;
9494
TokenCode code;
@@ -330,17 +330,17 @@ else if ( Character.isDigit(ch) )
330330
return token;
331331
}
332332

333-
private static String scanShortComment()
333+
private String scanShortComment()
334334
{
335335
return "";
336336
}
337337

338-
private static String scanLongComment()
338+
private String scanLongComment()
339339
{
340340
return "";
341341
}
342342

343-
private static TokenCode detectKeyword(String identifier)
343+
private TokenCode detectKeyword(String identifier)
344344
{
345345
switch ( identifier ) {
346346
case "abstract" : return TokenCode.Abstract;

0 commit comments

Comments
 (0)