2024-11-24 23:30:40 +05:30
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"fmt"
|
|
|
|
|
"os"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type inputBuffer struct {
|
|
|
|
|
buffer string
|
|
|
|
|
bufferLength int
|
|
|
|
|
inputLength int
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func createInputBuffer() inputBuffer {
|
|
|
|
|
newInputBuffer := inputBuffer{"", 0, 0}
|
|
|
|
|
return newInputBuffer
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func printConsole() {
|
|
|
|
|
fmt.Print("godb > ")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func readConsole(inputBuffer inputBuffer) inputBuffer {
|
|
|
|
|
fmt.Scanf("%s", &inputBuffer.buffer)
|
|
|
|
|
bytesRead := len(inputBuffer.buffer)
|
|
|
|
|
if bytesRead <= 0 {
|
|
|
|
|
fmt.Println("Error reading input")
|
|
|
|
|
os.Exit(1)
|
|
|
|
|
}
|
|
|
|
|
inputBuffer.inputLength = bytesRead - 1
|
|
|
|
|
|
|
|
|
|
return inputBuffer
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
|
inputBuffer := createInputBuffer()
|
|
|
|
|
condition := true
|
|
|
|
|
for condition {
|
|
|
|
|
printConsole()
|
|
|
|
|
inputBuffer = readConsole(inputBuffer)
|
|
|
|
|
|
|
|
|
|
if inputBuffer.buffer == ".exit" {
|
|
|
|
|
fmt.Println("bye!")
|
|
|
|
|
os.Exit(0)
|
|
|
|
|
} else {
|
|
|
|
|
fmt.Printf("unrecognised command %v\n", inputBuffer.buffer)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|