package analyzer
import "git.tebibyte.media/arf/arf/file"
import "git.tebibyte.media/arf/arf/parser"
import "git.tebibyte.media/arf/arf/infoerr"
type Phrase interface {
// Provided by phraseBase
Location () (location file.Location)
NewError (message string, kind infoerr.ErrorKind) (err error)
// Must be implemented by each individual phrase
ToString (indent int) (output string)
}
type ArbitraryPhrase struct {
phraseBase
command string
arguments []Argument
type CastPhrase struct {
command Argument
// TODO more phrases lol
func (analyzer *analysisOperation) analyzePhrase (
inputPhrase parser.Phrase,
) (
phrase Phrase,
err error,
) {
return