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:
Sasha Koshka 2022-08-15 17:05:57 -04:00
parent 614b5664fc
commit e42bad5810
3 changed files with 3 additions and 18 deletions

View File

@ -7,7 +7,7 @@ import "testing"
func checkTree (modulePath string, correct string, test *testing.T) { func checkTree (modulePath string, correct string, test *testing.T) {
tree, err := Parse(modulePath) tree, err := Parse(modulePath)
if err != io.EOF { if err != io.EOF && err != nil {
test.Log("returned error:") test.Log("returned error:")
test.Log(err.Error()) test.Log(err.Error())
test.Fail() 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) { func TestMeta (test *testing.T) {
checkTree ("../tests/parser/meta", checkTree ("../tests/parser/meta",
`:arf `:arf

View File

@ -41,7 +41,7 @@ func (identifier *Identifier) ToString () (output string) {
output += "." output += "."
} }
output += trailItem.ToString(0, false) output += trailItem
} }
return return
} }

View File

@ -17,7 +17,7 @@ type SyntaxTree struct {
// Identifier represents a chain of arguments separated by a dot. // Identifier represents a chain of arguments separated by a dot.
type Identifier struct { type Identifier struct {
location file.Location location file.Location
trail []Argument trail []string
} }
// TypeKind represents what kind of type a type is // TypeKind represents what kind of type a type is