Identifiers can no longer have arguments in them
Previously [[something something].something] would have been syntactically correct. This can lead to ugly and cluttered syntax due to violating the one thing per line guideline (that I've forgotten to write down) and would make the parser incredibly convoluded. Member selection in arf is not an operator and should not be treated as such. It would be much better to just use variables for this.
This commit is contained in:
parent
614b5664fc
commit
e42bad5810
@ -7,7 +7,7 @@ import "testing"
|
||||
func checkTree (modulePath string, correct string, test *testing.T) {
|
||||
tree, err := Parse(modulePath)
|
||||
|
||||
if err != io.EOF {
|
||||
if err != io.EOF && err != nil {
|
||||
test.Log("returned error:")
|
||||
test.Log(err.Error())
|
||||
test.Fail()
|
||||
@ -26,21 +26,6 @@ func checkTree (modulePath string, correct string, test *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
// quickIdentifier returns a simple identifier of names
|
||||
func quickIdentifier (trail ...string) (identifier Identifier) {
|
||||
for _, item := range trail {
|
||||
identifier.trail = append (
|
||||
identifier.trail,
|
||||
Argument {
|
||||
what: ArgumentKindString,
|
||||
value: item,
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func TestMeta (test *testing.T) {
|
||||
checkTree ("../tests/parser/meta",
|
||||
`:arf
|
||||
|
@ -41,7 +41,7 @@ func (identifier *Identifier) ToString () (output string) {
|
||||
output += "."
|
||||
}
|
||||
|
||||
output += trailItem.ToString(0, false)
|
||||
output += trailItem
|
||||
}
|
||||
return
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ type SyntaxTree struct {
|
||||
// Identifier represents a chain of arguments separated by a dot.
|
||||
type Identifier struct {
|
||||
location file.Location
|
||||
trail []Argument
|
||||
trail []string
|
||||
}
|
||||
|
||||
// TypeKind represents what kind of type a type is
|
||||
|
Reference in New Issue
Block a user