// Copyright (c) 2019, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

syntax = "proto2";

package reserved_names_messages;

message assert {
}
message break {
}
message case {
}
message catch {
}
message class {
}
message const {
}
message continue {
}
message default {
}
message do {
}
message else {
}
message enum {
}
message extends {
}
message false {
}
message final {
}
message finally {
}
message for {
}
message if {
}
message in {
}
message is {
}
message new {
}
message null {
}
message rethrow {
}
message return {
}
message super {
}
message switch {
}
message this {
}
message throw {
}
message true {
}
message try {
}
message var {
}
message void {
}
message while {
}
message with {
}