Name = identifier | "?" | ExportedName .
()
| 183 | |
| 184 | // Name = identifier | "?" | ExportedName . |
| 185 | func (p *gc_parser) parse_name() (string, ast.Expr) { |
| 186 | switch p.tok { |
| 187 | case scanner.Ident: |
| 188 | name := p.lit |
| 189 | p.next() |
| 190 | return name, ast.NewIdent(name) |
| 191 | case '?': |
| 192 | p.next() |
| 193 | return "?", ast.NewIdent("?") |
| 194 | case '@': |
| 195 | en := p.parse_exported_name() |
| 196 | return en.Sel.Name, en |
| 197 | } |
| 198 | p.error("name expected") |
| 199 | return "", nil |
| 200 | } |
| 201 | |
| 202 | // Field = Name Type [ string_lit ] . |
| 203 | func (p *gc_parser) parse_field() *ast.Field { |
no test coverage detected