aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bootstrap.go4
-rw-r--r--dep.go4
-rw-r--r--depgraph.go6
-rw-r--r--eval.go10
-rw-r--r--func.go2
-rw-r--r--parser.go36
-rw-r--r--testcase/gen_testcase_parse_benchmark.go4
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)
}
diff --git a/dep.go b/dep.go
index ebbad3e..a728b87 100644
--- a/dep.go
+++ b/dep.go
@@ -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
}
diff --git a/eval.go b/eval.go
index 7b48b18..b24d2ed 100644
--- a/eval.go
+++ b/eval.go
@@ -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,
diff --git a/func.go b/func.go
index 121cfa6..46de333 100644
--- a/func.go
+++ b/func.go
@@ -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)
}
diff --git a/parser.go b/parser.go
index 527d7c4..53f6185 100644
--- a/parser.go
+++ b/parser.go
@@ -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)
}
}
`))