Skip to content

Commit 21510d6

Browse files
committed
0.16.0 - Added class annotation parsing, renamed AccessModifier to Keyword, renamed 2 ProjectClassSet methods, removed unused AstNodeConsumer and AstNodePredicate interfaces.
1 parent 5844848 commit 21510d6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+516
-562
lines changed

CHANGELOG.md

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,27 @@ All notable changes to this project will be documented in this file.
33
This project does its best to adhere to [Semantic Versioning](http://semver.org/).
44

55

6+
--------
7+
### [0.16.0](N/A) - 2019-03-17
8+
#### Added
9+
* Class signature annotation parsing (in `BlockExtractor`, `CsBlockParser`, and `JavaBlockParser`)
10+
11+
#### Changed
12+
* Simplified `ProjectClassSet` (removed two unnecessary generic parameters, renamed private fields):
13+
* Renamed `resolveSimpleNameToClass()` -> `resolveClassNameAgainstNamespaces()`
14+
* Renamed `resolveSimpleNameToClassSingleNamespace()` -> `resolveClassNameAgainstNamespace()`
15+
* Performance improvements to collection allocations in `NameUtil` and `ClassSigResolver`
16+
* Renamed `AccessModifier` interface to `Keyword`
17+
* `PerformanceTrackers.getTopParseTimes()` and `getTopParseStepDetails()` switched first parameter from `javax.swing.SortOrder` to `boolean`
18+
19+
#### Removed
20+
* Unused `AstNodeConsumer` and `AstNodePredicate` interfaces
21+
* Removed lombok.val usage/dependency from several classes and packages in favor of Java 10 `var` or actual type.
22+
23+
#### Fixed
24+
* Bug in TokenizeStepLogger trying to `StringCase.toCamelCase()` action names
25+
26+
627
--------
728
### [0.15.7](https://github.com/TeamworkGuy2/JParseCode/commit/b36432e04ec4757a2e58102e88e4fe55c65965c4) - 2018-09-23
829
#### Changed
@@ -118,7 +139,7 @@ Simplified class names and generic type signatures:
118139
--------
119140
### [0.14.2](https://github.com/TeamworkGuy2/JParseCode/commit/c9ff08c26752a18e8f38e4365181876d81461190) - 2017-02-06
120141
#### Changed
121-
* Removed lombok.val usage/dependency from from test classes.
142+
* Removed lombok.val usage/dependency from test classes.
122143

123144
#### Fixed
124145
* Fixed parsing C# classes that extend/implement multiple types, unrecognized types are assumed to possibly be interfaces.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
JParseCode
22
==============
3-
version: 0.15.7
3+
version: 0.16.0
44

55
In progress C#/Java/TypeScript parser tools built atop [JTextParser](https://github.com/TeamworkGuy2/JTextParser), [Jackson](https://github.com/FasterXML/jackson-core/) (core, databind, annotations) and half a dozen other utility libraries.
66

bin/jparse_code-with-tests.jar

-335 KB
Binary file not shown.

bin/jparse_code.jar

-324 KB
Binary file not shown.

package-lib.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"version" : "0.15.7",
2+
"version" : "0.16.0",
33
"name" : "jparse-code",
44
"description" : "An in-progress suite of parsing/transpilation tools for C#, Java, and TypeScript code. Generates simple JSON ASTs.",
55
"homepage" : "https://github.com/TeamworkGuy2/JParseCode",

src/twg2/ast/interm/annotation/AnnotationSig.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import java.util.Map;
66

77
import lombok.AllArgsConstructor;
8-
import lombok.val;
98
import twg2.annotations.Immutable;
109
import twg2.parser.codeParser.tools.NameUtil;
1110
import twg2.parser.output.JsonWritableSig;
@@ -28,7 +27,7 @@ public void toJson(Appendable dst, WriteSettings st) throws IOException {
2827
dst.append(", ");
2928
dst.append("\"arguments\": { ");
3029
boolean notFirst = false;
31-
for(val argumentEntry : arguments.entrySet()) {
30+
for(Map.Entry<String, String> argumentEntry : arguments.entrySet()) {
3231
// TODO Csv style escape
3332
dst.append((notFirst ? ", " : "") + '"' + argumentEntry.getKey() + "\": \"" + argumentEntry.getValue().replace("\"", "\\\"") + '"');
3433
notFirst = true;

src/twg2/ast/interm/classes/ClassAst.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import java.util.List;
55

66
import lombok.Getter;
7-
import lombok.val;
87
import twg2.annotations.Immutable;
98
import twg2.ast.interm.field.FieldDef;
109
import twg2.ast.interm.field.FieldDefResolved;
@@ -51,11 +50,11 @@ public static class Impl<T_SIG extends ClassSig, T_ENUM extends JsonWritableSig,
5150

5251
public Impl(T_SIG signature, List<List<String>> usingStatements, List<? extends T_FIELD> fields, List<? extends T_METHOD> methods, List<? extends T_ENUM> enums, T_BLOCK blockType) {
5352
@SuppressWarnings("unchecked")
54-
val fieldsCast = (List<T_FIELD>)fields;
53+
var fieldsCast = (List<T_FIELD>)fields;
5554
@SuppressWarnings("unchecked")
56-
val methodsCast = (List<T_METHOD>)methods;
55+
var methodsCast = (List<T_METHOD>)methods;
5756
@SuppressWarnings("unchecked")
58-
val enumsCast = (List<T_ENUM>)enums;
57+
var enumsCast = (List<T_ENUM>)enums;
5958

6059
this.signature = signature;
6160
this.usingStatements = usingStatements;
@@ -68,7 +67,7 @@ public Impl(T_SIG signature, List<List<String>> usingStatements, List<? extends
6867

6968
@Override
7069
public void toJson(Appendable dst, WriteSettings st) throws IOException {
71-
val json = JsonStringify.inst;
70+
var json = JsonStringify.inst;
7271

7372
dst.append("{\n");
7473

src/twg2/ast/interm/classes/ClassSig.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import java.util.List;
44

5-
import twg2.parser.codeParser.AccessModifier;
5+
import twg2.parser.codeParser.Keyword;
66
import twg2.parser.output.JsonWritableSig;
77

88
/**
@@ -11,7 +11,7 @@
1111
*/
1212
public interface ClassSig extends JsonWritableSig {
1313

14-
public AccessModifier getAccessModifier();
14+
public Keyword getAccessModifier();
1515

1616
public List<String> getFullName();
1717

src/twg2/ast/interm/classes/ClassSigResolved.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55

66
import lombok.AllArgsConstructor;
77
import lombok.Getter;
8-
import lombok.val;
98
import twg2.annotations.Immutable;
9+
import twg2.ast.interm.annotation.AnnotationSig;
1010
import twg2.ast.interm.type.TypeSig;
1111
import twg2.io.json.stringify.JsonStringify;
12-
import twg2.parser.codeParser.AccessModifier;
12+
import twg2.parser.codeParser.Keyword;
1313
import twg2.parser.codeParser.tools.NameUtil;
1414
import twg2.parser.output.WriteSettings;
1515

@@ -24,7 +24,9 @@ public class ClassSigResolved implements ClassSig {
2424
/** This type's generic type parameters, if any */
2525
private final @Getter List<TypeSig.TypeSigResolved> params;
2626
/** The block's access (i.e. 'public', 'private', etc.) */
27-
private final @Getter AccessModifier accessModifier;
27+
private final @Getter Keyword accessModifier;
28+
/** The block's annotations */
29+
private final @Getter List<AnnotationSig> annotations;
2830
/** The block's type (i.e. 'interface', 'class', 'enum', etc.) */
2931
private final @Getter String declarationType;
3032
private final @Getter TypeSig.TypeSigResolved extendClass;
@@ -44,7 +46,7 @@ public boolean isGeneric() {
4446

4547
@Override
4648
public void toJson(Appendable dst, WriteSettings st) throws IOException {
47-
val json = JsonStringify.inst;
49+
var json = JsonStringify.inst;
4850

4951
dst.append("{ ");
5052
json.toProp("access", accessModifier.toSrc(), dst).comma(dst)
@@ -66,6 +68,11 @@ public void toJson(Appendable dst, WriteSettings st) throws IOException {
6668
json.toArrayConsume(implementInterfaces, dst, (intfType) -> intfType.toJson(dst, st));
6769
}
6870

71+
if(annotations.size() > 0) {
72+
json.comma(dst).propName("annotations", dst)
73+
.toArrayConsume(annotations, dst, (a) -> a.toJson(dst, st));
74+
}
75+
6976
dst.append(" }");
7077
}
7178

src/twg2/ast/interm/classes/ClassSigSimple.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55

66
import lombok.AllArgsConstructor;
77
import lombok.Getter;
8-
import lombok.val;
98
import twg2.annotations.Immutable;
9+
import twg2.ast.interm.annotation.AnnotationSig;
1010
import twg2.ast.interm.type.TypeSig;
1111
import twg2.io.json.stringify.JsonStringify;
12-
import twg2.parser.codeParser.AccessModifier;
12+
import twg2.parser.codeParser.Keyword;
1313
import twg2.parser.codeParser.tools.NameUtil;
1414
import twg2.parser.output.WriteSettings;
1515

@@ -20,7 +20,9 @@ public class ClassSigSimple implements ClassSig {
2020
/** This type's generic type parameters, if any */
2121
private final @Getter List<TypeSig.TypeSigSimple> params;
2222
/** The block's access (i.e. 'public', 'private', etc.) */
23-
private final @Getter AccessModifier accessModifier;
23+
private final @Getter Keyword accessModifier;
24+
/** The block's annotations */
25+
private final @Getter List<AnnotationSig> annotations;
2426
/** The block's type (i.e. 'interface', 'class', 'enum', etc.) */
2527
private final @Getter String declarationType;
2628
private final @Getter List<String> extendImplementSimpleNames;
@@ -39,7 +41,7 @@ public boolean isGeneric() {
3941

4042
@Override
4143
public void toJson(Appendable dst, WriteSettings st) throws IOException {
42-
val json = JsonStringify.inst;
44+
var json = JsonStringify.inst;
4345

4446
dst.append("{ ");
4547

@@ -60,6 +62,11 @@ public void toJson(Appendable dst, WriteSettings st) throws IOException {
6062
.toStringArray(extendImplementSimpleNames, dst);
6163
}
6264

65+
if(annotations.size() > 0) {
66+
json.comma(dst).propName("annotations", dst)
67+
.toArrayConsume(annotations, dst, (a) -> a.toJson(dst, st));
68+
}
69+
6370
dst.append(" }");
6471
}
6572

0 commit comments

Comments
 (0)