Fix compilation errors

This commit is contained in:
Zachary Yedidia
2017-06-21 14:37:30 -04:00
parent 3908813afe
commit f27ee60149

View File

@@ -229,7 +229,7 @@ func resolveIncludesInRegion(files []*File, region *region) {
} }
} }
func parseRules(input []interface{}, curRegion *region) (*rules, error) { func parseRules(input []interface{}, curRegion *region) (ru *rules, err error) {
defer func() { defer func() {
if r := recover(); r != nil { if r := recover(); r != nil {
var ok bool var ok bool
@@ -239,7 +239,7 @@ func parseRules(input []interface{}, curRegion *region) (*rules, error) {
} }
} }
}() }()
rules := new(rules) ru = new(rules)
for _, v := range input { for _, v := range input {
rule := v.(map[interface{}]interface{}) rule := v.(map[interface{}]interface{})
@@ -249,7 +249,7 @@ func parseRules(input []interface{}, curRegion *region) (*rules, error) {
switch object := val.(type) { switch object := val.(type) {
case string: case string:
if k == "include" { if k == "include" {
rules.includes = append(rules.includes, object) ru.includes = append(ru.includes, object)
} else { } else {
// Pattern // Pattern
r, err := regexp.Compile(object) r, err := regexp.Compile(object)
@@ -263,7 +263,7 @@ func parseRules(input []interface{}, curRegion *region) (*rules, error) {
Groups[groupStr] = numGroups Groups[groupStr] = numGroups
} }
groupNum := Groups[groupStr] groupNum := Groups[groupStr]
rules.patterns = append(rules.patterns, &pattern{groupNum, r}) ru.patterns = append(ru.patterns, &pattern{groupNum, r})
} }
case map[interface{}]interface{}: case map[interface{}]interface{}:
// region // region
@@ -271,17 +271,17 @@ func parseRules(input []interface{}, curRegion *region) (*rules, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
rules.regions = append(rules.regions, region) ru.regions = append(ru.regions, region)
default: default:
return nil, fmt.Errorf("Bad type %T", object) return nil, fmt.Errorf("Bad type %T", object)
} }
} }
} }
return rules, nil return ru, nil
} }
func parseRegion(group string, regionInfo map[interface{}]interface{}, prevRegion *region) (*region, error) { func parseRegion(group string, regionInfo map[interface{}]interface{}, prevRegion *region) (r *region, err error) {
defer func() { defer func() {
if r := recover(); r != nil { if r := recover(); r != nil {
var ok bool var ok bool
@@ -291,24 +291,23 @@ func parseRegion(group string, regionInfo map[interface{}]interface{}, prevRegio
} }
} }
}() }()
var err error
region := new(region) r = new(region)
if _, ok := Groups[group]; !ok { if _, ok := Groups[group]; !ok {
numGroups++ numGroups++
Groups[group] = numGroups Groups[group] = numGroups
} }
groupNum := Groups[group] groupNum := Groups[group]
region.group = groupNum r.group = groupNum
region.parent = prevRegion r.parent = prevRegion
region.start, err = regexp.Compile(regionInfo["start"].(string)) r.start, err = regexp.Compile(regionInfo["start"].(string))
if err != nil { if err != nil {
return nil, err return nil, err
} }
region.end, err = regexp.Compile(regionInfo["end"].(string)) r.end, err = regexp.Compile(regionInfo["end"].(string))
if err != nil { if err != nil {
return nil, err return nil, err
@@ -316,7 +315,7 @@ func parseRegion(group string, regionInfo map[interface{}]interface{}, prevRegio
// skip is optional // skip is optional
if _, ok := regionInfo["skip"]; ok { if _, ok := regionInfo["skip"]; ok {
region.skip, err = regexp.Compile(regionInfo["skip"].(string)) r.skip, err = regexp.Compile(regionInfo["skip"].(string))
if err != nil { if err != nil {
return nil, err return nil, err
@@ -331,20 +330,20 @@ func parseRegion(group string, regionInfo map[interface{}]interface{}, prevRegio
Groups[groupStr] = numGroups Groups[groupStr] = numGroups
} }
groupNum := Groups[groupStr] groupNum := Groups[groupStr]
region.limitGroup = groupNum r.limitGroup = groupNum
if err != nil { if err != nil {
return nil, err return nil, err
} }
} else { } else {
region.limitGroup = region.group r.limitGroup = r.group
} }
region.rules, err = parseRules(regionInfo["rules"].([]interface{}), region) r.rules, err = parseRules(regionInfo["rules"].([]interface{}), r)
if err != nil { if err != nil {
return nil, err return nil, err
} }
return region, nil return r, nil
} }