From 086f06b45407078f313e9d61e52531512b68d253 Mon Sep 17 00:00:00 2001 From: robert2 Date: Thu, 1 Feb 2018 12:26:47 -0600 Subject: [PATCH] Update ProtoTuple. --- .../boa/types/proto/ASTRootProtoTuple.java | 14 +++++ .../types/proto/ChangedFileProtoTuple.java | 15 +++++- .../boa/types/proto/CommentProtoTuple.java | 12 ++++- .../types/proto/DeclarationProtoTuple.java | 20 +++++++ .../boa/types/proto/ExpressionProtoTuple.java | 45 ++++++++++++++++ .../boa/types/proto/MethodProtoTuple.java | 17 ++++++ .../boa/types/proto/ModifierProtoTuple.java | 15 ++++++ .../boa/types/proto/NamespaceProtoTuple.java | 17 ++++-- .../types/proto/PositionInfoProtoTuple.java | 53 +++++++++++++++++++ .../boa/types/proto/StatementProtoTuple.java | 32 ++++++++++- src/java/boa/types/proto/TypeProtoTuple.java | 23 ++++++++ .../boa/types/proto/enums/ScopeProtoMap.java | 14 +++++ 12 files changed, 270 insertions(+), 7 deletions(-) create mode 100644 src/java/boa/types/proto/PositionInfoProtoTuple.java create mode 100644 src/java/boa/types/proto/enums/ScopeProtoMap.java diff --git a/src/java/boa/types/proto/ASTRootProtoTuple.java b/src/java/boa/types/proto/ASTRootProtoTuple.java index 8db01a77e..97ad296cf 100644 --- a/src/java/boa/types/proto/ASTRootProtoTuple.java +++ b/src/java/boa/types/proto/ASTRootProtoTuple.java @@ -21,10 +21,12 @@ import java.util.List; import java.util.Map; +import boa.types.BoaInt; import boa.types.BoaProtoList; import boa.types.BoaProtoTuple; import boa.types.BoaString; import boa.types.BoaType; +import boa.types.proto.enums.ChangeKindProtoMap; /** * A {@link ASTRootProtoTuple}. @@ -40,6 +42,18 @@ public class ASTRootProtoTuple extends BoaProtoTuple { names.put("namespaces", counter++); members.add(new BoaProtoList(new NamespaceProtoTuple())); + + names.put("names", counter++); + members.add(new BoaString()); + + names.put("change_kind", counter++); + members.add(new ChangeKindProtoMap()); + + names.put("mapped_node", counter++); + members.add(new BoaInt()); + + names.put("key", counter++); + members.add(new BoaInt()); } /** diff --git a/src/java/boa/types/proto/ChangedFileProtoTuple.java b/src/java/boa/types/proto/ChangedFileProtoTuple.java index 12674f39c..149ef7acf 100644 --- a/src/java/boa/types/proto/ChangedFileProtoTuple.java +++ b/src/java/boa/types/proto/ChangedFileProtoTuple.java @@ -21,6 +21,7 @@ import java.util.List; import java.util.Map; +import boa.types.BoaBool; import boa.types.BoaInt; import boa.types.BoaProtoList; import boa.types.BoaProtoTuple; @@ -53,6 +54,15 @@ public class ChangedFileProtoTuple extends BoaProtoTuple { // NOTE: this is here to make reachableTypes() work properly names.put("_placeholder_", counter++); members.add(new ASTRootProtoTuple()); + + names.put("key", counter++); + members.add(new BoaInt()); + + names.put("ast", counter++); + members.add(new BoaBool()); + + names.put("comments", counter++); + members.add(new CommentsRootProtoTuple()); names.put("changes", counter++); members.add(new BoaProtoList(new ChangeKindProtoMap())); @@ -60,8 +70,11 @@ public class ChangedFileProtoTuple extends BoaProtoTuple { names.put("previous_versions", counter++); members.add(new BoaProtoList(new BoaInt())); - names.put("previous_index", counter++); + names.put("previous_indices", counter++); members.add(new BoaProtoList(new BoaInt())); + + names.put("mapped_key", counter++); + members.add(new BoaInt()); } /** diff --git a/src/java/boa/types/proto/CommentProtoTuple.java b/src/java/boa/types/proto/CommentProtoTuple.java index 7f1daca77..046c83d17 100644 --- a/src/java/boa/types/proto/CommentProtoTuple.java +++ b/src/java/boa/types/proto/CommentProtoTuple.java @@ -25,6 +25,7 @@ import boa.types.BoaProtoTuple; import boa.types.BoaString; import boa.types.BoaType; +import boa.types.proto.enums.ChangeKindProtoMap; import boa.types.proto.enums.CommentKindProtoMap; /** @@ -45,7 +46,16 @@ public class CommentProtoTuple extends BoaProtoTuple { names.put("value", count++); members.add(new BoaString()); - names.put("start_line", count++); + names.put("position", count++); + members.add(new PositionInfoProtoTuple()); + + names.put("change_kind", count++); + members.add(new ChangeKindProtoMap()); + + names.put("mapped_node", count++); + members.add(new BoaInt()); + + names.put("key", count++); members.add(new BoaInt()); } diff --git a/src/java/boa/types/proto/DeclarationProtoTuple.java b/src/java/boa/types/proto/DeclarationProtoTuple.java index 038220d26..6261f28c0 100644 --- a/src/java/boa/types/proto/DeclarationProtoTuple.java +++ b/src/java/boa/types/proto/DeclarationProtoTuple.java @@ -21,10 +21,12 @@ import java.util.List; import java.util.Map; +import boa.types.BoaInt; import boa.types.BoaProtoList; import boa.types.BoaProtoTuple; import boa.types.BoaString; import boa.types.BoaType; +import boa.types.proto.enums.ChangeKindProtoMap; import boa.types.proto.enums.TypeKindProtoMap; /** @@ -65,6 +67,24 @@ public class DeclarationProtoTuple extends BoaProtoTuple { names.put("comments", counter++); members.add(new BoaProtoList(new CommentProtoTuple())); + + names.put("change_kind", counter++); + members.add(new ChangeKindProtoMap()); + + names.put("mapped_node", counter++); + members.add(new BoaInt()); + + names.put("key", counter++); + members.add(new BoaInt()); + + names.put("fully_qualified_name", counter++); + members.add(new BoaString()); + + names.put("declaring_type", counter++); + members.add(new BoaInt()); + + names.put("statements", counter++); + members.add(new BoaProtoList(new StatementProtoTuple())); } /** diff --git a/src/java/boa/types/proto/ExpressionProtoTuple.java b/src/java/boa/types/proto/ExpressionProtoTuple.java index 2c6ac46ad..b0b9af330 100644 --- a/src/java/boa/types/proto/ExpressionProtoTuple.java +++ b/src/java/boa/types/proto/ExpressionProtoTuple.java @@ -22,10 +22,12 @@ import java.util.Map; import boa.types.BoaBool; +import boa.types.BoaInt; import boa.types.BoaProtoList; import boa.types.BoaProtoTuple; import boa.types.BoaString; import boa.types.BoaType; +import boa.types.proto.enums.ChangeKindProtoMap; import boa.types.proto.enums.ExpressionKindProtoMap; /** @@ -75,6 +77,49 @@ public class ExpressionProtoTuple extends BoaProtoTuple { names.put("annotation", counter++); members.add(new ModifierProtoTuple()); + + names.put("no_parens", counter++); + members.add(new BoaBool()); + + names.put("change_kind", counter++); + members.add(new ChangeKindProtoMap()); + + names.put("mapped_node", counter++); + members.add(new BoaInt()); + + names.put("key", counter++); + members.add(new BoaInt()); + + names.put("declaring_type", counter++); + members.add(new TypeProtoTuple()); + + names.put("return_type", counter++); + members.add(new TypeProtoTuple()); + + names.put("methods", counter++); + members.add(new BoaProtoList(new MethodProtoTuple())); + + names.put("statements", counter++); + members.add(new BoaProtoList(new StatementProtoTuple())); + + names.put("is_member_access", counter++); + members.add(new BoaBool()); + + names.put("dolar_sign", counter++); + members.add(new BoaBool()); + + names.put("computed_method", counter++); + members.add(new ExpressionProtoTuple()); + + names.put("is_static", counter++); + members.add(new BoaBool()); + + names.put("has_from", counter++); + members.add(new BoaBool()); + + names.put("trait", counter++); + members.add(new MethodProtoTuple()); + } /** diff --git a/src/java/boa/types/proto/MethodProtoTuple.java b/src/java/boa/types/proto/MethodProtoTuple.java index 5c0342de7..728de44f2 100644 --- a/src/java/boa/types/proto/MethodProtoTuple.java +++ b/src/java/boa/types/proto/MethodProtoTuple.java @@ -21,10 +21,12 @@ import java.util.List; import java.util.Map; +import boa.types.BoaInt; import boa.types.BoaProtoList; import boa.types.BoaProtoTuple; import boa.types.BoaString; import boa.types.BoaType; +import boa.types.proto.enums.ChangeKindProtoMap; /** * A {@link MethodProtoTuple}. @@ -61,6 +63,21 @@ public class MethodProtoTuple extends BoaProtoTuple { names.put("comments", counter++); members.add(new BoaProtoList(new CommentProtoTuple())); + + names.put("change_kind", counter++); + members.add(new ChangeKindProtoMap()); + + names.put("mapped_node", counter++); + members.add(new BoaInt()); + + names.put("key", counter++); + members.add(new BoaInt()); + + names.put("declaring_type", counter++); + members.add(new BoaInt()); + + names.put("computed_name", counter++); + members.add(new ExpressionProtoTuple()); } /** diff --git a/src/java/boa/types/proto/ModifierProtoTuple.java b/src/java/boa/types/proto/ModifierProtoTuple.java index 329c773c1..ab512b28e 100644 --- a/src/java/boa/types/proto/ModifierProtoTuple.java +++ b/src/java/boa/types/proto/ModifierProtoTuple.java @@ -21,11 +21,14 @@ import java.util.List; import java.util.Map; +import boa.types.BoaInt; import boa.types.BoaProtoList; import boa.types.BoaProtoTuple; import boa.types.BoaString; import boa.types.BoaType; +import boa.types.proto.enums.ChangeKindProtoMap; import boa.types.proto.enums.ModifierKindProtoMap; +import boa.types.proto.enums.ScopeProtoMap; import boa.types.proto.enums.VisibilityProtoMap; /** @@ -57,6 +60,18 @@ public class ModifierProtoTuple extends BoaProtoTuple { names.put("other", counter++); members.add(new BoaString()); + + names.put("change_kind", counter++); + members.add(new ChangeKindProtoMap()); + + names.put("mapped_node", counter++); + members.add(new BoaInt()); + + names.put("key", counter++); + members.add(new BoaInt()); + + names.put("scope", counter++); + members.add(new ScopeProtoMap()); } /** diff --git a/src/java/boa/types/proto/NamespaceProtoTuple.java b/src/java/boa/types/proto/NamespaceProtoTuple.java index 2f981b21b..0e06e458b 100644 --- a/src/java/boa/types/proto/NamespaceProtoTuple.java +++ b/src/java/boa/types/proto/NamespaceProtoTuple.java @@ -21,10 +21,12 @@ import java.util.List; import java.util.Map; +import boa.types.BoaInt; import boa.types.BoaProtoList; import boa.types.BoaProtoTuple; import boa.types.BoaString; import boa.types.BoaType; +import boa.types.proto.enums.ChangeKindProtoMap; /** * A {@link NamespaceProtoTuple}. @@ -46,9 +48,6 @@ public class NamespaceProtoTuple extends BoaProtoTuple { names.put("declarations", counter++); members.add(new BoaProtoList(new DeclarationProtoTuple())); - - names.put("comments", counter++); - members.add(new BoaProtoList(new CommentProtoTuple())); names.put("statements", counter++); members.add(new BoaProtoList(new StatementProtoTuple())); @@ -59,11 +58,23 @@ public class NamespaceProtoTuple extends BoaProtoTuple { names.put("expressions", counter++); members.add(new BoaProtoList(new ExpressionProtoTuple())); + names.put("change_kind", counter++); + members.add(new ChangeKindProtoMap()); + + names.put("mapped_node", counter++); + members.add(new BoaInt()); + + names.put("key", counter++); + members.add(new BoaInt()); + names.put("namespaces", counter++); members.add(new BoaProtoList(new NamespaceProtoTuple())); names.put("imports", counter++); members.add(new BoaProtoList(new BoaString())); + + names.put("variables", counter++); + members.add(new BoaProtoList(new VariableProtoTuple())); } /** diff --git a/src/java/boa/types/proto/PositionInfoProtoTuple.java b/src/java/boa/types/proto/PositionInfoProtoTuple.java new file mode 100644 index 000000000..3c33f8fa1 --- /dev/null +++ b/src/java/boa/types/proto/PositionInfoProtoTuple.java @@ -0,0 +1,53 @@ +package boa.types.proto; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import boa.types.BoaInt; +import boa.types.BoaProtoTuple; +import boa.types.BoaString; +import boa.types.BoaType; +import boa.types.proto.enums.CommentKindProtoMap; + +public class PositionInfoProtoTuple extends BoaProtoTuple { + private final static List members = new ArrayList(); + private final static Map names = new HashMap(); + + static { + int count = 0; + + names.put("start_pos", count++); + members.add(new BoaInt()); + + names.put("length", count++); + members.add(new BoaInt()); + + names.put("start_line", count++); + members.add(new BoaInt()); + + names.put("start_col", count++); + members.add(new BoaInt()); + + names.put("end_line", count++); + members.add(new BoaInt()); + + names.put("end_col", count++); + members.add(new BoaInt()); + } + + /** + * Construct a {@link PositionInfoProtoTuple}. + */ + public PositionInfoProtoTuple() { + super(members, names); + } + + /** @{inheritDoc} */ + @Override + public String toJavaType() { + return "boa.types.Ast.PositionInfo"; + } + +} diff --git a/src/java/boa/types/proto/StatementProtoTuple.java b/src/java/boa/types/proto/StatementProtoTuple.java index b71f867d8..fec36ca9f 100644 --- a/src/java/boa/types/proto/StatementProtoTuple.java +++ b/src/java/boa/types/proto/StatementProtoTuple.java @@ -21,9 +21,12 @@ import java.util.List; import java.util.Map; +import boa.types.BoaInt; import boa.types.BoaProtoList; import boa.types.BoaProtoTuple; +import boa.types.BoaString; import boa.types.BoaType; +import boa.types.proto.enums.ChangeKindProtoMap; import boa.types.proto.enums.StatementKindProtoMap; /** @@ -50,8 +53,8 @@ public class StatementProtoTuple extends BoaProtoTuple { names.put("initializations", counter++); members.add(new BoaProtoList(new ExpressionProtoTuple())); - names.put("condition", counter++); - members.add(new ExpressionProtoTuple()); + names.put("conditions", counter++); + members.add(new BoaProtoList(new ExpressionProtoTuple())); names.put("updates", counter++); members.add(new BoaProtoList(new ExpressionProtoTuple())); @@ -64,6 +67,31 @@ public class StatementProtoTuple extends BoaProtoTuple { names.put("expression", counter++); members.add(new ExpressionProtoTuple()); + + names.put("expressions", counter++); + members.add(new BoaProtoList(new ExpressionProtoTuple())); + + names.put("change_kind", counter++); + members.add(new ChangeKindProtoMap()); + + names.put("mapped_node", counter++); + members.add(new BoaInt()); + + names.put("key", counter++); + members.add(new BoaInt()); + + names.put("methods", counter++); + members.add(new BoaProtoList(new MethodProtoTuple())); + + names.put("variable_declarations", counter++); + members.add(new BoaProtoList(new VariableProtoTuple())); + + names.put("type_declarations", counter++); + members.add(new BoaProtoList(new DeclarationProtoTuple())); + + names.put("names", counter++); + members.add(new BoaProtoList(new BoaString())); + } /** diff --git a/src/java/boa/types/proto/TypeProtoTuple.java b/src/java/boa/types/proto/TypeProtoTuple.java index a1668283b..c440f4f4a 100644 --- a/src/java/boa/types/proto/TypeProtoTuple.java +++ b/src/java/boa/types/proto/TypeProtoTuple.java @@ -21,9 +21,11 @@ import java.util.List; import java.util.Map; +import boa.types.BoaInt; import boa.types.BoaProtoTuple; import boa.types.BoaString; import boa.types.BoaType; +import boa.types.proto.enums.ChangeKindProtoMap; import boa.types.proto.enums.TypeKindProtoMap; /** @@ -46,6 +48,27 @@ public class TypeProtoTuple extends BoaProtoTuple { names.put("qualified_name", counter++); members.add(new BoaString()); + + names.put("id", counter++); + members.add(new BoaString()); + + names.put("change_kind", counter++); + members.add(new ChangeKindProtoMap()); + + names.put("mapped_node", counter++); + members.add(new BoaInt()); + + names.put("declaration_file", counter++); + members.add(new BoaInt()); + + names.put("declaration", counter++); + members.add(new BoaInt()); + + names.put("key", counter++); + members.add(new BoaInt()); + + names.put("computed_name", counter++); + members.add(new ExpressionProtoTuple()); } /** diff --git a/src/java/boa/types/proto/enums/ScopeProtoMap.java b/src/java/boa/types/proto/enums/ScopeProtoMap.java new file mode 100644 index 000000000..2290d1fd2 --- /dev/null +++ b/src/java/boa/types/proto/enums/ScopeProtoMap.java @@ -0,0 +1,14 @@ +package boa.types.proto.enums; + +import com.google.protobuf.ProtocolMessageEnum; + +import boa.types.BoaProtoMap; + +public class ScopeProtoMap extends BoaProtoMap { + + @Override + protected Class getEnumClass() { + return boa.types.Ast.Modifier.Scope.class; + } + +}