Something went wrong. Try again.
🌱 A minimal programming language and compiler. git.urbach.dev/cli/q
high-performance programming-language compiler
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334package core
import ( "git.urbach.dev/cli/q/src/config" "git.urbach.dev/cli/q/src/errors" "git.urbach.dev/cli/q/src/expression" "git.urbach.dev/cli/q/src/ssa")
// evaluateSyscall converts a syscall to an SSA value.func (f *Function) evaluateSyscall(expr *expression.Expression) (ssa.Value, error) { if f.Env.Build.OS == config.Windows { return nil, errors.New(SyscallNotAvailable, f.File, expr.Children[0].Source()) }
values, err := f.evaluateAll(expr.Children[1:])
if err != nil { return nil, err }
args, err := f.decompose(values)
if err != nil { return nil, err }
syscall := &ssa.Syscall{ Arguments: args, Source: expr.Source(), }
return f.Append(syscall), nil}