MCPcopy Create free account
hub / github.com/apache/fory / parse_enum

Method parse_enum

compiler/fory_compiler/frontend/proto/parser.py:173–198  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

171 return name, value
172
173 def parse_enum(self) -> ProtoEnum:
174 start = self.current()
175 self.consume(TokenType.ENUM, "Expected 'enum'")
176 name = self.consume(TokenType.IDENT, "Expected enum name").value
177 self.consume(TokenType.LBRACE, "Expected '{' after enum name")
178
179 values: List[ProtoEnumValue] = []
180 options = {}
181
182 while not self.check(TokenType.RBRACE):
183 if self.check(TokenType.OPTION):
184 opt_name, opt_value = self.parse_option_statement()
185 options[opt_name] = opt_value
186 elif self.check(TokenType.RESERVED):
187 self.parse_reserved()
188 else:
189 values.append(self.parse_enum_value())
190
191 self.consume(TokenType.RBRACE, "Expected '}' after enum")
192 return ProtoEnum(
193 name=name,
194 values=values,
195 options=options,
196 line=start.line,
197 column=start.column,
198 )
199
200 def parse_enum_value(self) -> ProtoEnumValue:
201 name_token = self.consume(TokenType.IDENT, "Expected enum value name")

Callers 2

parseMethod · 0.95
parse_messageMethod · 0.95

Calls 8

currentMethod · 0.95
consumeMethod · 0.95
checkMethod · 0.95
parse_reservedMethod · 0.95
parse_enum_valueMethod · 0.95
ProtoEnumClass · 0.90
appendMethod · 0.45

Tested by

no test coverage detected