diff --git a/golang/token_determinant.go b/golang/token_determinant.go index 5451487..370c302 100644 --- a/golang/token_determinant.go +++ b/golang/token_determinant.go @@ -22,7 +22,10 @@ func ID(arg string) *Tokens { } func (v *Tokens) Pkg(arg string) *Tokens { - *v = append(*v, &models.Keyword{D: arg, Verify: true}) + if len(arg) == 0 { + return v + } + *v = append(*v, &models.Raw{D: arg, Verify: true}) return v.Op(".") } diff --git a/internal/models/letter.go b/internal/models/letter.go index 1c84a86..7cd9446 100644 --- a/internal/models/letter.go +++ b/internal/models/letter.go @@ -6,6 +6,7 @@ package models import ( + "fmt" "io" "go.osspkg.com/gogen/internal/gen" @@ -21,12 +22,16 @@ func (v *Letter) Render(w io.Writer) error { } type Raw struct { - D string - T types.Token - AT []types.Token + D string + T types.Token + AT []types.Token + Verify bool } func (v *Raw) Render(w io.Writer) error { + if v.Verify && !rexLetter.MatchString(v.D) { + return fmt.Errorf("invalid letter: %s", v.D) + } if err := gen.Render(w, v.D); err != nil { return err }