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

+22-1
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

+1-1
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

+1-1
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

+1-2
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

+4-5
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

+2-2
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

+11-4
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

+11-4
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

src/twg2/ast/interm/field/FieldDef.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@
44
import java.util.List;
55

66
import lombok.Getter;
7-
import lombok.val;
87
import twg2.annotations.Immutable;
98
import twg2.ast.interm.annotation.AnnotationSig;
109
import twg2.ast.interm.type.TypeSig.TypeSigSimple;
1110
import twg2.io.json.stringify.JsonStringify;
12-
import twg2.parser.codeParser.AccessModifier;
11+
import twg2.parser.codeParser.Keyword;
1312
import twg2.parser.codeParser.extractors.DataTypeExtractor;
1413
import twg2.parser.codeParser.tools.NameUtil;
1514
import twg2.parser.fragment.CodeToken;
@@ -27,7 +26,7 @@ public class FieldDef extends FieldSig {
2726
private final @Getter SimpleTree<CodeToken> initializer;
2827

2928

30-
public FieldDef(String name, List<String> fullName, TypeSigSimple fieldType, List<AccessModifier> accessModifiers,
29+
public FieldDef(String name, List<String> fullName, TypeSigSimple fieldType, List<Keyword> accessModifiers,
3130
List<AnnotationSig> annotations, List<String> comments, SimpleTree<CodeToken> initializer) {
3231
super(name, fullName, fieldType, accessModifiers, annotations, comments);
3332
this.initializer = initializer;
@@ -36,7 +35,7 @@ public FieldDef(String name, List<String> fullName, TypeSigSimple fieldType, Lis
3635

3736
@Override
3837
public void toJson(Appendable dst, WriteSettings st) throws IOException {
39-
val json = JsonStringify.inst;
38+
var json = JsonStringify.inst;
4039

4140
dst.append("{ ");
4241
json.toProp("name", (st.fullFieldName ? NameUtil.joinFqName(fullName) : fullName.get(fullName.size() - 1)), dst);

src/twg2/ast/interm/field/FieldDefResolved.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@
44
import java.util.List;
55

66
import lombok.Getter;
7-
import lombok.val;
87
import twg2.annotations.Immutable;
98
import twg2.ast.interm.annotation.AnnotationSig;
109
import twg2.ast.interm.type.TypeSig.TypeSigResolved;
1110
import twg2.io.json.stringify.JsonStringify;
12-
import twg2.parser.codeParser.AccessModifier;
11+
import twg2.parser.codeParser.Keyword;
1312
import twg2.parser.codeParser.tools.NameUtil;
1413
import twg2.parser.fragment.CodeToken;
1514
import twg2.parser.output.WriteSettings;
@@ -24,7 +23,7 @@ public class FieldDefResolved extends FieldSigResolved {
2423
private final @Getter SimpleTree<CodeToken> initializer;
2524

2625

27-
public FieldDefResolved(String name, List<String> fullName, TypeSigResolved fieldType, List<AccessModifier> accessModifiers,
26+
public FieldDefResolved(String name, List<String> fullName, TypeSigResolved fieldType, List<Keyword> accessModifiers,
2827
List<AnnotationSig> annotations, List<String> comments, SimpleTree<CodeToken> initializer) {
2928
super(name, fullName, fieldType, accessModifiers, annotations, comments);
3029
this.initializer = initializer;
@@ -33,7 +32,7 @@ public FieldDefResolved(String name, List<String> fullName, TypeSigResolved fiel
3332

3433
@Override
3534
public void toJson(Appendable dst, WriteSettings st) throws IOException {
36-
val json = JsonStringify.inst;
35+
var json = JsonStringify.inst;
3736

3837
dst.append("{ ");
3938
json.toProp("name", (st.fullFieldName ? NameUtil.joinFqName(fullName) : fullName.get(fullName.size() - 1)), dst);

src/twg2/ast/interm/field/FieldSig.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,11 @@
55

66
import lombok.AllArgsConstructor;
77
import lombok.Getter;
8-
import lombok.val;
98
import twg2.annotations.Immutable;
109
import twg2.ast.interm.annotation.AnnotationSig;
1110
import twg2.ast.interm.type.TypeSig;
1211
import twg2.io.json.stringify.JsonStringify;
13-
import twg2.parser.codeParser.AccessModifier;
12+
import twg2.parser.codeParser.Keyword;
1413
import twg2.parser.codeParser.tools.NameUtil;
1514
import twg2.parser.output.JsonWritableSig;
1615
import twg2.parser.output.WriteSettings;
@@ -25,14 +24,14 @@ public class FieldSig implements JsonWritableSig {
2524
final @Getter String name;
2625
final @Getter List<String> fullName;
2726
final @Getter TypeSig.TypeSigSimple fieldType;
28-
final @Getter List<AccessModifier> accessModifiers;
27+
final @Getter List<Keyword> accessModifiers;
2928
final @Getter List<AnnotationSig> annotations;
3029
final @Getter List<String> comments;
3130

3231

3332
@Override
3433
public void toJson(Appendable dst, WriteSettings st) throws IOException {
35-
val json = JsonStringify.inst;
34+
var json = JsonStringify.inst;
3635

3736
dst.append("{ ");
3837
json.toProp("name", (st.fullFieldName ? NameUtil.joinFqName(fullName) : fullName.get(fullName.size() - 1)), dst);

src/twg2/ast/interm/field/FieldSigResolved.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,11 @@
55

66
import lombok.AllArgsConstructor;
77
import lombok.Getter;
8-
import lombok.val;
98
import twg2.annotations.Immutable;
109
import twg2.ast.interm.annotation.AnnotationSig;
1110
import twg2.ast.interm.type.TypeSig;
1211
import twg2.io.json.stringify.JsonStringify;
13-
import twg2.parser.codeParser.AccessModifier;
12+
import twg2.parser.codeParser.Keyword;
1413
import twg2.parser.codeParser.tools.NameUtil;
1514
import twg2.parser.output.JsonWritableSig;
1615
import twg2.parser.output.WriteSettings;
@@ -25,14 +24,14 @@ public class FieldSigResolved implements JsonWritableSig {
2524
final @Getter String name;
2625
final @Getter List<String> fullName;
2726
final @Getter TypeSig.TypeSigResolved fieldType;
28-
final @Getter List<AccessModifier> accessModifiers;
27+
final @Getter List<Keyword> accessModifiers;
2928
final @Getter List<AnnotationSig> annotations;
3029
final @Getter List<String> comments;
3130

3231

3332
@Override
3433
public void toJson(Appendable dst, WriteSettings st) throws IOException {
35-
val json = JsonStringify.inst;
34+
var json = JsonStringify.inst;
3635

3736
dst.append("{ ");
3837
json.toProp("name", (st.fullFieldName ? NameUtil.joinFqName(fullName) : fullName.get(fullName.size() - 1)), dst);

src/twg2/ast/interm/method/MethodSig.java

+7-8
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,10 @@
33
import java.io.IOException;
44
import java.util.List;
55

6-
import lombok.val;
76
import twg2.annotations.Immutable;
87
import twg2.ast.interm.annotation.AnnotationSig;
98
import twg2.io.json.stringify.JsonStringify;
10-
import twg2.parser.codeParser.AccessModifier;
9+
import twg2.parser.codeParser.Keyword;
1110
import twg2.parser.codeParser.tools.NameUtil;
1211
import twg2.parser.output.JsonWritableSig;
1312
import twg2.parser.output.WriteSettings;
@@ -24,19 +23,19 @@ public class MethodSig<T_PARAM extends JsonWritableSig, T_RET extends JsonWritab
2423
public final List<String> fullName;
2524
public final List<T_PARAM> paramSigs;
2625
public final T_RET returnType;
27-
public final List<AccessModifier> accessModifiers;
26+
public final List<Keyword> accessModifiers;
2827
public final List<AnnotationSig> annotations;
2928
public final List<String> comments;
3029

3130

3231
public MethodSig(String name, List<String> fullName, List<? extends T_PARAM> paramSigs,
33-
T_RET returnType, List<? extends AccessModifier> accessModifiers, List<? extends AnnotationSig> annotations, List<String> comments) {
32+
T_RET returnType, List<? extends Keyword> accessModifiers, List<? extends AnnotationSig> annotations, List<String> comments) {
3433
@SuppressWarnings("unchecked")
35-
val paramSigsCast = (List<T_PARAM>)paramSigs;
34+
var paramSigsCast = (List<T_PARAM>)paramSigs;
3635
@SuppressWarnings("unchecked")
37-
val accessModifiersCast = (List<AccessModifier>)accessModifiers;
36+
var accessModifiersCast = (List<Keyword>)accessModifiers;
3837
@SuppressWarnings("unchecked")
39-
val annotationsCast = (List<AnnotationSig>)annotations;
38+
var annotationsCast = (List<AnnotationSig>)annotations;
4039

4140
this.name = name;
4241
this.fullName = fullName;
@@ -50,7 +49,7 @@ public MethodSig(String name, List<String> fullName, List<? extends T_PARAM> par
5049

5150
@Override
5251
public void toJson(Appendable dst, WriteSettings st) throws IOException {
53-
val json = JsonStringify.inst;
52+
var json = JsonStringify.inst;
5453

5554
dst.append("{ ");
5655
json.toProp("name", (st.fullMethodName ? NameUtil.joinFqName(fullName) : fullName.get(fullName.size() - 1)), dst);

src/twg2/ast/interm/method/MethodSigResolved.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
import twg2.annotations.Immutable;
66
import twg2.ast.interm.annotation.AnnotationSig;
77
import twg2.ast.interm.type.TypeSig;
8-
import twg2.parser.codeParser.AccessModifier;
8+
import twg2.parser.codeParser.Keyword;
99

1010
@Immutable
1111
public class MethodSigResolved extends MethodSig<ParameterSigResolved, TypeSig.TypeSigResolved> {
1212

1313
public MethodSigResolved(String name, List<String> fullName, List<? extends ParameterSigResolved> paramSigs,
14-
TypeSig.TypeSigResolved returnType, List<? extends AccessModifier> accessModifiers, List<? extends AnnotationSig> annotations, List<String> comments) {
14+
TypeSig.TypeSigResolved returnType, List<? extends Keyword> accessModifiers, List<? extends AnnotationSig> annotations, List<String> comments) {
1515
super(name, fullName, paramSigs, returnType, accessModifiers, annotations, comments);
1616
}
1717

0 commit comments

Comments
 (0)