Skip to content

Commit be9bdb0

Browse files
committed
Незначительные исправления
1 parent 670b4b8 commit be9bdb0

File tree

10 files changed

+33
-22
lines changed

10 files changed

+33
-22
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# OwnLang
22

33
[![Build Status](https://travis-ci.org/aNNiMON/Own-Programming-Language-Tutorial.svg?branch=latest)](https://travis-ci.org/aNNiMON/Own-Programming-Language-Tutorial)
4+
[![SonarCloud Status](https://sonarcloud.io/api/project_badges/measure?project=aNNiMON_Own-Programming-Language-Tutorial&metric=alert_status)](https://sonarcloud.io/dashboard?id=aNNiMON_Own-Programming-Language-Tutorial)
5+
[![SonarCloud Quality Gate](https://sonarcloud.io/api/project_badges/measure?project=aNNiMON_Own-Programming-Language-Tutorial&metric=sqale_rating)](https://sonarcloud.io/dashboard/?id=aNNiMON_Own-Programming-Language-Tutorial)
46

57
| Free | Pro | Desktop |
68
| :--: | :-: | :-----: |

src/main/java/com/annimon/ownlang/Console.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@
99
public class Console {
1010

1111
private static final String FILE_PREFIX = "tmp/";
12-
public static boolean filePrefixEnabled = false;
12+
private static boolean filePrefixEnabled;
13+
14+
public static void enableFilePrefix() {
15+
Console.filePrefixEnabled = true;
16+
}
1317

1418
public static String newline() {
1519
return System.lineSeparator();

src/main/java/com/annimon/ownlang/lib/Variables.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,22 @@ public final class Variables {
1212
private static final Object lock = new Object();
1313

1414
private static class Scope {
15-
public final Scope parent;
16-
public final Map<String, Value> variables;
15+
final Scope parent;
16+
final Map<String, Value> variables;
1717

18-
public Scope() {
18+
Scope() {
1919
this(null);
2020
}
2121

22-
public Scope(Scope parent) {
22+
Scope(Scope parent) {
2323
this.parent = parent;
2424
variables = new ConcurrentHashMap<>();
2525
}
2626
}
2727

2828
private static class ScopeFindData {
29-
public boolean isFound;
30-
public Scope scope;
29+
boolean isFound;
30+
Scope scope;
3131
}
3232

3333
private static volatile Scope scope;
@@ -46,14 +46,13 @@ public static void clear() {
4646
scope.variables.put("false", NumberValue.ZERO);
4747
}
4848

49-
public static void push() {
49+
static void push() {
5050
synchronized (lock) {
51-
final Scope newScope = new Scope(scope);
52-
scope = newScope;
51+
scope = new Scope(scope);
5352
}
5453
}
5554

56-
public static void pop() {
55+
static void pop() {
5756
synchronized (lock) {
5857
if (scope.parent != null) {
5958
scope = scope.parent;

src/main/java/com/annimon/ownlang/modules/java/java.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -319,9 +319,14 @@ private static boolean isMatch(Value[] args, Class<?>[] types) {
319319
final Class<?> clazz = types[i];
320320

321321
if (arg == NULL) continue;
322-
if (unboxed(clazz).isAssignableFrom(unboxed(valueToObject(arg).getClass()))) {
323-
continue;
324-
}
322+
323+
final Class<?> unboxed = unboxed(clazz);
324+
boolean assignable = unboxed != null;
325+
final Object object = valueToObject(arg);
326+
assignable = assignable && (object != null);
327+
assignable = assignable && (unboxed.isAssignableFrom(object.getClass()));
328+
if (assignable) continue;
329+
325330
return false;
326331
}
327332
return true;

src/main/java/com/annimon/ownlang/modules/robot/robot_exec.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.annimon.ownlang.modules.robot;
22

3+
import com.annimon.ownlang.Console;
34
import com.annimon.ownlang.lib.Arguments;
45
import com.annimon.ownlang.lib.ArrayValue;
56
import com.annimon.ownlang.lib.Function;
@@ -43,7 +44,6 @@ public Value execute(Value... args) {
4344
return NumberValue.ZERO;
4445
}
4546
} catch (Exception ex) {
46-
ex.printStackTrace();
4747
return NumberValue.ZERO;
4848
}
4949
}

src/main/java/com/annimon/ownlang/modules/std/std_sync.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public Value execute(Value... args) {
2929
try {
3030
return queue.take();
3131
} catch (InterruptedException ex) {
32+
Thread.currentThread().interrupt();
3233
throw new RuntimeException(ex);
3334
}
3435
}

src/main/java/com/annimon/ownlang/parser/Parser.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public static Statement parse(List<Token> tokens) {
3030

3131
private static final EnumMap<TokenType, BinaryExpression.Operator> ASSIGN_OPERATORS;
3232
static {
33-
ASSIGN_OPERATORS = new EnumMap(TokenType.class);
33+
ASSIGN_OPERATORS = new EnumMap<>(TokenType.class);
3434
ASSIGN_OPERATORS.put(TokenType.EQ, null);
3535
ASSIGN_OPERATORS.put(TokenType.PLUSEQ, BinaryExpression.Operator.ADD);
3636
ASSIGN_OPERATORS.put(TokenType.MINUSEQ, BinaryExpression.Operator.SUBTRACT);
@@ -305,7 +305,7 @@ private Expression functionChain(Expression qualifiedNameExpr) {
305305
}
306306
if (lookMatch(0, TokenType.DOT)) {
307307
final List<Expression> indices = variableSuffix();
308-
if (indices == null | indices.isEmpty()) return expr;
308+
if (indices == null || indices.isEmpty()) return expr;
309309

310310
if (lookMatch(0, TokenType.LPAREN)) {
311311
// next function call

src/main/java/com/annimon/ownlang/parser/ast/MatchExpression.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ public String toString() {
221221
}
222222

223223
public static class ConstantPattern extends Pattern {
224-
public Value constant;
224+
Value constant;
225225

226226
public ConstantPattern(Value pattern) {
227227
this.constant = pattern;
@@ -247,13 +247,13 @@ public String toString() {
247247
}
248248

249249
public static class ListPattern extends Pattern {
250-
public List<String> parts;
250+
List<String> parts;
251251

252252
public ListPattern() {
253253
this(new ArrayList<>());
254254
}
255255

256-
public ListPattern(List<String> parts) {
256+
ListPattern(List<String> parts) {
257257
this.parts = parts;
258258
}
259259

src/main/java/com/annimon/ownlang/parser/optimization/VariableInfo.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
public final class VariableInfo {
66
public Value value;
7-
public int modifications;
7+
int modifications;
88

99
@Override
1010
public String toString() {

src/main/java/com/annimon/ownlang/utils/Sandbox.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
public final class Sandbox {
1919

2020
public static void main(String[] args) throws IOException {
21-
Console.filePrefixEnabled = true;
21+
Console.enableFilePrefix();
2222
final String input = SourceLoader.readAndCloseStream(System.in);
2323
dumpInputArguments(input, args);
2424

0 commit comments

Comments
 (0)