fmt.Fprintf(ftable, "const\tYYNPROD\t= %v\n", nprod);
fmt.Fprintf(ftable, "const\tYYPRIVATE\t= %v\n", PRIVATE);
fmt.Fprintf(ftable, "var\tYYTOKENNAMES []string\n");
- fmt.Fprintf(ftable, "var\tYYSTATES\n[]string\n");
+ fmt.Fprintf(ftable, "var\tYYSTATES []string\n");
}
//
putrune(ftable, '\n')
}
}
- fmt.Fprintf(ftable, "%4d\n };\n", 0);
+ fmt.Fprintf(ftable, "%4d,\n };\n", 0);
// copy parser text
c = getrune(finput);
os.Exit(status);
}
-var yaccpar =
-// from here to the end of the file is
-// a single string containing the old yaccpar file
-`
+var yaccpar = `
/* parser for yacc output */
var Nerrs = 0 /* number of errors */
const YYFLAG = -1000
func
-Tokname(yyc int) string
-{
+Tokname(yyc int) string {
if yyc > 0 && yyc <= len(Toknames) {
if Toknames[yyc-1] != "" {
return Toknames[yyc-1];
}
func
-Statname(yys int) string
-{
+Statname(yys int) string {
if yys >= 0 && yys < len(Statenames) {
if Statenames[yys] != "" {
return Statenames[yys];
}
func
-lex1() int
-{
+lex1() int {
var yychar int;
var c int;
}
func
-Parse() int
-{
+Parse() int {
var yyj, yystate, yyn, yyg, yyxi, yyp int;
var yychar int;
var yypt, yynt int;
Maxe = 695; // log of largest number
)
-type Node
-struct
-{
+type
+Node struct {
vval float64;
dim [Ndim]int8;
}
-type Var
-struct
-{
+type
+Var struct {
name string;
node Node;
}
%%
func
-Lex() int
-{
+Lex() int {
var c, i int;
c = peekrune;
}
func
-main()
-{
+main() {
var file string;
flag.BoolVar(&vflag, "v", false, "verbose");
* meaning. rest are usable as names
*/
func
-ralpha(c int) bool
-{
+ralpha(c int) bool {
switch c {
case 0, '+', '-', '*', '/', '[', ']', '(', ')',
'^', ':', '?', ' ', '\t', '.', '|', '#',
* number forming character
*/
func
-rdigit(c int) bool
-{
+rdigit(c int) bool {
switch c {
case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'.', 'e', '+', '-':
}
func
-Error(s string, v ...)
-{
+Error(s string, v ...) {
/*
* hack to intercept message from yaccpar
}
func
-add(c,a,b *Node)
-{
+add(c,a,b *Node) {
var i int;
var d int8;
}
func
-sub(c,a,b *Node)
-{
+sub(c,a,b *Node) {
var i int;
var d int8;
}
func
-mul(c,a,b *Node)
-{
+mul(c,a,b *Node) {
var i int;
for i=0; i<Ndim; i++ {
}
func
-div(c,a,b *Node)
-{
+div(c,a,b *Node) {
var i int;
for i=0; i<Ndim; i++ {
}
func
-xpn(c,a *Node, b int)
-{
+xpn(c,a *Node, b int) {
var i int;
*c = one;
}
func
-specialcase(c,a,b *Node) bool
-{
+specialcase(c,a,b *Node) bool {
var i int;
var d, d1, d2 int8;
}
func
-printdim(str string, d, n int) string
-{
+printdim(str string, d, n int) string {
var v *Var;
if n != 0 {
return str;
}
-func (n Node)
-String() string
-{
+func
+(n Node) String() string {
var str string;
var f, i, d int;
return str;
}
-func (v *Var)
-String() string
-{
+func
+(v *Var) String() string {
var str string;
str = fmt.Sprintf("%v %v", v.name, v.node);
return str;
}
func
-readline() bool
-{
+readline() bool {
s,err := fi.ReadString('\n');
if err != nil {
return true;
}
func
-getrune() int
-{
+getrune() int {
var c,n int;
if linep >= len(line) {
var symmap = make(map[string]*Var); // symbol table
func
-lookup(f int) *Var
-{
+lookup(f int) *Var {
var p float64;
var w *Var;
return v;
}
-type Prefix
-struct
+type
+Prefix struct
{
vval float64;
name string;
Prefix { 1e15, "peta" },
Prefix { 1e18, "exa" },
Prefix { 1e21, "zetta" },
- Prefix { 1e24, "yotta" }
+ Prefix { 1e24, "yotta" },
}
func
-pname() float64
-{
+pname() float64 {
var i, j, n int;
var s string;
// careful multiplication
// exponents (log) are checked before multiply
func
-fmul(a, b float64) float64
-{
+fmul(a, b float64) float64 {
var l float64;
if b <= 0 {
// careful division
// exponents (log) are checked before divide
func
-fdiv(a, b float64) float64
-{
+fdiv(a, b float64) float64 {
var l float64;
if b <= 0 {
}
func
-fadd(a, b float64) float64
-{
+fadd(a, b float64) float64 {
return a + b;
}