Skip to content

Commit

Permalink
[Go] Cleanup and fix ATN deserialization verification (#3574)
Browse files Browse the repository at this point in the history
  • Loading branch information
jcking authored Mar 8, 2022
1 parent abac2af commit d8e1644
Show file tree
Hide file tree
Showing 2 changed files with 113 additions and 88 deletions.
50 changes: 43 additions & 7 deletions runtime/Go/antlr/atn_deserialization_options.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,58 @@

package antlr

var ATNDeserializationOptionsdefaultOptions = &ATNDeserializationOptions{true, false, false}
import "errors"

var defaultATNDeserializationOptions = ATNDeserializationOptions{true, true, false}

type ATNDeserializationOptions struct {
readOnly bool
verifyATN bool
generateRuleBypassTransitions bool
}

func NewATNDeserializationOptions(CopyFrom *ATNDeserializationOptions) *ATNDeserializationOptions {
o := new(ATNDeserializationOptions)
func (opts *ATNDeserializationOptions) ReadOnly() bool {
return opts.readOnly
}

func (opts *ATNDeserializationOptions) SetReadOnly(readOnly bool) {
if opts.readOnly {
panic(errors.New("Cannot mutate read only ATNDeserializationOptions"))
}
opts.readOnly = readOnly
}

func (opts *ATNDeserializationOptions) VerifyATN() bool {
return opts.verifyATN
}

func (opts *ATNDeserializationOptions) SetVerifyATN(verifyATN bool) {
if opts.readOnly {
panic(errors.New("Cannot mutate read only ATNDeserializationOptions"))
}
opts.verifyATN = verifyATN
}

if CopyFrom != nil {
o.readOnly = CopyFrom.readOnly
o.verifyATN = CopyFrom.verifyATN
o.generateRuleBypassTransitions = CopyFrom.generateRuleBypassTransitions
func (opts *ATNDeserializationOptions) GenerateRuleBypassTransitions() bool {
return opts.generateRuleBypassTransitions
}

func (opts *ATNDeserializationOptions) SetGenerateRuleBypassTransitions(generateRuleBypassTransitions bool) {
if opts.readOnly {
panic(errors.New("Cannot mutate read only ATNDeserializationOptions"))
}
opts.generateRuleBypassTransitions = generateRuleBypassTransitions
}

func DefaultATNDeserializationOptions() *ATNDeserializationOptions {
return NewATNDeserializationOptions(&defaultATNDeserializationOptions)
}

func NewATNDeserializationOptions(other *ATNDeserializationOptions) *ATNDeserializationOptions {
o := new(ATNDeserializationOptions)
if other != nil {
*o = *other
o.readOnly = false
}
return o
}
Loading

0 comments on commit d8e1644

Please sign in to comment.