// SPDX-FileCopyrightText: 2024 Himbeer // // SPDX-License-Identifier: GPL-3.0-or-later /* cer-bootstrap is the bootstrapping compiler for the Cer programming language. */ package main import ( "fmt" "os" ) func main() { errs := make(chan error, 1) toks := make(chan token, 1024) go lex(os.Stdin, toks, errs) // for token := range tokens { // fmt.Println(token) // } root := make(chan *rootExpr) go parse(&tokens{ src: toks, toks: make([]token, 0, len(toks)), }, root, errs) // fmt.Printf("%+v\n", <-expr) ast, ok := <-root if ok { go generate(ast, os.Stdout, errs) } err := <-errs if err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } }