Go fmt em all
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
|
||||
package parser
|
||||
|
||||
import (
|
||||
|
||||
+132
-138
@@ -1,159 +1,153 @@
|
||||
|
||||
package parser
|
||||
|
||||
type(
|
||||
type (
|
||||
actionTable [numStates]actionRow
|
||||
actionRow struct {
|
||||
actionRow struct {
|
||||
canRecover bool
|
||||
actions [numSymbols]action
|
||||
actions [numSymbols]action
|
||||
}
|
||||
)
|
||||
|
||||
var actionTab = actionTable{
|
||||
actionRow{ // S0
|
||||
canRecover: false,
|
||||
canRecover: false,
|
||||
actions: [numSymbols]action{
|
||||
nil, /* INVALID */
|
||||
nil, /* $ */
|
||||
shift(2), /* word */
|
||||
nil, /* number */
|
||||
nil, /* = */
|
||||
nil, /* && */
|
||||
nil, /* || */
|
||||
nil, /* ! */
|
||||
nil, /* | */
|
||||
nil, /* ( */
|
||||
nil, /* ) */
|
||||
nil, /* for */
|
||||
nil, /* in */
|
||||
nil, /* name */
|
||||
nil, /* case */
|
||||
nil, /* esac */
|
||||
nil, /* ;; */
|
||||
nil, /* if */
|
||||
nil, /* then */
|
||||
nil, /* fi */
|
||||
nil, /* elif */
|
||||
nil, /* else */
|
||||
nil, /* while */
|
||||
nil, /* until */
|
||||
nil, /* { */
|
||||
nil, /* } */
|
||||
nil, /* do */
|
||||
nil, /* done */
|
||||
nil, /* < */
|
||||
nil, /* <& */
|
||||
nil, /* > */
|
||||
nil, /* >& */
|
||||
nil, /* >> */
|
||||
nil, /* <> */
|
||||
nil, /* >| */
|
||||
nil, /* << */
|
||||
nil, /* <<- */
|
||||
nil, /* \n */
|
||||
nil, /* nothing */
|
||||
nil, /* & */
|
||||
nil, /* ; */
|
||||
|
||||
},
|
||||
nil, /* INVALID */
|
||||
nil, /* $ */
|
||||
shift(2), /* word */
|
||||
nil, /* number */
|
||||
nil, /* = */
|
||||
nil, /* && */
|
||||
nil, /* || */
|
||||
nil, /* ! */
|
||||
nil, /* | */
|
||||
nil, /* ( */
|
||||
nil, /* ) */
|
||||
nil, /* for */
|
||||
nil, /* in */
|
||||
nil, /* name */
|
||||
nil, /* case */
|
||||
nil, /* esac */
|
||||
nil, /* ;; */
|
||||
nil, /* if */
|
||||
nil, /* then */
|
||||
nil, /* fi */
|
||||
nil, /* elif */
|
||||
nil, /* else */
|
||||
nil, /* while */
|
||||
nil, /* until */
|
||||
nil, /* { */
|
||||
nil, /* } */
|
||||
nil, /* do */
|
||||
nil, /* done */
|
||||
nil, /* < */
|
||||
nil, /* <& */
|
||||
nil, /* > */
|
||||
nil, /* >& */
|
||||
nil, /* >> */
|
||||
nil, /* <> */
|
||||
nil, /* >| */
|
||||
nil, /* << */
|
||||
nil, /* <<- */
|
||||
nil, /* \n */
|
||||
nil, /* nothing */
|
||||
nil, /* & */
|
||||
nil, /* ; */
|
||||
|
||||
},
|
||||
},
|
||||
actionRow{ // S1
|
||||
canRecover: false,
|
||||
canRecover: false,
|
||||
actions: [numSymbols]action{
|
||||
nil, /* INVALID */
|
||||
accept(true), /* $ */
|
||||
nil, /* word */
|
||||
nil, /* number */
|
||||
nil, /* = */
|
||||
nil, /* && */
|
||||
nil, /* || */
|
||||
nil, /* ! */
|
||||
nil, /* | */
|
||||
nil, /* ( */
|
||||
nil, /* ) */
|
||||
nil, /* for */
|
||||
nil, /* in */
|
||||
nil, /* name */
|
||||
nil, /* case */
|
||||
nil, /* esac */
|
||||
nil, /* ;; */
|
||||
nil, /* if */
|
||||
nil, /* then */
|
||||
nil, /* fi */
|
||||
nil, /* elif */
|
||||
nil, /* else */
|
||||
nil, /* while */
|
||||
nil, /* until */
|
||||
nil, /* { */
|
||||
nil, /* } */
|
||||
nil, /* do */
|
||||
nil, /* done */
|
||||
nil, /* < */
|
||||
nil, /* <& */
|
||||
nil, /* > */
|
||||
nil, /* >& */
|
||||
nil, /* >> */
|
||||
nil, /* <> */
|
||||
nil, /* >| */
|
||||
nil, /* << */
|
||||
nil, /* <<- */
|
||||
nil, /* \n */
|
||||
nil, /* nothing */
|
||||
nil, /* & */
|
||||
nil, /* ; */
|
||||
|
||||
},
|
||||
nil, /* INVALID */
|
||||
accept(true), /* $ */
|
||||
nil, /* word */
|
||||
nil, /* number */
|
||||
nil, /* = */
|
||||
nil, /* && */
|
||||
nil, /* || */
|
||||
nil, /* ! */
|
||||
nil, /* | */
|
||||
nil, /* ( */
|
||||
nil, /* ) */
|
||||
nil, /* for */
|
||||
nil, /* in */
|
||||
nil, /* name */
|
||||
nil, /* case */
|
||||
nil, /* esac */
|
||||
nil, /* ;; */
|
||||
nil, /* if */
|
||||
nil, /* then */
|
||||
nil, /* fi */
|
||||
nil, /* elif */
|
||||
nil, /* else */
|
||||
nil, /* while */
|
||||
nil, /* until */
|
||||
nil, /* { */
|
||||
nil, /* } */
|
||||
nil, /* do */
|
||||
nil, /* done */
|
||||
nil, /* < */
|
||||
nil, /* <& */
|
||||
nil, /* > */
|
||||
nil, /* >& */
|
||||
nil, /* >> */
|
||||
nil, /* <> */
|
||||
nil, /* >| */
|
||||
nil, /* << */
|
||||
nil, /* <<- */
|
||||
nil, /* \n */
|
||||
nil, /* nothing */
|
||||
nil, /* & */
|
||||
nil, /* ; */
|
||||
|
||||
},
|
||||
},
|
||||
actionRow{ // S2
|
||||
canRecover: false,
|
||||
canRecover: false,
|
||||
actions: [numSymbols]action{
|
||||
nil, /* INVALID */
|
||||
reduce(1), /* $, reduce: Word */
|
||||
nil, /* word */
|
||||
nil, /* number */
|
||||
nil, /* = */
|
||||
nil, /* && */
|
||||
nil, /* || */
|
||||
nil, /* ! */
|
||||
nil, /* | */
|
||||
nil, /* ( */
|
||||
nil, /* ) */
|
||||
nil, /* for */
|
||||
nil, /* in */
|
||||
nil, /* name */
|
||||
nil, /* case */
|
||||
nil, /* esac */
|
||||
nil, /* ;; */
|
||||
nil, /* if */
|
||||
nil, /* then */
|
||||
nil, /* fi */
|
||||
nil, /* elif */
|
||||
nil, /* else */
|
||||
nil, /* while */
|
||||
nil, /* until */
|
||||
nil, /* { */
|
||||
nil, /* } */
|
||||
nil, /* do */
|
||||
nil, /* done */
|
||||
nil, /* < */
|
||||
nil, /* <& */
|
||||
nil, /* > */
|
||||
nil, /* >& */
|
||||
nil, /* >> */
|
||||
nil, /* <> */
|
||||
nil, /* >| */
|
||||
nil, /* << */
|
||||
nil, /* <<- */
|
||||
nil, /* \n */
|
||||
nil, /* nothing */
|
||||
nil, /* & */
|
||||
nil, /* ; */
|
||||
|
||||
nil, /* INVALID */
|
||||
reduce(1), /* $, reduce: Word */
|
||||
nil, /* word */
|
||||
nil, /* number */
|
||||
nil, /* = */
|
||||
nil, /* && */
|
||||
nil, /* || */
|
||||
nil, /* ! */
|
||||
nil, /* | */
|
||||
nil, /* ( */
|
||||
nil, /* ) */
|
||||
nil, /* for */
|
||||
nil, /* in */
|
||||
nil, /* name */
|
||||
nil, /* case */
|
||||
nil, /* esac */
|
||||
nil, /* ;; */
|
||||
nil, /* if */
|
||||
nil, /* then */
|
||||
nil, /* fi */
|
||||
nil, /* elif */
|
||||
nil, /* else */
|
||||
nil, /* while */
|
||||
nil, /* until */
|
||||
nil, /* { */
|
||||
nil, /* } */
|
||||
nil, /* do */
|
||||
nil, /* done */
|
||||
nil, /* < */
|
||||
nil, /* <& */
|
||||
nil, /* > */
|
||||
nil, /* >& */
|
||||
nil, /* >> */
|
||||
nil, /* <> */
|
||||
nil, /* >| */
|
||||
nil, /* << */
|
||||
nil, /* <<- */
|
||||
nil, /* \n */
|
||||
nil, /* nothing */
|
||||
nil, /* & */
|
||||
nil, /* ; */
|
||||
|
||||
},
|
||||
|
||||
},
|
||||
|
||||
}
|
||||
|
||||
|
||||
+8
-12
@@ -1,19 +1,19 @@
|
||||
|
||||
/*
|
||||
*/
|
||||
*/
|
||||
package parser
|
||||
|
||||
const numNTSymbols = 47
|
||||
type(
|
||||
|
||||
type (
|
||||
gotoTable [numStates]gotoRow
|
||||
gotoRow [numNTSymbols] int
|
||||
gotoRow [numNTSymbols]int
|
||||
)
|
||||
|
||||
var gotoTab = gotoTable{
|
||||
gotoRow{ // S0
|
||||
|
||||
|
||||
-1, // S'
|
||||
1, // Word
|
||||
1, // Word
|
||||
-1, // IoNumber
|
||||
-1, // AssignmentWord
|
||||
-1, // List
|
||||
@@ -59,11 +59,10 @@ var gotoTab = gotoTable{
|
||||
-1, // SeparatorOp
|
||||
-1, // Separator
|
||||
-1, // SequentialSep
|
||||
|
||||
|
||||
},
|
||||
gotoRow{ // S1
|
||||
|
||||
|
||||
-1, // S'
|
||||
-1, // Word
|
||||
-1, // IoNumber
|
||||
@@ -111,11 +110,10 @@ var gotoTab = gotoTable{
|
||||
-1, // SeparatorOp
|
||||
-1, // Separator
|
||||
-1, // SequentialSep
|
||||
|
||||
|
||||
},
|
||||
gotoRow{ // S2
|
||||
|
||||
|
||||
-1, // S'
|
||||
-1, // Word
|
||||
-1, // IoNumber
|
||||
@@ -163,8 +161,6 @@ var gotoTab = gotoTable{
|
||||
-1, // SeparatorOp
|
||||
-1, // Separator
|
||||
-1, // SequentialSep
|
||||
|
||||
|
||||
},
|
||||
|
||||
}
|
||||
|
||||
+15
-17
@@ -1,10 +1,9 @@
|
||||
|
||||
package parser
|
||||
|
||||
import(
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"errors"
|
||||
"fmt"
|
||||
parseError "github.com/localhots/penny/errors"
|
||||
"github.com/localhots/penny/token"
|
||||
)
|
||||
@@ -18,16 +17,16 @@ const (
|
||||
// Stack
|
||||
|
||||
type stack struct {
|
||||
state []int
|
||||
attrib []Attrib
|
||||
state []int
|
||||
attrib []Attrib
|
||||
}
|
||||
|
||||
const iNITIAL_STACK_SIZE = 100
|
||||
|
||||
func newStack() *stack {
|
||||
return &stack{ state: make([]int, 0, iNITIAL_STACK_SIZE),
|
||||
attrib: make([]Attrib, 0, iNITIAL_STACK_SIZE),
|
||||
}
|
||||
return &stack{state: make([]int, 0, iNITIAL_STACK_SIZE),
|
||||
attrib: make([]Attrib, 0, iNITIAL_STACK_SIZE),
|
||||
}
|
||||
}
|
||||
|
||||
func (this *stack) reset() {
|
||||
@@ -40,8 +39,8 @@ func (this *stack) push(s int, a Attrib) {
|
||||
this.attrib = append(this.attrib, a)
|
||||
}
|
||||
|
||||
func(this *stack) top() int {
|
||||
return this.state[len(this.state) - 1]
|
||||
func (this *stack) top() int {
|
||||
return this.state[len(this.state)-1]
|
||||
}
|
||||
|
||||
func (this *stack) peek(pos int) int {
|
||||
@@ -53,13 +52,13 @@ func (this *stack) topIndex() int {
|
||||
}
|
||||
|
||||
func (this *stack) popN(items int) []Attrib {
|
||||
lo, hi := len(this.state) - items, len(this.state)
|
||||
|
||||
attrib := this.attrib[lo: hi]
|
||||
|
||||
lo, hi := len(this.state)-items, len(this.state)
|
||||
|
||||
attrib := this.attrib[lo:hi]
|
||||
|
||||
this.state = this.state[:lo]
|
||||
this.attrib = this.attrib[:lo]
|
||||
|
||||
|
||||
return attrib
|
||||
}
|
||||
|
||||
@@ -187,9 +186,8 @@ func (this *Parser) Parse(scanner Scanner) (res interface{}, err error) {
|
||||
panic("Error recovery led to invalid action")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// fmt.Printf("S%d %s %s\n", this.stack.top(), token.TokMap.TokenString(this.nextToken), action.String())
|
||||
|
||||
|
||||
switch act := action.(type) {
|
||||
case accept:
|
||||
|
||||
+331
-333
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user