Sfoglia il codice sorgente

Incorporate code review improvements

Mohit Gaur 1 anno fa
parent
commit
f5f79049c2
1 ha cambiato i file con 8 aggiunte e 6 eliminazioni
  1. 8 6
      parser/parser.go

+ 8 - 6
parser/parser.go

@@ -2,14 +2,12 @@ package parser
 
 import (
 	"bufio"
+	"bytes"
 	"errors"
 	"fmt"
 	"io"
-	"strings"
 )
 
-const multilineString = `"""`
-
 type Command struct {
 	Name string
 	Args string
@@ -34,21 +32,23 @@ func Parse(reader io.Reader) ([]Command, error) {
 			continue
 		}
 
-		switch strings.ToUpper(string(fields[0])) {
+		switch string(bytes.ToUpper(fields[0])) {
 		case "FROM":
 			command.Name = "model"
 			command.Args = string(fields[1])
 			// copy command for validation
 			modelCommand = command
 		case "LICENSE", "TEMPLATE", "SYSTEM", "PROMPT":
-			command.Name = strings.ToLower(string(fields[0]))
+			command.Name = string(bytes.ToLower(fields[0]))
 			command.Args = string(fields[1])
 		case "PARAMETER":
 			fields = bytes.SplitN(fields[1], []byte(" "), 2)
 			command.Name = string(fields[0])
 			command.Args = string(fields[1])
 		default:
-			return nil, fmt.Errorf("unknown command: %s", fields[0])
+			// log a warning for unknown commands
+			fmt.Printf("WARNING: Unknown command: %s\n", fields[0])
+			continue
 		}
 
 		commands = append(commands, command)
@@ -63,6 +63,8 @@ func Parse(reader io.Reader) ([]Command, error) {
 }
 
 func scanModelfile(data []byte, atEOF bool) (advance int, token []byte, err error) {
+	const multilineString = `"""`
+
 	newline := bytes.IndexByte(data, '\n')
 
 	if start := bytes.Index(data, []byte(multilineString)); start >= 0 && start < newline {