Merge pull request #1 from TakshakRamteke/dev

FEAT : added logic for a basic REPL
This commit is contained in:
2024-11-24 23:32:23 +05:30
committed by GitHub
+50
View File
@@ -0,0 +1,50 @@
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)
}
}
}