diff options
-rw-r--r-- | bootstrap.go | 4 | ||||
-rw-r--r-- | dep.go | 4 | ||||
-rw-r--r-- | depgraph.go | 6 | ||||
-rw-r--r-- | eval.go | 10 | ||||
-rw-r--r-- | func.go | 2 | ||||
-rw-r--r-- | parser.go | 36 | ||||
-rw-r--r-- | testcase/gen_testcase_parse_benchmark.go | 4 |
7 files changed, 30 insertions, 36 deletions
diff --git a/bootstrap.go b/bootstrap.go index de13b2b..30ca77d 100644 --- a/bootstrap.go +++ b/bootstrap.go @@ -22,7 +22,7 @@ import ( const bootstrapMakefileName = "*bootstrap*" -func BootstrapMakefile(targets []string) Makefile { +func bootstrapMakefile(targets []string) makefile { bootstrap := ` CC:=cc CXX:=g++ @@ -48,7 +48,7 @@ SHELL:=/bin/sh panic(err) } bootstrap += fmt.Sprintf("CURDIR:=%s\n", cwd) - mk, err := ParseMakefileString(bootstrap, bootstrapMakefileName, 0) + mk, err := parseMakefileString(bootstrap, bootstrapMakefileName, 0) if err != nil { panic(err) } @@ -440,7 +440,7 @@ func (db *depBuilder) populateImplicitRule(r *rule) { } } -func (db *depBuilder) populateRules(er *EvalResult) { +func (db *depBuilder) populateRules(er *evalResult) { for _, r := range er.rules { for i, input := range r.inputs { r.inputs[i] = trimLeadingCurdir(input) @@ -500,7 +500,7 @@ func (db *depBuilder) reportStats() { } } -func newDepBuilder(er *EvalResult, vars Vars) *depBuilder { +func newDepBuilder(er *evalResult, vars Vars) *depBuilder { db := &depBuilder{ rules: make(map[string]*rule), ruleVars: er.ruleVars, diff --git a/depgraph.go b/depgraph.go index da0ff1b..2f0b427 100644 --- a/depgraph.go +++ b/depgraph.go @@ -53,13 +53,13 @@ func Load(makefile string, opt LoadOpt) (*DepGraph, error) { } } - bmk := BootstrapMakefile(opt.Targets) + bmk := bootstrapMakefile(opt.Targets) content, err := ioutil.ReadFile(makefile) if err != nil { return nil, err } - mk, err := ParseMakefile(content, makefile) + mk, err := parseMakefile(content, makefile) if err != nil { return nil, err } @@ -79,7 +79,7 @@ func Load(makefile string, opt LoadOpt) (*DepGraph, error) { if err != nil { return nil, err } - er, err := Eval(mk, vars, opt.UseCache) + er, err := eval(mk, vars, opt.UseCache) if err != nil { return nil, err } @@ -97,7 +97,7 @@ func (ac *accessCache) Slice() []*accessedMakefile { return r } -type EvalResult struct { +type evalResult struct { vars Vars rules []*rule ruleVars map[string]Vars @@ -275,7 +275,7 @@ func (ev *Evaluator) evalCommand(ast *commandAST) { // assign_after_tab.mk. if strings.IndexByte(ast.cmd, '=') >= 0 { line := trimLeftSpace(ast.cmd) - mk, err := ParseMakefileString(line, ast.filename, ast.lineno) + mk, err := parseMakefileString(line, ast.filename, ast.lineno) if err != nil { panic(err) } @@ -331,7 +331,7 @@ func (ev *Evaluator) EvaluateVar(name string) string { return buf.String() } -func (ev *Evaluator) evalIncludeFile(fname string, mk Makefile) error { +func (ev *Evaluator) evalIncludeFile(fname string, mk makefile) error { te := traceEvent.begin("include", literal(fname), traceEventMain) defer func() { traceEvent.end(te) @@ -465,7 +465,7 @@ func (ev *Evaluator) eval(stmt ast) { stmt.eval(ev) } -func Eval(mk Makefile, vars Vars, useCache bool) (er *EvalResult, err error) { +func eval(mk makefile, vars Vars, useCache bool) (er *evalResult, err error) { ev := NewEvaluator(vars) if useCache { ev.cache = newAccessCache() @@ -487,7 +487,7 @@ func Eval(mk Makefile, vars Vars, useCache bool) (er *EvalResult, err error) { ev.eval(stmt) } - return &EvalResult{ + return &evalResult{ vars: ev.outVars, rules: ev.outRules, ruleVars: ev.outRuleVars, @@ -886,7 +886,7 @@ func (f *funcEval) Eval(w io.Writer, ev *Evaluator) { f.args[1].Eval(abuf, ev) s := abuf.Bytes() Logf("eval %q at %s:%d", s, ev.filename, ev.lineno) - mk, err := ParseMakefileBytes(s, ev.filename, ev.lineno) + mk, err := parseMakefileBytes(s, ev.filename, ev.lineno) if err != nil { panic(err) } @@ -26,13 +26,12 @@ import ( "fmt" "io" "io/ioutil" - "os" "strings" "sync" "time" ) -type Makefile struct { +type makefile struct { filename string stmts []ast } @@ -45,7 +44,7 @@ type ifState struct { type parser struct { rd *bufio.Reader - mk Makefile + mk makefile lineno int elineno int // lineno == elineno unless there is trailing '\'. linenoFixed bool @@ -569,7 +568,7 @@ func (p *parser) isEndef(s string) bool { return false } -func (p *parser) parse() (mk Makefile, err error) { +func (p *parser) parse() (mk makefile, err error) { defer func() { if r := recover(); r != nil { err = fmt.Errorf("panic in parse %s: %v", mk.filename, r) @@ -679,11 +678,6 @@ func (p *parser) parse() (mk Makefile, err error) { return p.mk, nil } -func ParseMakefileFd(filename string, f *os.File) (Makefile, error) { - parser := newParser(f, filename) - return parser.parse() -} - func defaultMakefile() string { candidates := []string{"GNUmakefile", "makefile", "Makefile"} for _, filename := range candidates { @@ -695,7 +689,7 @@ func defaultMakefile() string { panic("") // Cannot be reached. } -func parseMakefileReader(rd io.Reader, name string, lineno int) (Makefile, error) { +func parseMakefileReader(rd io.Reader, name string, lineno int) (makefile, error) { parser := newParser(rd, name) parser.lineno = lineno parser.elineno = lineno @@ -703,16 +697,16 @@ func parseMakefileReader(rd io.Reader, name string, lineno int) (Makefile, error return parser.parse() } -func ParseMakefileString(s string, name string, lineno int) (Makefile, error) { +func parseMakefileString(s string, name string, lineno int) (makefile, error) { return parseMakefileReader(strings.NewReader(s), name, lineno) } -func ParseMakefileBytes(s []byte, name string, lineno int) (Makefile, error) { +func parseMakefileBytes(s []byte, name string, lineno int) (makefile, error) { return parseMakefileReader(bytes.NewReader(s), name, lineno) } type mkCacheEntry struct { - mk Makefile + mk makefile hash [sha1.Size]byte err error ts int64 @@ -727,22 +721,22 @@ var makefileCache = &makefileCacheT{ mk: make(map[string]mkCacheEntry), } -func (mc *makefileCacheT) lookup(filename string) (Makefile, [sha1.Size]byte, bool, error) { +func (mc *makefileCacheT) lookup(filename string) (makefile, [sha1.Size]byte, bool, error) { var hash [sha1.Size]byte mc.mu.Lock() c, present := mc.mk[filename] mc.mu.Unlock() if !present { - return Makefile{}, hash, false, nil + return makefile{}, hash, false, nil } ts := getTimestamp(filename) if ts < 0 || ts >= c.ts { - return Makefile{}, hash, false, nil + return makefile{}, hash, false, nil } return c.mk, c.hash, true, c.err } -func (mc *makefileCacheT) parse(filename string) (Makefile, [sha1.Size]byte, error) { +func (mc *makefileCacheT) parse(filename string) (makefile, [sha1.Size]byte, error) { Logf("parse Makefile %q", filename) mk, hash, ok, err := makefileCache.lookup(filename) if ok { @@ -756,12 +750,12 @@ func (mc *makefileCacheT) parse(filename string) (Makefile, [sha1.Size]byte, err } c, err := ioutil.ReadFile(filename) if err != nil { - return Makefile{}, hash, err + return makefile{}, hash, err } hash = sha1.Sum(c) - mk, err = ParseMakefile(c, filename) + mk, err = parseMakefile(c, filename) if err != nil { - return Makefile{}, hash, err + return makefile{}, hash, err } makefileCache.mu.Lock() makefileCache.mk[filename] = mkCacheEntry{ @@ -774,7 +768,7 @@ func (mc *makefileCacheT) parse(filename string) (Makefile, [sha1.Size]byte, err return mk, hash, err } -func ParseMakefile(s []byte, filename string) (Makefile, error) { +func parseMakefile(s []byte, filename string) (makefile, error) { parser := newParser(bytes.NewReader(s), filename) return parser.parse() } diff --git a/testcase/gen_testcase_parse_benchmark.go b/testcase/gen_testcase_parse_benchmark.go index e034114..a1d58ee 100644 --- a/testcase/gen_testcase_parse_benchmark.go +++ b/testcase/gen_testcase_parse_benchmark.go @@ -26,7 +26,7 @@ import ( "text/template" ) -const preamble = `package main +const preamble = `package kati import ( "io/ioutil" @@ -45,7 +45,7 @@ func BenchmarkTestcaseParse{{.Name}}(b *testing.B) { mk := string(data) b.ResetTimer() for i := 0; i < b.N; i++ { - ParseMakefileString(mk, {{.Filename | printf "%q"}}, 0) + parseMakefileString(mk, {{.Filename | printf "%q"}}, 0) } } `)) |