Skip to content

Commit

Permalink
use antlr 4.13
Browse files Browse the repository at this point in the history
  • Loading branch information
Yaiba authored and jchappelow committed Feb 27, 2024
1 parent 4674a8a commit b43c636
Show file tree
Hide file tree
Showing 12 changed files with 50 additions and 40 deletions.
5 changes: 3 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ require (
github.com/StackExchange/wmi v1.2.1 // indirect
github.com/antihax/optional v1.0.0 // indirect
github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230512164433-5d1fd1a340c9 // indirect
github.com/antlr4-go/antlr/v4 v4.13.0 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/bits-and-blooms/bitset v1.10.0 // indirect
github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect
Expand Down Expand Up @@ -92,8 +93,8 @@ require (
github.com/jackc/puddle/v2 v2.2.1 // indirect
github.com/jmhodges/levigo v1.0.0 // indirect
github.com/klauspost/compress v1.17.0 // indirect
github.com/kwilteam/action-grammar-go v0.0.1-0.20240223175558-46afbf6169f2 // indirect
github.com/kwilteam/sql-grammar-go v0.0.3-0.20240223175539-c7cfe24d9dc1 // indirect
github.com/kwilteam/action-grammar-go v0.1.0 // indirect
github.com/kwilteam/sql-grammar-go v0.1.0 // indirect
github.com/lib/pq v1.10.7 // indirect
github.com/libp2p/go-buffer-pool v0.1.0 // indirect
github.com/magiconair/properties v1.8.7 // indirect
Expand Down
10 changes: 6 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ github.com/antihax/optional v1.0.0 h1:xK2lYat7ZLaVVcIuj82J8kIro4V6kDe0AUDFboUCwc
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230512164433-5d1fd1a340c9 h1:goHVqTbFX3AIo0tzGr14pgfAW2ZfPChKO21Z9MGf/gk=
github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230512164433-5d1fd1a340c9/go.mod h1:pSwJ0fSY5KhvocuWSx4fz3BA8OrA1bQn+K1Eli3BRwM=
github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI=
github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g=
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
Expand Down Expand Up @@ -272,14 +274,14 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/kwilteam/action-grammar-go v0.0.1-0.20240223175558-46afbf6169f2 h1:9AHdsit1eg3Km1Ii8Twkf1N3pTtIpDVgx9kxUPA5RRU=
github.com/kwilteam/action-grammar-go v0.0.1-0.20240223175558-46afbf6169f2/go.mod h1:7IGtP+L2Z1wd3rf9wiC5rv3sx/HuEV9GRRytbomSk1c=
github.com/kwilteam/action-grammar-go v0.1.0 h1:pAjWZUYlDwQUWpQz5uOPQDIz1TLWXyLY4gribS7UTBY=
github.com/kwilteam/action-grammar-go v0.1.0/go.mod h1:hHGHtnrJpASW9P+F7pdr/EP2M1Hxy1N9Wx/TmjVdV6I=
github.com/kwilteam/kuneiform v0.6.0-alpha h1:q1WHRVZbz+AaDncJyja7tKyjqWcWXcjEpjLXyUA2p4M=
github.com/kwilteam/kuneiform v0.6.0-alpha/go.mod h1:+E3498OVrQCdbjagIrVI1ZdZYyBRz6UXUAjDdDD9j8Y=
github.com/kwilteam/kwil-extensions v0.0.0-20230727040522-1cfd930226b7 h1:YiPBu0pOeYOtOVfwKQqdWB07SUef9LvngF4bVFD+x34=
github.com/kwilteam/kwil-extensions v0.0.0-20230727040522-1cfd930226b7/go.mod h1:+BrFrV+3qcdYIfptqjwatE5gT19azuRHJzw77wMPY8c=
github.com/kwilteam/sql-grammar-go v0.0.3-0.20240223175539-c7cfe24d9dc1 h1:WZJLm4ZYL4TuvCvFB8qb9sHfBiQ+dP4mHxgkHSQ6/O8=
github.com/kwilteam/sql-grammar-go v0.0.3-0.20240223175539-c7cfe24d9dc1/go.mod h1:OqmGyCwHfBZvYv/sYPrQ5Ih290dhlD5AcKOHDlUSS0Y=
github.com/kwilteam/sql-grammar-go v0.1.0 h1:rSS7DER9PWVDmFwNyoInG5oXrn+E9UrZkjref84L4Qk=
github.com/kwilteam/sql-grammar-go v0.1.0/go.mod h1:A9AXaH5Vl/uPsY88fWqvU9O7z7P4YfvndaGyc8s//2s=
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
github.com/leanovate/gopter v0.2.9 h1:fQjYxZaynp97ozCzfOyOuAGOU4aU/z37zf/tOujFk7c=
Expand Down
5 changes: 2 additions & 3 deletions parse/action/parser.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,10 @@ package actparser
import (
"fmt"

sqlparser "github.com/kwilteam/kwil-db/parse/sql"
"github.com/antlr4-go/antlr/v4"

"github.com/kwilteam/action-grammar-go/actgrammar"

"github.com/antlr/antlr4/runtime/Go/antlr/v4"
sqlparser "github.com/kwilteam/kwil-db/parse/sql"
)

// Parse parses an action statement string and returns an ActionStmt.
Expand Down
4 changes: 2 additions & 2 deletions parse/action/parser_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ import (
"flag"
"testing"

"github.com/stretchr/testify/assert"

actparser "github.com/kwilteam/kwil-db/parse/action"
"github.com/kwilteam/kwil-db/parse/sql/tree"

"github.com/stretchr/testify/assert"
)

var trace = flag.Bool("trace", false, "run tests with tracing")
Expand Down
5 changes: 2 additions & 3 deletions parse/action/visitor.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,10 @@ import (
"reflect"
"strings"

"github.com/kwilteam/kwil-db/parse/sql/tree"
"github.com/antlr4-go/antlr/v4"

"github.com/kwilteam/action-grammar-go/actgrammar"

"github.com/antlr/antlr4/runtime/Go/antlr/v4"
"github.com/kwilteam/kwil-db/parse/sql/tree"
)

type kfActionVisitor struct {
Expand Down
6 changes: 3 additions & 3 deletions parse/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ module github.com/kwilteam/kwil-db/parse
go 1.21

require (
github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230512164433-5d1fd1a340c9
github.com/kwilteam/action-grammar-go v0.0.1-0.20240223175558-46afbf6169f2
github.com/kwilteam/sql-grammar-go v0.0.3-0.20240223175539-c7cfe24d9dc1
github.com/antlr4-go/antlr/v4 v4.13.0
github.com/kwilteam/action-grammar-go v0.1.0
github.com/kwilteam/sql-grammar-go v0.1.0
github.com/pganalyze/pg_query_go/v5 v5.1.0 // This is only for unit testing
github.com/stretchr/testify v1.8.4
)
Expand Down
12 changes: 6 additions & 6 deletions parse/go.sum
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230512164433-5d1fd1a340c9 h1:goHVqTbFX3AIo0tzGr14pgfAW2ZfPChKO21Z9MGf/gk=
github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230512164433-5d1fd1a340c9/go.mod h1:pSwJ0fSY5KhvocuWSx4fz3BA8OrA1bQn+K1Eli3BRwM=
github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI=
github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
Expand All @@ -14,10 +14,10 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/kwilteam/action-grammar-go v0.0.1-0.20240223175558-46afbf6169f2 h1:9AHdsit1eg3Km1Ii8Twkf1N3pTtIpDVgx9kxUPA5RRU=
github.com/kwilteam/action-grammar-go v0.0.1-0.20240223175558-46afbf6169f2/go.mod h1:7IGtP+L2Z1wd3rf9wiC5rv3sx/HuEV9GRRytbomSk1c=
github.com/kwilteam/sql-grammar-go v0.0.3-0.20240223175539-c7cfe24d9dc1 h1:WZJLm4ZYL4TuvCvFB8qb9sHfBiQ+dP4mHxgkHSQ6/O8=
github.com/kwilteam/sql-grammar-go v0.0.3-0.20240223175539-c7cfe24d9dc1/go.mod h1:OqmGyCwHfBZvYv/sYPrQ5Ih290dhlD5AcKOHDlUSS0Y=
github.com/kwilteam/action-grammar-go v0.1.0 h1:pAjWZUYlDwQUWpQz5uOPQDIz1TLWXyLY4gribS7UTBY=
github.com/kwilteam/action-grammar-go v0.1.0/go.mod h1:hHGHtnrJpASW9P+F7pdr/EP2M1Hxy1N9Wx/TmjVdV6I=
github.com/kwilteam/sql-grammar-go v0.1.0 h1:rSS7DER9PWVDmFwNyoInG5oXrn+E9UrZkjref84L4Qk=
github.com/kwilteam/sql-grammar-go v0.1.0/go.mod h1:A9AXaH5Vl/uPsY88fWqvU9O7z7P4YfvndaGyc8s//2s=
github.com/pganalyze/pg_query_go/v5 v5.1.0 h1:MlxQqHZnvA3cbRQYyIrjxEjzo560P6MyTgtlaf3pmXg=
github.com/pganalyze/pg_query_go/v5 v5.1.0/go.mod h1:FsglvxidZsVN+Ltw3Ai6nTgPVcK2BPukH3jCDEqc1Ug=
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
Expand Down
22 changes: 13 additions & 9 deletions parse/sql/error_listener.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import (
"errors"
"fmt"

"github.com/antlr/antlr4/runtime/Go/antlr/v4"
"github.com/antlr4-go/antlr/v4"
)

var ErrInvalidSyntax = errors.New("syntax error")
Expand Down Expand Up @@ -58,19 +58,23 @@ func NewErrorListener() *ErrorListener {
}
}

func (s *ErrorListener) SyntaxError(recognizer antlr.Recognizer, offendingSymbol interface{}, line, column int, msg string, e antlr.RecognitionException) {
func (l *ErrorListener) SyntaxError(recognizer antlr.Recognizer, offendingSymbol interface{}, line, column int,
msg string, e antlr.RecognitionException) {
//symbol := offendingSymbol.(antlr.Token)
s.AddError(fmt.Errorf(`%w: line %d:%d "%s"`, ErrInvalidSyntax, line, column, msg))
l.AddError(fmt.Errorf(`%w: line %d:%d "%s"`, ErrInvalidSyntax, line, column, msg))
}

func (s *ErrorListener) ReportAmbiguity(recognizer antlr.Parser, dfa *antlr.DFA, startIndex, stopIndex int, exact bool, ambigAlts *antlr.BitSet, configs antlr.ATNConfigSet) {
//s.ErrorHandler.Add(startIndex, errors.Wrap(ErrAmbiguity, "ambiguity"))
func (l *ErrorListener) ReportAmbiguity(recognizer antlr.Parser, dfa *antlr.DFA, startIndex, stopIndex int,
exact bool, ambigAlts *antlr.BitSet, configs *antlr.ATNConfigSet) {
//l.ErrorHandler.Add(startIndex, errors.Wrap(ErrAmbiguity, "ambiguity"))
}

func (s *ErrorListener) ReportAttemptingFullContext(recognizer antlr.Parser, dfa *antlr.DFA, startIndex, stopIndex int, conflictingAlts *antlr.BitSet, configs antlr.ATNConfigSet) {
//s.ErrorHandler.Add(startIndex, errors.Wrap(ErrAttemptingFullContext, "attempting full context"))
func (l *ErrorListener) ReportAttemptingFullContext(recognizer antlr.Parser, dfa *antlr.DFA, startIndex,
stopIndex int, conflictingAlts *antlr.BitSet, configs *antlr.ATNConfigSet) {
//l.ErrorHandler.Add(startIndex, errors.Wrap(ErrAttemptingFullContext, "attempting full context"))
}

func (s *ErrorListener) ReportContextSensitivity(recognizer antlr.Parser, dfa *antlr.DFA, startIndex, stopIndex, prediction int, configs antlr.ATNConfigSet) {
//s.ErrorHandler.Add(startIndex, errors.Wrap(ErrContextSensitivity, "context sensitivity"))
func (l *ErrorListener) ReportContextSensitivity(recognizer antlr.Parser, dfa *antlr.DFA, startIndex, stopIndex,
prediction int, configs *antlr.ATNConfigSet) {
//l.ErrorHandler.Add(startIndex, errors.Wrap(ErrContextSensitivity, "context sensitivity"))
}
3 changes: 2 additions & 1 deletion parse/sql/parser.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ package sqlparser
import (
"fmt"

"github.com/antlr/antlr4/runtime/Go/antlr/v4"
"github.com/antlr4-go/antlr/v4"

"github.com/kwilteam/kwil-db/parse/sql/tree"
"github.com/kwilteam/sql-grammar-go/sqlgrammar"
)
Expand Down
3 changes: 2 additions & 1 deletion parse/sql/visitor.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ import (
"reflect"
"strings"

"github.com/antlr/antlr4/runtime/Go/antlr/v4"
"github.com/antlr4-go/antlr/v4"

"github.com/kwilteam/kwil-db/parse/sql/tree"
"github.com/kwilteam/sql-grammar-go/sqlgrammar"
)
Expand Down
5 changes: 3 additions & 2 deletions test/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ require (
github.com/StackExchange/wmi v1.2.1 // indirect
github.com/antihax/optional v1.0.0 // indirect
github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230512164433-5d1fd1a340c9 // indirect
github.com/antlr4-go/antlr/v4 v4.13.0 // indirect
github.com/aws/aws-sdk-go-v2 v1.21.2 // indirect
github.com/aws/aws-sdk-go-v2/config v1.18.45 // indirect
github.com/aws/aws-sdk-go-v2/credentials v1.13.43 // indirect
Expand Down Expand Up @@ -135,9 +136,9 @@ require (
github.com/json-iterator/go v1.1.12 // indirect
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
github.com/klauspost/compress v1.17.0 // indirect
github.com/kwilteam/action-grammar-go v0.0.1-0.20240223175558-46afbf6169f2 // indirect
github.com/kwilteam/action-grammar-go v0.1.0 // indirect
github.com/kwilteam/kwil-db/parse v0.1.0 // indirect
github.com/kwilteam/sql-grammar-go v0.0.3-0.20240223175539-c7cfe24d9dc1 // indirect
github.com/kwilteam/sql-grammar-go v0.1.0 // indirect
github.com/lib/pq v1.10.7 // indirect
github.com/libp2p/go-buffer-pool v0.1.0 // indirect
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
Expand Down
10 changes: 6 additions & 4 deletions test/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ github.com/antihax/optional v1.0.0 h1:xK2lYat7ZLaVVcIuj82J8kIro4V6kDe0AUDFboUCwc
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230512164433-5d1fd1a340c9 h1:goHVqTbFX3AIo0tzGr14pgfAW2ZfPChKO21Z9MGf/gk=
github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230512164433-5d1fd1a340c9/go.mod h1:pSwJ0fSY5KhvocuWSx4fz3BA8OrA1bQn+K1Eli3BRwM=
github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI=
github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g=
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
Expand Down Expand Up @@ -472,12 +474,12 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/kwilteam/action-grammar-go v0.0.1-0.20240223175558-46afbf6169f2 h1:9AHdsit1eg3Km1Ii8Twkf1N3pTtIpDVgx9kxUPA5RRU=
github.com/kwilteam/action-grammar-go v0.0.1-0.20240223175558-46afbf6169f2/go.mod h1:7IGtP+L2Z1wd3rf9wiC5rv3sx/HuEV9GRRytbomSk1c=
github.com/kwilteam/action-grammar-go v0.1.0 h1:pAjWZUYlDwQUWpQz5uOPQDIz1TLWXyLY4gribS7UTBY=
github.com/kwilteam/action-grammar-go v0.1.0/go.mod h1:hHGHtnrJpASW9P+F7pdr/EP2M1Hxy1N9Wx/TmjVdV6I=
github.com/kwilteam/kuneiform v0.6.0-alpha h1:q1WHRVZbz+AaDncJyja7tKyjqWcWXcjEpjLXyUA2p4M=
github.com/kwilteam/kuneiform v0.6.0-alpha/go.mod h1:+E3498OVrQCdbjagIrVI1ZdZYyBRz6UXUAjDdDD9j8Y=
github.com/kwilteam/sql-grammar-go v0.0.3-0.20240223175539-c7cfe24d9dc1 h1:WZJLm4ZYL4TuvCvFB8qb9sHfBiQ+dP4mHxgkHSQ6/O8=
github.com/kwilteam/sql-grammar-go v0.0.3-0.20240223175539-c7cfe24d9dc1/go.mod h1:OqmGyCwHfBZvYv/sYPrQ5Ih290dhlD5AcKOHDlUSS0Y=
github.com/kwilteam/sql-grammar-go v0.1.0 h1:rSS7DER9PWVDmFwNyoInG5oXrn+E9UrZkjref84L4Qk=
github.com/kwilteam/sql-grammar-go v0.1.0/go.mod h1:A9AXaH5Vl/uPsY88fWqvU9O7z7P4YfvndaGyc8s//2s=
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
github.com/leanovate/gopter v0.2.9 h1:fQjYxZaynp97ozCzfOyOuAGOU4aU/z37zf/tOujFk7c=
Expand Down

0 comments on commit b43c636

Please sign in to comment.