From 054307b6c99ab962cfa9bcb4c4d50f3aea5406ea Mon Sep 17 00:00:00 2001 From: Ryo Nihei Date: Mon, 9 May 2022 23:52:56 +0900 Subject: Make the identifier format strict --- spec/syntax_error.go | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'spec/syntax_error.go') diff --git a/spec/syntax_error.go b/spec/syntax_error.go index ad847a2..cf64e75 100644 --- a/spec/syntax_error.go +++ b/spec/syntax_error.go @@ -16,12 +16,15 @@ func (e *SyntaxError) Error() string { var ( // lexical errors - synErrAutoGenID = newSyntaxError("you cannot define an identifier beginning with an underscore") - synErrUnclosedTerminal = newSyntaxError("unclosed terminal") - synErrUnclosedString = newSyntaxError("unclosed string") - synErrIncompletedEscSeq = newSyntaxError("incompleted escape sequence; unexpected EOF following a backslash") - synErrEmptyPattern = newSyntaxError("a pattern must include at least one character") - synErrEmptyString = newSyntaxError("a string must include at least one character") + synErrIDInvalidChar = newSyntaxError("an identifier can contain only the lower-case letter, the digits, and the underscore") + synErrIDInvalidUnderscorePos = newSyntaxError("the underscore cannot be placed at the beginning or end of an identifier") + synErrIDConsecutiveUnderscores = newSyntaxError("the underscore cannot be placed consecutively") + synErrIDInvalidDigitsPos = newSyntaxError("the digits cannot be placed at the biginning of an identifier") + synErrUnclosedTerminal = newSyntaxError("unclosed terminal") + synErrUnclosedString = newSyntaxError("unclosed string") + synErrIncompletedEscSeq = newSyntaxError("incompleted escape sequence; unexpected EOF following a backslash") + synErrEmptyPattern = newSyntaxError("a pattern must include at least one character") + synErrEmptyString = newSyntaxError("a string must include at least one character") // syntax errors synErrInvalidToken = newSyntaxError("invalid token") -- cgit v1.2.3