Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(741)

Unified Diff: runtime/vm/parser.h

Issue 63983005: Simplify the desugaring of catch clauses. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Simple cleanups to indentation and comments. Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: runtime/vm/parser.h
diff --git a/runtime/vm/parser.h b/runtime/vm/parser.h
index ccdff42f6e260124d3bb5de087a2041e8e116b86..5c04b687222b92cb731f0d4df9b6519d54f16543 100644
--- a/runtime/vm/parser.h
+++ b/runtime/vm/parser.h
@@ -7,29 +7,32 @@
#include "include/dart_api.h"
+#include "platform/assert.h"
Kevin Millikin (Google) 2013/11/08 11:03:56 This file uses the ASSERT macro and so needs the d
+#include "platform/globals.h"
Kevin Millikin (Google) 2013/11/08 11:03:56 This file uses the PRINTF_ATTRIBUTE macro and so n
#include "lib/invocation_mirror.h"
+#include "vm/allocation.h"
Kevin Millikin (Google) 2013/11/08 11:03:56 This file uses base classes ZoneAllocated and Valu
#include "vm/ast.h"
Kevin Millikin (Google) 2013/11/08 11:03:56 Note that this file doesn't actually need ast.h, j
#include "vm/class_finalizer.h"
#include "vm/compiler_stats.h"
-#include "vm/scanner.h"
Kevin Millikin (Google) 2013/11/08 11:03:56 scanner.h declares a single type Scanner, which is
+#include "vm/object.h"
Kevin Millikin (Google) 2013/11/08 11:03:56 This file needs a long list of types from object.h
+#include "vm/raw_object.h"
Kevin Millikin (Google) 2013/11/08 11:03:56 Needs types from raw_object.h. Probably could do
+#include "vm/token.h"
Kevin Millikin (Google) 2013/11/08 11:03:56 This file needs the definition of Token::Kind.
namespace dart {
// Forward declarations.
class ArgumentsDescriptor;
-class Function;
Kevin Millikin (Google) 2013/11/08 11:03:56 Not needed if we include object.h. Otherwise, we
class Isolate;
-class LiteralToken;
Kevin Millikin (Google) 2013/11/08 11:03:56 Not needed if we include token.h (which we need to
-class Script;
-class TokenStream;
+class LocalScope;
Kevin Millikin (Google) 2013/11/08 11:03:56 This class and the next two need forward declarati
+class LocalVariable;
+class SourceLabel;
+template <typename T> class GrowableArray;
Kevin Millikin (Google) 2013/11/08 11:03:56 Likewise.
struct TopLevel;
class ClassDesc;
struct MemberDesc;
struct ParamList;
struct QualIdent;
-struct CatchParamDesc;
Kevin Millikin (Google) 2013/11/08 11:03:56 I've moved the only helper that uses this type to
-struct FieldInitExpression;
Kevin Millikin (Google) 2013/11/08 11:03:56 This is just dead. There is no definition and no
// The class ParsedFunction holds the result of parsing a function.
class ParsedFunction : public ZoneAllocated {
@@ -506,9 +509,12 @@ class Parser : public ValueObject {
AstNode* ParseSwitchStatement(String* label_name);
// try/catch/finally parsing.
- void AddCatchParamsToScope(const CatchParamDesc& exception_param,
- const CatchParamDesc& stack_trace_param,
- LocalScope* scope);
+ // Parse a catch clause (and recursively all the following ones).
+ AstNode* ParseCatchClause(intptr_t handler_pos,
+ LocalVariable* exception_var,
+ LocalVariable* stack_trace_var,
+ const GrowableObjectArray& handler_types,
+ bool* needs_stack_trace);
// Parse finally block and create an AST for it.
SequenceNode* ParseFinallyBlock();
// Adds try block to the list of try blocks seen so far.
« no previous file with comments | « runtime/vm/flow_graph_builder.cc ('k') | runtime/vm/parser.cc » ('j') | runtime/vm/parser.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698