Commit b6d0a22d authored by Robert Griesemer's avatar Robert Griesemer

gofmt-ify ebnf

R=r
http://go/go-review/1018050
parent 646a2c5a
...@@ -37,72 +37,72 @@ import ( ...@@ -37,72 +37,72 @@ import (
type ( type (
// An Expression node represents a production expression. // An Expression node represents a production expression.
Expression interface { Expression interface {
// Pos is the position of the first character of the syntactic construct // Pos is the position of the first character of the syntactic construct
Pos() token.Position; Pos() token.Position;
}; };
// An Alternative node represents a non-empty list of alternative expressions. // An Alternative node represents a non-empty list of alternative expressions.
Alternative []Expression; // x | y | z Alternative []Expression; // x | y | z
// A Sequence node represents a non-empty list of sequential expressions. // A Sequence node represents a non-empty list of sequential expressions.
Sequence []Expression; // x y z Sequence []Expression; // x y z
// A Name node represents a production name. // A Name node represents a production name.
Name struct { Name struct {
token.Position; token.Position;
String string; String string;
}; };
// A Token node represents a literal. // A Token node represents a literal.
Token struct { Token struct {
token.Position; token.Position;
String string; String string;
}; };
// A List node represents a range of characters. // A List node represents a range of characters.
Range struct { Range struct {
Begin, End *Token; // begin ... end Begin, End *Token; // begin ... end
}; };
// A Group node represents a grouped expression. // A Group node represents a grouped expression.
Group struct { Group struct {
token.Position; token.Position;
Body Expression; // (body) Body Expression; // (body)
}; };
// An Option node represents an optional expression. // An Option node represents an optional expression.
Option struct { Option struct {
token.Position; token.Position;
Body Expression; // [body] Body Expression; // [body]
}; };
// A Repetition node represents a repeated expression. // A Repetition node represents a repeated expression.
Repetition struct { Repetition struct {
token.Position; token.Position;
Body Expression; // {body} Body Expression; // {body}
}; };
// A Production node represents an EBNF production. // A Production node represents an EBNF production.
Production struct { Production struct {
Name *Name; Name *Name;
Expr Expression; Expr Expression;
}; };
// A Grammar is a set of EBNF productions. The map // A Grammar is a set of EBNF productions. The map
// is indexed by production name. // is indexed by production name.
// //
Grammar map [string] *Production; Grammar map[string]*Production;
) )
func (x Alternative) Pos() token.Position { func (x Alternative) Pos() token.Position {
return x[0].Pos(); // the parser always generates non-empty Alternative return x[0].Pos(); // the parser always generates non-empty Alternative
} }
func (x Sequence) Pos() token.Position { func (x Sequence) Pos() token.Position {
return x[0].Pos(); // the parser always generates non-empty Sequences return x[0].Pos(); // the parser always generates non-empty Sequences
} }
...@@ -127,9 +127,9 @@ func isLexical(name string) bool { ...@@ -127,9 +127,9 @@ func isLexical(name string) bool {
type verifier struct { type verifier struct {
scanner.ErrorVector; scanner.ErrorVector;
worklist vector.Vector; worklist vector.Vector;
reached Grammar; // set of productions reached from (and including) the root production reached Grammar; // set of productions reached from (and including) the root production
grammar Grammar; grammar Grammar;
} }
......
...@@ -11,7 +11,7 @@ import ( ...@@ -11,7 +11,7 @@ import (
) )
var grammars = []string { var grammars = []string{
`Program = . `Program = .
`, `,
...@@ -58,8 +58,8 @@ func TestGrammars(t *testing.T) { ...@@ -58,8 +58,8 @@ func TestGrammars(t *testing.T) {
} }
var files = []string { var files = []string{
// TODO(gri) add some test files // TODO(gri) add some test files
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment