diff options
Diffstat (limited to 'generator.go')
-rw-r--r-- | generator.go | 44 |
1 files changed, 19 insertions, 25 deletions
diff --git a/generator.go b/generator.go index e699f47..7401cee 100644 --- a/generator.go +++ b/generator.go @@ -56,8 +56,9 @@ const ( %s */ +// Package sqlite is an in-process implementation of a self-contained, +// serverless, zero-configuration, transactional SQL database engine. (Work In Progress) %s - package bin import ( @@ -82,8 +83,8 @@ func Xsqlite3PendingByte() int32 { return _sqlite3PendingByte } prologueTest = `// Code generated by ccgo. DO NOT EDIT. +// %s %s - package main import ( @@ -356,7 +357,6 @@ func header(f string) []byte { var s scanner.Scanner s.Init(token.NewFileSet().AddFile(f, -1, len(b)), b, nil, scanner.ScanComments) var buf buffer.Bytes - fmt.Fprintf(&buf, "/* %s */", filepath.Base(f)) for { _, tok, lit := s.Scan() switch tok { @@ -370,24 +370,18 @@ func header(f string) []byte { } func tidyComment(s string) string { - if strings.HasPrefix(s, "/*") { - s = s[len("/*") : len(s)-len("*/")] - } - a := strings.Split(strings.TrimSpace(s), "\n") - for i, v := range a { - if strings.HasPrefix(v, "** ") { - a[i] = a[i][len("** "):] - continue + switch { + case strings.HasPrefix(s, "/*"): + a := strings.Split("/"+s[1:len(s)-1], "\n") + for i, v := range a { + a[i] = "// " + v } - - if v == "**" { - a[i] = "" - } - } - for i, v := range a { - a[i] = strings.TrimSpace(v) + return strings.Join(a, "\n") + "/\n" + case strings.HasPrefix(s, "//"): + return "// " + s[2:] + "\n" + default: + panic("internal error") } - return "// " + strings.Join(a, "\n// ") + "\n" } func tidyComments(b []byte) string { @@ -430,7 +424,7 @@ func sqlite() { log.Fatal(err) } - fmt.Fprintf(&b, prologueSqlite, lic, tidyComments(header(sqlite3))) + fmt.Fprintf(&b, prologueSqlite, lic, strings.TrimSpace(tidyComments(header(sqlite3)))) macros(&b, asta[0]) b.Write(src) b2, err := format.Source(b.Bytes()) @@ -472,7 +466,7 @@ func mpTest() { ) var b bytes.Buffer - fmt.Fprintf(&b, prologueTest, tidyComments(header(test))) + fmt.Fprintf(&b, prologueTest, tag, strings.TrimSpace(tidyComments(header(test)))) b.Write(src) b2, err := format.Source(b.Bytes()) if err != nil { @@ -518,7 +512,7 @@ func threadTest1() { ) var b bytes.Buffer - fmt.Fprintf(&b, prologueTest, tidyComments(header(test))) + fmt.Fprintf(&b, prologueTest, tag, strings.TrimSpace(tidyComments(header(test)))) b.Write(src) b2, err := format.Source(b.Bytes()) if err != nil { @@ -563,7 +557,7 @@ func threadTest2() { ) var b bytes.Buffer - fmt.Fprintf(&b, prologueTest, tidyComments(header(test))) + fmt.Fprintf(&b, prologueTest, tag, strings.TrimSpace(tidyComments(header(test)))) b.Write(src) b2, err := format.Source(b.Bytes()) if err != nil { @@ -610,7 +604,7 @@ func threadTest3() { ) var b bytes.Buffer - fmt.Fprintf(&b, prologueTest, tidyComments(header(test))) + fmt.Fprintf(&b, prologueTest, tag, strings.TrimSpace(tidyComments(header(test)))) b.Write(src) b2, err := format.Source(b.Bytes()) if err != nil { @@ -655,7 +649,7 @@ func threadTest4() { ) var b bytes.Buffer - fmt.Fprintf(&b, prologueTest, tidyComments(header(test))) + fmt.Fprintf(&b, prologueTest, tag, strings.TrimSpace(tidyComments(header(test)))) b.Write(src) b2, err := format.Source(b.Bytes()) if err != nil { |