From dbfcc35462eb515f152505aa231004bd35afaecc Mon Sep 17 00:00:00 2001 From: GoatSnail Date: Mon, 29 Feb 2016 10:20:55 +0100 Subject: [PATCH 01/55] Initial Commit Added Scannercode.java --- ObsidiCodeScanner/src/ScannerCode.java | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 ObsidiCodeScanner/src/ScannerCode.java diff --git a/ObsidiCodeScanner/src/ScannerCode.java b/ObsidiCodeScanner/src/ScannerCode.java new file mode 100644 index 0000000..d6e2c09 --- /dev/null +++ b/ObsidiCodeScanner/src/ScannerCode.java @@ -0,0 +1,5 @@ +/** + * Created by Gedesnegl on 29-02-2016. + */ +public class ScannerCode { +} From f89a16c7df63c2cc2f0160bcb5d2b8dabdd61fbf Mon Sep 17 00:00:00 2001 From: GoatSnail Date: Mon, 29 Feb 2016 10:47:44 +0100 Subject: [PATCH 02/55] Wrote some token enums. the rest needs. have to go for steering meeting. --- ObsidiCodeScanner/src/ScannerCode.java | 2 +- ObsidiCodeScanner/src/Token.java | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 ObsidiCodeScanner/src/Token.java diff --git a/ObsidiCodeScanner/src/ScannerCode.java b/ObsidiCodeScanner/src/ScannerCode.java index d6e2c09..48875a4 100644 --- a/ObsidiCodeScanner/src/ScannerCode.java +++ b/ObsidiCodeScanner/src/ScannerCode.java @@ -1,5 +1,5 @@ /** - * Created by Gedesnegl on 29-02-2016. + * Created by Arne K. Rasmussen on 29-02-2016. */ public class ScannerCode { } diff --git a/ObsidiCodeScanner/src/Token.java b/ObsidiCodeScanner/src/Token.java new file mode 100644 index 0000000..792d509 --- /dev/null +++ b/ObsidiCodeScanner/src/Token.java @@ -0,0 +1,14 @@ +/** + * Created by Arne K. Rasmussen on 29-02-2016. + */ +public class Token { + + public enum type{ + EOF, Break, EOL, ROBOT_NAME, LOAD, NUM_DCL, ID, + STRING_DCL, BOOL_DCL, COORD_DCL, VOID, END, HEAR, + SIGNAL, START, IF, REPEAT, UNTIL, FOREVER, ELSE, VAL, + PLUS, MINUS, TIMES, DIVIDE, ASSIGN, POWER, SQUARE_ROOT, + BOOL_AND, BOOL_OR, BOOL_EQ, BOOL_GT, BOOL_LT, BOOL_GTE, + BOOL_LTE, BOOL_LIT, + } +} From ee05f5d26933b623d9360a9c7241b261364f3629 Mon Sep 17 00:00:00 2001 From: Lasse Nielsen Date: Tue, 1 Mar 2016 08:40:29 +0100 Subject: [PATCH 03/55] - Hey I added tokens --- ObsidiCodeScanner/src/Token.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ObsidiCodeScanner/src/Token.java b/ObsidiCodeScanner/src/Token.java index 792d509..19afc3b 100644 --- a/ObsidiCodeScanner/src/Token.java +++ b/ObsidiCodeScanner/src/Token.java @@ -9,6 +9,9 @@ public enum type{ SIGNAL, START, IF, REPEAT, UNTIL, FOREVER, ELSE, VAL, PLUS, MINUS, TIMES, DIVIDE, ASSIGN, POWER, SQUARE_ROOT, BOOL_AND, BOOL_OR, BOOL_EQ, BOOL_GT, BOOL_LT, BOOL_GTE, - BOOL_LTE, BOOL_LIT, + BOOL_LTE, BOOL_LIT, COORD_LIT, STRING_LIT, TYPE, CHEST_LIT, + BLOCK_LIT, ITEM_LIT, NPC_LIT } + + } From 9b2a1d553c96fe90d405eb46c993a565f7945297 Mon Sep 17 00:00:00 2001 From: Lee Paludan Date: Wed, 2 Mar 2016 13:14:27 +0100 Subject: [PATCH 04/55] Initialized Project --- Scanner/src/java/org/Scanner/Main.java | 9 +++++++++ src/main/java/com/P4/init/CodeBook.java | 7 +++++++ 2 files changed, 16 insertions(+) create mode 100644 Scanner/src/java/org/Scanner/Main.java create mode 100644 src/main/java/com/P4/init/CodeBook.java diff --git a/Scanner/src/java/org/Scanner/Main.java b/Scanner/src/java/org/Scanner/Main.java new file mode 100644 index 0000000..8ed7833 --- /dev/null +++ b/Scanner/src/java/org/Scanner/Main.java @@ -0,0 +1,9 @@ +package org.Scanner; + +public class Main +{ + public static final void main (String[] args) + { + System.out.println("test"); + } +} diff --git a/src/main/java/com/P4/init/CodeBook.java b/src/main/java/com/P4/init/CodeBook.java new file mode 100644 index 0000000..ced6b19 --- /dev/null +++ b/src/main/java/com/P4/init/CodeBook.java @@ -0,0 +1,7 @@ +package com.P4.init; + +/** + * Created by Lee on 08/02/16. + */ +public class CodeBook { +} From 3f0f87d2a4d1b9bef1f12a6d4d817dd8e87afbd5 Mon Sep 17 00:00:00 2001 From: GoatSnail Date: Wed, 2 Mar 2016 13:32:39 +0100 Subject: [PATCH 05/55] test --- Scanner/src/java/org/Scanner/Main.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Scanner/src/java/org/Scanner/Main.java b/Scanner/src/java/org/Scanner/Main.java index 8ed7833..5aac695 100644 --- a/Scanner/src/java/org/Scanner/Main.java +++ b/Scanner/src/java/org/Scanner/Main.java @@ -4,6 +4,6 @@ public class Main { public static final void main (String[] args) { - System.out.println("test"); + System.out.println("tesft"); } } From 262534fd8f01297cded1f0ff7c66cd7bf2d98a77 Mon Sep 17 00:00:00 2001 From: GoatSnail Date: Wed, 2 Mar 2016 13:34:22 +0100 Subject: [PATCH 06/55] added stuff --- Scanner/src/java/org/Scanner/ScannerCode.java | 5 +++++ Scanner/src/java/org/Scanner/Token.java | 17 +++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 Scanner/src/java/org/Scanner/ScannerCode.java create mode 100644 Scanner/src/java/org/Scanner/Token.java diff --git a/Scanner/src/java/org/Scanner/ScannerCode.java b/Scanner/src/java/org/Scanner/ScannerCode.java new file mode 100644 index 0000000..48875a4 --- /dev/null +++ b/Scanner/src/java/org/Scanner/ScannerCode.java @@ -0,0 +1,5 @@ +/** + * Created by Arne K. Rasmussen on 29-02-2016. + */ +public class ScannerCode { +} diff --git a/Scanner/src/java/org/Scanner/Token.java b/Scanner/src/java/org/Scanner/Token.java new file mode 100644 index 0000000..19afc3b --- /dev/null +++ b/Scanner/src/java/org/Scanner/Token.java @@ -0,0 +1,17 @@ +/** + * Created by Arne K. Rasmussen on 29-02-2016. + */ +public class Token { + + public enum type{ + EOF, Break, EOL, ROBOT_NAME, LOAD, NUM_DCL, ID, + STRING_DCL, BOOL_DCL, COORD_DCL, VOID, END, HEAR, + SIGNAL, START, IF, REPEAT, UNTIL, FOREVER, ELSE, VAL, + PLUS, MINUS, TIMES, DIVIDE, ASSIGN, POWER, SQUARE_ROOT, + BOOL_AND, BOOL_OR, BOOL_EQ, BOOL_GT, BOOL_LT, BOOL_GTE, + BOOL_LTE, BOOL_LIT, COORD_LIT, STRING_LIT, TYPE, CHEST_LIT, + BLOCK_LIT, ITEM_LIT, NPC_LIT + } + + +} From a3eed904d819b789782d5eaf6a4e7b72b8d6a7b8 Mon Sep 17 00:00:00 2001 From: Lee Paludan Date: Thu, 3 Mar 2016 08:39:29 +0100 Subject: [PATCH 07/55] Added package --- Scanner/src/java/org/Scanner/Token.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Scanner/src/java/org/Scanner/Token.java b/Scanner/src/java/org/Scanner/Token.java index 19afc3b..7f44698 100644 --- a/Scanner/src/java/org/Scanner/Token.java +++ b/Scanner/src/java/org/Scanner/Token.java @@ -1,6 +1,5 @@ -/** - * Created by Arne K. Rasmussen on 29-02-2016. - */ +package org.Scanner; + public class Token { public enum type{ @@ -12,6 +11,4 @@ public enum type{ BOOL_LTE, BOOL_LIT, COORD_LIT, STRING_LIT, TYPE, CHEST_LIT, BLOCK_LIT, ITEM_LIT, NPC_LIT } - - } From 72e60dc5a86d9f97b42cccc673f25fffd24a6e65 Mon Sep 17 00:00:00 2001 From: Lasse Nielsen Date: Thu, 3 Mar 2016 09:01:00 +0100 Subject: [PATCH 08/55] SOme scanner stuff from Watt book --- Scanner/src/java/org/Scanner/ScannerCode.java | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/Scanner/src/java/org/Scanner/ScannerCode.java b/Scanner/src/java/org/Scanner/ScannerCode.java index 48875a4..78f1a44 100644 --- a/Scanner/src/java/org/Scanner/ScannerCode.java +++ b/Scanner/src/java/org/Scanner/ScannerCode.java @@ -1,5 +1,82 @@ /** * Created by Arne K. Rasmussen on 29-02-2016. */ +import java.lang.StringBuffer; +import CharStream.java; +import Token.java; +import + public class ScannerCode { + + private char currentChar = //load in first char; + private byte currentType; + + // Mutable sequence of chars + private StringBuffer currentWord; + + private void checkThenAddToCurrentWord(char expectedChar) { + if (currentChar == expectedChar) { + currentWord.append(currentChar); + currentChar = //LoadNextChar; + } else + } + + + + + private void addToCurrentWord() { + currentWord.append(currentChar); + currentChar = ; + } + + private boolean isDigit(char c) + { + return '0' <= c && c <= '9'; + } + + private boolean isLetter(char c){ + return 'a' <= c && c <= 'z'; + } + + private boolean isGraphic(char c) + { + if(isLetter(c) || isDigit(c) || c == ' ') return true; + else return false; + } + + + // scanToken, her gennemgås struktureren finder ud af om identifier eller intlit, og checker for operatorer + // Med hvad med KEYWORDS? Det tjekkes i Token constructoren og så kan typen ændres der + private byte scanToken() { + switch(currentChar) + case 'a':case 'b': addToCurrentWord(); + while(isLetter((currentChar) || isDigit(currentChar))) addToCurrentWord(); + return new Token(IDENTIFIER); + + case '0':case '1': addToCurrentWord(); + while(isLetter(currentChar) || isDigit(currentChar)) addToCurrentWord(); + return new Token(NUM); + case '(': addToCurrentWord(); + return Token(LEFTPAREN); + + + } + + private byte scanSeperator(){ + //Scan whatever seperators the language has + } + + public Token scan(){ + while (currentChar == ' ' || currentChar == '\n') + scanSeperator(); + currentWord = new StringBuffer(""); + currentType = scanToken(); + return new Token(currentType, currentWord.toString()); + } + + + + + + } From 062158e13af8dca229f793c1cb74eea24a7cc079 Mon Sep 17 00:00:00 2001 From: Lee Paludan Date: Thu, 3 Mar 2016 09:04:01 +0100 Subject: [PATCH 09/55] Added package --- Scanner/src/java/org/Scanner/ScannerCode.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Scanner/src/java/org/Scanner/ScannerCode.java b/Scanner/src/java/org/Scanner/ScannerCode.java index 78f1a44..1734be6 100644 --- a/Scanner/src/java/org/Scanner/ScannerCode.java +++ b/Scanner/src/java/org/Scanner/ScannerCode.java @@ -1,6 +1,5 @@ -/** - * Created by Arne K. Rasmussen on 29-02-2016. - */ +package org.Scanner; + import java.lang.StringBuffer; import CharStream.java; import Token.java; From 9f81aafec3cebfe69f739e2b42dbd50e811c7ffb Mon Sep 17 00:00:00 2001 From: Lee Paludan Date: Thu, 3 Mar 2016 09:04:51 +0100 Subject: [PATCH 10/55] Added package --- Scanner/src/java/org/Scanner/ScannerCode.java | 1 - 1 file changed, 1 deletion(-) diff --git a/Scanner/src/java/org/Scanner/ScannerCode.java b/Scanner/src/java/org/Scanner/ScannerCode.java index 1734be6..161203a 100644 --- a/Scanner/src/java/org/Scanner/ScannerCode.java +++ b/Scanner/src/java/org/Scanner/ScannerCode.java @@ -3,7 +3,6 @@ import java.lang.StringBuffer; import CharStream.java; import Token.java; -import public class ScannerCode { From 9d24b96120172064ddec51896755a38d52250046 Mon Sep 17 00:00:00 2001 From: GoatSnail Date: Thu, 3 Mar 2016 09:09:01 +0100 Subject: [PATCH 11/55] Added dummy TokenStream class --- Scanner/src/java/org/Scanner/Token.java | 1 + 1 file changed, 1 insertion(+) diff --git a/Scanner/src/java/org/Scanner/Token.java b/Scanner/src/java/org/Scanner/Token.java index 7f44698..feaea79 100644 --- a/Scanner/src/java/org/Scanner/Token.java +++ b/Scanner/src/java/org/Scanner/Token.java @@ -11,4 +11,5 @@ public enum type{ BOOL_LTE, BOOL_LIT, COORD_LIT, STRING_LIT, TYPE, CHEST_LIT, BLOCK_LIT, ITEM_LIT, NPC_LIT } + } From 23ce2d405e2eac8f81f4ff4d5c125a6c468aa277 Mon Sep 17 00:00:00 2001 From: GoatSnail Date: Thu, 3 Mar 2016 09:09:46 +0100 Subject: [PATCH 12/55] Now i actually added it? o.O --- Scanner/src/java/org/Scanner/TokenStream.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 Scanner/src/java/org/Scanner/TokenStream.java diff --git a/Scanner/src/java/org/Scanner/TokenStream.java b/Scanner/src/java/org/Scanner/TokenStream.java new file mode 100644 index 0000000..0c899eb --- /dev/null +++ b/Scanner/src/java/org/Scanner/TokenStream.java @@ -0,0 +1,13 @@ +package org.Scanner; + +/** + * Created by Arne K. Rasmussen on 03-03-2016. + */ +public class TokenStream { + public Token CurrentToken; + + + public Token Peak(){return new Token();} + + public Token PeakTwo(){return new Token();} +} From 371ca1237170fb18d6eb63a89ab5078f69b026d3 Mon Sep 17 00:00:00 2001 From: Lee Paludan Date: Thu, 3 Mar 2016 09:13:59 +0100 Subject: [PATCH 13/55] Removed folder, made stuff more clear --- ObsidiCodeScanner/src/ScannerCode.java | 5 ----- ObsidiCodeScanner/src/Token.java | 17 ----------------- Scanner/src/java/org/Scanner/TokenStream.java | 3 --- 3 files changed, 25 deletions(-) delete mode 100644 ObsidiCodeScanner/src/ScannerCode.java delete mode 100644 ObsidiCodeScanner/src/Token.java diff --git a/ObsidiCodeScanner/src/ScannerCode.java b/ObsidiCodeScanner/src/ScannerCode.java deleted file mode 100644 index 48875a4..0000000 --- a/ObsidiCodeScanner/src/ScannerCode.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Created by Arne K. Rasmussen on 29-02-2016. - */ -public class ScannerCode { -} diff --git a/ObsidiCodeScanner/src/Token.java b/ObsidiCodeScanner/src/Token.java deleted file mode 100644 index 19afc3b..0000000 --- a/ObsidiCodeScanner/src/Token.java +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Created by Arne K. Rasmussen on 29-02-2016. - */ -public class Token { - - public enum type{ - EOF, Break, EOL, ROBOT_NAME, LOAD, NUM_DCL, ID, - STRING_DCL, BOOL_DCL, COORD_DCL, VOID, END, HEAR, - SIGNAL, START, IF, REPEAT, UNTIL, FOREVER, ELSE, VAL, - PLUS, MINUS, TIMES, DIVIDE, ASSIGN, POWER, SQUARE_ROOT, - BOOL_AND, BOOL_OR, BOOL_EQ, BOOL_GT, BOOL_LT, BOOL_GTE, - BOOL_LTE, BOOL_LIT, COORD_LIT, STRING_LIT, TYPE, CHEST_LIT, - BLOCK_LIT, ITEM_LIT, NPC_LIT - } - - -} diff --git a/Scanner/src/java/org/Scanner/TokenStream.java b/Scanner/src/java/org/Scanner/TokenStream.java index 0c899eb..a8abe6e 100644 --- a/Scanner/src/java/org/Scanner/TokenStream.java +++ b/Scanner/src/java/org/Scanner/TokenStream.java @@ -1,8 +1,5 @@ package org.Scanner; -/** - * Created by Arne K. Rasmussen on 03-03-2016. - */ public class TokenStream { public Token CurrentToken; From c8bfeeec5f247a788a0d1a395bc71c9b38a71e47 Mon Sep 17 00:00:00 2001 From: GoatSnail Date: Thu, 3 Mar 2016 09:37:22 +0100 Subject: [PATCH 14/55] Added constructors to Token, should be usable now --- Scanner/src/java/org/Scanner/Token.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Scanner/src/java/org/Scanner/Token.java b/Scanner/src/java/org/Scanner/Token.java index feaea79..9a9c7c9 100644 --- a/Scanner/src/java/org/Scanner/Token.java +++ b/Scanner/src/java/org/Scanner/Token.java @@ -12,4 +12,23 @@ public enum type{ BLOCK_LIT, ITEM_LIT, NPC_LIT } + public final type _type; + public final String value; + + /** + * + * @param t The type of the Token + * @param val The string value of the Token + */ + public Token(type t, String val){ + _type = t; + value = val; + } + + public Token(type t){ + this(t, ""); + } + + + } From ce31e1e7f1b7b0f94662d2d98d5125d68d5e9376 Mon Sep 17 00:00:00 2001 From: Lee Paludan Date: Thu, 3 Mar 2016 10:51:33 +0100 Subject: [PATCH 15/55] Adding functions for ScannerCode.java --- Scanner/src/java/org/Scanner/ScannerCode.java | 73 +++---------------- 1 file changed, 10 insertions(+), 63 deletions(-) diff --git a/Scanner/src/java/org/Scanner/ScannerCode.java b/Scanner/src/java/org/Scanner/ScannerCode.java index 161203a..99c9dd1 100644 --- a/Scanner/src/java/org/Scanner/ScannerCode.java +++ b/Scanner/src/java/org/Scanner/ScannerCode.java @@ -1,80 +1,27 @@ package org.Scanner; import java.lang.StringBuffer; -import CharStream.java; -import Token.java; +import java.util.ArrayList; +import java.util.List; public class ScannerCode { - private char currentChar = //load in first char; + private char currentChar; private byte currentType; + private List WhiteList = new ArrayList (); - // Mutable sequence of chars private StringBuffer currentWord; - - private void checkThenAddToCurrentWord(char expectedChar) { - if (currentChar == expectedChar) { - currentWord.append(currentChar); - currentChar = //LoadNextChar; - } else - } - - - - - private void addToCurrentWord() { - currentWord.append(currentChar); - currentChar = ; - } - - private boolean isDigit(char c) + + public Token GetToken () { - return '0' <= c && c <= '9'; - } + String currentWord; + Token.type tokenType; - private boolean isLetter(char c){ - return 'a' <= c && c <= 'z'; + return new Token(tokenType, currentWord); } - private boolean isGraphic(char c) + private void ScanForTokens () { - if(isLetter(c) || isDigit(c) || c == ' ') return true; - else return false; - } - - - // scanToken, her gennemgås struktureren finder ud af om identifier eller intlit, og checker for operatorer - // Med hvad med KEYWORDS? Det tjekkes i Token constructoren og så kan typen ændres der - private byte scanToken() { - switch(currentChar) - case 'a':case 'b': addToCurrentWord(); - while(isLetter((currentChar) || isDigit(currentChar))) addToCurrentWord(); - return new Token(IDENTIFIER); - case '0':case '1': addToCurrentWord(); - while(isLetter(currentChar) || isDigit(currentChar)) addToCurrentWord(); - return new Token(NUM); - case '(': addToCurrentWord(); - return Token(LEFTPAREN); - - - } - - private byte scanSeperator(){ - //Scan whatever seperators the language has - } - - public Token scan(){ - while (currentChar == ' ' || currentChar == '\n') - scanSeperator(); - currentWord = new StringBuffer(""); - currentType = scanToken(); - return new Token(currentType, currentWord.toString()); } - - - - - - } From b7c3f21bac1cb66c64b92f5baf859880eda85e17 Mon Sep 17 00:00:00 2001 From: GoatSnail Date: Thu, 3 Mar 2016 10:53:28 +0100 Subject: [PATCH 16/55] Begun work on Tokentype --- Scanner/src/java/org/Scanner/Token.java | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/Scanner/src/java/org/Scanner/Token.java b/Scanner/src/java/org/Scanner/Token.java index 9a9c7c9..ca81e99 100644 --- a/Scanner/src/java/org/Scanner/Token.java +++ b/Scanner/src/java/org/Scanner/Token.java @@ -1,9 +1,12 @@ package org.Scanner; +import java.util.regex.Pattern; + + public class Token { - public enum type{ - EOF, Break, EOL, ROBOT_NAME, LOAD, NUM_DCL, ID, + public enum type { + EOF, Break, EOL, LOAD, NUM_DCL, ID, STRING_DCL, BOOL_DCL, COORD_DCL, VOID, END, HEAR, SIGNAL, START, IF, REPEAT, UNTIL, FOREVER, ELSE, VAL, PLUS, MINUS, TIMES, DIVIDE, ASSIGN, POWER, SQUARE_ROOT, @@ -16,19 +19,24 @@ public enum type{ public final String value; /** - * - * @param t The type of the Token + * @param t The type of the Token * @param val The string value of the Token */ - public Token(type t, String val){ + public Token(type t, String val) { _type = t; value = val; } - public Token(type t){ + public Token(type t) { this(t, ""); } + public static class TokenPattern { + TokenPattern(type t, Pattern p){ + } + type Tokentype; + Pattern pattern; + } } From 2baf9dc686ff7b2e063ffd65bd25aae1b7eddf79 Mon Sep 17 00:00:00 2001 From: Lee Paludan Date: Thu, 3 Mar 2016 10:54:47 +0100 Subject: [PATCH 17/55] Adding functions for ScannerCode.java --- Scanner/src/java/org/Scanner/ScannerCode.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Scanner/src/java/org/Scanner/ScannerCode.java b/Scanner/src/java/org/Scanner/ScannerCode.java index 99c9dd1..0456d73 100644 --- a/Scanner/src/java/org/Scanner/ScannerCode.java +++ b/Scanner/src/java/org/Scanner/ScannerCode.java @@ -14,8 +14,8 @@ public class ScannerCode { public Token GetToken () { - String currentWord; - Token.type tokenType; + String currentWord = "kurt"; + Token.type tokenType = Token.type.ASSIGN; return new Token(tokenType, currentWord); } From a57753e28cacdf82186c2a673a7aec534df2f29f Mon Sep 17 00:00:00 2001 From: Lee Paludan Date: Thu, 3 Mar 2016 11:06:59 +0100 Subject: [PATCH 18/55] Finally fixed the return typw --- Scanner/src/java/org/Scanner/ScannerCode.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Scanner/src/java/org/Scanner/ScannerCode.java b/Scanner/src/java/org/Scanner/ScannerCode.java index 0456d73..80682db 100644 --- a/Scanner/src/java/org/Scanner/ScannerCode.java +++ b/Scanner/src/java/org/Scanner/ScannerCode.java @@ -15,9 +15,9 @@ public class ScannerCode { public Token GetToken () { String currentWord = "kurt"; - Token.type tokenType = Token.type.ASSIGN; + // type tokenType = Token.type.ASSIGN; - return new Token(tokenType, currentWord); + return new Token(Token.type.ASSIGN, currentWord); } private void ScanForTokens () From 35425bb9021e17e6dc560f962b782efe15832897 Mon Sep 17 00:00:00 2001 From: Lee Paludan Date: Thu, 3 Mar 2016 11:31:08 +0100 Subject: [PATCH 19/55] Finally fixed the return typw --- Scanner/src/java/org/Scanner/ScannerCode.java | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/Scanner/src/java/org/Scanner/ScannerCode.java b/Scanner/src/java/org/Scanner/ScannerCode.java index 80682db..4498c85 100644 --- a/Scanner/src/java/org/Scanner/ScannerCode.java +++ b/Scanner/src/java/org/Scanner/ScannerCode.java @@ -4,20 +4,16 @@ import java.util.ArrayList; import java.util.List; -public class ScannerCode { - - private char currentChar; - private byte currentType; +public class ScannerCode +{ private List WhiteList = new ArrayList (); - - private StringBuffer currentWord; - + public Token GetToken () { - String currentWord = "kurt"; - // type tokenType = Token.type.ASSIGN; + StringBuffer currentWord = new StringBuffer(); + char currentChar = 'a'; - return new Token(Token.type.ASSIGN, currentWord); + return new Token(Token.type.ASSIGN, currentWord.toString()); } private void ScanForTokens () From e9ce2cebde93a3bad4584cfb97eea1c51e2f5934 Mon Sep 17 00:00:00 2001 From: "Esben L. Kirkegaard" Date: Thu, 3 Mar 2016 11:33:32 +0000 Subject: [PATCH 20/55] Started work on the parser --- Scanner/src/java/org/Scanner/Parser.java | 190 ++++++++++++++++++ Scanner/src/java/org/Scanner/Token.java | 6 +- Scanner/src/java/org/Scanner/TokenStream.java | 6 +- 3 files changed, 196 insertions(+), 6 deletions(-) create mode 100644 Scanner/src/java/org/Scanner/Parser.java diff --git a/Scanner/src/java/org/Scanner/Parser.java b/Scanner/src/java/org/Scanner/Parser.java new file mode 100644 index 0000000..34669dd --- /dev/null +++ b/Scanner/src/java/org/Scanner/Parser.java @@ -0,0 +1,190 @@ +package org.Scanner; +import org.Scanner.Token.*; + +/** + * Created by Tidsfordriv on 03/03/16. + */ +public class Parser { + + TokenStream ts; + + public Parser(){ + ts = new TokenStream(); + } + + private void expect(Token.type expectedTokenType){ + if (ts.CurrentToken._type == expectedTokenType) + ts.CurrentToken = ts.Peek(); + else + System.out.println("u dun goofed"); + //Insert error here + } + + private void acceptIt(){ + ts.CurrentToken = ts.Peek(); + } + + private void Program(){ + Robo(); + if (ts.CurrentToken._type == type.LOAD) + Load(); + dcl(); + start_func(); + while(ts.CurrentToken._type != type.EOF) + func(); + expect(type.EOF); + } + + private void Robo(){ + if(ts.CurrentToken._type == type.ROBOT_NAME) + expect(type.ROBOT_NAME); + else + System.out.println("u dun goofed"); + } + + private void Load(){ + //Parse Load WHAT DO? + } + + private void dcl(){ + boolean declaring = true; + while(declaring) + switch (ts.CurrentToken._type){ + case NUM_DCL:{ + num_dcl(); + //Stuff it do. + } + break; + case REF_DCL:{ + ref_dcl(); + //Stuff it do + } + break; + case STRING_DCL:{ + string_dcl(); + //Stuff it do + } + break; + case BOOL_DCL:{ + bool_dcl(); + //Stuff it do + } + break; + case COORD_DCL:{ + coord_dcl(); + //Stuff it do + } + break; + default: + declaring = false; + break; + } + } + + private void num_dcl(){ + //Parse num_dcl + } + + private void ref_dcl(){ + //Parse ref_dcl + } + + private void string_dcl(){ + //Parse string_dcl + } + + private void bool_dcl() { + //Parse bool_dcl + } + + private void coord_dcl() { + + } + + private void start_func() { + if (ts.CurrentToken._type == type.VOID && ts.Peek()._type == type.START && ts.PeekTwo()._type == type.EOL) + func_body(); + else + System.out.println("u dun goofed"); + //Error + if (ts.CurrentToken._type == type.END && ts.Peek()._type == type.START) + System.out.println("u dun well"); + + } + + private void func() { + if(ts.CurrentToken._type == type.TYPE && ts.Peek()._type == type.ID){ + params(); + expect(type.EOL); + func_body(); + if (ts.CurrentToken._type == type.RETURN) + expr(); + expect(type.END); + expect(type.ID); + } + else + System.out.println("u dun goofed"); + //Throw error + } + + private void func_body() { + + } + + private void stmt() { + + } + + private void if_stmt() { + + } + + private void loop_stmt() { + + } + + private void func_call() { + + } + + private void sig_stmt() { + + } + + private void expr() { + + } + + private void term() { + + } + + private void factor() { + + } + + private void exp() { + + } + + private void cond() { + + } + + private void bool_op() { + + } + + private void bool_end() { + + } + + private void args() { + + } + + private void params() { + + } + +} diff --git a/Scanner/src/java/org/Scanner/Token.java b/Scanner/src/java/org/Scanner/Token.java index ca81e99..4c3d9c7 100644 --- a/Scanner/src/java/org/Scanner/Token.java +++ b/Scanner/src/java/org/Scanner/Token.java @@ -6,13 +6,13 @@ public class Token { public enum type { - EOF, Break, EOL, LOAD, NUM_DCL, ID, - STRING_DCL, BOOL_DCL, COORD_DCL, VOID, END, HEAR, + EOF, BREAK, EOL, ROBOT_NAME, LOAD, NUM_DCL, ID, + STRING_DCL, BOOL_DCL, COORD_DCL, REF_DCL, VOID, END, HEAR, SIGNAL, START, IF, REPEAT, UNTIL, FOREVER, ELSE, VAL, PLUS, MINUS, TIMES, DIVIDE, ASSIGN, POWER, SQUARE_ROOT, BOOL_AND, BOOL_OR, BOOL_EQ, BOOL_GT, BOOL_LT, BOOL_GTE, BOOL_LTE, BOOL_LIT, COORD_LIT, STRING_LIT, TYPE, CHEST_LIT, - BLOCK_LIT, ITEM_LIT, NPC_LIT + BLOCK_LIT, ITEM_LIT, NPC_LIT, RETURN } public final type _type; diff --git a/Scanner/src/java/org/Scanner/TokenStream.java b/Scanner/src/java/org/Scanner/TokenStream.java index a8abe6e..fbc19aa 100644 --- a/Scanner/src/java/org/Scanner/TokenStream.java +++ b/Scanner/src/java/org/Scanner/TokenStream.java @@ -1,10 +1,10 @@ package org.Scanner; public class TokenStream { - public Token CurrentToken; + public Token CurrentToken; - public Token Peak(){return new Token();} + public Token Peek(){return new Token();} - public Token PeakTwo(){return new Token();} + public Token PeekTwo(){return new Token();} } From c25fe55751951f134e01ba2a2066f68111f7753f Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 3 Mar 2016 12:40:20 +0100 Subject: [PATCH 21/55] Added the base Node AST --- AST/AST.java | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 AST/AST.java diff --git a/AST/AST.java b/AST/AST.java new file mode 100644 index 0000000..a97bd4c --- /dev/null +++ b/AST/AST.java @@ -0,0 +1,22 @@ +public class Node +{ + //Defining variabels + public String value; + public Node left; + public Node right; + //Defining the constructor for the Node + public Node(String value, Node left, Node right) + { + this.value = value; + this.left = left; + this.right = right; + } + //Need to override the ToString function to return the values + @Override + public String toString() + { + return value; + } + //Need to define a function that traverses the tree and returns the value of the node + +} \ No newline at end of file From 37150e2ae37ce801f590950b0da3be87104c56d6 Mon Sep 17 00:00:00 2001 From: GoatSnail Date: Thu, 3 Mar 2016 12:49:10 +0100 Subject: [PATCH 22/55] TokenPattern and a few tokens implemented --- Scanner/src/java/org/Scanner/Token.java | 26 +++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/Scanner/src/java/org/Scanner/Token.java b/Scanner/src/java/org/Scanner/Token.java index ca81e99..e40b2fb 100644 --- a/Scanner/src/java/org/Scanner/Token.java +++ b/Scanner/src/java/org/Scanner/Token.java @@ -1,5 +1,9 @@ package org.Scanner; +import com.sun.javafx.fxml.expression.Expression; + +import java.util.ArrayList; +import java.util.Arrays; import java.util.regex.Pattern; @@ -11,8 +15,7 @@ public enum type { SIGNAL, START, IF, REPEAT, UNTIL, FOREVER, ELSE, VAL, PLUS, MINUS, TIMES, DIVIDE, ASSIGN, POWER, SQUARE_ROOT, BOOL_AND, BOOL_OR, BOOL_EQ, BOOL_GT, BOOL_LT, BOOL_GTE, - BOOL_LTE, BOOL_LIT, COORD_LIT, STRING_LIT, TYPE, CHEST_LIT, - BLOCK_LIT, ITEM_LIT, NPC_LIT + BOOL_LTE, BOOL_LIT, COORD_LIT, STRING_LIT, TYPE } public final type _type; @@ -32,11 +35,22 @@ public Token(type t) { } public static class TokenPattern { - TokenPattern(type t, Pattern p){ - + TokenPattern(type t, String p){ + tokenType = t; + regex = p; } - type Tokentype; - Pattern pattern; + public final type tokenType; + public final String regex; } + public static final ArrayList patternList = new ArrayList(Arrays.asList( + new TokenPattern(type.ASSIGN,"="), + new TokenPattern(type.BOOL_AND,"AND"), + new TokenPattern(type.BOOL_DCL,"BOOL"), + new TokenPattern(type.BOOL_EQ,"IS"), + new TokenPattern(type.BOOL_GT,"GREATER_THAN"), + new TokenPattern(type.BOOL_GTE,"GREATER_THAN_EQUAL"), + new TokenPattern(type.BOOL_LIT,"TRUE|FALSE") + )); + } From 296c1dd68c11e8ee0e9ed9af800f93ff54dcaf50 Mon Sep 17 00:00:00 2001 From: Lasse Nielsen Date: Fri, 4 Mar 2016 10:32:44 +0100 Subject: [PATCH 23/55] Some basic methods for checking characters --- Scanner/src/java/org/Scanner/ScannerCode.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Scanner/src/java/org/Scanner/ScannerCode.java b/Scanner/src/java/org/Scanner/ScannerCode.java index 4498c85..6eacf80 100644 --- a/Scanner/src/java/org/Scanner/ScannerCode.java +++ b/Scanner/src/java/org/Scanner/ScannerCode.java @@ -20,4 +20,20 @@ private void ScanForTokens () { } + + private boolean isDigit(char c) + { + return '0' <= c && c <= '9'; + } + + private boolean isLetter(char c) { + return 'a' <= c && c <= 'z'; + } + + + private boolean isAGraphicCharacter(char c) + { + if(isLetter(c) || isDigit(c) || c == ' ') return true; + else return false; + } } From 6ca029bd8da6175cc2fab57bec3ef0ebd58fa75a Mon Sep 17 00:00:00 2001 From: Michael Date: Fri, 4 Mar 2016 11:27:27 +0100 Subject: [PATCH 24/55] Redefined the AST structure -Michael --- AST/AST.java | 22 ---------------------- AST/Node.java | 16 ++++++++++++++++ AST/SingleNode.java | 0 3 files changed, 16 insertions(+), 22 deletions(-) delete mode 100644 AST/AST.java create mode 100644 AST/Node.java create mode 100644 AST/SingleNode.java diff --git a/AST/AST.java b/AST/AST.java deleted file mode 100644 index a97bd4c..0000000 --- a/AST/AST.java +++ /dev/null @@ -1,22 +0,0 @@ -public class Node -{ - //Defining variabels - public String value; - public Node left; - public Node right; - //Defining the constructor for the Node - public Node(String value, Node left, Node right) - { - this.value = value; - this.left = left; - this.right = right; - } - //Need to override the ToString function to return the values - @Override - public String toString() - { - return value; - } - //Need to define a function that traverses the tree and returns the value of the node - -} \ No newline at end of file diff --git a/AST/Node.java b/AST/Node.java new file mode 100644 index 0000000..35309bb --- /dev/null +++ b/AST/Node.java @@ -0,0 +1,16 @@ +public abstract class Node{ + //Need to define the print function, preorder postorder or inorder + //Depth first search + //We also add a custom print method + protected void print(){ + print(this.toString()); + } + protected void print(String value){ + System.out.print(value + " "); + } + //We need to override the toString function to build a custom for our AST + @Override + public String toString(){ + + } +} \ No newline at end of file diff --git a/AST/SingleNode.java b/AST/SingleNode.java new file mode 100644 index 0000000..e69de29 From e635feedfdeadfc166724dfb68c44813d7441cf9 Mon Sep 17 00:00:00 2001 From: "Esben L. Kirkegaard" Date: Fri, 4 Mar 2016 10:43:47 +0000 Subject: [PATCH 25/55] Last changes to handmade parser. Still far from completion --- Scanner/src/java/org/Scanner/Parser.java | 137 +++++++++++++++++++++-- Scanner/src/java/org/Scanner/Token.java | 2 +- 2 files changed, 130 insertions(+), 9 deletions(-) diff --git a/Scanner/src/java/org/Scanner/Parser.java b/Scanner/src/java/org/Scanner/Parser.java index 34669dd..c49afe9 100644 --- a/Scanner/src/java/org/Scanner/Parser.java +++ b/Scanner/src/java/org/Scanner/Parser.java @@ -20,14 +20,43 @@ private void expect(Token.type expectedTokenType){ //Insert error here } + private void expect(Token.type expectedTokenType, Token.type expectedFollowingToken){ + if (ts.CurrentToken._type == expectedTokenType && ts.Peek()._type == expectedFollowingToken) + ts.CurrentToken = ts.PeekTwo(); + else + System.out.println("u dun goofed"); + //Insert error here + } + + private void expect(Token.type expectedFirstToken, Token.type expectedSecondToken, Token.type expectedThirdToken){ + if (ts.CurrentToken._type == expectedFirstToken && ts.Peek()._type == expectedSecondToken && ts.PeekTwo()._type == expectedThirdToken) { + ts.CurrentToken = ts.PeekTwo(); + ts.CurrentToken = ts.Peek(); + } + else + System.out.println("u dun goofed"); + //Insert error here + } + private void acceptIt(){ ts.CurrentToken = ts.Peek(); } + private boolean isDCL(type t){ + if (t == type.BOOL_DCL || t == type.REF_DCL || t == type.NUM_DCL || t == type.COORD_DCL || t == type.STRING_DCL) + return true; + return false; + } + + private boolean isSTMT(type t){ + if (t == type.IF || t == type.REPEAT || t == type.FOREVER || t == type.SIGNAL) + return true; + return false; + } + private void Program(){ Robo(); - if (ts.CurrentToken._type == type.LOAD) - Load(); + Load(); dcl(); start_func(); while(ts.CurrentToken._type != type.EOF) @@ -43,7 +72,9 @@ private void Robo(){ } private void Load(){ - //Parse Load WHAT DO? + /*while(ts.Peek()._type == type.LOAD || ts.Peek()._type == type.ID || ts.Peek()._type == type.EOL){ + Do something + }*/ } private void dcl(){ @@ -102,8 +133,11 @@ private void coord_dcl() { } private void start_func() { - if (ts.CurrentToken._type == type.VOID && ts.Peek()._type == type.START && ts.PeekTwo()._type == type.EOL) + if (ts.CurrentToken._type == type.VOID && ts.Peek()._type == type.START && ts.PeekTwo()._type == type.EOL){ + ts.CurrentToken = ts.PeekTwo(); + acceptIt(); func_body(); + } else System.out.println("u dun goofed"); //Error @@ -114,6 +148,8 @@ private void start_func() { private void func() { if(ts.CurrentToken._type == type.TYPE && ts.Peek()._type == type.ID){ + acceptIt(); + acceptIt(); params(); expect(type.EOL); func_body(); @@ -122,28 +158,113 @@ private void func() { expect(type.END); expect(type.ID); } + else if(ts.CurrentToken._type == type.HEAR && ts.Peek()._type == type.STRING_LIT){ + acceptIt(); + acceptIt(); + params(); + func_body(); + expect(type.END); + expect(type.HEAR); + } else System.out.println("u dun goofed"); //Throw error } private void func_body() { - + while (ts.CurrentToken._type != type.END){ + if(isDCL(ts.CurrentToken._type)) + dcl(); + else if (isSTMT(ts.CurrentToken._type)) + stmt(); + else + System.out.println("u dun goofed"); + //Error + expect(type.EOL); + } } private void stmt() { - + switch(ts.CurrentToken._type){ + case IF:{ + acceptIt(); + if_stmt(); + //Stuff it do + } + break; + case REPEAT:{ + acceptIt(); + loop_stmt(); + //Stuff it do + } + break; + case FOREVER:{ + acceptIt(); + loop_stmt(); + } + break; + case SIGNAL:{ + acceptIt(); + sig_stmt(); + } + break; + case FUNC_CALL:{ + acceptIt(); + func_call(); + } + break; + default:{ + //Errors + } + break; + } } private void if_stmt() { - + expect(type.IF); + cond(); + expect(type.EOL); + func_body(); + expect(type.END, type.IF); + while(ts.CurrentToken._type == type.ELSE && ts.Peek()._type == type.IF){ + expect(type.ELSE, type.IF); + func_body(); + expect(type.END, type.ELSE, type.IF); + } + if(ts.CurrentToken._type == type.ELSE){ + expect(type.ELSE); + func_body(); + expect(type.END, type.ELSE); + } } private void loop_stmt() { - + if(ts.CurrentToken._type == type.REPEAT) { + expect(type.REPEAT, type.UNTIL); + cond(); + expect(type.EOL); + func_body(); + expect(type.END, type.REPEAT); + } + else if(ts.CurrentToken._type == type.FOREVER){ + expect(type.FOREVER, type.EOL); + func_body(); + expect(type.END, type.FOREVER); + } + else + System.out.println("u dun goofed"); + //Error } private void func_call() { + expect(type.ID); + if(ts.CurrentToken._type == type.DOT){ + expect(type.DOT, type.ID); + args(); + } + else + args(); + expect(type.EOL); } diff --git a/Scanner/src/java/org/Scanner/Token.java b/Scanner/src/java/org/Scanner/Token.java index 0a7f65b..93854ba 100644 --- a/Scanner/src/java/org/Scanner/Token.java +++ b/Scanner/src/java/org/Scanner/Token.java @@ -15,7 +15,7 @@ public enum type { SIGNAL, START, IF, REPEAT, UNTIL, FOREVER, ELSE, VAL, PLUS, MINUS, TIMES, DIVIDE, ASSIGN, POWER, SQUARE_ROOT, BOOL_AND, BOOL_OR, BOOL_EQ, BOOL_GT, BOOL_LT, BOOL_GTE, - BOOL_LTE, BOOL_LIT, COORD_LIT, STRING_LIT + BOOL_LTE, BOOL_LIT, COORD_LIT, STRING_LIT, DOT, FUNC_CALL } public final type _type; From 23e550b746ab3a45e9ebee1a349078a4b0e7a7ea Mon Sep 17 00:00:00 2001 From: Lee Paludan Date: Fri, 4 Mar 2016 11:47:57 +0100 Subject: [PATCH 26/55] Added filereader etc. --- Scanner/src/java/org/Scanner/ScannerCode.java | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/Scanner/src/java/org/Scanner/ScannerCode.java b/Scanner/src/java/org/Scanner/ScannerCode.java index 6eacf80..86af3f7 100644 --- a/Scanner/src/java/org/Scanner/ScannerCode.java +++ b/Scanner/src/java/org/Scanner/ScannerCode.java @@ -1,24 +1,39 @@ package org.Scanner; +import java.io.FileNotFoundException; +import java.io.FileReader; import java.lang.StringBuffer; import java.util.ArrayList; import java.util.List; +import java.io.IOException; public class ScannerCode { private List WhiteList = new ArrayList (); - + String _filePath; + FileReader inputStream; + + public ScannerCode (String filePath) + { + _filePath = filePath; + + try { + inputStream = new FileReader(_filePath); + } catch (FileNotFoundException e) { + throw e; + } finally { + inputStream.close(); + } + } public Token GetToken () { StringBuffer currentWord = new StringBuffer(); char currentChar = 'a'; - - return new Token(Token.type.ASSIGN, currentWord.toString()); } - private void ScanForTokens () + private void ScanForTokens (FileReader reader) { - + } private boolean isDigit(char c) From 4d3f6ab476ff868f0f9051e2592128aebec004c6 Mon Sep 17 00:00:00 2001 From: Lee Paludan Date: Fri, 4 Mar 2016 12:35:43 +0100 Subject: [PATCH 27/55] Added relevant comments --- Scanner/src/java/org/Scanner/ScannerCode.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Scanner/src/java/org/Scanner/ScannerCode.java b/Scanner/src/java/org/Scanner/ScannerCode.java index 86af3f7..fe4408b 100644 --- a/Scanner/src/java/org/Scanner/ScannerCode.java +++ b/Scanner/src/java/org/Scanner/ScannerCode.java @@ -11,6 +11,8 @@ public class ScannerCode { private List WhiteList = new ArrayList (); String _filePath; + + /* Idéen her er, at FileReaderen er uafhængig af GetToken metoden */ FileReader inputStream; public ScannerCode (String filePath) @@ -29,6 +31,8 @@ public Token GetToken () { StringBuffer currentWord = new StringBuffer(); char currentChar = 'a'; + + return new Token (Token.type.ASSIGN, "kage"); } private void ScanForTokens (FileReader reader) From 70a15cffa0d74b9005b170b55ddb6f6a05ef8de1 Mon Sep 17 00:00:00 2001 From: GoatSnail Date: Fri, 4 Mar 2016 12:56:43 +0100 Subject: [PATCH 28/55] Token work set on hold. --- Scanner/src/java/org/Scanner/Token.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Scanner/src/java/org/Scanner/Token.java b/Scanner/src/java/org/Scanner/Token.java index 0a7f65b..00e8d68 100644 --- a/Scanner/src/java/org/Scanner/Token.java +++ b/Scanner/src/java/org/Scanner/Token.java @@ -15,7 +15,7 @@ public enum type { SIGNAL, START, IF, REPEAT, UNTIL, FOREVER, ELSE, VAL, PLUS, MINUS, TIMES, DIVIDE, ASSIGN, POWER, SQUARE_ROOT, BOOL_AND, BOOL_OR, BOOL_EQ, BOOL_GT, BOOL_LT, BOOL_GTE, - BOOL_LTE, BOOL_LIT, COORD_LIT, STRING_LIT + BOOL_LTE, BOOL_LIT, STRING_LIT } public final type _type; @@ -38,9 +38,11 @@ public static class TokenPattern { TokenPattern(type t, String p){ tokenType = t; regex = p; + pattern = Pattern.compile(p); } public final type tokenType; public final String regex; + public final Pattern pattern; } public static final ArrayList patternList = new ArrayList(Arrays.asList( @@ -50,7 +52,17 @@ public static class TokenPattern { new TokenPattern(type.BOOL_EQ,"IS"), new TokenPattern(type.BOOL_GT,"GREATER_THAN"), new TokenPattern(type.BOOL_GTE,"GREATER_THAN_EQUAL"), - new TokenPattern(type.BOOL_LIT,"TRUE|FALSE") + new TokenPattern(type.BOOL_LIT,"(TRUE|FALSE)"), + new TokenPattern(type.BOOL_LT,"LESS_THAN"), + new TokenPattern(type.BOOL_LTE,"LESS_THAN_EQUAL"), + new TokenPattern(type.BOOL_OR,"OR"), + new TokenPattern(type.BREAK,"BREAK"), + new TokenPattern(type.COORD_DCL,"COORD"), + new TokenPattern(type.DIVIDE,"/"), + new TokenPattern(type.ELSE,"ELSE"), + new TokenPattern(type.END,"END"), + new TokenPattern(type.EOL,"\n"), + new TokenPattern(type.EOL,"\n") )); } From 31734f20902ce9a8a9994175bd7a8ee6b5accf66 Mon Sep 17 00:00:00 2001 From: Lee Paludan Date: Mon, 7 Mar 2016 11:52:42 +0100 Subject: [PATCH 29/55] AST Base added --- AST/ASTLee/src/java/org/AST/Main.java | 23 ++++++++++++++++++++++ AST/ASTLee/src/java/org/AST/Node.java | 16 +++++++++++++++ AST/ASTLee/src/java/org/AST/SuperNode.java | 18 +++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 AST/ASTLee/src/java/org/AST/Main.java create mode 100644 AST/ASTLee/src/java/org/AST/Node.java create mode 100644 AST/ASTLee/src/java/org/AST/SuperNode.java diff --git a/AST/ASTLee/src/java/org/AST/Main.java b/AST/ASTLee/src/java/org/AST/Main.java new file mode 100644 index 0000000..8ccc19b --- /dev/null +++ b/AST/ASTLee/src/java/org/AST/Main.java @@ -0,0 +1,23 @@ +package org.AST; + +public class Main +{ + public static final void main (String args[]) + { + Node a = new Node ("Root", null); + Node b = new Node ("LeftMost", a); + Node c = new Node ("RightMost", a); + + a._leftmost = b; + a._rightmost = c; + + printTree(a); + } + + public static void printTree (Node root) + { + String space = " "; + System.out.println(space + root); + System.out.println(root._leftmost + space + root._rightmost); + } +} diff --git a/AST/ASTLee/src/java/org/AST/Node.java b/AST/ASTLee/src/java/org/AST/Node.java new file mode 100644 index 0000000..a39cbfa --- /dev/null +++ b/AST/ASTLee/src/java/org/AST/Node.java @@ -0,0 +1,16 @@ +package org.AST; + +public class Node extends SuperNode +{ + public Node (String nodeName, Node parent) + { + super(nodeName); + _parent = parent; + } + + @Override + public String toString() + { + return _nodeName; + } +} diff --git a/AST/ASTLee/src/java/org/AST/SuperNode.java b/AST/ASTLee/src/java/org/AST/SuperNode.java new file mode 100644 index 0000000..ae1434d --- /dev/null +++ b/AST/ASTLee/src/java/org/AST/SuperNode.java @@ -0,0 +1,18 @@ +package org.AST; + +public abstract class SuperNode +{ + protected String _nodeName; + public Node _parent; + + public Node _leftmost; + public Node _rightmost; + + public Node _leftSibling; + public Node _rightSibling; + + public SuperNode (String nodeName) + { + _nodeName = nodeName; + } +} From 9cbf92402d3bc4b4d82e158616507eabd8fb4753 Mon Sep 17 00:00:00 2001 From: TobiasMorell Date: Wed, 9 Mar 2016 16:15:40 +0100 Subject: [PATCH 30/55] AST/ : Added some general nodes and outlined a Visitor pattern --- AST/ASTLee/src/java/org/AST/Main.java | 26 ++++++++-------------- AST/ASTLee/src/java/org/AST/Node.java | 16 ------------- AST/ASTLee/src/java/org/AST/SuperNode.java | 18 --------------- AST/Node.java | 16 ------------- AST/SingleNode.java | 0 5 files changed, 9 insertions(+), 67 deletions(-) delete mode 100644 AST/ASTLee/src/java/org/AST/Node.java delete mode 100644 AST/ASTLee/src/java/org/AST/SuperNode.java delete mode 100644 AST/Node.java delete mode 100644 AST/SingleNode.java diff --git a/AST/ASTLee/src/java/org/AST/Main.java b/AST/ASTLee/src/java/org/AST/Main.java index 8ccc19b..3dbf8ba 100644 --- a/AST/ASTLee/src/java/org/AST/Main.java +++ b/AST/ASTLee/src/java/org/AST/Main.java @@ -1,23 +1,15 @@ package org.AST; -public class Main -{ - public static final void main (String args[]) - { - Node a = new Node ("Root", null); - Node b = new Node ("LeftMost", a); - Node c = new Node ("RightMost", a); - - a._leftmost = b; - a._rightmost = c; +import org.AST.GeneralNodes.Node; +import org.AST.SyntaxNodes.PlusNode; +import org.Visitors.PrettyPrintVisitor; - printTree(a); - } - - public static void printTree (Node root) +public class Main +{ + public static void main (String args[]) { - String space = " "; - System.out.println(space + root); - System.out.println(root._leftmost + space + root._rightmost); + PlusNode pn = new PlusNode(null, null); + PrettyPrintVisitor ppv = new PrettyPrintVisitor(); + ppv.Visit(pn); } } diff --git a/AST/ASTLee/src/java/org/AST/Node.java b/AST/ASTLee/src/java/org/AST/Node.java deleted file mode 100644 index a39cbfa..0000000 --- a/AST/ASTLee/src/java/org/AST/Node.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.AST; - -public class Node extends SuperNode -{ - public Node (String nodeName, Node parent) - { - super(nodeName); - _parent = parent; - } - - @Override - public String toString() - { - return _nodeName; - } -} diff --git a/AST/ASTLee/src/java/org/AST/SuperNode.java b/AST/ASTLee/src/java/org/AST/SuperNode.java deleted file mode 100644 index ae1434d..0000000 --- a/AST/ASTLee/src/java/org/AST/SuperNode.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.AST; - -public abstract class SuperNode -{ - protected String _nodeName; - public Node _parent; - - public Node _leftmost; - public Node _rightmost; - - public Node _leftSibling; - public Node _rightSibling; - - public SuperNode (String nodeName) - { - _nodeName = nodeName; - } -} diff --git a/AST/Node.java b/AST/Node.java deleted file mode 100644 index 35309bb..0000000 --- a/AST/Node.java +++ /dev/null @@ -1,16 +0,0 @@ -public abstract class Node{ - //Need to define the print function, preorder postorder or inorder - //Depth first search - //We also add a custom print method - protected void print(){ - print(this.toString()); - } - protected void print(String value){ - System.out.print(value + " "); - } - //We need to override the toString function to build a custom for our AST - @Override - public String toString(){ - - } -} \ No newline at end of file diff --git a/AST/SingleNode.java b/AST/SingleNode.java deleted file mode 100644 index e69de29..0000000 From 2fab632c8cb29648caccf58f9b54c32b1b331005 Mon Sep 17 00:00:00 2001 From: TobiasMorell Date: Wed, 9 Mar 2016 16:16:44 +0100 Subject: [PATCH 31/55] AST/ : Same description as before, some files were not committed. --- .../org/AST/GeneralNodes/BinaryNode.class | Bin 0 -> 617 bytes .../org/AST/GeneralNodes/NaryNode.class | Bin 0 -> 856 bytes .../org/AST/GeneralNodes/Node.class | Bin 0 -> 501 bytes .../org/AST/GeneralNodes/UnaryNode.class | Bin 0 -> 424 bytes AST/ASTLee/production/org/AST/Main.class | Bin 0 -> 700 bytes .../org/AST/SyntaxNodes/PlusNode.class | Bin 0 -> 672 bytes .../org/Visitors/PrettyPrintVisitor.class | Bin 0 -> 1070 bytes .../production/org/Visitors/Visitor.class | Bin 0 -> 382 bytes .../java/org/AST/GeneralNodes/BinaryNode.java | 20 ++++++++++++ .../java/org/AST/GeneralNodes/NaryNode.java | 20 ++++++++++++ .../src/java/org/AST/GeneralNodes/Node.java | 16 ++++++++++ .../java/org/AST/GeneralNodes/UnaryNode.java | 13 ++++++++ .../org/AST/SyntaxNodes/ExpressionNode.java | 7 ++++ .../java/org/AST/SyntaxNodes/PlusNode.java | 20 ++++++++++++ .../java/org/Visitors/PrettyPrintVisitor.java | 30 ++++++++++++++++++ AST/ASTLee/src/java/org/Visitors/Visitor.java | 12 +++++++ 16 files changed, 138 insertions(+) create mode 100644 AST/ASTLee/production/org/AST/GeneralNodes/BinaryNode.class create mode 100644 AST/ASTLee/production/org/AST/GeneralNodes/NaryNode.class create mode 100644 AST/ASTLee/production/org/AST/GeneralNodes/Node.class create mode 100644 AST/ASTLee/production/org/AST/GeneralNodes/UnaryNode.class create mode 100644 AST/ASTLee/production/org/AST/Main.class create mode 100644 AST/ASTLee/production/org/AST/SyntaxNodes/PlusNode.class create mode 100644 AST/ASTLee/production/org/Visitors/PrettyPrintVisitor.class create mode 100644 AST/ASTLee/production/org/Visitors/Visitor.class create mode 100644 AST/ASTLee/src/java/org/AST/GeneralNodes/BinaryNode.java create mode 100644 AST/ASTLee/src/java/org/AST/GeneralNodes/NaryNode.java create mode 100644 AST/ASTLee/src/java/org/AST/GeneralNodes/Node.java create mode 100644 AST/ASTLee/src/java/org/AST/GeneralNodes/UnaryNode.java create mode 100644 AST/ASTLee/src/java/org/AST/SyntaxNodes/ExpressionNode.java create mode 100644 AST/ASTLee/src/java/org/AST/SyntaxNodes/PlusNode.java create mode 100644 AST/ASTLee/src/java/org/Visitors/PrettyPrintVisitor.java create mode 100644 AST/ASTLee/src/java/org/Visitors/Visitor.java diff --git a/AST/ASTLee/production/org/AST/GeneralNodes/BinaryNode.class b/AST/ASTLee/production/org/AST/GeneralNodes/BinaryNode.class new file mode 100644 index 0000000000000000000000000000000000000000..44400967ad0b4bc3d5f4962688608e9ca0fd62ed GIT binary patch literal 617 zcmaJ;-AV#M7(Jt_o7?Kv+Mh|3ce+Ij-9-_UkT>E*iqKVzI_bo^3+o#6Rs~7WMGw$J zMc=H3T`b;we{;Tb&dhxOe0~8qLpcWxTLv=NR@IJ7taro53p4__8WvX|1A(G|maH5nb_Rvgv33^`9c{@vSX2h*@GZl!W(EwxUc z_%k<=g>J$^$;3W%hQq{1T5d6v5)sN3L%OQe3lBCON87RIedN z(V)(y%qVA^cd*y^c%5Q49_C?EZO#G6qd*}RI{sPgfgcSe) literal 0 HcmV?d00001 diff --git a/AST/ASTLee/production/org/AST/GeneralNodes/NaryNode.class b/AST/ASTLee/production/org/AST/GeneralNodes/NaryNode.class new file mode 100644 index 0000000000000000000000000000000000000000..f8f88b11ba28a9b804af504c4c197d2d58a68fc0 GIT binary patch literal 856 zcmaJ<%Wl&^6g?BWH8D>52z`+L1Fs3TwWE z4Qm!HQWuCdKf*t-pd2S*f#hJxo_mk)rq<k7dwcg`Ssu_XLFEd(67}LiGgJCj`rQFix=B z7b-X()(}`oBL^>w|&njShX zE>K9>t$^Vsgp7`_DXV*29tjo5u;aaHUHWZJA@XN||5jf`J$;lcfm`dT4`j||OUFMlapfmFh}$e|)~Z1GvCZ4FY>rl(FyQz{erMA3i9nV@Eg%6FZgHy}rEFv9>De zCKH{?thNc8!${w|MUuMC%tRA{cWGkdt_bBub3hOs))DHViFJ3m7-`#AqllTEFd3_8 zpsdN}f)s9MQbKU6UC6eD1+ y+=+Xo^$L1sP{KM_@0&!xI4JN&zRpiZotdA@FDN~&EC;`r1t-Ne>-gchdiM)IU1dT5 literal 0 HcmV?d00001 diff --git a/AST/ASTLee/production/org/AST/GeneralNodes/UnaryNode.class b/AST/ASTLee/production/org/AST/GeneralNodes/UnaryNode.class new file mode 100644 index 0000000000000000000000000000000000000000..ff687582ec02cb4fd08434530672109f5e91d26c GIT binary patch literal 424 zcmZut!AiqG5Pg#-jZM>3s}@8Mz10c^yefhe>Lv8j+N*5S)vlyj*rbA=1GqvrfQ#J*YS{D9@v%>+->6)bw}g{kqRn%BH=e}zGM7eV zBR!WzZ2k55l;93HBD52g%h75%lV&1j8D~0)PDM5qMp?W`y5&L@gwyJ#54kXJ>&^r( zU8rnMIIgB{SixAYOe%-UPK>tt%NOw~LU=d`aflYLQMtsHPdKV1*eQfs&n_B0X7Z_A z>Y^OjpSfpzFPHBJ5SxcOd!Nw|4jT~kKSBMA4><3P9PF@fgc5Pjo(m>Bmfg|_rN&_fCcOWaUVC4>YQw~dr4Qq|KYwbHFzJ6dll`m?wY ziAwwceiY)Z)6xry53@UO-n@BZ`}d!pzW}_)UVtZ9_puSc!={g|09CBJudV4X~y|Lr9EY|%kROez0`$ZKF-ZB`qVv* zj+D+0sB+Cyu+lz{uhfl-Qk4y(t~ELv9+Xp*8M1HrKV^Y8V(Z2~$*)P47?mE=R}r~L z{mN)`BWRVJo-VY_O%ZiWV(o2*L+m|9X3)*YW{`Z*Zij}m_s%&A(Lf;BeDK}9&8+%1 zozY3hg}XUUOR(cOGlqnCiC2Q~LCVb#EI#gi(!WXuR`8)cW2YG<_rhwW0m1exjr|^4 z@cG5v@;9ld??1NBF}CYfMQK(!`SSE=T-cc=ZtmYD@apW!*xn{=>3mNUD?iia0} E0sDWPJOBUy literal 0 HcmV?d00001 diff --git a/AST/ASTLee/production/org/AST/SyntaxNodes/PlusNode.class b/AST/ASTLee/production/org/AST/SyntaxNodes/PlusNode.class new file mode 100644 index 0000000000000000000000000000000000000000..5126be3bb53bd0ba63ab934196b4873fcd8b9acf GIT binary patch literal 672 zcmaJ;+fKqj5Iw`CRRmE)yg7^hFaN`~W}7 zINJh7A@0NMnVGX^F8lfQ{sEwZLIN?YCy>L2j!hj~1npGX(mx{{AJiPTYn(Tl#!`K}lA%%m<&4pYmq=BE((U?J+CflAh$d6pj&ij_Vm?P%YN_Vkitt*j?kc z-8Vaal|Vy6E|8z$6A}$);C9R_sRl_+`Z`iFNyMS)*iIsiJfSdI+`K^uyOZ><{x760 z+>siUkX4MoEf6X{Uoua5-b~m>l>bd*y`-va6HPlUMe5HfnEZ_0^0-=ffN&$ zvB+pIq;Y(SJ$`^BXDL9-jFfB|D`VLc_SJi>TzW<1nNb8vRh0!YfnqLXOcgb(a)!5$ IwSb@f2E6&5BLDyZ literal 0 HcmV?d00001 diff --git a/AST/ASTLee/production/org/Visitors/PrettyPrintVisitor.class b/AST/ASTLee/production/org/Visitors/PrettyPrintVisitor.class new file mode 100644 index 0000000000000000000000000000000000000000..ea1950e28ba98ea91398492e7eee41cec84aeaa4 GIT binary patch literal 1070 zcmah|O;Zy=5Ph8ho2(o8CVUeRF#%*1^n_&H(`f zc=X_JvMk?hB9X$vJ@oYSyne5zd-lh#uipTygbZP_#DBir^6|TL@Um&08WN??ZFAe6=Pv1fb zzyJoh@^NFB)+T=-I?HwGGcrTjOZ2QF(qsk=c}e0Xg~w+J0Kg zJBTszPLX*IBUnT+RW7yJJId7I*=VXgL41+w)y^y52mRJ&-CUxWl1O#cSTM(|ny literal 0 HcmV?d00001 diff --git a/AST/ASTLee/production/org/Visitors/Visitor.class b/AST/ASTLee/production/org/Visitors/Visitor.class new file mode 100644 index 0000000000000000000000000000000000000000..99c4e516abd7df6957301357af6ccf509e6ea213 GIT binary patch literal 382 zcmZutO-sW-5Pj2p*%)oD;!*I{dT^oFN}&jP2~|kReG`|uB_^;*#QrQ#f(L(qKT4b= z6+zs?%$v9K<_+`t_5J~1ien!Zh8~VQj0oSmQ}du&;{;MHqxSSIhb-QD!BR zjG0kbq%w=8(M`Q0?dnmNgwwDvYZ2>GSA{8mz>MIu9AP?cI~LJOMBBWQFH3eQ#eG(n z4Vq2DjeM3OllfZQB^#AiEI#`c-Kty}nRTj8!MplVQJYlV=w`oQXMfpD3Sh$_ocy;I zVffd~K1Yvl(mV@%12`OAt^{Y|>|DHoUK#Y@adca childNodes) + { + //childNodes must be ordered in left to right appearance in tree + this._leftmostChild = childNodes.get(0); + + for (int i = 0; i < childNodes.size(); i++) { + Node n = childNodes.get(i); + n._parent = this; + + } + } +} diff --git a/AST/ASTLee/src/java/org/AST/GeneralNodes/Node.java b/AST/ASTLee/src/java/org/AST/GeneralNodes/Node.java new file mode 100644 index 0000000..50d321c --- /dev/null +++ b/AST/ASTLee/src/java/org/AST/GeneralNodes/Node.java @@ -0,0 +1,16 @@ +package org.AST.GeneralNodes; + +import org.Visitors.Visitor; + +public abstract class Node +{ + public Node _parent; + protected Node _leftmostChild; + + public Node GetLeftChild() + { + return _leftmostChild; + } + + public abstract Object Visit(Visitor v); +} diff --git a/AST/ASTLee/src/java/org/AST/GeneralNodes/UnaryNode.java b/AST/ASTLee/src/java/org/AST/GeneralNodes/UnaryNode.java new file mode 100644 index 0000000..3577f25 --- /dev/null +++ b/AST/ASTLee/src/java/org/AST/GeneralNodes/UnaryNode.java @@ -0,0 +1,13 @@ +package org.AST.GeneralNodes; + +import org.AST.GeneralNodes.Node; + +/** + * Created by Nete on 08-03-2016. + */ +public abstract class UnaryNode extends Node { + public UnaryNode (Node child) + { + this._leftmostChild = child; + } +} diff --git a/AST/ASTLee/src/java/org/AST/SyntaxNodes/ExpressionNode.java b/AST/ASTLee/src/java/org/AST/SyntaxNodes/ExpressionNode.java new file mode 100644 index 0000000..076e30a --- /dev/null +++ b/AST/ASTLee/src/java/org/AST/SyntaxNodes/ExpressionNode.java @@ -0,0 +1,7 @@ +package org.AST.SyntaxNodes; + +/** + * Created by Nete on 09-03-2016. + */ +public class ExpressionNode { +} diff --git a/AST/ASTLee/src/java/org/AST/SyntaxNodes/PlusNode.java b/AST/ASTLee/src/java/org/AST/SyntaxNodes/PlusNode.java new file mode 100644 index 0000000..b6ab3e2 --- /dev/null +++ b/AST/ASTLee/src/java/org/AST/SyntaxNodes/PlusNode.java @@ -0,0 +1,20 @@ +package org.AST.SyntaxNodes; + +import org.AST.GeneralNodes.BinaryNode; +import org.AST.GeneralNodes.Node; +import org.Visitors.Visitor; + +/** + * Created by Nete on 09-03-2016. + */ +public class PlusNode extends BinaryNode { + public PlusNode(Node left, Node right) + { + super(left, right); + } + + @Override + public Object Visit(Visitor v) { + return v.Visit(this); + } +} diff --git a/AST/ASTLee/src/java/org/Visitors/PrettyPrintVisitor.java b/AST/ASTLee/src/java/org/Visitors/PrettyPrintVisitor.java new file mode 100644 index 0000000..a4f66ce --- /dev/null +++ b/AST/ASTLee/src/java/org/Visitors/PrettyPrintVisitor.java @@ -0,0 +1,30 @@ +package org.Visitors; + +import org.AST.GeneralNodes.Node; +import org.AST.SyntaxNodes.PlusNode; + +/** + * Created by Nete on 09-03-2016. + */ +public class PrettyPrintVisitor extends Visitor { + + @Override + public Object Visit(PlusNode n) { + System.out.println("Encountered a plus node!"); + + Node c = n.GetLeftChild(); + if(c != null) + Visit(c); + c = n.GetRightChild(); + if(c != null) + Visit(c); + + //Should be fixed!!! + return null; + } + + @Override + public void Visit(Node n) { + System.out.println("Encountered a Node."); + } +} diff --git a/AST/ASTLee/src/java/org/Visitors/Visitor.java b/AST/ASTLee/src/java/org/Visitors/Visitor.java new file mode 100644 index 0000000..2d88b99 --- /dev/null +++ b/AST/ASTLee/src/java/org/Visitors/Visitor.java @@ -0,0 +1,12 @@ +package org.Visitors; + +import org.AST.GeneralNodes.Node; +import org.AST.SyntaxNodes.PlusNode; + +/** + * Created by Nete on 09-03-2016. + */ +public abstract class Visitor { + public abstract Object Visit(PlusNode n); + public abstract void Visit(Node n); +} From 2da775db50b1ca6380025d721ac08a27ef251680 Mon Sep 17 00:00:00 2001 From: Lee Paludan Date: Fri, 11 Mar 2016 07:48:45 +0100 Subject: [PATCH 32/55] Added compiler --- compiler/src/Main.class | Bin 0 -> 484 bytes compiler/src/Main.java | 18 + compiler/src/Scanner.class | Bin 0 -> 15795 bytes compiler/src/Scanner.java | 1213 ++++++++++++++++ compiler/src/Scanner.java~ | 1213 ++++++++++++++++ compiler/src/UnicodeEscapes.class | Bin 0 -> 5753 bytes compiler/src/UnicodeEscapes.java | 685 +++++++++ compiler/src/build.xml | 50 + compiler/src/cancer | 15 + compiler/src/java.flex | 162 +++ compiler/src/java12.cup | 195 +++ .../ComplexSymbolFactory$ComplexSymbol.class | Bin 0 -> 2090 bytes .../ComplexSymbolFactory$Location.class | Bin 0 -> 862 bytes .../runtime/ComplexSymbolFactory.class | Bin 0 -> 1943 bytes .../runtime/ComplexSymbolFactory.java | 120 ++ .../runtime/DefaultSymbolFactory.class | Bin 0 -> 1307 bytes .../runtime/DefaultSymbolFactory.java | 52 + compiler/src/java_cup/runtime/Scanner.class | Bin 0 -> 175 bytes compiler/src/java_cup/runtime/Scanner.java | 25 + compiler/src/java_cup/runtime/Symbol.class | Bin 0 -> 1083 bytes compiler/src/java_cup/runtime/Symbol.java | 116 ++ .../src/java_cup/runtime/SymbolFactory.class | Bin 0 -> 530 bytes .../src/java_cup/runtime/SymbolFactory.java | 33 + compiler/src/java_cup/runtime/lr_parser.class | Bin 0 -> 9876 bytes compiler/src/java_cup/runtime/lr_parser.java | 1253 ++++++++++++++++ .../runtime/virtual_parse_stack.class | Bin 0 -> 1539 bytes .../java_cup/runtime/virtual_parse_stack.java | 145 ++ compiler/src/parser.class | Bin 0 -> 7952 bytes compiler/src/parser.java | 1285 +++++++++++++++++ compiler/src/sym.class | Bin 0 -> 1561 bytes compiler/src/sym.java | 62 + compiler/src/unicode.flex | 137 ++ 32 files changed, 6779 insertions(+) create mode 100644 compiler/src/Main.class create mode 100644 compiler/src/Main.java create mode 100644 compiler/src/Scanner.class create mode 100644 compiler/src/Scanner.java create mode 100644 compiler/src/Scanner.java~ create mode 100644 compiler/src/UnicodeEscapes.class create mode 100644 compiler/src/UnicodeEscapes.java create mode 100644 compiler/src/build.xml create mode 100644 compiler/src/cancer create mode 100644 compiler/src/java.flex create mode 100644 compiler/src/java12.cup create mode 100644 compiler/src/java_cup/runtime/ComplexSymbolFactory$ComplexSymbol.class create mode 100644 compiler/src/java_cup/runtime/ComplexSymbolFactory$Location.class create mode 100644 compiler/src/java_cup/runtime/ComplexSymbolFactory.class create mode 100644 compiler/src/java_cup/runtime/ComplexSymbolFactory.java create mode 100644 compiler/src/java_cup/runtime/DefaultSymbolFactory.class create mode 100644 compiler/src/java_cup/runtime/DefaultSymbolFactory.java create mode 100644 compiler/src/java_cup/runtime/Scanner.class create mode 100644 compiler/src/java_cup/runtime/Scanner.java create mode 100644 compiler/src/java_cup/runtime/Symbol.class create mode 100644 compiler/src/java_cup/runtime/Symbol.java create mode 100644 compiler/src/java_cup/runtime/SymbolFactory.class create mode 100644 compiler/src/java_cup/runtime/SymbolFactory.java create mode 100644 compiler/src/java_cup/runtime/lr_parser.class create mode 100644 compiler/src/java_cup/runtime/lr_parser.java create mode 100644 compiler/src/java_cup/runtime/virtual_parse_stack.class create mode 100644 compiler/src/java_cup/runtime/virtual_parse_stack.java create mode 100644 compiler/src/parser.class create mode 100644 compiler/src/parser.java create mode 100644 compiler/src/sym.class create mode 100644 compiler/src/sym.java create mode 100644 compiler/src/unicode.flex diff --git a/compiler/src/Main.class b/compiler/src/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..a8447f09f132fc416f7c8ccc8aaf23fee218faab GIT binary patch literal 484 zcmZvZT}uK%6o%jNYjm~pBkjX1tuEFQ_M%Ipo2V-#NGPNW8FvR6(OFs7sGrqM3km&z zepEEGD@o8?oWs25J?A{ke0_g>0=U4bfham>gL>-xG4w);8nj#pW|#xN=T$m_rU5 z1hi)}DY-{b44Z^&-HHjn=giTfG52gsIc)Cfh9e#73Sh>(c_cM*IL3+E-VL|s*Q@V_ zV{ZEdrM2`+Ku|XSr!1{>1rkAo?6pW8*o&FvEu=4|+**-`^{m5(i_sv&BB+|paQI*Q z>vZT&+Gs$(wLUQr{Rk>MTL~=K<2));ltfQD;Fp6KY%$_yH(hX_Ei| literal 0 HcmV?d00001 diff --git a/compiler/src/Main.java b/compiler/src/Main.java new file mode 100644 index 0000000..4d5f64a --- /dev/null +++ b/compiler/src/Main.java @@ -0,0 +1,18 @@ +/** + * Created by Lee on 09/03/16. + */ + +import java_cup.*; + +import java.io.FileReader; + +public class Main { + + public static void main (String args[]) throws Exception + { + Scanner s = new Scanner(new FileReader("src/cancer")); + parser p = new parser (s); + + p.debug_parse(); + } +} diff --git a/compiler/src/Scanner.class b/compiler/src/Scanner.class new file mode 100644 index 0000000000000000000000000000000000000000..bbfb005ab7995b8a6a2a506ffb52375b7af570dd GIT binary patch literal 15795 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 1.6.1 + * from the specification file /Users/Lee/Documents/compiler/src/java.flex + */ +public class Scanner implements sym, java_cup.runtime.Scanner { + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + + /** initial size of the lookahead buffer */ + private static final int ZZ_BUFFERSIZE = 16384; + + /** lexical states */ + public static final int YYINITIAL = 0; + public static final int STRING = 2; + public static final int CHARLITERAL = 4; + + /** + * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l + * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l + * at the beginning of a line + * l is of the form l = 2*k, k a non negative integer + */ + private static final int ZZ_LEXSTATE[] = { + 0, 0, 1, 1, 2, 2 + }; + + /** + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = + "\11\7\1\3\1\2\1\0\1\3\1\1\16\7\4\0\1\3\1\0"+ + "\1\14\1\0\1\6\2\0\1\15\1\43\1\44\1\5\1\51\1\45"+ + "\1\13\1\11\1\4\12\10\1\46\2\0\1\47\3\0\1\21\1\40"+ + "\1\41\1\31\1\30\1\24\1\37\1\35\1\23\2\6\1\34\1\27"+ + "\1\25\1\33\1\36\1\42\1\22\1\17\1\20\1\26\1\32\4\6"+ + "\1\0\1\16\1\0\1\52\1\50\1\0\4\6\1\12\25\6\4\0"+ + "\41\7\2\0\4\6\4\0\1\6\2\0\1\7\7\0\1\6\4\0"+ + "\1\6\5\0\27\6\1\0\37\6\1\0\u01ca\6\4\0\14\6\16\0"+ + "\5\6\7\0\1\6\1\0\1\6\21\0\160\7\5\6\1\0\2\6"+ + "\2\0\4\6\10\0\1\6\1\0\3\6\1\0\1\6\1\0\24\6"+ + "\1\0\123\6\1\0\213\6\1\0\5\7\2\0\236\6\11\0\46\6"+ + "\2\0\1\6\7\0\47\6\11\0\55\7\1\0\1\7\1\0\2\7"+ + "\1\0\2\7\1\0\1\7\10\0\33\6\5\0\3\6\15\0\4\7"+ + "\7\0\1\6\4\0\13\7\5\0\53\6\37\7\4\0\2\6\1\7"+ + "\143\6\1\0\1\6\10\7\1\0\6\7\2\6\2\7\1\0\4\7"+ + "\2\6\12\7\3\6\2\0\1\6\17\0\1\7\1\6\1\7\36\6"+ + "\33\7\2\0\131\6\13\7\1\6\16\0\12\7\41\6\11\7\2\6"+ + "\4\0\1\6\5\0\26\6\4\7\1\6\11\7\1\6\3\7\1\6"+ + "\5\7\22\0\31\6\3\7\244\0\4\7\66\6\3\7\1\6\22\7"+ + "\1\6\7\7\12\6\2\7\2\0\12\7\1\0\7\6\1\0\7\6"+ + "\1\0\3\7\1\0\10\6\2\0\2\6\2\0\26\6\1\0\7\6"+ + "\1\0\1\6\3\0\4\6\2\0\1\7\1\6\7\7\2\0\2\7"+ + "\2\0\3\7\1\6\10\0\1\7\4\0\2\6\1\0\3\6\2\7"+ + "\2\0\12\7\4\6\7\0\1\6\5\0\3\7\1\0\6\6\4\0"+ + "\2\6\2\0\26\6\1\0\7\6\1\0\2\6\1\0\2\6\1\0"+ + "\2\6\2\0\1\7\1\0\5\7\4\0\2\7\2\0\3\7\3\0"+ + "\1\7\7\0\4\6\1\0\1\6\7\0\14\7\3\6\1\7\13\0"+ + "\3\7\1\0\11\6\1\0\3\6\1\0\26\6\1\0\7\6\1\0"+ + "\2\6\1\0\5\6\2\0\1\7\1\6\10\7\1\0\3\7\1\0"+ + "\3\7\2\0\1\6\17\0\2\6\2\7\2\0\12\7\1\0\1\6"+ + "\17\0\3\7\1\0\10\6\2\0\2\6\2\0\26\6\1\0\7\6"+ + "\1\0\2\6\1\0\5\6\2\0\1\7\1\6\7\7\2\0\2\7"+ + "\2\0\3\7\10\0\2\7\4\0\2\6\1\0\3\6\2\7\2\0"+ + "\12\7\1\0\1\6\20\0\1\7\1\6\1\0\6\6\3\0\3\6"+ + "\1\0\4\6\3\0\2\6\1\0\1\6\1\0\2\6\3\0\2\6"+ + "\3\0\3\6\3\0\14\6\4\0\5\7\3\0\3\7\1\0\4\7"+ + "\2\0\1\6\6\0\1\7\16\0\12\7\11\0\1\6\7\0\3\7"+ + "\1\0\10\6\1\0\3\6\1\0\27\6\1\0\12\6\1\0\5\6"+ + "\3\0\1\6\7\7\1\0\3\7\1\0\4\7\7\0\2\7\1\0"+ + "\2\6\6\0\2\6\2\7\2\0\12\7\22\0\2\7\1\0\10\6"+ + "\1\0\3\6\1\0\27\6\1\0\12\6\1\0\5\6\2\0\1\7"+ + "\1\6\7\7\1\0\3\7\1\0\4\7\7\0\2\7\7\0\1\6"+ + "\1\0\2\6\2\7\2\0\12\7\1\0\2\6\17\0\2\7\1\0"+ + "\10\6\1\0\3\6\1\0\51\6\2\0\1\6\7\7\1\0\3\7"+ + "\1\0\4\7\1\6\10\0\1\7\10\0\2\6\2\7\2\0\12\7"+ + "\12\0\6\6\2\0\2\7\1\0\22\6\3\0\30\6\1\0\11\6"+ + "\1\0\1\6\2\0\7\6\3\0\1\7\4\0\6\7\1\0\1\7"+ + "\1\0\10\7\22\0\2\7\15\0\60\6\1\7\2\6\7\7\4\0"+ + "\10\6\10\7\1\0\12\7\47\0\2\6\1\0\1\6\2\0\2\6"+ + "\1\0\1\6\2\0\1\6\6\0\4\6\1\0\7\6\1\0\3\6"+ + "\1\0\1\6\1\0\1\6\2\0\2\6\1\0\4\6\1\7\2\6"+ + "\6\7\1\0\2\7\1\6\2\0\5\6\1\0\1\6\1\0\6\7"+ + "\2\0\12\7\2\0\2\6\42\0\1\6\27\0\2\7\6\0\12\7"+ + "\13\0\1\7\1\0\1\7\1\0\1\7\4\0\2\7\10\6\1\0"+ + "\44\6\4\0\24\7\1\0\2\7\5\6\13\7\1\0\44\7\11\0"+ + "\1\7\71\0\53\6\24\7\1\6\12\7\6\0\6\6\4\7\4\6"+ + "\3\7\1\6\3\7\2\6\7\7\3\6\4\7\15\6\14\7\1\6"+ + "\17\7\2\0\46\6\12\0\53\6\1\0\1\6\3\0\u0149\6\1\0"+ + "\4\6\2\0\7\6\1\0\1\6\1\0\4\6\2\0\51\6\1\0"+ + "\4\6\2\0\41\6\1\0\4\6\2\0\7\6\1\0\1\6\1\0"+ + "\4\6\2\0\17\6\1\0\71\6\1\0\4\6\2\0\103\6\2\0"+ + "\3\7\40\0\20\6\20\0\125\6\14\0\u026c\6\2\0\21\6\1\0"+ + "\32\6\5\0\113\6\3\0\3\6\17\0\15\6\1\0\4\6\3\7"+ + "\13\0\22\6\3\7\13\0\22\6\2\7\14\0\15\6\1\0\3\6"+ + "\1\0\2\7\14\0\64\6\40\7\3\0\1\6\3\0\2\6\1\7"+ + "\2\0\12\7\41\0\3\7\2\0\12\7\6\0\130\6\10\0\51\6"+ + "\1\7\1\6\5\0\106\6\12\0\35\6\3\0\14\7\4\0\14\7"+ + "\12\0\12\7\36\6\2\0\5\6\13\0\54\6\4\0\21\7\7\6"+ + "\2\7\6\0\12\7\46\0\27\6\5\7\4\0\65\6\12\7\1\0"+ + "\35\7\2\0\13\7\6\0\12\7\15\0\1\6\130\0\5\7\57\6"+ + "\21\7\7\6\4\0\12\7\21\0\11\7\14\0\3\7\36\6\12\7"+ + "\3\0\2\6\12\7\6\0\46\6\16\7\14\0\44\6\24\7\10\0"+ + "\12\7\3\0\3\6\12\7\44\6\122\0\3\7\1\0\25\7\4\6"+ + "\1\7\4\6\1\7\15\0\300\6\47\7\25\0\4\7\u0116\6\2\0"+ + "\6\6\2\0\46\6\2\0\6\6\2\0\10\6\1\0\1\6\1\0"+ + "\1\6\1\0\1\6\1\0\37\6\2\0\65\6\1\0\7\6\1\0"+ + "\1\6\3\0\3\6\1\0\7\6\3\0\4\6\2\0\6\6\4\0"+ + "\15\6\5\0\3\6\1\0\7\6\16\0\5\7\32\0\5\7\20\0"+ + "\2\6\23\0\1\6\13\0\5\7\5\0\6\7\1\0\1\6\15\0"+ + "\1\6\20\0\15\6\3\0\32\6\26\0\15\7\4\0\1\7\3\0"+ + "\14\7\21\0\1\6\4\0\1\6\2\0\12\6\1\0\1\6\3\0"+ + "\5\6\6\0\1\6\1\0\1\6\1\0\1\6\1\0\4\6\1\0"+ + "\13\6\2\0\4\6\5\0\5\6\4\0\1\6\21\0\51\6\u0a77\0"+ + "\57\6\1\0\57\6\1\0\205\6\6\0\4\6\3\7\16\0\46\6"+ + "\12\0\66\6\11\0\1\6\17\0\1\7\27\6\11\0\7\6\1\0"+ + "\7\6\1\0\7\6\1\0\7\6\1\0\7\6\1\0\7\6\1\0"+ + "\7\6\1\0\7\6\1\0\40\7\57\0\1\6\u01d5\0\3\6\31\0"+ + "\11\6\6\7\1\0\5\6\2\0\5\6\4\0\126\6\2\0\2\7"+ + "\2\0\3\6\1\0\132\6\1\0\4\6\5\0\51\6\3\0\136\6"+ + "\21\0\33\6\65\0\20\6\u0200\0\u19b6\6\112\0\u51cc\6\64\0\u048d\6"+ + "\103\0\56\6\2\0\u010d\6\3\0\20\6\12\7\2\6\24\0\57\6"+ + "\1\7\14\0\2\7\1\0\31\6\10\0\120\6\2\7\45\0\11\6"+ + "\2\0\147\6\2\0\4\6\1\0\2\6\16\0\12\6\120\0\10\6"+ + "\1\7\3\6\1\7\4\6\1\7\27\6\5\7\20\0\1\6\7\0"+ + "\64\6\14\0\2\7\62\6\21\7\13\0\12\7\6\0\22\7\6\6"+ + "\3\0\1\6\4\0\12\7\34\6\10\7\2\0\27\6\15\7\14\0"+ + "\35\6\3\0\4\7\57\6\16\7\16\0\1\6\12\7\46\0\51\6"+ + "\16\7\11\0\3\6\1\7\10\6\2\7\2\0\12\7\6\0\27\6"+ + "\3\0\1\6\1\7\4\0\60\6\1\7\1\6\3\7\2\6\2\7"+ + "\5\6\2\7\1\6\1\7\1\6\30\0\3\6\43\0\6\6\2\0"+ + "\6\6\2\0\6\6\11\0\7\6\1\0\7\6\221\0\43\6\10\7"+ + "\1\0\2\7\2\0\12\7\6\0\u2ba4\6\14\0\27\6\4\0\61\6"+ + "\u2104\0\u012e\6\2\0\76\6\2\0\152\6\46\0\7\6\14\0\5\6"+ + "\5\0\1\6\1\7\12\6\1\0\15\6\1\0\5\6\1\0\1\6"+ + "\1\0\2\6\1\0\2\6\1\0\154\6\41\0\u016b\6\22\0\100\6"+ + "\2\0\66\6\50\0\15\6\3\0\20\7\20\0\7\7\14\0\2\6"+ + "\30\0\3\6\31\0\1\6\6\0\5\6\1\0\207\6\2\0\1\7"+ + "\4\0\1\6\13\0\12\7\7\0\32\6\4\0\1\6\1\0\32\6"+ + "\13\0\131\6\3\0\6\6\2\0\6\6\2\0\6\6\2\0\3\6"+ + "\3\0\2\6\3\0\2\6\22\0\3\7\4\0\14\6\1\0\32\6"+ + "\1\0\23\6\1\0\2\6\1\0\17\6\2\0\16\6\42\0\173\6"+ + "\105\0\65\6\210\0\1\7\202\0\35\6\3\0\61\6\57\0\37\6"+ + "\21\0\33\6\65\0\36\6\2\0\44\6\4\0\10\6\1\0\5\6"+ + "\52\0\236\6\2\0\12\7\u0356\0\6\6\2\0\1\6\1\0\54\6"+ + "\1\0\2\6\3\0\1\6\2\0\27\6\252\0\26\6\12\0\32\6"+ + "\306\0\1\6\3\7\1\0\2\7\5\0\4\7\4\6\1\0\3\6"+ + "\1\0\33\6\4\0\3\7\4\0\1\7\40\0\35\6\203\0\66\6"+ + "\12\0\26\6\12\0\23\6\215\0\111\6\u03b7\0\3\7\65\6\17\7"+ + "\37\0\12\7\20\0\3\7\55\6\13\7\2\0\1\7\u0f42\0\u036f\6"+ + "\221\0\143\6\u0b9d\0\u042f\6\u33d1\0\u0239\6\u45c7\0\2\6\u2163\0\5\7"+ + "\3\0\26\7\2\0\7\7\36\0\4\7\224\0\3\7\u01bb\0\125\6"+ + "\1\0\107\6\1\0\2\6\2\0\1\6\2\0\2\6\2\0\4\6"+ + "\1\0\14\6\1\0\1\6\1\0\7\6\1\0\101\6\1\0\4\6"+ + "\2\0\10\6\1\0\7\6\1\0\34\6\1\0\4\6\1\0\5\6"+ + "\1\0\1\6\3\0\7\6\1\0\u0154\6\2\0\31\6\1\0\31\6"+ + "\1\0\37\6\1\0\31\6\1\0\37\6\1\0\31\6\1\0\37\6"+ + "\1\0\31\6\1\0\37\6\1\0\31\6\1\0\10\6\2\0\62\7"+ + "\u2800\0\ua6d7\6\51\0\u1035\6\13\0\336\6\u3fe2\0\u021e\6\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05ee\0"+ + "\1\7\36\0\140\7\200\0\360\7\uffff\0\uffff\0\ufe12\0"; + + /** + * Translates characters to character classes + */ + private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED); + + /** + * Translates DFA states to action switch labels. + */ + private static final int [] ZZ_ACTION = zzUnpackAction(); + + private static final String ZZ_ACTION_PACKED_0 = + "\1\1\2\0\1\2\1\3\1\4\1\3\1\5\1\6"+ + "\1\7\1\10\1\11\1\12\1\13\1\14\20\7\1\15"+ + "\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25"+ + "\1\2\1\3\1\0\1\10\1\0\5\7\1\26\1\27"+ + "\10\7\1\30\6\7\1\31\1\0\1\10\1\0\4\7"+ + "\1\32\3\7\1\33\1\34\1\7\1\35\12\7\1\36"+ + "\1\37\4\7\1\40\1\41\1\7\1\42\1\43\1\7"+ + "\1\44\1\7\1\45\2\7\1\46\1\7\1\47\2\7"+ + "\1\50\1\51\1\52\3\7\1\53\4\7\1\54\6\7"+ + "\1\55\20\7\1\56\3\7\1\57"; + + private static int [] zzUnpackAction() { + int [] result = new int[155]; + int offset = 0; + offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackAction(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + + /** + * Translates a state to a row index in the transition table + */ + private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); + + private static final String ZZ_ROWMAP_PACKED_0 = + "\0\0\0\53\0\126\0\201\0\254\0\201\0\201\0\327"+ + "\0\201\0\u0102\0\u012d\0\u0158\0\201\0\201\0\201\0\u0183"+ + "\0\u01ae\0\u01d9\0\u0204\0\u022f\0\u025a\0\u0285\0\u02b0\0\u02db"+ + "\0\u0306\0\u0331\0\u035c\0\u0387\0\u03b2\0\u03dd\0\u0408\0\201"+ + "\0\201\0\201\0\201\0\201\0\201\0\201\0\u0433\0\201"+ + "\0\u045e\0\u0489\0\u04b4\0\u04df\0\u050a\0\u0535\0\u0560\0\u058b"+ + "\0\u05b6\0\u05e1\0\u0102\0\u0102\0\u060c\0\u0637\0\u0662\0\u068d"+ + "\0\u06b8\0\u06e3\0\u070e\0\u0739\0\u0102\0\u0764\0\u078f\0\u07ba"+ + "\0\u07e5\0\u0810\0\u083b\0\201\0\u0866\0\u0891\0\u0891\0\u08bc"+ + "\0\u08e7\0\u0912\0\u093d\0\u0102\0\u0968\0\u0993\0\u09be\0\u0102"+ + "\0\u0102\0\u09e9\0\u0102\0\u0a14\0\u0a3f\0\u0a6a\0\u0a95\0\u0ac0"+ + "\0\u0aeb\0\u0b16\0\u0b41\0\u0b6c\0\u0b97\0\u0102\0\u0102\0\u0bc2"+ + "\0\u0bed\0\u0c18\0\u0c43\0\u0102\0\u0102\0\u0c6e\0\u0102\0\u0102"+ + "\0\u0c99\0\u0102\0\u0cc4\0\u0102\0\u0cef\0\u0d1a\0\u0102\0\u0d45"+ + "\0\u0102\0\u0d70\0\u0d9b\0\u0102\0\u0102\0\u0102\0\u0dc6\0\u0df1"+ + "\0\u0e1c\0\u0102\0\u0e47\0\u0e72\0\u0e9d\0\u0ec8\0\u0ef3\0\u0f1e"+ + "\0\u0f49\0\u0f74\0\u0f9f\0\u0fca\0\u0ff5\0\u1020\0\u104b\0\u1076"+ + "\0\u10a1\0\u10cc\0\u10f7\0\u1122\0\u114d\0\u1178\0\u11a3\0\u11ce"+ + "\0\u11f9\0\u1224\0\u124f\0\u127a\0\u12a5\0\u12d0\0\u0102\0\u12fb"+ + "\0\u1326\0\u1351\0\u0102"; + + private static int [] zzUnpackRowMap() { + int [] result = new int[155]; + int offset = 0; + offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackRowMap(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int high = packed.charAt(i++) << 16; + result[j++] = high | packed.charAt(i++); + } + return j; + } + + /** + * The transition table of the DFA + */ + private static final int [] ZZ_TRANS = zzUnpackTrans(); + + private static final String ZZ_TRANS_PACKED_0 = + "\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\4"+ + "\1\13\1\14\1\12\1\15\1\16\1\17\1\4\1\20"+ + "\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\12"+ + "\1\30\1\12\1\31\1\32\1\33\1\34\1\12\1\35"+ + "\1\36\1\37\1\12\1\40\1\41\1\42\1\43\1\44"+ + "\1\12\1\45\1\46\1\47\2\4\11\47\1\50\1\47"+ + "\1\4\34\47\1\51\2\4\12\51\2\4\34\51\55\0"+ + "\1\7\54\0\1\52\1\53\53\0\3\12\1\0\1\12"+ + "\4\0\24\12\5\0\1\12\12\0\1\13\1\54\1\55"+ + "\15\0\1\55\32\0\1\54\50\0\3\12\1\0\1\12"+ + "\4\0\1\12\1\56\21\12\1\57\5\0\1\12\10\0"+ + "\3\12\1\0\1\12\4\0\3\12\1\60\20\12\5\0"+ + "\1\12\10\0\3\12\1\0\1\12\4\0\6\12\1\61"+ + "\15\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ + "\11\12\1\62\12\12\5\0\1\12\10\0\3\12\1\0"+ + "\1\12\4\0\1\63\4\12\1\64\16\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\2\12\1\65\11\12"+ + "\1\66\7\12\5\0\1\12\10\0\3\12\1\0\1\12"+ + "\4\0\7\12\1\67\4\12\1\70\7\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\6\12\1\71\15\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\6\12"+ + "\1\72\6\12\1\73\6\12\5\0\1\12\10\0\3\12"+ + "\1\0\1\12\4\0\14\12\1\74\7\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\3\12\1\75\20\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\11\12"+ + "\1\76\2\12\1\77\7\12\5\0\1\12\10\0\3\12"+ + "\1\0\1\12\4\0\11\12\1\100\12\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\3\12\1\101\20\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\14\12"+ + "\1\102\7\12\5\0\1\12\10\0\3\12\1\0\1\12"+ + "\4\0\14\12\1\103\7\12\5\0\1\12\2\0\1\47"+ + "\2\0\11\47\1\0\1\47\1\0\34\47\15\0\1\104"+ + "\35\0\1\52\1\5\1\7\50\52\5\53\1\105\45\53"+ + "\10\0\1\54\1\0\1\55\15\0\1\55\32\0\1\106"+ + "\2\0\1\107\35\0\1\107\7\0\3\12\1\0\1\12"+ + "\4\0\2\12\1\110\1\111\20\12\5\0\1\12\10\0"+ + "\3\12\1\0\1\12\4\0\3\12\1\112\20\12\5\0"+ + "\1\12\10\0\3\12\1\0\1\12\4\0\7\12\1\113"+ + "\14\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ + "\12\12\1\114\11\12\5\0\1\12\10\0\3\12\1\0"+ + "\1\12\4\0\17\12\1\115\4\12\5\0\1\12\10\0"+ + "\3\12\1\0\1\12\4\0\15\12\1\116\6\12\5\0"+ + "\1\12\10\0\3\12\1\0\1\12\4\0\3\12\1\117"+ + "\20\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ + "\10\12\1\120\13\12\5\0\1\12\10\0\3\12\1\0"+ + "\1\12\4\0\1\12\1\121\22\12\5\0\1\12\10\0"+ + "\3\12\1\0\1\12\4\0\1\12\1\122\22\12\5\0"+ + "\1\12\10\0\3\12\1\0\1\12\4\0\12\12\1\123"+ + "\11\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ + "\1\124\23\12\5\0\1\12\10\0\3\12\1\0\1\12"+ + "\4\0\4\12\1\125\17\12\5\0\1\12\10\0\3\12"+ + "\1\0\1\12\4\0\1\126\23\12\5\0\1\12\10\0"+ + "\3\12\1\0\1\12\4\0\2\12\1\127\21\12\5\0"+ + "\1\12\10\0\3\12\1\0\1\12\4\0\2\12\1\130"+ + "\21\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ + "\11\12\1\131\12\12\5\0\1\12\10\0\3\12\1\0"+ + "\1\12\4\0\14\12\1\132\7\12\5\0\1\12\10\0"+ + "\3\12\1\0\1\12\4\0\14\12\1\133\7\12\5\0"+ + "\1\12\2\0\4\53\1\7\1\105\45\53\10\0\1\106"+ + "\50\0\3\12\1\0\1\12\4\0\3\12\1\134\20\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\4\12"+ + "\1\135\17\12\5\0\1\12\10\0\3\12\1\0\1\12"+ + "\4\0\1\12\1\136\22\12\5\0\1\12\10\0\3\12"+ + "\1\0\1\12\4\0\11\12\1\137\12\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\11\12\1\140\12\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\1\141"+ + "\23\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ + "\11\12\1\142\12\12\5\0\1\12\10\0\3\12\1\0"+ + "\1\12\4\0\4\12\1\143\17\12\5\0\1\12\10\0"+ + "\3\12\1\0\1\12\4\0\11\12\1\144\12\12\5\0"+ + "\1\12\10\0\3\12\1\0\1\12\4\0\12\12\1\145"+ + "\11\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ + "\1\146\23\12\5\0\1\12\10\0\3\12\1\0\1\12"+ + "\4\0\12\12\1\147\11\12\5\0\1\12\10\0\3\12"+ + "\1\0\1\12\4\0\3\12\1\150\20\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\2\12\1\151\21\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\15\12"+ + "\1\152\6\12\5\0\1\12\10\0\3\12\1\0\1\12"+ + "\4\0\3\12\1\153\20\12\5\0\1\12\10\0\3\12"+ + "\1\0\1\12\4\0\1\12\1\154\22\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\6\12\1\155\15\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\2\12"+ + "\1\156\21\12\5\0\1\12\10\0\3\12\1\0\1\12"+ + "\4\0\11\12\1\157\12\12\5\0\1\12\10\0\3\12"+ + "\1\0\1\12\4\0\13\12\1\160\10\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\15\12\1\161\6\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\24\12"+ + "\5\0\1\162\10\0\3\12\1\0\1\12\4\0\1\12"+ + "\1\163\22\12\5\0\1\12\10\0\3\12\1\0\1\12"+ + "\4\0\12\12\1\164\11\12\5\0\1\12\10\0\3\12"+ + "\1\0\1\12\4\0\20\12\1\165\3\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\1\12\1\166\22\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\11\12"+ + "\1\167\12\12\5\0\1\12\10\0\3\12\1\0\1\12"+ + "\4\0\1\12\1\170\22\12\5\0\1\12\10\0\3\12"+ + "\1\0\1\12\4\0\11\12\1\171\12\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\3\12\1\172\20\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\16\12"+ + "\1\173\5\12\5\0\1\12\10\0\3\12\1\0\1\12"+ + "\4\0\3\12\1\174\20\12\5\0\1\12\10\0\3\12"+ + "\1\0\1\12\4\0\2\12\1\175\21\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\24\12\5\0\1\176"+ + "\10\0\3\12\1\0\1\12\4\0\6\12\1\177\15\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\1\12"+ + "\1\200\22\12\5\0\1\12\10\0\3\12\1\0\1\12"+ + "\4\0\24\12\5\0\1\201\10\0\3\12\1\0\1\12"+ + "\4\0\16\12\1\202\5\12\5\0\1\12\10\0\3\12"+ + "\1\0\1\12\4\0\14\12\1\203\7\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\2\12\1\204\21\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\3\12"+ + "\1\205\20\12\5\0\1\12\10\0\3\12\1\0\1\12"+ + "\4\0\6\12\1\206\15\12\5\0\1\12\10\0\3\12"+ + "\1\0\1\12\4\0\24\12\5\0\1\207\10\0\3\12"+ + "\1\0\1\12\4\0\24\12\5\0\1\210\10\0\3\12"+ + "\1\0\1\12\4\0\11\12\1\211\12\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\14\12\1\212\7\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\23\12"+ + "\1\213\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ + "\3\12\1\214\20\12\5\0\1\12\10\0\3\12\1\0"+ + "\1\12\4\0\7\12\1\215\14\12\5\0\1\12\10\0"+ + "\3\12\1\0\1\12\4\0\24\12\5\0\1\216\10\0"+ + "\3\12\1\0\1\12\4\0\2\12\1\217\21\12\5\0"+ + "\1\12\10\0\3\12\1\0\1\12\4\0\11\12\1\220"+ + "\12\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ + "\15\12\1\221\6\12\5\0\1\12\10\0\3\12\1\0"+ + "\1\12\4\0\23\12\1\222\5\0\1\12\10\0\3\12"+ + "\1\0\1\12\4\0\24\12\5\0\1\223\10\0\3\12"+ + "\1\0\1\12\4\0\7\12\1\224\14\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\1\12\1\225\22\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\2\12"+ + "\1\226\21\12\5\0\1\12\10\0\3\12\1\0\1\12"+ + "\4\0\14\12\1\227\7\12\5\0\1\12\10\0\3\12"+ + "\1\0\1\12\4\0\15\12\1\230\6\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\24\12\5\0\1\231"+ + "\10\0\3\12\1\0\1\12\4\0\1\12\1\232\22\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\14\12"+ + "\1\233\7\12\5\0\1\12\2\0"; + + private static int [] zzUnpackTrans() { + int [] result = new int[4988]; + int offset = 0; + offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackTrans(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + value--; + do result[j++] = value; while (--count > 0); + } + return j; + } + + + /* error codes */ + private static final int ZZ_UNKNOWN_ERROR = 0; + private static final int ZZ_NO_MATCH = 1; + private static final int ZZ_PUSHBACK_2BIG = 2; + + /* error messages for the codes above */ + private static final String ZZ_ERROR_MSG[] = { + "Unknown internal scanner error", + "Error: could not match input", + "Error: pushback value was too large" + }; + + /** + * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + */ + private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); + + private static final String ZZ_ATTRIBUTE_PACKED_0 = + "\1\1\2\0\1\11\1\1\2\11\1\1\1\11\3\1"+ + "\3\11\20\1\7\11\1\1\1\11\2\1\1\0\1\1"+ + "\1\0\26\1\1\11\1\0\1\1\1\0\124\1"; + + private static int [] zzUnpackAttribute() { + int [] result = new int[155]; + int offset = 0; + offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackAttribute(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** the input device */ + private java.io.Reader zzReader; + + /** the current state of the DFA */ + private int zzState; + + /** the current lexical state */ + private int zzLexicalState = YYINITIAL; + + /** this buffer contains the current text to be matched and is + the source of the yytext() string */ + private char zzBuffer[] = new char[ZZ_BUFFERSIZE]; + + /** the textposition at the last accepting state */ + private int zzMarkedPos; + + /** the current text position in the buffer */ + private int zzCurrentPos; + + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + + /** endRead marks the last character in the buffer, that has been read + from input */ + private int zzEndRead; + + /** number of newlines encountered up to the start of the matched text */ + private int yyline; + + /** the number of characters up to the start of the matched text */ + private int yychar; + + /** + * the number of characters from the last newline up to the start of the + * matched text + */ + private int yycolumn; + + /** + * zzAtBOL == true <=> the scanner is currently at the beginning of a line + */ + private boolean zzAtBOL = true; + + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + + /** denotes if the user-EOF-code has already been executed */ + private boolean zzEOFDone; + + /** + * The number of occupied positions in zzBuffer beyond zzEndRead. + * When a lead/high surrogate has been read from the input stream + * into the final zzBuffer position, this will have a value of 1; + * otherwise, it will have a value of 0. + */ + private int zzFinalHighSurrogate = 0; + + /* user code: */ + StringBuilder string = new StringBuilder(); + + private Symbol symbol(int type) { + return new Symbol(type, yyline + 1, yycolumn + 1); + } + + private Symbol symbol(int type, Object value) { + return new Symbol(type, yyline + 1, yycolumn + 1, value); + } + + /** + * assumes correct representation of a long value for + * specified radix in scanner buffer from start + * to end + */ + private long parseLong(int start, int end, int radix) { + long result = 0; + long digit; + + for (int i = start; i < end; i++) { + digit = Character.digit(yycharat(i),radix); + result*= radix; + result+= digit; + } + + return result; + } + + + /** + * Creates a new scanner + * + * @param in the java.io.Reader to read input from. + */ + public Scanner(java.io.Reader in) { + this.zzReader = in; + } + + + /** + * Unpacks the compressed character translation table. + * + * @param packed the packed character translation table + * @return the unpacked character translation table + */ + private static char [] zzUnpackCMap(String packed) { + char [] map = new char[0x110000]; + int i = 0; /* index in packed string */ + int j = 0; /* index in unpacked array */ + while (i < 2596) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do map[j++] = value; while (--count > 0); + } + return map; + } + + + /** + * Refills the input buffer. + * + * @return false, iff there was new input. + * + * @exception java.io.IOException if any I/O-Error occurs + */ + private boolean zzRefill() throws java.io.IOException { + + /* first: make room (if you can) */ + if (zzStartRead > 0) { + zzEndRead += zzFinalHighSurrogate; + zzFinalHighSurrogate = 0; + System.arraycopy(zzBuffer, zzStartRead, + zzBuffer, 0, + zzEndRead-zzStartRead); + + /* translate stored positions */ + zzEndRead-= zzStartRead; + zzCurrentPos-= zzStartRead; + zzMarkedPos-= zzStartRead; + zzStartRead = 0; + } + + /* is the buffer big enough? */ + if (zzCurrentPos >= zzBuffer.length - zzFinalHighSurrogate) { + /* if not: blow it up */ + char newBuffer[] = new char[zzBuffer.length*2]; + System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length); + zzBuffer = newBuffer; + zzEndRead += zzFinalHighSurrogate; + zzFinalHighSurrogate = 0; + } + + /* fill the buffer with new input */ + int requested = zzBuffer.length - zzEndRead; + int numRead = zzReader.read(zzBuffer, zzEndRead, requested); + + /* not supposed to occur according to specification of java.io.Reader */ + if (numRead == 0) { + throw new java.io.IOException("Reader returned 0 characters. See JFlex examples for workaround."); + } + if (numRead > 0) { + zzEndRead += numRead; + /* If numRead == requested, we might have requested to few chars to + encode a full Unicode character. We assume that a Reader would + otherwise never return half characters. */ + if (numRead == requested) { + if (Character.isHighSurrogate(zzBuffer[zzEndRead - 1])) { + --zzEndRead; + zzFinalHighSurrogate = 1; + } + } + /* potentially more input available */ + return false; + } + + /* numRead < 0 ==> end of stream */ + return true; + } + + + /** + * Closes the input stream. + */ + public final void yyclose() throws java.io.IOException { + zzAtEOF = true; /* indicate end of file */ + zzEndRead = zzStartRead; /* invalidate buffer */ + + if (zzReader != null) + zzReader.close(); + } + + + /** + * Resets the scanner to read from a new input stream. + * Does not close the old reader. + * + * All internal variables are reset, the old input stream + * cannot be reused (internal buffer is discarded and lost). + * Lexical state is set to ZZ_INITIAL. + * + * Internal scan buffer is resized down to its initial length, if it has grown. + * + * @param reader the new input stream + */ + public final void yyreset(java.io.Reader reader) { + zzReader = reader; + zzAtBOL = true; + zzAtEOF = false; + zzEOFDone = false; + zzEndRead = zzStartRead = 0; + zzCurrentPos = zzMarkedPos = 0; + zzFinalHighSurrogate = 0; + yyline = yychar = yycolumn = 0; + zzLexicalState = YYINITIAL; + if (zzBuffer.length > ZZ_BUFFERSIZE) + zzBuffer = new char[ZZ_BUFFERSIZE]; + } + + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + + /** + * Enters a new lexical state + * + * @param newState the new lexical state + */ + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); + } + + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead+pos]; + } + + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos-zzStartRead; + } + + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } + catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + + throw new Error(message); + } + + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if ( number > yylength() ) + zzScanError(ZZ_PUSHBACK_2BIG); + + zzMarkedPos -= number; + } + + + /** + * Contains user EOF-code, which will be executed exactly once, + * when the end of file is reached + */ + private void zzDoEOF() throws java.io.IOException { + if (!zzEOFDone) { + zzEOFDone = true; + yyclose(); + } + } + + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException if any I/O-Error occurs + */ + public java_cup.runtime.Symbol next_token() throws java.io.IOException { + int zzInput; + int zzAction; + + // cached fields: + int zzCurrentPosL; + int zzMarkedPosL; + int zzEndReadL = zzEndRead; + char [] zzBufferL = zzBuffer; + char [] zzCMapL = ZZ_CMAP; + + int [] zzTransL = ZZ_TRANS; + int [] zzRowMapL = ZZ_ROWMAP; + int [] zzAttrL = ZZ_ATTRIBUTE; + + while (true) { + zzMarkedPosL = zzMarkedPos; + + boolean zzR = false; + int zzCh; + int zzCharCount; + for (zzCurrentPosL = zzStartRead ; + zzCurrentPosL < zzMarkedPosL ; + zzCurrentPosL += zzCharCount ) { + zzCh = Character.codePointAt(zzBufferL, zzCurrentPosL, zzMarkedPosL); + zzCharCount = Character.charCount(zzCh); + switch (zzCh) { + case '\u000B': + case '\u000C': + case '\u0085': + case '\u2028': + case '\u2029': + yyline++; + yycolumn = 0; + zzR = false; + break; + case '\r': + yyline++; + yycolumn = 0; + zzR = true; + break; + case '\n': + if (zzR) + zzR = false; + else { + yyline++; + yycolumn = 0; + } + break; + default: + zzR = false; + yycolumn += zzCharCount; + } + } + + if (zzR) { + // peek one character ahead if it is \n (if we have counted one line too much) + boolean zzPeek; + if (zzMarkedPosL < zzEndReadL) + zzPeek = zzBufferL[zzMarkedPosL] == '\n'; + else if (zzAtEOF) + zzPeek = false; + else { + boolean eof = zzRefill(); + zzEndReadL = zzEndRead; + zzMarkedPosL = zzMarkedPos; + zzBufferL = zzBuffer; + if (eof) + zzPeek = false; + else + zzPeek = zzBufferL[zzMarkedPosL] == '\n'; + } + if (zzPeek) yyline--; + } + zzAction = -1; + + zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; + + zzState = ZZ_LEXSTATE[zzLexicalState]; + + // set up zzAction for empty match case: + int zzAttributes = zzAttrL[zzState]; + if ( (zzAttributes & 1) == 1 ) { + zzAction = zzState; + } + + + zzForAction: { + while (true) { + + if (zzCurrentPosL < zzEndReadL) { + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL); + zzCurrentPosL += Character.charCount(zzInput); + } + else if (zzAtEOF) { + zzInput = YYEOF; + break zzForAction; + } + else { + // store back cached positions + zzCurrentPos = zzCurrentPosL; + zzMarkedPos = zzMarkedPosL; + boolean eof = zzRefill(); + // get translated positions and possibly new buffer + zzCurrentPosL = zzCurrentPos; + zzMarkedPosL = zzMarkedPos; + zzBufferL = zzBuffer; + zzEndReadL = zzEndRead; + if (eof) { + zzInput = YYEOF; + break zzForAction; + } + else { + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL); + zzCurrentPosL += Character.charCount(zzInput); + } + } + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ]; + if (zzNext == -1) break zzForAction; + zzState = zzNext; + + zzAttributes = zzAttrL[zzState]; + if ( (zzAttributes & 1) == 1 ) { + zzAction = zzState; + zzMarkedPosL = zzCurrentPosL; + if ( (zzAttributes & 8) == 8 ) break zzForAction; + } + + } + } + + // store back cached position + zzMarkedPos = zzMarkedPosL; + + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + zzDoEOF(); + { + return symbol(EOF); + } + } + else { + switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { + case 1: + { return symbol(lambda); + } + case 48: break; + case 2: + { throw new RuntimeException("Illegal character \""+yytext()+ + "\" at line "+yyline+", column "+yycolumn); + } + case 49: break; + case 3: + { /* ignore */ + } + case 50: break; + case 4: + { return symbol(EOL); + } + case 51: break; + case 5: + { return symbol(slash); + } + case 52: break; + case 6: + { return symbol(asterix); + } + case 53: break; + case 7: + { return symbol(IDENTIFIER, yytext()); + } + case 54: break; + case 8: + { return symbol(num_lit, new Integer(yytext())); + } + case 55: break; + case 9: + { return symbol(dot); + } + case 56: break; + case 10: + { return symbol(minus); + } + case 57: break; + case 11: + { yybegin(STRING); string.setLength(0); + } + case 58: break; + case 12: + { yybegin(CHARLITERAL); + } + case 59: break; + case 13: + { return symbol(lparen); + } + case 60: break; + case 14: + { return symbol(rparen); + } + case 61: break; + case 15: + { return symbol(comma); + } + case 62: break; + case 16: + { return symbol(COLON); + } + case 63: break; + case 17: + { return symbol(ASSIGN); + } + case 64: break; + case 18: + { return symbol(plus); + } + case 65: break; + case 19: + { return symbol(hat); + } + case 66: break; + case 20: + { string.append( yytext() ); + } + case 67: break; + case 21: + { yybegin(YYINITIAL); return symbol(STRING_LITERAL, string.toString()); + } + case 68: break; + case 22: + { return symbol(IS); + } + case 69: break; + case 23: + { return symbol(IF); + } + case 70: break; + case 24: + { return symbol(OR); + } + case 71: break; + case 25: + { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, yytext().charAt(0)); + } + case 72: break; + case 26: + { return symbol(AND); + } + case 73: break; + case 27: + { return symbol(NUM); + } + case 74: break; + case 28: + { return symbol(NOT); + } + case 75: break; + case 29: + { return symbol(END); + } + case 76: break; + case 30: + { return symbol(SQRT); + } + case 77: break; + case 31: + { return symbol(TRUE); + } + case 78: break; + case 32: + { return symbol(ELSE); + } + case 79: break; + case 33: + { return symbol(VOID); + } + case 80: break; + case 34: + { return symbol(LOAD); + } + case 81: break; + case 35: + { return symbol(HEAR); + } + case 82: break; + case 36: + { return symbol(BOOL); + } + case 83: break; + case 37: + { return symbol(START); + } + case 84: break; + case 38: + { return symbol(FALSE); + } + case 85: break; + case 39: + { return symbol(UNTIL); + } + case 86: break; + case 40: + { return symbol(COORD); + } + case 87: break; + case 41: + { return symbol(STRING); + } + case 88: break; + case 42: + { return symbol(REPEAT); + } + case 89: break; + case 43: + { return symbol(FOREVER); + } + case 90: break; + case 44: + { return symbol(LT); + } + case 91: break; + case 45: + { return symbol(GT); + } + case 92: break; + case 46: + { return symbol(LTE); + } + case 93: break; + case 47: + { return symbol(GTE); + } + case 94: break; + default: + zzScanError(ZZ_NO_MATCH); + } + } + } + } + + /** + * Converts an int token code into the name of the + * token by reflection on the cup symbol class/interface sym + * + * This code was contributed by Karl Meissner + */ + private String getTokenName(int token) { + try { + java.lang.reflect.Field [] classFields = sym.class.getFields(); + for (int i = 0; i < classFields.length; i++) { + if (classFields[i].getInt(null) == token) { + return classFields[i].getName(); + } + } + } catch (Exception e) { + e.printStackTrace(System.err); + } + + return "UNKNOWN TOKEN"; + } + + /** + * Same as next_token but also prints the token to standard out + * for debugging. + * + * This code was contributed by Karl Meissner + */ + public java_cup.runtime.Symbol debug_next_token() throws java.io.IOException { + java_cup.runtime.Symbol s = next_token(); + System.out.println( "line:" + (yyline+1) + " col:" + (yycolumn+1) + " --"+ yytext() + "--" + getTokenName(s.sym) + "--"); + return s; + } + + /** + * Runs the scanner on input files. + * + * This main method is the debugging routine for the scanner. + * It prints debugging information about each returned token to + * System.out until the end of file is reached, or an error occured. + * + * @param argv the command line, contains the filenames to run + * the scanner on. + */ + public static void main(String argv[]) { + if (argv.length == 0) { + System.out.println("Usage : java Scanner [ --encoding ] "); + } + else { + int firstFilePos = 0; + String encodingName = "UTF-8"; + if (argv[0].equals("--encoding")) { + firstFilePos = 2; + encodingName = argv[1]; + try { + java.nio.charset.Charset.forName(encodingName); // Side-effect: is encodingName valid? + } catch (Exception e) { + System.out.println("Invalid encoding '" + encodingName + "'"); + return; + } + } + for (int i = firstFilePos; i < argv.length; i++) { + Scanner scanner = null; + try { + java.io.FileInputStream stream = new java.io.FileInputStream(argv[i]); + java.io.Reader reader = new java.io.InputStreamReader(stream, encodingName); + scanner = new Scanner(reader); + while ( !scanner.zzAtEOF ) scanner.debug_next_token(); + } + catch (java.io.FileNotFoundException e) { + System.out.println("File not found : \""+argv[i]+"\""); + } + catch (java.io.IOException e) { + System.out.println("IO error scanning file \""+argv[i]+"\""); + System.out.println(e); + } + catch (Exception e) { + System.out.println("Unexpected exception:"); + e.printStackTrace(); + } + } + } + } + + +} diff --git a/compiler/src/Scanner.java~ b/compiler/src/Scanner.java~ new file mode 100644 index 0000000..6ac0133 --- /dev/null +++ b/compiler/src/Scanner.java~ @@ -0,0 +1,1213 @@ +/* The following code was generated by JFlex 1.6.1 */ + +import java_cup.runtime.*; + + +/** + * This class is a scanner generated by + * JFlex 1.6.1 + * from the specification file /Users/Lee/Documents/compiler/src/java.flex + */ +public class Scanner implements sym, java_cup.runtime.Scanner { + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + + /** initial size of the lookahead buffer */ + private static final int ZZ_BUFFERSIZE = 16384; + + /** lexical states */ + public static final int YYINITIAL = 0; + public static final int STRING = 2; + public static final int CHARLITERAL = 4; + + /** + * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l + * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l + * at the beginning of a line + * l is of the form l = 2*k, k a non negative integer + */ + private static final int ZZ_LEXSTATE[] = { + 0, 0, 1, 1, 2, 2 + }; + + /** + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = + "\11\7\1\3\1\2\1\0\1\3\1\1\16\7\4\0\1\3\1\0"+ + "\1\14\1\0\1\6\2\0\1\15\1\43\1\44\1\5\1\51\1\45"+ + "\1\13\1\11\1\4\12\10\1\46\2\0\1\47\3\0\1\21\1\40"+ + "\1\41\1\31\1\30\1\24\1\37\1\35\1\23\2\6\1\34\1\27"+ + "\1\25\1\33\1\36\1\42\1\22\1\17\1\20\1\26\1\32\4\6"+ + "\1\0\1\16\1\0\1\52\1\50\1\0\4\6\1\12\25\6\4\0"+ + "\41\7\2\0\4\6\4\0\1\6\2\0\1\7\7\0\1\6\4\0"+ + "\1\6\5\0\27\6\1\0\37\6\1\0\u01ca\6\4\0\14\6\16\0"+ + "\5\6\7\0\1\6\1\0\1\6\21\0\160\7\5\6\1\0\2\6"+ + "\2\0\4\6\10\0\1\6\1\0\3\6\1\0\1\6\1\0\24\6"+ + "\1\0\123\6\1\0\213\6\1\0\5\7\2\0\236\6\11\0\46\6"+ + "\2\0\1\6\7\0\47\6\11\0\55\7\1\0\1\7\1\0\2\7"+ + "\1\0\2\7\1\0\1\7\10\0\33\6\5\0\3\6\15\0\4\7"+ + "\7\0\1\6\4\0\13\7\5\0\53\6\37\7\4\0\2\6\1\7"+ + "\143\6\1\0\1\6\10\7\1\0\6\7\2\6\2\7\1\0\4\7"+ + "\2\6\12\7\3\6\2\0\1\6\17\0\1\7\1\6\1\7\36\6"+ + "\33\7\2\0\131\6\13\7\1\6\16\0\12\7\41\6\11\7\2\6"+ + "\4\0\1\6\5\0\26\6\4\7\1\6\11\7\1\6\3\7\1\6"+ + "\5\7\22\0\31\6\3\7\244\0\4\7\66\6\3\7\1\6\22\7"+ + "\1\6\7\7\12\6\2\7\2\0\12\7\1\0\7\6\1\0\7\6"+ + "\1\0\3\7\1\0\10\6\2\0\2\6\2\0\26\6\1\0\7\6"+ + "\1\0\1\6\3\0\4\6\2\0\1\7\1\6\7\7\2\0\2\7"+ + "\2\0\3\7\1\6\10\0\1\7\4\0\2\6\1\0\3\6\2\7"+ + "\2\0\12\7\4\6\7\0\1\6\5\0\3\7\1\0\6\6\4\0"+ + "\2\6\2\0\26\6\1\0\7\6\1\0\2\6\1\0\2\6\1\0"+ + "\2\6\2\0\1\7\1\0\5\7\4\0\2\7\2\0\3\7\3\0"+ + "\1\7\7\0\4\6\1\0\1\6\7\0\14\7\3\6\1\7\13\0"+ + "\3\7\1\0\11\6\1\0\3\6\1\0\26\6\1\0\7\6\1\0"+ + "\2\6\1\0\5\6\2\0\1\7\1\6\10\7\1\0\3\7\1\0"+ + "\3\7\2\0\1\6\17\0\2\6\2\7\2\0\12\7\1\0\1\6"+ + "\17\0\3\7\1\0\10\6\2\0\2\6\2\0\26\6\1\0\7\6"+ + "\1\0\2\6\1\0\5\6\2\0\1\7\1\6\7\7\2\0\2\7"+ + "\2\0\3\7\10\0\2\7\4\0\2\6\1\0\3\6\2\7\2\0"+ + "\12\7\1\0\1\6\20\0\1\7\1\6\1\0\6\6\3\0\3\6"+ + "\1\0\4\6\3\0\2\6\1\0\1\6\1\0\2\6\3\0\2\6"+ + "\3\0\3\6\3\0\14\6\4\0\5\7\3\0\3\7\1\0\4\7"+ + "\2\0\1\6\6\0\1\7\16\0\12\7\11\0\1\6\7\0\3\7"+ + "\1\0\10\6\1\0\3\6\1\0\27\6\1\0\12\6\1\0\5\6"+ + "\3\0\1\6\7\7\1\0\3\7\1\0\4\7\7\0\2\7\1\0"+ + "\2\6\6\0\2\6\2\7\2\0\12\7\22\0\2\7\1\0\10\6"+ + "\1\0\3\6\1\0\27\6\1\0\12\6\1\0\5\6\2\0\1\7"+ + "\1\6\7\7\1\0\3\7\1\0\4\7\7\0\2\7\7\0\1\6"+ + "\1\0\2\6\2\7\2\0\12\7\1\0\2\6\17\0\2\7\1\0"+ + "\10\6\1\0\3\6\1\0\51\6\2\0\1\6\7\7\1\0\3\7"+ + "\1\0\4\7\1\6\10\0\1\7\10\0\2\6\2\7\2\0\12\7"+ + "\12\0\6\6\2\0\2\7\1\0\22\6\3\0\30\6\1\0\11\6"+ + "\1\0\1\6\2\0\7\6\3\0\1\7\4\0\6\7\1\0\1\7"+ + "\1\0\10\7\22\0\2\7\15\0\60\6\1\7\2\6\7\7\4\0"+ + "\10\6\10\7\1\0\12\7\47\0\2\6\1\0\1\6\2\0\2\6"+ + "\1\0\1\6\2\0\1\6\6\0\4\6\1\0\7\6\1\0\3\6"+ + "\1\0\1\6\1\0\1\6\2\0\2\6\1\0\4\6\1\7\2\6"+ + "\6\7\1\0\2\7\1\6\2\0\5\6\1\0\1\6\1\0\6\7"+ + "\2\0\12\7\2\0\2\6\42\0\1\6\27\0\2\7\6\0\12\7"+ + "\13\0\1\7\1\0\1\7\1\0\1\7\4\0\2\7\10\6\1\0"+ + "\44\6\4\0\24\7\1\0\2\7\5\6\13\7\1\0\44\7\11\0"+ + "\1\7\71\0\53\6\24\7\1\6\12\7\6\0\6\6\4\7\4\6"+ + "\3\7\1\6\3\7\2\6\7\7\3\6\4\7\15\6\14\7\1\6"+ + "\17\7\2\0\46\6\12\0\53\6\1\0\1\6\3\0\u0149\6\1\0"+ + "\4\6\2\0\7\6\1\0\1\6\1\0\4\6\2\0\51\6\1\0"+ + "\4\6\2\0\41\6\1\0\4\6\2\0\7\6\1\0\1\6\1\0"+ + "\4\6\2\0\17\6\1\0\71\6\1\0\4\6\2\0\103\6\2\0"+ + "\3\7\40\0\20\6\20\0\125\6\14\0\u026c\6\2\0\21\6\1\0"+ + "\32\6\5\0\113\6\3\0\3\6\17\0\15\6\1\0\4\6\3\7"+ + "\13\0\22\6\3\7\13\0\22\6\2\7\14\0\15\6\1\0\3\6"+ + "\1\0\2\7\14\0\64\6\40\7\3\0\1\6\3\0\2\6\1\7"+ + "\2\0\12\7\41\0\3\7\2\0\12\7\6\0\130\6\10\0\51\6"+ + "\1\7\1\6\5\0\106\6\12\0\35\6\3\0\14\7\4\0\14\7"+ + "\12\0\12\7\36\6\2\0\5\6\13\0\54\6\4\0\21\7\7\6"+ + "\2\7\6\0\12\7\46\0\27\6\5\7\4\0\65\6\12\7\1\0"+ + "\35\7\2\0\13\7\6\0\12\7\15\0\1\6\130\0\5\7\57\6"+ + "\21\7\7\6\4\0\12\7\21\0\11\7\14\0\3\7\36\6\12\7"+ + "\3\0\2\6\12\7\6\0\46\6\16\7\14\0\44\6\24\7\10\0"+ + "\12\7\3\0\3\6\12\7\44\6\122\0\3\7\1\0\25\7\4\6"+ + "\1\7\4\6\1\7\15\0\300\6\47\7\25\0\4\7\u0116\6\2\0"+ + "\6\6\2\0\46\6\2\0\6\6\2\0\10\6\1\0\1\6\1\0"+ + "\1\6\1\0\1\6\1\0\37\6\2\0\65\6\1\0\7\6\1\0"+ + "\1\6\3\0\3\6\1\0\7\6\3\0\4\6\2\0\6\6\4\0"+ + "\15\6\5\0\3\6\1\0\7\6\16\0\5\7\32\0\5\7\20\0"+ + "\2\6\23\0\1\6\13\0\5\7\5\0\6\7\1\0\1\6\15\0"+ + "\1\6\20\0\15\6\3\0\32\6\26\0\15\7\4\0\1\7\3\0"+ + "\14\7\21\0\1\6\4\0\1\6\2\0\12\6\1\0\1\6\3\0"+ + "\5\6\6\0\1\6\1\0\1\6\1\0\1\6\1\0\4\6\1\0"+ + "\13\6\2\0\4\6\5\0\5\6\4\0\1\6\21\0\51\6\u0a77\0"+ + "\57\6\1\0\57\6\1\0\205\6\6\0\4\6\3\7\16\0\46\6"+ + "\12\0\66\6\11\0\1\6\17\0\1\7\27\6\11\0\7\6\1\0"+ + "\7\6\1\0\7\6\1\0\7\6\1\0\7\6\1\0\7\6\1\0"+ + "\7\6\1\0\7\6\1\0\40\7\57\0\1\6\u01d5\0\3\6\31\0"+ + "\11\6\6\7\1\0\5\6\2\0\5\6\4\0\126\6\2\0\2\7"+ + "\2\0\3\6\1\0\132\6\1\0\4\6\5\0\51\6\3\0\136\6"+ + "\21\0\33\6\65\0\20\6\u0200\0\u19b6\6\112\0\u51cc\6\64\0\u048d\6"+ + "\103\0\56\6\2\0\u010d\6\3\0\20\6\12\7\2\6\24\0\57\6"+ + "\1\7\14\0\2\7\1\0\31\6\10\0\120\6\2\7\45\0\11\6"+ + "\2\0\147\6\2\0\4\6\1\0\2\6\16\0\12\6\120\0\10\6"+ + "\1\7\3\6\1\7\4\6\1\7\27\6\5\7\20\0\1\6\7\0"+ + "\64\6\14\0\2\7\62\6\21\7\13\0\12\7\6\0\22\7\6\6"+ + "\3\0\1\6\4\0\12\7\34\6\10\7\2\0\27\6\15\7\14\0"+ + "\35\6\3\0\4\7\57\6\16\7\16\0\1\6\12\7\46\0\51\6"+ + "\16\7\11\0\3\6\1\7\10\6\2\7\2\0\12\7\6\0\27\6"+ + "\3\0\1\6\1\7\4\0\60\6\1\7\1\6\3\7\2\6\2\7"+ + "\5\6\2\7\1\6\1\7\1\6\30\0\3\6\43\0\6\6\2\0"+ + "\6\6\2\0\6\6\11\0\7\6\1\0\7\6\221\0\43\6\10\7"+ + "\1\0\2\7\2\0\12\7\6\0\u2ba4\6\14\0\27\6\4\0\61\6"+ + "\u2104\0\u012e\6\2\0\76\6\2\0\152\6\46\0\7\6\14\0\5\6"+ + "\5\0\1\6\1\7\12\6\1\0\15\6\1\0\5\6\1\0\1\6"+ + "\1\0\2\6\1\0\2\6\1\0\154\6\41\0\u016b\6\22\0\100\6"+ + "\2\0\66\6\50\0\15\6\3\0\20\7\20\0\7\7\14\0\2\6"+ + "\30\0\3\6\31\0\1\6\6\0\5\6\1\0\207\6\2\0\1\7"+ + "\4\0\1\6\13\0\12\7\7\0\32\6\4\0\1\6\1\0\32\6"+ + "\13\0\131\6\3\0\6\6\2\0\6\6\2\0\6\6\2\0\3\6"+ + "\3\0\2\6\3\0\2\6\22\0\3\7\4\0\14\6\1\0\32\6"+ + "\1\0\23\6\1\0\2\6\1\0\17\6\2\0\16\6\42\0\173\6"+ + "\105\0\65\6\210\0\1\7\202\0\35\6\3\0\61\6\57\0\37\6"+ + "\21\0\33\6\65\0\36\6\2\0\44\6\4\0\10\6\1\0\5\6"+ + "\52\0\236\6\2\0\12\7\u0356\0\6\6\2\0\1\6\1\0\54\6"+ + "\1\0\2\6\3\0\1\6\2\0\27\6\252\0\26\6\12\0\32\6"+ + "\306\0\1\6\3\7\1\0\2\7\5\0\4\7\4\6\1\0\3\6"+ + "\1\0\33\6\4\0\3\7\4\0\1\7\40\0\35\6\203\0\66\6"+ + "\12\0\26\6\12\0\23\6\215\0\111\6\u03b7\0\3\7\65\6\17\7"+ + "\37\0\12\7\20\0\3\7\55\6\13\7\2\0\1\7\u0f42\0\u036f\6"+ + "\221\0\143\6\u0b9d\0\u042f\6\u33d1\0\u0239\6\u45c7\0\2\6\u2163\0\5\7"+ + "\3\0\26\7\2\0\7\7\36\0\4\7\224\0\3\7\u01bb\0\125\6"+ + "\1\0\107\6\1\0\2\6\2\0\1\6\2\0\2\6\2\0\4\6"+ + "\1\0\14\6\1\0\1\6\1\0\7\6\1\0\101\6\1\0\4\6"+ + "\2\0\10\6\1\0\7\6\1\0\34\6\1\0\4\6\1\0\5\6"+ + "\1\0\1\6\3\0\7\6\1\0\u0154\6\2\0\31\6\1\0\31\6"+ + "\1\0\37\6\1\0\31\6\1\0\37\6\1\0\31\6\1\0\37\6"+ + "\1\0\31\6\1\0\37\6\1\0\31\6\1\0\10\6\2\0\62\7"+ + "\u2800\0\ua6d7\6\51\0\u1035\6\13\0\336\6\u3fe2\0\u021e\6\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05ee\0"+ + "\1\7\36\0\140\7\200\0\360\7\uffff\0\uffff\0\ufe12\0"; + + /** + * Translates characters to character classes + */ + private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED); + + /** + * Translates DFA states to action switch labels. + */ + private static final int [] ZZ_ACTION = zzUnpackAction(); + + private static final String ZZ_ACTION_PACKED_0 = + "\1\1\2\0\1\2\1\3\1\4\1\3\1\5\1\6"+ + "\1\7\1\10\1\11\1\12\1\13\1\14\20\7\1\15"+ + "\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25"+ + "\1\2\1\3\1\0\1\10\1\0\5\7\1\26\1\27"+ + "\10\7\1\30\6\7\1\31\1\0\1\10\1\0\4\7"+ + "\1\32\3\7\1\33\1\34\1\7\1\35\12\7\1\36"+ + "\1\37\4\7\1\40\1\41\1\7\1\42\1\43\1\7"+ + "\1\44\1\7\1\45\2\7\1\46\1\7\1\47\2\7"+ + "\1\50\1\51\1\52\3\7\1\53\4\7\1\54\6\7"+ + "\1\55\20\7\1\56\3\7\1\57"; + + private static int [] zzUnpackAction() { + int [] result = new int[155]; + int offset = 0; + offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackAction(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + + /** + * Translates a state to a row index in the transition table + */ + private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); + + private static final String ZZ_ROWMAP_PACKED_0 = + "\0\0\0\53\0\126\0\201\0\254\0\201\0\201\0\327"+ + "\0\201\0\u0102\0\u012d\0\u0158\0\201\0\201\0\201\0\u0183"+ + "\0\u01ae\0\u01d9\0\u0204\0\u022f\0\u025a\0\u0285\0\u02b0\0\u02db"+ + "\0\u0306\0\u0331\0\u035c\0\u0387\0\u03b2\0\u03dd\0\u0408\0\201"+ + "\0\201\0\201\0\201\0\201\0\201\0\201\0\u0433\0\201"+ + "\0\u045e\0\u0489\0\u04b4\0\u04df\0\u050a\0\u0535\0\u0560\0\u058b"+ + "\0\u05b6\0\u05e1\0\u0102\0\u0102\0\u060c\0\u0637\0\u0662\0\u068d"+ + "\0\u06b8\0\u06e3\0\u070e\0\u0739\0\u0102\0\u0764\0\u078f\0\u07ba"+ + "\0\u07e5\0\u0810\0\u083b\0\201\0\u0866\0\u0891\0\u0891\0\u08bc"+ + "\0\u08e7\0\u0912\0\u093d\0\u0102\0\u0968\0\u0993\0\u09be\0\u0102"+ + "\0\u0102\0\u09e9\0\u0102\0\u0a14\0\u0a3f\0\u0a6a\0\u0a95\0\u0ac0"+ + "\0\u0aeb\0\u0b16\0\u0b41\0\u0b6c\0\u0b97\0\u0102\0\u0102\0\u0bc2"+ + "\0\u0bed\0\u0c18\0\u0c43\0\u0102\0\u0102\0\u0c6e\0\u0102\0\u0102"+ + "\0\u0c99\0\u0102\0\u0cc4\0\u0102\0\u0cef\0\u0d1a\0\u0102\0\u0d45"+ + "\0\u0102\0\u0d70\0\u0d9b\0\u0102\0\u0102\0\u0102\0\u0dc6\0\u0df1"+ + "\0\u0e1c\0\u0102\0\u0e47\0\u0e72\0\u0e9d\0\u0ec8\0\u0ef3\0\u0f1e"+ + "\0\u0f49\0\u0f74\0\u0f9f\0\u0fca\0\u0ff5\0\u1020\0\u104b\0\u1076"+ + "\0\u10a1\0\u10cc\0\u10f7\0\u1122\0\u114d\0\u1178\0\u11a3\0\u11ce"+ + "\0\u11f9\0\u1224\0\u124f\0\u127a\0\u12a5\0\u12d0\0\u0102\0\u12fb"+ + "\0\u1326\0\u1351\0\u0102"; + + private static int [] zzUnpackRowMap() { + int [] result = new int[155]; + int offset = 0; + offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackRowMap(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int high = packed.charAt(i++) << 16; + result[j++] = high | packed.charAt(i++); + } + return j; + } + + /** + * The transition table of the DFA + */ + private static final int [] ZZ_TRANS = zzUnpackTrans(); + + private static final String ZZ_TRANS_PACKED_0 = + "\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\4"+ + "\1\13\1\14\1\12\1\15\1\16\1\17\1\4\1\20"+ + "\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\12"+ + "\1\30\1\12\1\31\1\32\1\33\1\34\1\12\1\35"+ + "\1\36\1\37\1\12\1\40\1\41\1\42\1\43\1\44"+ + "\1\12\1\45\1\46\1\47\2\4\11\47\1\50\1\47"+ + "\1\4\34\47\1\51\2\4\12\51\2\4\34\51\55\0"+ + "\1\7\54\0\1\52\1\53\53\0\3\12\1\0\1\12"+ + "\4\0\24\12\5\0\1\12\12\0\1\13\1\54\1\55"+ + "\15\0\1\55\32\0\1\54\50\0\3\12\1\0\1\12"+ + "\4\0\1\12\1\56\21\12\1\57\5\0\1\12\10\0"+ + "\3\12\1\0\1\12\4\0\3\12\1\60\20\12\5\0"+ + "\1\12\10\0\3\12\1\0\1\12\4\0\6\12\1\61"+ + "\15\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ + "\11\12\1\62\12\12\5\0\1\12\10\0\3\12\1\0"+ + "\1\12\4\0\1\63\4\12\1\64\16\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\2\12\1\65\11\12"+ + "\1\66\7\12\5\0\1\12\10\0\3\12\1\0\1\12"+ + "\4\0\7\12\1\67\4\12\1\70\7\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\6\12\1\71\15\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\6\12"+ + "\1\72\6\12\1\73\6\12\5\0\1\12\10\0\3\12"+ + "\1\0\1\12\4\0\14\12\1\74\7\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\3\12\1\75\20\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\11\12"+ + "\1\76\2\12\1\77\7\12\5\0\1\12\10\0\3\12"+ + "\1\0\1\12\4\0\11\12\1\100\12\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\3\12\1\101\20\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\14\12"+ + "\1\102\7\12\5\0\1\12\10\0\3\12\1\0\1\12"+ + "\4\0\14\12\1\103\7\12\5\0\1\12\2\0\1\47"+ + "\2\0\11\47\1\0\1\47\1\0\34\47\15\0\1\104"+ + "\35\0\1\52\1\5\1\7\50\52\5\53\1\105\45\53"+ + "\10\0\1\54\1\0\1\55\15\0\1\55\32\0\1\106"+ + "\2\0\1\107\35\0\1\107\7\0\3\12\1\0\1\12"+ + "\4\0\2\12\1\110\1\111\20\12\5\0\1\12\10\0"+ + "\3\12\1\0\1\12\4\0\3\12\1\112\20\12\5\0"+ + "\1\12\10\0\3\12\1\0\1\12\4\0\7\12\1\113"+ + "\14\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ + "\12\12\1\114\11\12\5\0\1\12\10\0\3\12\1\0"+ + "\1\12\4\0\17\12\1\115\4\12\5\0\1\12\10\0"+ + "\3\12\1\0\1\12\4\0\15\12\1\116\6\12\5\0"+ + "\1\12\10\0\3\12\1\0\1\12\4\0\3\12\1\117"+ + "\20\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ + "\10\12\1\120\13\12\5\0\1\12\10\0\3\12\1\0"+ + "\1\12\4\0\1\12\1\121\22\12\5\0\1\12\10\0"+ + "\3\12\1\0\1\12\4\0\1\12\1\122\22\12\5\0"+ + "\1\12\10\0\3\12\1\0\1\12\4\0\12\12\1\123"+ + "\11\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ + "\1\124\23\12\5\0\1\12\10\0\3\12\1\0\1\12"+ + "\4\0\4\12\1\125\17\12\5\0\1\12\10\0\3\12"+ + "\1\0\1\12\4\0\1\126\23\12\5\0\1\12\10\0"+ + "\3\12\1\0\1\12\4\0\2\12\1\127\21\12\5\0"+ + "\1\12\10\0\3\12\1\0\1\12\4\0\2\12\1\130"+ + "\21\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ + "\11\12\1\131\12\12\5\0\1\12\10\0\3\12\1\0"+ + "\1\12\4\0\14\12\1\132\7\12\5\0\1\12\10\0"+ + "\3\12\1\0\1\12\4\0\14\12\1\133\7\12\5\0"+ + "\1\12\2\0\4\53\1\7\1\105\45\53\10\0\1\106"+ + "\50\0\3\12\1\0\1\12\4\0\3\12\1\134\20\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\4\12"+ + "\1\135\17\12\5\0\1\12\10\0\3\12\1\0\1\12"+ + "\4\0\1\12\1\136\22\12\5\0\1\12\10\0\3\12"+ + "\1\0\1\12\4\0\11\12\1\137\12\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\11\12\1\140\12\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\1\141"+ + "\23\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ + "\11\12\1\142\12\12\5\0\1\12\10\0\3\12\1\0"+ + "\1\12\4\0\4\12\1\143\17\12\5\0\1\12\10\0"+ + "\3\12\1\0\1\12\4\0\11\12\1\144\12\12\5\0"+ + "\1\12\10\0\3\12\1\0\1\12\4\0\12\12\1\145"+ + "\11\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ + "\1\146\23\12\5\0\1\12\10\0\3\12\1\0\1\12"+ + "\4\0\12\12\1\147\11\12\5\0\1\12\10\0\3\12"+ + "\1\0\1\12\4\0\3\12\1\150\20\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\2\12\1\151\21\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\15\12"+ + "\1\152\6\12\5\0\1\12\10\0\3\12\1\0\1\12"+ + "\4\0\3\12\1\153\20\12\5\0\1\12\10\0\3\12"+ + "\1\0\1\12\4\0\1\12\1\154\22\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\6\12\1\155\15\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\2\12"+ + "\1\156\21\12\5\0\1\12\10\0\3\12\1\0\1\12"+ + "\4\0\11\12\1\157\12\12\5\0\1\12\10\0\3\12"+ + "\1\0\1\12\4\0\13\12\1\160\10\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\15\12\1\161\6\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\24\12"+ + "\5\0\1\162\10\0\3\12\1\0\1\12\4\0\1\12"+ + "\1\163\22\12\5\0\1\12\10\0\3\12\1\0\1\12"+ + "\4\0\12\12\1\164\11\12\5\0\1\12\10\0\3\12"+ + "\1\0\1\12\4\0\20\12\1\165\3\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\1\12\1\166\22\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\11\12"+ + "\1\167\12\12\5\0\1\12\10\0\3\12\1\0\1\12"+ + "\4\0\1\12\1\170\22\12\5\0\1\12\10\0\3\12"+ + "\1\0\1\12\4\0\11\12\1\171\12\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\3\12\1\172\20\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\16\12"+ + "\1\173\5\12\5\0\1\12\10\0\3\12\1\0\1\12"+ + "\4\0\3\12\1\174\20\12\5\0\1\12\10\0\3\12"+ + "\1\0\1\12\4\0\2\12\1\175\21\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\24\12\5\0\1\176"+ + "\10\0\3\12\1\0\1\12\4\0\6\12\1\177\15\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\1\12"+ + "\1\200\22\12\5\0\1\12\10\0\3\12\1\0\1\12"+ + "\4\0\24\12\5\0\1\201\10\0\3\12\1\0\1\12"+ + "\4\0\16\12\1\202\5\12\5\0\1\12\10\0\3\12"+ + "\1\0\1\12\4\0\14\12\1\203\7\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\2\12\1\204\21\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\3\12"+ + "\1\205\20\12\5\0\1\12\10\0\3\12\1\0\1\12"+ + "\4\0\6\12\1\206\15\12\5\0\1\12\10\0\3\12"+ + "\1\0\1\12\4\0\24\12\5\0\1\207\10\0\3\12"+ + "\1\0\1\12\4\0\24\12\5\0\1\210\10\0\3\12"+ + "\1\0\1\12\4\0\11\12\1\211\12\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\14\12\1\212\7\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\23\12"+ + "\1\213\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ + "\3\12\1\214\20\12\5\0\1\12\10\0\3\12\1\0"+ + "\1\12\4\0\7\12\1\215\14\12\5\0\1\12\10\0"+ + "\3\12\1\0\1\12\4\0\24\12\5\0\1\216\10\0"+ + "\3\12\1\0\1\12\4\0\2\12\1\217\21\12\5\0"+ + "\1\12\10\0\3\12\1\0\1\12\4\0\11\12\1\220"+ + "\12\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ + "\15\12\1\221\6\12\5\0\1\12\10\0\3\12\1\0"+ + "\1\12\4\0\23\12\1\222\5\0\1\12\10\0\3\12"+ + "\1\0\1\12\4\0\24\12\5\0\1\223\10\0\3\12"+ + "\1\0\1\12\4\0\7\12\1\224\14\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\1\12\1\225\22\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\2\12"+ + "\1\226\21\12\5\0\1\12\10\0\3\12\1\0\1\12"+ + "\4\0\14\12\1\227\7\12\5\0\1\12\10\0\3\12"+ + "\1\0\1\12\4\0\15\12\1\230\6\12\5\0\1\12"+ + "\10\0\3\12\1\0\1\12\4\0\24\12\5\0\1\231"+ + "\10\0\3\12\1\0\1\12\4\0\1\12\1\232\22\12"+ + "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\14\12"+ + "\1\233\7\12\5\0\1\12\2\0"; + + private static int [] zzUnpackTrans() { + int [] result = new int[4988]; + int offset = 0; + offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackTrans(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + value--; + do result[j++] = value; while (--count > 0); + } + return j; + } + + + /* error codes */ + private static final int ZZ_UNKNOWN_ERROR = 0; + private static final int ZZ_NO_MATCH = 1; + private static final int ZZ_PUSHBACK_2BIG = 2; + + /* error messages for the codes above */ + private static final String ZZ_ERROR_MSG[] = { + "Unknown internal scanner error", + "Error: could not match input", + "Error: pushback value was too large" + }; + + /** + * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + */ + private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); + + private static final String ZZ_ATTRIBUTE_PACKED_0 = + "\1\1\2\0\1\11\1\1\2\11\1\1\1\11\3\1"+ + "\3\11\20\1\7\11\1\1\1\11\2\1\1\0\1\1"+ + "\1\0\26\1\1\11\1\0\1\1\1\0\124\1"; + + private static int [] zzUnpackAttribute() { + int [] result = new int[155]; + int offset = 0; + offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackAttribute(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** the input device */ + private java.io.Reader zzReader; + + /** the current state of the DFA */ + private int zzState; + + /** the current lexical state */ + private int zzLexicalState = YYINITIAL; + + /** this buffer contains the current text to be matched and is + the source of the yytext() string */ + private char zzBuffer[] = new char[ZZ_BUFFERSIZE]; + + /** the textposition at the last accepting state */ + private int zzMarkedPos; + + /** the current text position in the buffer */ + private int zzCurrentPos; + + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + + /** endRead marks the last character in the buffer, that has been read + from input */ + private int zzEndRead; + + /** number of newlines encountered up to the start of the matched text */ + private int yyline; + + /** the number of characters up to the start of the matched text */ + private int yychar; + + /** + * the number of characters from the last newline up to the start of the + * matched text + */ + private int yycolumn; + + /** + * zzAtBOL == true <=> the scanner is currently at the beginning of a line + */ + private boolean zzAtBOL = true; + + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + + /** denotes if the user-EOF-code has already been executed */ + private boolean zzEOFDone; + + /** + * The number of occupied positions in zzBuffer beyond zzEndRead. + * When a lead/high surrogate has been read from the input stream + * into the final zzBuffer position, this will have a value of 1; + * otherwise, it will have a value of 0. + */ + private int zzFinalHighSurrogate = 0; + + /* user code: */ + StringBuilder string = new StringBuilder(); + + private Symbol symbol(int type) { + return new JavaSymbol(type, yyline+1, yycolumn+1); + + + private Symbol symbol(int type, Object value) { + return new JavaSymbol(type, yyline+1, yycolumn+1, value); + + + /** + * assumes correct representation of a long value for + * specified radix in scanner buffer from start + * to end + */ + private long parseLong(int start, int end, int radix) { + long result = 0; + long digit; + + for (int i = start; i < end; i++) { + digit = Character.digit(yycharat(i),radix); + result*= radix; + result+= digit; + } + + return result; + } + + + /** + * Creates a new scanner + * + * @param in the java.io.Reader to read input from. + */ + public Scanner(java.io.Reader in) { + this.zzReader = in; + } + + + /** + * Unpacks the compressed character translation table. + * + * @param packed the packed character translation table + * @return the unpacked character translation table + */ + private static char [] zzUnpackCMap(String packed) { + char [] map = new char[0x110000]; + int i = 0; /* index in packed string */ + int j = 0; /* index in unpacked array */ + while (i < 2596) { + int count = packed.charAt(i++); + char value = packed.charAt(i++); + do map[j++] = value; while (--count > 0); + } + return map; + } + + + /** + * Refills the input buffer. + * + * @return false, iff there was new input. + * + * @exception java.io.IOException if any I/O-Error occurs + */ + private boolean zzRefill() throws java.io.IOException { + + /* first: make room (if you can) */ + if (zzStartRead > 0) { + zzEndRead += zzFinalHighSurrogate; + zzFinalHighSurrogate = 0; + System.arraycopy(zzBuffer, zzStartRead, + zzBuffer, 0, + zzEndRead-zzStartRead); + + /* translate stored positions */ + zzEndRead-= zzStartRead; + zzCurrentPos-= zzStartRead; + zzMarkedPos-= zzStartRead; + zzStartRead = 0; + } + + /* is the buffer big enough? */ + if (zzCurrentPos >= zzBuffer.length - zzFinalHighSurrogate) { + /* if not: blow it up */ + char newBuffer[] = new char[zzBuffer.length*2]; + System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length); + zzBuffer = newBuffer; + zzEndRead += zzFinalHighSurrogate; + zzFinalHighSurrogate = 0; + } + + /* fill the buffer with new input */ + int requested = zzBuffer.length - zzEndRead; + int numRead = zzReader.read(zzBuffer, zzEndRead, requested); + + /* not supposed to occur according to specification of java.io.Reader */ + if (numRead == 0) { + throw new java.io.IOException("Reader returned 0 characters. See JFlex examples for workaround."); + } + if (numRead > 0) { + zzEndRead += numRead; + /* If numRead == requested, we might have requested to few chars to + encode a full Unicode character. We assume that a Reader would + otherwise never return half characters. */ + if (numRead == requested) { + if (Character.isHighSurrogate(zzBuffer[zzEndRead - 1])) { + --zzEndRead; + zzFinalHighSurrogate = 1; + } + } + /* potentially more input available */ + return false; + } + + /* numRead < 0 ==> end of stream */ + return true; + } + + + /** + * Closes the input stream. + */ + public final void yyclose() throws java.io.IOException { + zzAtEOF = true; /* indicate end of file */ + zzEndRead = zzStartRead; /* invalidate buffer */ + + if (zzReader != null) + zzReader.close(); + } + + + /** + * Resets the scanner to read from a new input stream. + * Does not close the old reader. + * + * All internal variables are reset, the old input stream + * cannot be reused (internal buffer is discarded and lost). + * Lexical state is set to ZZ_INITIAL. + * + * Internal scan buffer is resized down to its initial length, if it has grown. + * + * @param reader the new input stream + */ + public final void yyreset(java.io.Reader reader) { + zzReader = reader; + zzAtBOL = true; + zzAtEOF = false; + zzEOFDone = false; + zzEndRead = zzStartRead = 0; + zzCurrentPos = zzMarkedPos = 0; + zzFinalHighSurrogate = 0; + yyline = yychar = yycolumn = 0; + zzLexicalState = YYINITIAL; + if (zzBuffer.length > ZZ_BUFFERSIZE) + zzBuffer = new char[ZZ_BUFFERSIZE]; + } + + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + + /** + * Enters a new lexical state + * + * @param newState the new lexical state + */ + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); + } + + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead+pos]; + } + + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos-zzStartRead; + } + + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } + catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + + throw new Error(message); + } + + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if ( number > yylength() ) + zzScanError(ZZ_PUSHBACK_2BIG); + + zzMarkedPos -= number; + } + + + /** + * Contains user EOF-code, which will be executed exactly once, + * when the end of file is reached + */ + private void zzDoEOF() throws java.io.IOException { + if (!zzEOFDone) { + zzEOFDone = true; + yyclose(); + } + } + + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException if any I/O-Error occurs + */ + public java_cup.runtime.Symbol next_token() throws java.io.IOException { + int zzInput; + int zzAction; + + // cached fields: + int zzCurrentPosL; + int zzMarkedPosL; + int zzEndReadL = zzEndRead; + char [] zzBufferL = zzBuffer; + char [] zzCMapL = ZZ_CMAP; + + int [] zzTransL = ZZ_TRANS; + int [] zzRowMapL = ZZ_ROWMAP; + int [] zzAttrL = ZZ_ATTRIBUTE; + + while (true) { + zzMarkedPosL = zzMarkedPos; + + boolean zzR = false; + int zzCh; + int zzCharCount; + for (zzCurrentPosL = zzStartRead ; + zzCurrentPosL < zzMarkedPosL ; + zzCurrentPosL += zzCharCount ) { + zzCh = Character.codePointAt(zzBufferL, zzCurrentPosL, zzMarkedPosL); + zzCharCount = Character.charCount(zzCh); + switch (zzCh) { + case '\u000B': + case '\u000C': + case '\u0085': + case '\u2028': + case '\u2029': + yyline++; + yycolumn = 0; + zzR = false; + break; + case '\r': + yyline++; + yycolumn = 0; + zzR = true; + break; + case '\n': + if (zzR) + zzR = false; + else { + yyline++; + yycolumn = 0; + } + break; + default: + zzR = false; + yycolumn += zzCharCount; + } + } + + if (zzR) { + // peek one character ahead if it is \n (if we have counted one line too much) + boolean zzPeek; + if (zzMarkedPosL < zzEndReadL) + zzPeek = zzBufferL[zzMarkedPosL] == '\n'; + else if (zzAtEOF) + zzPeek = false; + else { + boolean eof = zzRefill(); + zzEndReadL = zzEndRead; + zzMarkedPosL = zzMarkedPos; + zzBufferL = zzBuffer; + if (eof) + zzPeek = false; + else + zzPeek = zzBufferL[zzMarkedPosL] == '\n'; + } + if (zzPeek) yyline--; + } + zzAction = -1; + + zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; + + zzState = ZZ_LEXSTATE[zzLexicalState]; + + // set up zzAction for empty match case: + int zzAttributes = zzAttrL[zzState]; + if ( (zzAttributes & 1) == 1 ) { + zzAction = zzState; + } + + + zzForAction: { + while (true) { + + if (zzCurrentPosL < zzEndReadL) { + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL); + zzCurrentPosL += Character.charCount(zzInput); + } + else if (zzAtEOF) { + zzInput = YYEOF; + break zzForAction; + } + else { + // store back cached positions + zzCurrentPos = zzCurrentPosL; + zzMarkedPos = zzMarkedPosL; + boolean eof = zzRefill(); + // get translated positions and possibly new buffer + zzCurrentPosL = zzCurrentPos; + zzMarkedPosL = zzMarkedPos; + zzBufferL = zzBuffer; + zzEndReadL = zzEndRead; + if (eof) { + zzInput = YYEOF; + break zzForAction; + } + else { + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL); + zzCurrentPosL += Character.charCount(zzInput); + } + } + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ]; + if (zzNext == -1) break zzForAction; + zzState = zzNext; + + zzAttributes = zzAttrL[zzState]; + if ( (zzAttributes & 1) == 1 ) { + zzAction = zzState; + zzMarkedPosL = zzCurrentPosL; + if ( (zzAttributes & 8) == 8 ) break zzForAction; + } + + } + } + + // store back cached position + zzMarkedPos = zzMarkedPosL; + + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + zzDoEOF(); + { + return symbol(EOF); + } + } + else { + switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { + case 1: + { return symbol(lambda); + } + case 48: break; + case 2: + { throw new RuntimeException("Illegal character \""+yytext()+ + "\" at line "+yyline+", column "+yycolumn); + } + case 49: break; + case 3: + { /* ignore */ + } + case 50: break; + case 4: + { return symbol(EOL); + } + case 51: break; + case 5: + { return symbol(slash); + } + case 52: break; + case 6: + { return symbol(asterix); + } + case 53: break; + case 7: + { return symbol(IDENTIFIER, yytext()); + } + case 54: break; + case 8: + { return symbol(num_lit, new Integer(yytext())); + } + case 55: break; + case 9: + { return symbol(dot); + } + case 56: break; + case 10: + { return symbol(minus); + } + case 57: break; + case 11: + { yybegin(STRING); string.setLength(0); + } + case 58: break; + case 12: + { yybegin(CHARLITERAL); + } + case 59: break; + case 13: + { return symbol(lparen); + } + case 60: break; + case 14: + { return symbol(rparen); + } + case 61: break; + case 15: + { return symbol(comma); + } + case 62: break; + case 16: + { return symbol(COLON); + } + case 63: break; + case 17: + { return symbol(ASSIGN); + } + case 64: break; + case 18: + { return symbol(plus); + } + case 65: break; + case 19: + { return symbol(hat); + } + case 66: break; + case 20: + { string.append( yytext() ); + } + case 67: break; + case 21: + { yybegin(YYINITIAL); return symbol(STRING_LITERAL, string.toString()); + } + case 68: break; + case 22: + { return symbol(IS); + } + case 69: break; + case 23: + { return symbol(IF); + } + case 70: break; + case 24: + { return symbol(OR); + } + case 71: break; + case 25: + { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, yytext().charAt(0)); + } + case 72: break; + case 26: + { return symbol(AND); + } + case 73: break; + case 27: + { return symbol(NUM); + } + case 74: break; + case 28: + { return symbol(NOT); + } + case 75: break; + case 29: + { return symbol(END); + } + case 76: break; + case 30: + { return symbol(SQRT); + } + case 77: break; + case 31: + { return symbol(TRUE); + } + case 78: break; + case 32: + { return symbol(ELSE); + } + case 79: break; + case 33: + { return symbol(VOID); + } + case 80: break; + case 34: + { return symbol(LOAD); + } + case 81: break; + case 35: + { return symbol(HEAR); + } + case 82: break; + case 36: + { return symbol(BOOL); + } + case 83: break; + case 37: + { return symbol(START); + } + case 84: break; + case 38: + { return symbol(FALSE); + } + case 85: break; + case 39: + { return symbol(UNTIL); + } + case 86: break; + case 40: + { return symbol(COORD); + } + case 87: break; + case 41: + { return symbol(STRING); + } + case 88: break; + case 42: + { return symbol(REPEAT); + } + case 89: break; + case 43: + { return symbol(FOREVER); + } + case 90: break; + case 44: + { return symbol(LT); + } + case 91: break; + case 45: + { return symbol(GT); + } + case 92: break; + case 46: + { return symbol(LTE); + } + case 93: break; + case 47: + { return symbol(GTE); + } + case 94: break; + default: + zzScanError(ZZ_NO_MATCH); + } + } + } + } + + /** + * Converts an int token code into the name of the + * token by reflection on the cup symbol class/interface sym + * + * This code was contributed by Karl Meissner + */ + private String getTokenName(int token) { + try { + java.lang.reflect.Field [] classFields = sym.class.getFields(); + for (int i = 0; i < classFields.length; i++) { + if (classFields[i].getInt(null) == token) { + return classFields[i].getName(); + } + } + } catch (Exception e) { + e.printStackTrace(System.err); + } + + return "UNKNOWN TOKEN"; + } + + /** + * Same as next_token but also prints the token to standard out + * for debugging. + * + * This code was contributed by Karl Meissner + */ + public java_cup.runtime.Symbol debug_next_token() throws java.io.IOException { + java_cup.runtime.Symbol s = next_token(); + System.out.println( "line:" + (yyline+1) + " col:" + (yycolumn+1) + " --"+ yytext() + "--" + getTokenName(s.sym) + "--"); + return s; + } + + /** + * Runs the scanner on input files. + * + * This main method is the debugging routine for the scanner. + * It prints debugging information about each returned token to + * System.out until the end of file is reached, or an error occured. + * + * @param argv the command line, contains the filenames to run + * the scanner on. + */ + public static void main(String argv[]) { + if (argv.length == 0) { + System.out.println("Usage : java Scanner [ --encoding ] "); + } + else { + int firstFilePos = 0; + String encodingName = "UTF-8"; + if (argv[0].equals("--encoding")) { + firstFilePos = 2; + encodingName = argv[1]; + try { + java.nio.charset.Charset.forName(encodingName); // Side-effect: is encodingName valid? + } catch (Exception e) { + System.out.println("Invalid encoding '" + encodingName + "'"); + return; + } + } + for (int i = firstFilePos; i < argv.length; i++) { + Scanner scanner = null; + try { + java.io.FileInputStream stream = new java.io.FileInputStream(argv[i]); + java.io.Reader reader = new java.io.InputStreamReader(stream, encodingName); + scanner = new Scanner(reader); + while ( !scanner.zzAtEOF ) scanner.debug_next_token(); + } + catch (java.io.FileNotFoundException e) { + System.out.println("File not found : \""+argv[i]+"\""); + } + catch (java.io.IOException e) { + System.out.println("IO error scanning file \""+argv[i]+"\""); + System.out.println(e); + } + catch (Exception e) { + System.out.println("Unexpected exception:"); + e.printStackTrace(); + } + } + } + } + + +} diff --git a/compiler/src/UnicodeEscapes.class b/compiler/src/UnicodeEscapes.class new file mode 100644 index 0000000000000000000000000000000000000000..5ef4e209f27bcb9920044538fe3fac88f46881d3 GIT binary patch literal 5753 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 literal 0 HcmV?d00001 diff --git a/compiler/src/UnicodeEscapes.java b/compiler/src/UnicodeEscapes.java new file mode 100644 index 0000000..9d2b6ac --- /dev/null +++ b/compiler/src/UnicodeEscapes.java @@ -0,0 +1,685 @@ +/* The following code was generated by JFlex 1.6.1 */ + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright (C) 1998-2015 Gerwin Klein * + * All rights reserved. * + * * + * License: BSD * + * * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + + +/* �3.3 of the Java Language Specification : + +UnicodeInputCharacter: + + UnicodeEscape + + RawInputCharacter + + UnicodeEscape: + + \ UnicodeMarker HexDigit HexDigit HexDigit HexDigit + + UnicodeMarker: + + u + + UnicodeMarker u + + RawInputCharacter: + + any Unicode character + + HexDigit: one of + + 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F + +only an even number of '\' is eligible to start a Unicode escape sequence + +*/ + +import java.io.*; + + +/** + * This class is a scanner generated by + * JFlex 1.6.1 + * from the specification file /Users/Lee/Documents/compiler/src/unicode.flex + */ +public final class UnicodeEscapes extends FilterReader { + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + + /** initial size of the lookahead buffer */ + private static final int ZZ_BUFFERSIZE = 16384; + + /** lexical states */ + public static final int YYINITIAL = 0; + public static final int DIGITS = 2; + + /** + * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l + * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l + * at the beginning of a line + * l is of the form l = 2*k, k a non negative integer + */ + private static final int ZZ_LEXSTATE[] = { + 0, 0, 1, 1 + }; + + /** + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = + "\60\0\12\2\7\0\6\2\25\0\1\3\4\0\6\2\16\0\1\1"+ + "\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uff9a\0"; + + /** + * Translates characters to character classes + */ + private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED); + + /** + * Translates DFA states to action switch labels. + */ + private static final int [] ZZ_ACTION = zzUnpackAction(); + + private static final String ZZ_ACTION_PACKED_0 = + "\2\0\1\1\1\2\2\3\1\4\1\5\4\0\1\6"; + + private static int [] zzUnpackAction() { + int [] result = new int[13]; + int offset = 0; + offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackAction(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + + /** + * Translates a state to a row index in the transition table + */ + private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); + + private static final String ZZ_ROWMAP_PACKED_0 = + "\0\0\0\4\0\10\0\14\0\10\0\20\0\10\0\10"+ + "\0\20\0\24\0\30\0\34\0\10"; + + private static int [] zzUnpackRowMap() { + int [] result = new int[13]; + int offset = 0; + offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackRowMap(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int high = packed.charAt(i++) << 16; + result[j++] = high | packed.charAt(i++); + } + return j; + } + + /** + * The transition table of the DFA + */ + private static final int [] ZZ_TRANS = zzUnpackTrans(); + + private static final String ZZ_TRANS_PACKED_0 = + "\3\3\1\4\1\5\1\6\2\5\5\0\1\7\1\0"+ + "\1\10\1\0\1\11\1\12\3\0\1\13\3\0\1\14"+ + "\3\0\1\15\1\0"; + + private static int [] zzUnpackTrans() { + int [] result = new int[32]; + int offset = 0; + offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackTrans(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + value--; + do result[j++] = value; while (--count > 0); + } + return j; + } + + + /* error codes */ + private static final int ZZ_UNKNOWN_ERROR = 0; + private static final int ZZ_NO_MATCH = 1; + private static final int ZZ_PUSHBACK_2BIG = 2; + + /* error messages for the codes above */ + private static final String ZZ_ERROR_MSG[] = { + "Unknown internal scanner error", + "Error: could not match input", + "Error: pushback value was too large" + }; + + /** + * ZZ_ATTRIBUTE[aState] contains the attributes of state aState + */ + private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); + + private static final String ZZ_ATTRIBUTE_PACKED_0 = + "\2\0\1\11\1\1\1\11\1\1\2\11\4\0\1\11"; + + private static int [] zzUnpackAttribute() { + int [] result = new int[13]; + int offset = 0; + offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackAttribute(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); + } + return j; + } + + /** the input device */ + private java.io.Reader zzReader; + + /** the current state of the DFA */ + private int zzState; + + /** the current lexical state */ + private int zzLexicalState = YYINITIAL; + + /** this buffer contains the current text to be matched and is + the source of the yytext() string */ + private char zzBuffer[] = new char[ZZ_BUFFERSIZE]; + + /** the textposition at the last accepting state */ + private int zzMarkedPos; + + /** the current text position in the buffer */ + private int zzCurrentPos; + + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; + + /** endRead marks the last character in the buffer, that has been read + from input */ + private int zzEndRead; + + /** number of newlines encountered up to the start of the matched text */ + private int yyline; + + /** the number of characters up to the start of the matched text */ + private int yychar; + + /** + * the number of characters from the last newline up to the start of the + * matched text + */ + private int yycolumn; + + /** + * zzAtBOL == true <=> the scanner is currently at the beginning of a line + */ + private boolean zzAtBOL = true; + + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; + + /** denotes if the user-EOF-code has already been executed */ + private boolean zzEOFDone; + + /** + * The number of occupied positions in zzBuffer beyond zzEndRead. + * When a lead/high surrogate has been read from the input stream + * into the final zzBuffer position, this will have a value of 1; + * otherwise, it will have a value of 0. + */ + private int zzFinalHighSurrogate = 0; + + /* user code: */ + private boolean even; + + private int value() { + int r = 0; + + for (int k = zzMarkedPos-4; k < zzMarkedPos; k++) { + int c = zzBuffer[k]; + + if (c >= 'a') + c-= 'a'-10; + else if (c >= 'A') + c-= 'A'-10; + else + c-= '0'; + + r <<= 4; + r += c; + } + + return r; + } + + public int read(char cbuf[], int off, int len) throws IOException { + if ( !ready() ) return -1; + + len+= off; + + for (int i=off; i 0); + } + return map; + } + + + /** + * Refills the input buffer. + * + * @return false, iff there was new input. + * + * @exception java.io.IOException if any I/O-Error occurs + */ + private boolean zzRefill() throws java.io.IOException { + + /* first: make room (if you can) */ + if (zzStartRead > 0) { + zzEndRead += zzFinalHighSurrogate; + zzFinalHighSurrogate = 0; + System.arraycopy(zzBuffer, zzStartRead, + zzBuffer, 0, + zzEndRead-zzStartRead); + + /* translate stored positions */ + zzEndRead-= zzStartRead; + zzCurrentPos-= zzStartRead; + zzMarkedPos-= zzStartRead; + zzStartRead = 0; + } + + /* is the buffer big enough? */ + if (zzCurrentPos >= zzBuffer.length - zzFinalHighSurrogate) { + /* if not: blow it up */ + char newBuffer[] = new char[zzBuffer.length*2]; + System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length); + zzBuffer = newBuffer; + zzEndRead += zzFinalHighSurrogate; + zzFinalHighSurrogate = 0; + } + + /* fill the buffer with new input */ + int requested = zzBuffer.length - zzEndRead; + int numRead = zzReader.read(zzBuffer, zzEndRead, requested); + + /* not supposed to occur according to specification of java.io.Reader */ + if (numRead == 0) { + throw new java.io.IOException("Reader returned 0 characters. See JFlex examples for workaround."); + } + if (numRead > 0) { + zzEndRead += numRead; + /* If numRead == requested, we might have requested to few chars to + encode a full Unicode character. We assume that a Reader would + otherwise never return half characters. */ + if (numRead == requested) { + if (Character.isHighSurrogate(zzBuffer[zzEndRead - 1])) { + --zzEndRead; + zzFinalHighSurrogate = 1; + } + } + /* potentially more input available */ + return false; + } + + /* numRead < 0 ==> end of stream */ + return true; + } + + + /** + * Closes the input stream. + */ + public final void yyclose() throws java.io.IOException { + zzAtEOF = true; /* indicate end of file */ + zzEndRead = zzStartRead; /* invalidate buffer */ + + if (zzReader != null) + zzReader.close(); + } + + + /** + * Resets the scanner to read from a new input stream. + * Does not close the old reader. + * + * All internal variables are reset, the old input stream + * cannot be reused (internal buffer is discarded and lost). + * Lexical state is set to ZZ_INITIAL. + * + * Internal scan buffer is resized down to its initial length, if it has grown. + * + * @param reader the new input stream + */ + public final void yyreset(java.io.Reader reader) { + zzReader = reader; + zzAtBOL = true; + zzAtEOF = false; + zzEOFDone = false; + zzEndRead = zzStartRead = 0; + zzCurrentPos = zzMarkedPos = 0; + zzFinalHighSurrogate = 0; + yyline = yychar = yycolumn = 0; + zzLexicalState = YYINITIAL; + if (zzBuffer.length > ZZ_BUFFERSIZE) + zzBuffer = new char[ZZ_BUFFERSIZE]; + } + + + /** + * Returns the current lexical state. + */ + public final int yystate() { + return zzLexicalState; + } + + + /** + * Enters a new lexical state + * + * @param newState the new lexical state + */ + public final void yybegin(int newState) { + zzLexicalState = newState; + } + + + /** + * Returns the text matched by the current regular expression. + */ + public final String yytext() { + return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); + } + + + /** + * Returns the character at position pos from the + * matched text. + * + * It is equivalent to yytext().charAt(pos), but faster + * + * @param pos the position of the character to fetch. + * A value from 0 to yylength()-1. + * + * @return the character at position pos + */ + public final char yycharat(int pos) { + return zzBuffer[zzStartRead+pos]; + } + + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos-zzStartRead; + } + + + /** + * Reports an error that occured while scanning. + * + * In a wellformed scanner (no or only correct usage of + * yypushback(int) and a match-all fallback rule) this method + * will only be called with things that "Can't Possibly Happen". + * If this method is called, something is seriously wrong + * (e.g. a JFlex bug producing a faulty scanner etc.). + * + * Usual syntax/scanner level error handling should be done + * in error fallback rules. + * + * @param errorCode the code of the errormessage to display + */ + private void zzScanError(int errorCode) { + String message; + try { + message = ZZ_ERROR_MSG[errorCode]; + } + catch (ArrayIndexOutOfBoundsException e) { + message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; + } + + throw new Error(message); + } + + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if ( number > yylength() ) + zzScanError(ZZ_PUSHBACK_2BIG); + + zzMarkedPos -= number; + } + + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException if any I/O-Error occurs + */ + public int read() throws java.io.IOException { + int zzInput; + int zzAction; + + // cached fields: + int zzCurrentPosL; + int zzMarkedPosL; + int zzEndReadL = zzEndRead; + char [] zzBufferL = zzBuffer; + char [] zzCMapL = ZZ_CMAP; + + int [] zzTransL = ZZ_TRANS; + int [] zzRowMapL = ZZ_ROWMAP; + int [] zzAttrL = ZZ_ATTRIBUTE; + + while (true) { + zzMarkedPosL = zzMarkedPos; + + zzAction = -1; + + zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; + + zzState = ZZ_LEXSTATE[zzLexicalState]; + + // set up zzAction for empty match case: + int zzAttributes = zzAttrL[zzState]; + if ( (zzAttributes & 1) == 1 ) { + zzAction = zzState; + } + + + zzForAction: { + while (true) { + + if (zzCurrentPosL < zzEndReadL) { + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL); + zzCurrentPosL += Character.charCount(zzInput); + } + else if (zzAtEOF) { + zzInput = YYEOF; + break zzForAction; + } + else { + // store back cached positions + zzCurrentPos = zzCurrentPosL; + zzMarkedPos = zzMarkedPosL; + boolean eof = zzRefill(); + // get translated positions and possibly new buffer + zzCurrentPosL = zzCurrentPos; + zzMarkedPosL = zzMarkedPos; + zzBufferL = zzBuffer; + zzEndReadL = zzEndRead; + if (eof) { + zzInput = YYEOF; + break zzForAction; + } + else { + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL); + zzCurrentPosL += Character.charCount(zzInput); + } + } + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ]; + if (zzNext == -1) break zzForAction; + zzState = zzNext; + + zzAttributes = zzAttrL[zzState]; + if ( (zzAttributes & 1) == 1 ) { + zzAction = zzState; + zzMarkedPosL = zzCurrentPosL; + if ( (zzAttributes & 8) == 8 ) break zzForAction; + } + + } + } + + // store back cached position + zzMarkedPos = zzMarkedPosL; + + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + switch (zzLexicalState) { + case YYINITIAL: { + return -1; + } + case 14: break; + case DIGITS: { + throw new Error("EOF in Unicode escape"); + } + case 15: break; + default: + return YYEOF; + } + } + else { + switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { + case 1: + { return zzBuffer[zzStartRead]; + } + case 7: break; + case 2: + { even = false; return '\\'; + } + case 8: break; + case 3: + { throw new Error("incorrect Unicode escape"); + } + case 9: break; + case 4: + // lookahead expression with fixed base length + zzMarkedPos = Character.offsetByCodePoints + (zzBufferL, zzStartRead, zzEndRead - zzStartRead, zzStartRead, 1); + { if (even) { + even = false; + return '\\'; + } + else + yybegin(DIGITS); + } + case 10: break; + case 5: + // lookahead expression with fixed base length + zzMarkedPos = Character.offsetByCodePoints + (zzBufferL, zzStartRead, zzEndRead - zzStartRead, zzStartRead, 1); + { even = !even; return '\\'; + } + case 11: break; + case 6: + { yybegin(YYINITIAL); return value(); + } + case 12: break; + default: + zzScanError(ZZ_NO_MATCH); + } + } + } + } + + +} diff --git a/compiler/src/build.xml b/compiler/src/build.xml new file mode 100644 index 0000000..b7e045c --- /dev/null +++ b/compiler/src/build.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/compiler/src/cancer b/compiler/src/cancer new file mode 100644 index 0000000..0da8054 --- /dev/null +++ b/compiler/src/cancer @@ -0,0 +1,15 @@ +Robot: + +LOAD (KAGE) + +NUM a = 5 + +VOID START () + + + + + + + +END START \ No newline at end of file diff --git a/compiler/src/java.flex b/compiler/src/java.flex new file mode 100644 index 0000000..4a1b356 --- /dev/null +++ b/compiler/src/java.flex @@ -0,0 +1,162 @@ +import java_cup.runtime.*; + +%% + +%public +%class Scanner +%implements sym + +%unicode + +%line +%column + +%cup +%cupdebug + +%{ + StringBuilder string = new StringBuilder(); + + private Symbol symbol(int type) { + return new JavaSymbol(type, yyline+1, yycolumn+1); + + + private Symbol symbol(int type, Object value) { + return new JavaSymbol(type, yyline+1, yycolumn+1, value); + + + /** + * assumes correct representation of a long value for + * specified radix in scanner buffer from start + * to end + */ + private long parseLong(int start, int end, int radix) { + long result = 0; + long digit; + + for (int i = start; i < end; i++) { + digit = Character.digit(yycharat(i),radix); + result*= radix; + result+= digit; + } + + return result; + } +%} + +/* main character classes */ +LineTerminator = \r|\n|\r\n +InputCharacter = [^\r\n] + +WhiteSpace = {LineTerminator} | [ \t\f] + +/* comments */ +Comment = {TraditionalComment} | {EndOfLineComment} | + {DocumentationComment} + +TraditionalComment = "/*" [^*] ~"*/" | "/*" "*"+ "/" +EndOfLineComment = "//" {InputCharacter}* {LineTerminator}? +DocumentationComment = "/*" "*"+ [^/*] ~"*/" + +/* identifiers */ +Identifier = [:jletter:][:jletterdigit:]* + +/* floating point literals */ +numLiteral = ({FLit1}|{FLit2}|{FLit3}) {Exponent}? + +FLit1 = [0-9]+ \. [0-9]* +FLit2 = \. [0-9]+ +FLit3 = [0-9]+ +Exponent = [eE] [+-]? [0-9]+ + +/* string and character literals */ +StringCharacter = [^\r\n\"\\] +SingleCharacter = [^\r\n\'\\] + +%state STRING, CHARLITERAL + +Identifier = [:jletter:][:jletterdigit:]* + +%% + { + + /* keywords */ + "START" { return symbol(START); } + "IF" { return symbol(IF); } + "NUM" { return symbol(NUM); } + "END" { return symbol(END); } + "VOID" { return symbol(VOID); } + "LOAD" { return symbol(LOAD); } + "HEAR" { return symbol(HEAR); } + "REPEAT" { return symbol(REPEAT); } + "UNTIL" { return symbol(UNTIL); } + "FOREVER" { return symbol(FOREVER); } + "ELSE" { return symbol(ELSE); } + "STRING" { return symbol(STRING); } + "BOOL" { return symbol(BOOL); } + "COORD" { return symbol(COORD); } + "SQRT" { return symbol(SQRT); } + + /* boolean literals */ + "TRUE" { return symbol(TRUE); } + "FALSE" { return symbol(FALSE); } + + /* seperators */ + "(" { return symbol(lparen); } + ")" { return symbol(rparen); } + "," { return symbol(comma); } + "." { return symbol(dot); } + ":" { return symbol(COLON); } + + /* operators */ + "=" { return symbol(ASSIGN); } + "GREATER_THAN" { return symbol(GT); } + "IS" { return symbol(IS); } + "NOT" { return symbol(NOT); } + "LESS_THAN" { return symbol(LT); } + "LESS_THAN_OR_EQUAL_TO" { return symbol(LTE); } + "GREATER_THAN_OR_EQUAL_TO" { return symbol(GTE); } + "AND" { return symbol(AND); } + "OR" { return symbol(OR); } + "+" { return symbol(plus); } + "-" { return symbol(minus); } + "*" { return symbol(asterix);} + "/" { return symbol(slash); } + "^" { return symbol(hat);} + "\n" { return symbol(EOL);} + "" { return symbol(lambda); } + /* Identifier */ + {Identifier} { return symbol(IDENTIFIER, yytext()); } + + /* string literal */ + \" { yybegin(STRING); string.setLength(0); } + + /* character literal */ + \' { yybegin(CHARLITERAL); } + + /* numeric literals */ + + {numLiteral} { return symbol(num_lit, new Integer(yytext())); } + + /* comments */ + {Comment} { /* ignore */ } + + /* whitespace */ + {WhiteSpace} { /* ignore */ } + +} + + { + \" { yybegin(YYINITIAL); return symbol(STRING_LITERAL, string.toString()); } + + {StringCharacter}+ { string.append( yytext() ); } +} + + { + {SingleCharacter}\' { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, yytext().charAt(0)); } + } + +/* error fallback */ +[^] { throw new RuntimeException("Illegal character \""+yytext()+ + "\" at line "+yyline+", column "+yycolumn); } +<> { return symbol(EOF); } diff --git a/compiler/src/java12.cup b/compiler/src/java12.cup new file mode 100644 index 0000000..669f424 --- /dev/null +++ b/compiler/src/java12.cup @@ -0,0 +1,195 @@ +// Test CUP for P4 +import java_cup.*; + +parser code {: + public void report_error(String message, Object info) { + StringBuilder m = new StringBuilder("Error "); + + if (info instanceof java_cup.runtime.Symbol) + m.append( "("+info.toString()+")" ); + + m.append(" : "+message); + + System.out.println(m); + } + + public void report_fatal_error(String message, Object info) { + report_error(message, info); + throw new RuntimeException("Fatal Syntax Error"); + } +:}; + +non terminal Prog, robo, load, dcl, + num_dcl, ref_dcl, string_dcl, bool_dcl, coord_dcl, + start_func, func, func_body, stmt, if_stmt, + loop_stmt, func_call, sig_stmt, expr, term, + factor, exp, cond, bool_op, bool_cnd, args, + params, type, string_lit, else_if, else, + params_list, args_list; + +//Optional non-terminals, used in stead of [] i EBNF +non terminal num_opt, ref_opt, string_opt, bool_opt, coord_opt, + cond_opt; + +//Symbol terminals and method keywords +terminal START, IDENTIFIER, COLON, LOAD, AT, End_Of_File, + EOL, END, RETURN, HEAR, lparen, + rparen, quote, dot, comma, ASSIGN; + +//Statement-types +terminal IF, REPEAT, UNTIL, FOREVER, + ELSE, SIGNAL; + +//Operators +terminal plus, minus, asterix, slash, hat, + SQRT, IS, NOT, GT, LT, GTE, LTE, AND, OR, lambda; + +//Literals +terminal NUM, char_lit, STRING, + coord_lit, BOOL, TRUE, FALSE, COORD, VOID; + +// shit that needs to be added now +terminal java.lang.String STRING_LITERAL; +terminal java.lang.Double num_lit; +terminal java.lang.Character CHARACTER_LITERAL; + +// +// Actual grammar +// + +Prog ::= robo load dcl start_func func End_Of_File; +robo ::= IDENTIFIER COLON EOL + | robo EOL + ; +load ::= LOAD lparen IDENTIFIER rparen EOL + | load EOL + | lambda + ; +dcl ::= num_dcl dcl + | string_dcl dcl EOL + | bool_dcl dcl EOL + | coord_dcl dcl EOL + | lambda + ; +num_dcl::= NUM IDENTIFIER num_opt EOL; +num_opt::= ASSIGN expr + | lambda + ; +//ref_dcl::= type IDENTIFIER ref_opt EOL; +//ref_opt::= ASSIGN AT coord_lit +// | lambda +// ; +string_dcl + ::= STRING IDENTIFIER string_opt EOL; +string_opt + ::= ASSIGN quote string_lit quote + | lambda + ; +bool_dcl + ::= BOOL IDENTIFIER EOL; +bool_opt + ::= ASSIGN TRUE + | ASSIGN FALSE + | lambda + ; +coord_dcl + ::= COORD IDENTIFIER coord_opt EOL; +coord_opt + ::= ASSIGN coord_lit + | lambda + ; +start_func + ::= VOID START lparen rparen EOL func_body END START + ; +func ::= type IDENTIFIER lparen params rparen EOL func_body RETURN expr EOL END IDENTIFIER + | lambda + | EOL func + ; +func_body + ::= func_body dcl EOL + | func_body stmt EOL + | lambda + | func_body EOL + ; +stmt ::= if_stmt + | loop_stmt + | expr EOL + | sig_stmt + ; +if_stmt + ::= IF cond EOL func_body END IF else_if else + ; +else_if::= else_if ELSE IF cond EOL func_body END ELSE IF + | lambda + ; +else ::= ELSE EOL func_body END ELSE + ; +loop_stmt + ::= REPEAT UNTIL cond EOL func_body END REPEAT + | FOREVER EOL func_body END FOREVER + ; +func_call + ::= IDENTIFIER lparen args rparen EOL + | type dot IDENTIFIER lparen args rparen EOL + ; +sig_stmt + ::= SIGNAL IDENTIFIER lparen args rparen EOL; +expr ::= term plus term + | term minus term + | term + ; +term ::= factor asterix factor + | factor slash factor + | factor + ; +factor ::= exp hat exp + | exp SQRT exp + | exp + ; +exp ::= lparen expr rparen + | IDENTIFIER + | num_lit + | func_call + ; +cond ::= TRUE + | FALSE + | expr bool_op expr cond_opt + ; +cond_opt + ::= bool_cnd cond + | lambda + ; +bool_op::= IS + | NOT + | GT + | LT + | GTE + | LTE + ; +bool_cnd + ::= AND + | OR + ; +args ::= args_list + | lambda + ; +args_list + ::= expr + | args_list comma expr + ; +params ::= params_list + | lambda + ; +params_list + ::= params_list comma type IDENTIFIER + | type IDENTIFIER + ; +type ::= NUM | BOOL | COORD | STRING | VOID + ; +string_lit + ::= string_lit num_lit + | string_lit char_lit + | num_lit + | char_lit + ; + diff --git a/compiler/src/java_cup/runtime/ComplexSymbolFactory$ComplexSymbol.class b/compiler/src/java_cup/runtime/ComplexSymbolFactory$ComplexSymbol.class new file mode 100644 index 0000000000000000000000000000000000000000..46f63e5bb03026bf68f2d8b6244211fa6c912cc9 GIT binary patch literal 2090 zcmb7Ge@_!Z5PjR;^-4K@RV);W76iQ>mLe!BASzX)S~L-Z!GFwA&RT4*O*sgB13wNX zLK97le_`T>5@+wO(9*M(q}iR_eKYgs?d+w$|9txaU>Yw22x6iQJxFkCl3TawByF zg^glZNBWEr!gp|hosn{CPOBOeYp5k_1(MoT$jXVYKa|>=|Uv@ibtk*7d?w<#-HB0TJCHQV@ zF`H}Hn5sFR3-hkE#Q!U%M$uE%B|KsH+*Oxz_*{FcuB%@m93w!J_zMHy;ajgj3i^-GMq3`5ju1F-*$%eb5a9@N zu*0@RZg)C97Oi0#1$a6`7R8Z9ibEB2)lnS8H3#*UJVo-KphChz1>F`devD2v{u4dK z`w&8y$akq>!P*cHA#y<&DQl^9Lehy6MkS0f3D@ZdbX!zzI7voG2c9H!CaD^yxD?U} zW~-|>_;pg(NBFoJ35!*ETjw+Y&k0?qua1+1Se2IQq#1S6^w*|wAvTVijzfgc6r7FY*a>cFO-rFo3xT#cF0Fw|8~|}35>li{94e4FA=j}Y7iS$gHqigX z0VI-2An^nEQHa^Z{Sc`Tm-l9O-n{pA>|ejX{{*m){Tk-6Vd7R5bGWTSLxnpA?$%Jj zh6qfCP&96J{f6-h2wL2R85$5@qXecSih)T+|Nv3bi74W-Y znejSL+vLm4tL_PeYnMjQ+#MC_Bb43s5%jNQG106Png%r*@0KrU)>Jt)XXW&~D1Xdy z!E*NpDsN9X`v)gVk#bks!EZnMndWX5>op@O==;d#72&xV$c+RlI z@Pgqb!!pB)idQODRa6BEO}l&CF~0Afbr0;0z*x(&45!)Adp)D4q9%~pvD><9+Ll0i z+q6vgtw6F`+Y?Zl_E$q7YZ>1{_sik9dn>!$82S{xj3#MZ zU3FQCIEQyKhyN=p-*a`x4ZBg31#I0fVGI+P6xiYx{&&CjH8H!cF|0GZX4qh;GiVH( z0xLrW78s9a$Zu$Yg#lN;$Y6K`>H~y6eSZ&`z`5*j2D>XZ$|y#aE|Sy7kis|E=iw4R zVDu>XhtULQoh4Z)-l)npBqKxAvW(iQ?O_T0bkNmL??{F$%>dyP{Y{V+WK(M%#83JF z{Z8X)ussVEX<94(M&i@@+(t#Iq&y^l+!0Fwu|l*ItrqTx9+Zeyj*XX!h%+(q(h;o^ z&`MB{q_jCdtp_#YJPSBw5~dI*A4v0%2}!eWJA&u@|~nNH9?11Ko&)^-dx6-SCf)C(B zi8D!R71ww`7XIDMd^5Azoq2wFcmlA5LIQ0VP%)T53x-&7EW<1#ETb%AEaNIBR7|Rv z5{Ru-tctTL5Yh7c0@01yi7AlSG%szlY&hnLK-@BK_HHkZYgGYT+c`I`4ZUhuXZoIF zSFE#Q$@_Fzu3zeQ-Et}yrtag#aDyLY_xRi_JH`B$tiaL#Bn?ZkE=y7J|Ln)-T$Be1 z%iDJ47`D^6U0oU=%zr`V5$3Qab9ncr-#$kY?dTBb=Q5DIIh&_hW>_?qJj*Q09Lv1G z)FA? z4w+(XVn(5b*KwLRrGs1_i)|lc;Jy|}Qj@pROqWj`+)2A`+6kJKSr_7-7C@J$f=oSR zVrT#{8bHS*S`LN^*=SaA5xINgdIK&4g$9spa4w=vs!tj%m-3=1O)e#kMx2XSgG!@6 mpwfua01{r#oC~$VbR!cmDMV-hagTA)+C;L_Fa;NJpTR3$Wl|0R literal 0 HcmV?d00001 diff --git a/compiler/src/java_cup/runtime/DefaultSymbolFactory.java b/compiler/src/java_cup/runtime/DefaultSymbolFactory.java new file mode 100644 index 0000000..d5bca58 --- /dev/null +++ b/compiler/src/java_cup/runtime/DefaultSymbolFactory.java @@ -0,0 +1,52 @@ +package java_cup.runtime; + +/** + * Default Implementation for SymbolFactory, creates + * plain old Symbols + * + * @version last updated 27-03-2006 + * @author Michael Petter + */ + +/* ************************************************* + class DefaultSymbolFactory + + interface for creating new symbols + ***************************************************/ +public class DefaultSymbolFactory implements SymbolFactory{ + // Factory methods + /** + * DefaultSymbolFactory for CUP. + * Users are strongly encoraged to use ComplexSymbolFactory instead, since + * it offers more detailed information about Symbols in source code. + * Yet since migrating has always been a critical process, You have the + * chance of still using the oldstyle Symbols. + * + * @deprecated as of CUP v11a + * replaced by the new java_cup.runtime.ComplexSymbolFactory + */ + //@deprecated + public DefaultSymbolFactory(){ + } + public Symbol newSymbol(String name ,int id, Symbol left, Symbol right, Object value){ + return new Symbol(id,left,right,value); + } + public Symbol newSymbol(String name, int id, Symbol left, Symbol right){ + return new Symbol(id,left,right); + } + public Symbol newSymbol(String name, int id, int left, int right, Object value){ + return new Symbol(id,left,right,value); + } + public Symbol newSymbol(String name, int id, int left, int right){ + return new Symbol(id,left,right); + } + public Symbol startSymbol(String name, int id, int state){ + return new Symbol(id,state); + } + public Symbol newSymbol(String name, int id){ + return new Symbol(id); + } + public Symbol newSymbol(String name, int id, Object value){ + return new Symbol(id,value); + } +} diff --git a/compiler/src/java_cup/runtime/Scanner.class b/compiler/src/java_cup/runtime/Scanner.class new file mode 100644 index 0000000000000000000000000000000000000000..b4af66b50d133b2286295059f894a8fb2344faad GIT binary patch literal 175 zcmX^0Z`VEs1_omWE_McXb_Nbc2Clr+ijw$}{Or^`Mh0mOO`oj9vc&l0(gOXW(!7$) z+*JMG%G{*<9BZIb*NWuSf|AVqykd3+PDTa^Or^<*d3mWtj0^%GDgB(pymWp4q^#8B n5=I7Lgb>^uHbw?U1}30`7#J8?7#WxuSb%(1AP+>dF)#oC#Xc=u literal 0 HcmV?d00001 diff --git a/compiler/src/java_cup/runtime/Scanner.java b/compiler/src/java_cup/runtime/Scanner.java new file mode 100644 index 0000000..3233551 --- /dev/null +++ b/compiler/src/java_cup/runtime/Scanner.java @@ -0,0 +1,25 @@ +package java_cup.runtime; + +/** + * Defines the Scanner interface, which CUP uses in the default + * implementation of lr_parser.scan(). Integration + * of scanners implementing Scanner is facilitated. + * + * @version last updated 23-Jul-1999 + * @author David MacMahon + */ + +/* ************************************************* + Interface Scanner + + Declares the next_token() method that should be + implemented by scanners. This method is typically + called by lr_parser.scan(). End-of-file can be + indicated either by returning + new Symbol(lr_parser.EOF_sym()) or + null. + ***************************************************/ +public interface Scanner { + /** Return the next token, or null on end-of-file. */ + public Symbol next_token() throws java.lang.Exception; +} diff --git a/compiler/src/java_cup/runtime/Symbol.class b/compiler/src/java_cup/runtime/Symbol.class new file mode 100644 index 0000000000000000000000000000000000000000..e5182b93c377b09f639f5fd3648253cd47d73119 GIT binary patch literal 1083 zcmbV~TW=CU6vzLwTuWD^luIeBmQr;Y!BwmELhXaTNMh25CQbB(EM>)QxCNFbd@D_W zO*HWX_@RvFEZb0m@xk5Xf9CR=|Cu>6zkYxJ3E&VX8%RQDDaS}8%R`n5k5#$#D28nq z+1aI9{2ZF|o-Hm*$mebj)7cIBi~97fwwed~Ek@=S1MWUiao3 z7vq639QPc%YZ+&gZnNL1{d;1?v3ySX-}PIR@92LVdHs%FuP-*UW}Wdp*CxWe#!Iey zAw+%dMxFkdGqihcfs|gpQGvy1O+^lA6}v1NiYz6T0~L7`xOI=^wTdiuRHT^8AT5wx z7IR_sc5HWA7GD7w)Nsu5M#X(R@ZrByRv@voS=k>1-jJ=QR&AV^b7@OdbLPw4fjB3`7Tc##T0F-oL{JEV81S3rn}V@Bp(gk)g`A+;G4nG4PkUh?}s zpC&p$z8f;HD3z7er5gyRCZwQ=739E2H1bdg*&-Jg5vg!m5@nGP`~ZA(k3deCk}je$ sFk{;pV!YGM>+R8P`*ewDL3H*9)Q>K1CF674mQ%#$NX)VIm8R(X1Aa`=6aWAK literal 0 HcmV?d00001 diff --git a/compiler/src/java_cup/runtime/Symbol.java b/compiler/src/java_cup/runtime/Symbol.java new file mode 100644 index 0000000..c9ce556 --- /dev/null +++ b/compiler/src/java_cup/runtime/Symbol.java @@ -0,0 +1,116 @@ +package java_cup.runtime; + +/** + * Defines the Symbol class, which is used to represent all terminals + * and nonterminals while parsing. The lexer should pass CUP Symbols + * and CUP returns a Symbol. + * + * @version last updated: 7/3/96 + * @author Frank Flannery + */ + +/* **************************************************************** + Class Symbol + what the parser expects to receive from the lexer. + the token is identified as follows: + sym: the symbol type + parse_state: the parse state. + value: is the lexical value of type Object + left : is the left position in the original input file + right: is the right position in the original input file + xleft: is the left position Object in the original input file + xright: is the left position Object in the original input file +******************************************************************/ + +public class Symbol { + +// TUM 20060327: Added new Constructor to provide more flexible way +// for location handling +/******************************* + *******************************/ + public Symbol(int id, Symbol left, Symbol right, Object o){ + this(id,left.left,right.right,o); + } + public Symbol(int id, Symbol left, Symbol right){ + this(id,left.left,right.right); + } +/******************************* + Constructor for l,r values + *******************************/ + + public Symbol(int id, int l, int r, Object o) { + this(id); + left = l; + right = r; + value = o; + } + +/******************************* + Constructor for no l,r values +********************************/ + + public Symbol(int id, Object o) { + this(id, -1, -1, o); + } + +/***************************** + Constructor for no value + ***************************/ + + public Symbol(int id, int l, int r) { + this(id, l, r, null); + } + +/*********************************** + Constructor for no value or l,r +***********************************/ + + public Symbol(int sym_num) { + this(sym_num, -1); + left = -1; + right = -1; + } + +/*********************************** + Constructor to give a start state +***********************************/ + Symbol(int sym_num, int state) + { + sym = sym_num; + parse_state = state; + } + +/*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** The symbol number of the terminal or non terminal being represented */ + public int sym; + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** The parse state to be recorded on the parse stack with this symbol. + * This field is for the convenience of the parser and shouldn't be + * modified except by the parser. + */ + public int parse_state; + /** This allows us to catch some errors caused by scanners recycling + * symbols. For the use of the parser only. [CSA, 23-Jul-1999] */ + boolean used_by_parser = false; + +/******************************* + The data passed to parser + *******************************/ + + public int left, right; + public Object value; + + /***************************** + Printing this token out. (Override for pretty-print). + ****************************/ + public String toString() { return "#"+sym; } +} + + + + + + diff --git a/compiler/src/java_cup/runtime/SymbolFactory.class b/compiler/src/java_cup/runtime/SymbolFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..cd0af1577b11644e3050d08d5379b450f64057b9 GIT binary patch literal 530 zcmX^0Z`VEs1_omW9(D#Ub_Q-n2F|?H^5Dwcr2HI4h9V80ti-ZJ{hY+Sbp7CxqRhN> zYfrFHd~#`leo<*&NoH=UK18`SehG*n{z+M>$tBjBIMp&TBv8jvd{#K%w1Q|?>R~ei zpPk&rC5c5Pu#nZqrri^temPJ~Uv0Yp?mLYa+`fsug;7`qG%tSpQS Y%nU3H3}BiSO0z*}b}-GszzI?c0RO+JVE_OC literal 0 HcmV?d00001 diff --git a/compiler/src/java_cup/runtime/SymbolFactory.java b/compiler/src/java_cup/runtime/SymbolFactory.java new file mode 100644 index 0000000..86bae08 --- /dev/null +++ b/compiler/src/java_cup/runtime/SymbolFactory.java @@ -0,0 +1,33 @@ +package java_cup.runtime; + +/** + * Creates the Symbols interface, which CUP uses as default + * + * @version last updated 27-03-2006 + * @author Michael Petter + */ + +/* ************************************************* + Interface SymbolFactory + + interface for creating new symbols + You can also use this interface for your own callback hooks + Declare Your own factory methods for creation of Objects in Your scanner! + ***************************************************/ +public interface SymbolFactory { + // Factory methods + /** + * Construction with left/right propagation switched on + */ + public Symbol newSymbol(String name, int id, Symbol left, Symbol right, Object value); + public Symbol newSymbol(String name, int id, Symbol left, Symbol right); + /** + * Construction with left/right propagation switched off + */ + public Symbol newSymbol(String name, int id, Object value); + public Symbol newSymbol(String name, int id); + /** + * Construction of start symbol + */ + public Symbol startSymbol(String name, int id, int state); +} diff --git a/compiler/src/java_cup/runtime/lr_parser.class b/compiler/src/java_cup/runtime/lr_parser.class new file mode 100644 index 0000000000000000000000000000000000000000..4ed61b45aa8a6b12e7eaaf6b9f5f156af9faaf6b GIT binary patch literal 9876 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 + * + * To control the decision of whether to shift or reduce at any given point, + * the parser uses a state machine (the "viable prefix recognition machine" + * built by the parser generator). The current state of the machine is placed + * on top of the parse stack (stored as part of a Symbol object representing + * a terminal or non terminal). The parse action table is consulted + * (using the current state and the current lookahead Symbol as indexes) to + * determine whether to shift or to reduce. When the parser shifts, it + * changes to a new state by pushing a new Symbol (containing a new state) + * onto the stack. When the parser reduces, it pops the handle (right hand + * side of a production) off the stack. This leaves the parser in the state + * it was in before any of those Symbols were matched. Next the reduce-goto + * table is consulted (using the new state and current lookahead Symbol as + * indexes) to determine a new state to go to. The parser then shifts to + * this goto state by pushing the left hand side Symbol of the production + * (also containing the new state) onto the stack.

+ * + * This class actually provides four LR parsers. The methods parse() and + * debug_parse() provide two versions of the main parser (the only difference + * being that debug_parse() emits debugging trace messages as it parses). + * In addition to these main parsers, the error recovery mechanism uses two + * more. One of these is used to simulate "parsing ahead" in the input + * without carrying out actions (to verify that a potential error recovery + * has worked), and the other is used to parse through buffered "parse ahead" + * input in order to execute all actions and re-synchronize the actual parser + * configuration.

+ * + * This is an abstract class which is normally filled out by a subclass + * generated by the JavaCup parser generator. In addition to supplying + * the actual parse tables, generated code also supplies methods which + * invoke various pieces of user supplied code, provide access to certain + * special Symbols (e.g., EOF and error), etc. Specifically, the following + * abstract methods are normally supplied by generated code: + *

+ *
short[][] production_table() + *
Provides a reference to the production table (indicating the index of + * the left hand side non terminal and the length of the right hand side + * for each production in the grammar). + *
short[][] action_table() + *
Provides a reference to the parse action table. + *
short[][] reduce_table() + *
Provides a reference to the reduce-goto table. + *
int start_state() + *
Indicates the index of the start state. + *
int start_production() + *
Indicates the index of the starting production. + *
int EOF_sym() + *
Indicates the index of the EOF Symbol. + *
int error_sym() + *
Indicates the index of the error Symbol. + *
Symbol do_action() + *
Executes a piece of user supplied action code. This always comes at + * the point of a reduce in the parse, so this code also allocates and + * fills in the left hand side non terminal Symbol object that is to be + * pushed onto the stack for the reduce. + *
void init_actions() + *
Code to initialize a special object that encapsulates user supplied + * actions (this object is used by do_action() to actually carry out the + * actions). + *
+ * + * In addition to these routines that must be supplied by the + * generated subclass there are also a series of routines that may + * be supplied. These include: + *
+ *
Symbol scan() + *
Used to get the next input Symbol from the scanner. + *
Scanner getScanner() + *
Used to provide a scanner for the default implementation of + * scan(). + *
int error_sync_size() + *
This determines how many Symbols past the point of an error + * must be parsed without error in order to consider a recovery to + * be valid. This defaults to 3. Values less than 2 are not + * recommended. + *
void report_error(String message, Object info) + *
This method is called to report an error. The default implementation + * simply prints a message to System.err and where the error occurred. + * This method is often replaced in order to provide a more sophisticated + * error reporting mechanism. + *
void report_fatal_error(String message, Object info) + *
This method is called when a fatal error that cannot be recovered from + * is encountered. In the default implementation, it calls + * report_error() to emit a message, then throws an exception. + *
void syntax_error(Symbol cur_token) + *
This method is called as soon as syntax error is detected (but + * before recovery is attempted). In the default implementation it + * invokes: report_error("Syntax error", null); + *
void unrecovered_syntax_error(Symbol cur_token) + *
This method is called if syntax error recovery fails. In the default + * implementation it invokes:
+ * report_fatal_error("Couldn't repair and continue parse", null); + *
+ * + * @see java_cup.runtime.Symbol + * @see java_cup.runtime.Symbol + * @see java_cup.runtime.virtual_parse_stack + * @version last updated: 7/3/96 + * @author Frank Flannery + */ + +public abstract class lr_parser { + /*-----------------------------------------------------------*/ + /*--- Constructor(s) ----------------------------------------*/ + /*-----------------------------------------------------------*/ + + /** + * Simple constructor. + */ + public lr_parser() { + } + + /** + * Constructor that sets the default scanner. [CSA/davidm] + */ + public lr_parser(Scanner s) { + this(s,new DefaultSymbolFactory()); // TUM 20060327 old cup v10 Symbols as default + } + /** + * Constructor that sets the default scanner and a SymbolFactory + */ + public lr_parser(Scanner s, SymbolFactory symfac) { + this(); // in case default constructor someday does something + symbolFactory = symfac; + setScanner(s); + } + public SymbolFactory symbolFactory;// = new DefaultSymbolFactory(); + /** + * Whenever creation of a new Symbol is necessary, one should use this factory. + */ + public SymbolFactory getSymbolFactory(){ + return symbolFactory; + } + /*-----------------------------------------------------------*/ + /*--- (Access to) Static (Class) Variables ------------------*/ + /*-----------------------------------------------------------*/ + + /** The default number of Symbols after an error we much match to consider + * it recovered from. + */ + protected final static int _error_sync_size = 3; + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** The number of Symbols after an error we much match to consider it + * recovered from. + */ + protected int error_sync_size() {return _error_sync_size; } + + /*-----------------------------------------------------------*/ + /*--- (Access to) Instance Variables ------------------------*/ + /*-----------------------------------------------------------*/ + + /** Table of production information (supplied by generated subclass). + * This table contains one entry per production and is indexed by + * the negative-encoded values (reduce actions) in the action_table. + * Each entry has two parts, the index of the non-terminal on the + * left hand side of the production, and the number of Symbols + * on the right hand side. + */ + public abstract short[][] production_table(); + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** The action table (supplied by generated subclass). This table is + * indexed by state and terminal number indicating what action is to + * be taken when the parser is in the given state (i.e., the given state + * is on top of the stack) and the given terminal is next on the input. + * States are indexed using the first dimension, however, the entries for + * a given state are compacted and stored in adjacent index, value pairs + * which are searched for rather than accessed directly (see get_action()). + * The actions stored in the table will be either shifts, reduces, or + * errors. Shifts are encoded as positive values (one greater than the + * state shifted to). Reduces are encoded as negative values (one less + * than the production reduced by). Error entries are denoted by zero. + * + * @see java_cup.runtime.lr_parser#get_action + */ + public abstract short[][] action_table(); + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** The reduce-goto table (supplied by generated subclass). This + * table is indexed by state and non-terminal number and contains + * state numbers. States are indexed using the first dimension, however, + * the entries for a given state are compacted and stored in adjacent + * index, value pairs which are searched for rather than accessed + * directly (see get_reduce()). When a reduce occurs, the handle + * (corresponding to the RHS of the matched production) is popped off + * the stack. The new top of stack indicates a state. This table is + * then indexed by that state and the LHS of the reducing production to + * indicate where to "shift" to. + * + * @see java_cup.runtime.lr_parser#get_reduce + */ + public abstract short[][] reduce_table(); + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** The index of the start state (supplied by generated subclass). */ + public abstract int start_state(); + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** The index of the start production (supplied by generated subclass). */ + public abstract int start_production(); + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** The index of the end of file terminal Symbol (supplied by generated + * subclass). + */ + public abstract int EOF_sym(); + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** The index of the special error Symbol (supplied by generated subclass). */ + public abstract int error_sym(); + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Internal flag to indicate when parser should quit. */ + protected boolean _done_parsing = false; + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** This method is called to indicate that the parser should quit. This is + * normally called by an accept action, but can be used to cancel parsing + * early in other circumstances if desired. + */ + public void done_parsing() + { + _done_parsing = true; + } + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + /* Global parse state shared by parse(), error recovery, and + * debugging routines */ + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Indication of the index for top of stack (for use by actions). */ + protected int tos; + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** The current lookahead Symbol. */ + protected Symbol cur_token; + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** The parse stack itself. */ + protected Stack stack = new Stack(); + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Direct reference to the production table. */ + protected short[][] production_tab; + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Direct reference to the action table. */ + protected short[][] action_tab; + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Direct reference to the reduce-goto table. */ + protected short[][] reduce_tab; + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** This is the scanner object used by the default implementation + * of scan() to get Symbols. To avoid name conflicts with existing + * code, this field is private. [CSA/davidm] */ + private Scanner _scanner; + + /** + * Simple accessor method to set the default scanner. + */ + public void setScanner(Scanner s) { _scanner = s; } + + /** + * Simple accessor method to get the default scanner. + */ + public Scanner getScanner() { return _scanner; } + + /*-----------------------------------------------------------*/ + /*--- General Methods ---------------------------------------*/ + /*-----------------------------------------------------------*/ + + /** Perform a bit of user supplied action code (supplied by generated + * subclass). Actions are indexed by an internal action number assigned + * at parser generation time. + * + * @param act_num the internal index of the action to be performed. + * @param parser the parser object we are acting for. + * @param stack the parse stack of that object. + * @param top the index of the top element of the parse stack. + */ + public abstract Symbol do_action( + int act_num, + lr_parser parser, + Stack stack, + int top) + throws java.lang.Exception; + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** User code for initialization inside the parser. Typically this + * initializes the scanner. This is called before the parser requests + * the first Symbol. Here this is just a placeholder for subclasses that + * might need this and we perform no action. This method is normally + * overridden by the generated code using this contents of the "init with" + * clause as its body. + */ + public void user_init() throws java.lang.Exception { } + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Initialize the action object. This is called before the parser does + * any parse actions. This is filled in by generated code to create + * an object that encapsulates all action code. + */ + protected abstract void init_actions() throws java.lang.Exception; + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Get the next Symbol from the input (supplied by generated subclass). + * Once end of file has been reached, all subsequent calls to scan + * should return an EOF Symbol (which is Symbol number 0). By default + * this method returns getScanner().next_token(); this implementation + * can be overriden by the generated parser using the code declared in + * the "scan with" clause. Do not recycle objects; every call to + * scan() should return a fresh object. + */ + public Symbol scan() throws java.lang.Exception { + Symbol sym = getScanner().next_token(); + return (sym!=null) ? sym : getSymbolFactory().newSymbol("END_OF_FILE",EOF_sym()); + } + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Report a fatal error. This method takes a message string and an + * additional object (to be used by specializations implemented in + * subclasses). Here in the base class a very simple implementation + * is provided which reports the error then throws an exception. + * + * @param message an error message. + * @param info an extra object reserved for use by specialized subclasses. + */ + public void report_fatal_error( + String message, + Object info) + throws java.lang.Exception + { + /* stop parsing (not really necessary since we throw an exception, but) */ + done_parsing(); + + /* use the normal error message reporting to put out the message */ + report_error(message, info); + + /* throw an exception */ + throw new Exception("Can't recover from previous error(s)"); + } + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Report a non fatal error (or warning). This method takes a message + * string and an additional object (to be used by specializations + * implemented in subclasses). Here in the base class a very simple + * implementation is provided which simply prints the message to + * System.err. + * + * @param message an error message. + * @param info an extra object reserved for use by specialized subclasses. + */ + public void report_error(String message, Object info) + { + System.err.print(message); + System.err.flush(); + if (info instanceof Symbol) + if (((Symbol)info).left != -1) + System.err.println(" at character " + ((Symbol)info).left + + " of input"); + else System.err.println(""); + else System.err.println(""); + } + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** This method is called when a syntax error has been detected and recovery + * is about to be invoked. Here in the base class we just emit a + * "Syntax error" error message. + * + * @param cur_token the current lookahead Symbol. + */ + public void syntax_error(Symbol cur_token) + { + report_error("Syntax error", cur_token); + } + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** This method is called if it is determined that syntax error recovery + * has been unsuccessful. Here in the base class we report a fatal error. + * + * @param cur_token the current lookahead Symbol. + */ + public void unrecovered_syntax_error(Symbol cur_token) + throws java.lang.Exception + { + report_fatal_error("Couldn't repair and continue parse", cur_token); + } + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Fetch an action from the action table. The table is broken up into + * rows, one per state (rows are indexed directly by state number). + * Within each row, a list of index, value pairs are given (as sequential + * entries in the table), and the list is terminated by a default entry + * (denoted with a Symbol index of -1). To find the proper entry in a row + * we do a linear or binary search (depending on the size of the row). + * + * @param state the state index of the action being accessed. + * @param sym the Symbol index of the action being accessed. + */ + protected final short get_action(int state, int sym) + { + short tag; + int first, last, probe; + short[] row = action_tab[state]; + + /* linear search if we are < 10 entries */ + if (row.length < 20) + for (probe = 0; probe < row.length; probe++) + { + /* is this entry labeled with our Symbol or the default? */ + tag = row[probe++]; + if (tag == sym || tag == -1) + { + /* return the next entry */ + return row[probe]; + } + } + /* otherwise binary search */ + else + { + first = 0; + last = (row.length-1)/2 - 1; /* leave out trailing default entry */ + while (first <= last) + { + probe = (first+last)/2; + if (sym == row[probe*2]) + return row[probe*2+1]; + else if (sym > row[probe*2]) + first = probe+1; + else + last = probe-1; + } + + /* not found, use the default at the end */ + return row[row.length-1]; + } + + /* shouldn't happened, but if we run off the end we return the + default (error == 0) */ + return 0; + } + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Fetch a state from the reduce-goto table. The table is broken up into + * rows, one per state (rows are indexed directly by state number). + * Within each row, a list of index, value pairs are given (as sequential + * entries in the table), and the list is terminated by a default entry + * (denoted with a Symbol index of -1). To find the proper entry in a row + * we do a linear search. + * + * @param state the state index of the entry being accessed. + * @param sym the Symbol index of the entry being accessed. + */ + protected final short get_reduce(int state, int sym) + { + short tag; + short[] row = reduce_tab[state]; + + /* if we have a null row we go with the default */ + if (row == null) + return -1; + + for (int probe = 0; probe < row.length; probe++) + { + /* is this entry labeled with our Symbol or the default? */ + tag = row[probe++]; + if (tag == sym || tag == -1) + { + /* return the next entry */ + return row[probe]; + } + } + /* if we run off the end we return the default (error == -1) */ + return -1; + } + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** This method provides the main parsing routine. It returns only when + * done_parsing() has been called (typically because the parser has + * accepted, or a fatal error has been reported). See the header + * documentation for the class regarding how shift/reduce parsers operate + * and how the various tables are used. + */ + public Symbol parse() throws java.lang.Exception + { + /* the current action code */ + int act; + + /* the Symbol/stack element returned by a reduce */ + Symbol lhs_sym = null; + + /* information about production being reduced with */ + short handle_size, lhs_sym_num; + + /* set up direct reference to tables to drive the parser */ + + production_tab = production_table(); + action_tab = action_table(); + reduce_tab = reduce_table(); + + /* initialize the action encapsulation object */ + init_actions(); + + /* do user initialization */ + user_init(); + + /* get the first token */ + cur_token = scan(); + + /* push dummy Symbol with start state to get us underway */ + stack.removeAllElements(); + stack.push(getSymbolFactory().startSymbol("START", 0, start_state())); + tos = 0; + + /* continue until we are told to stop */ + for (_done_parsing = false; !_done_parsing; ) + { + /* Check current token for freshness. */ + if (cur_token.used_by_parser) + throw new Error("Symbol recycling detected (fix your scanner)."); + + /* current state is always on the top of the stack */ + + /* look up action out of the current state with the current input */ + act = get_action(stack.peek().parse_state, cur_token.sym); + + /* decode the action -- > 0 encodes shift */ + if (act > 0) + { + /* shift to the encoded state by pushing it on the stack */ + cur_token.parse_state = act-1; + cur_token.used_by_parser = true; + stack.push(cur_token); + tos++; + + /* advance to the next Symbol */ + cur_token = scan(); + } + /* if its less than zero, then it encodes a reduce action */ + else if (act < 0) + { + /* perform the action for the reduce */ + lhs_sym = do_action((-act)-1, this, stack, tos); + + /* look up information about the production */ + lhs_sym_num = production_tab[(-act)-1][0]; + handle_size = production_tab[(-act)-1][1]; + + /* pop the handle off the stack */ + for (int i = 0; i < handle_size; i++) + { + stack.pop(); + tos--; + } + + /* look up the state to go to from the one popped back to */ + act = get_reduce(stack.peek().parse_state, lhs_sym_num); + + /* shift to that state */ + lhs_sym.parse_state = act; + lhs_sym.used_by_parser = true; + stack.push(lhs_sym); + tos++; + } + /* finally if the entry is zero, we have an error */ + else if (act == 0) + { + /* call user syntax error reporting routine */ + syntax_error(cur_token); + + /* try to error recover */ + if (!error_recovery(false)) + { + /* if that fails give up with a fatal syntax error */ + unrecovered_syntax_error(cur_token); + + /* just in case that wasn't fatal enough, end parse */ + done_parsing(); + } else { + lhs_sym = stack.peek(); + } + } + } + return lhs_sym; + } + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Write a debugging message to System.err for the debugging version + * of the parser. + * + * @param mess the text of the debugging message. + */ + public void debug_message(String mess) + { + System.err.println(mess); + } + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Dump the parse stack for debugging purposes. */ + public void dump_stack() + { + if (stack == null) + { + debug_message("# Stack dump requested, but stack is null"); + return; + } + + debug_message("============ Parse Stack Dump ============"); + + /* dump the stack */ + for (int i=0; i"); + if ((i%3)==2 || (i==(stack.size()-1))) { + debug_message(sb.toString()); + sb = new StringBuilder(" "); + } + } + } + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Perform a parse with debugging output. This does exactly the + * same things as parse(), except that it calls debug_shift() and + * debug_reduce() when shift and reduce moves are taken by the parser + * and produces various other debugging messages. + */ + public Symbol debug_parse() + throws java.lang.Exception + { + /* the current action code */ + int act; + + /* the Symbol/stack element returned by a reduce */ + Symbol lhs_sym = null; + + /* information about production being reduced with */ + short handle_size, lhs_sym_num; + + /* set up direct reference to tables to drive the parser */ + production_tab = production_table(); + action_tab = action_table(); + reduce_tab = reduce_table(); + + debug_message("# Initializing parser"); + + /* initialize the action encapsulation object */ + init_actions(); + + /* do user initialization */ + user_init(); + + /* the current Symbol */ + cur_token = scan(); + + debug_message("# Current Symbol is #" + cur_token.sym); + + /* push dummy Symbol with start state to get us underway */ + stack.removeAllElements(); + stack.push(getSymbolFactory().startSymbol("START",0, start_state())); + tos = 0; + + /* continue until we are told to stop */ + for (_done_parsing = false; !_done_parsing; ) + { + /* Check current token for freshness. */ + if (cur_token.used_by_parser) + throw new Error("Symbol recycling detected (fix your scanner)."); + + /* current state is always on the top of the stack */ + //debug_stack(); + + /* look up action out of the current state with the current input */ + act = get_action(stack.peek().parse_state, cur_token.sym); + + /* decode the action -- > 0 encodes shift */ + if (act > 0) + { + /* shift to the encoded state by pushing it on the stack */ + cur_token.parse_state = act-1; + cur_token.used_by_parser = true; + debug_shift(cur_token); + stack.push(cur_token); + tos++; + + /* advance to the next Symbol */ + cur_token = scan(); + debug_message("# Current token is " + cur_token); + } + /* if its less than zero, then it encodes a reduce action */ + else if (act < 0) + { + /* perform the action for the reduce */ + lhs_sym = do_action((-act)-1, this, stack, tos); + + /* look up information about the production */ + lhs_sym_num = production_tab[(-act)-1][0]; + handle_size = production_tab[(-act)-1][1]; + + debug_reduce((-act)-1, lhs_sym_num, handle_size); + + /* pop the handle off the stack */ + for (int i = 0; i < handle_size; i++) + { + stack.pop(); + tos--; + } + + /* look up the state to go to from the one popped back to */ + act = get_reduce(stack.peek().parse_state, lhs_sym_num); + debug_message("# Reduce rule: top state " + + stack.peek().parse_state + + ", lhs sym " + lhs_sym_num + " -> state " + act); + + /* shift to that state */ + lhs_sym.parse_state = act; + lhs_sym.used_by_parser = true; + stack.push(lhs_sym); + tos++; + + debug_message("# Goto state #" + act); + } + /* finally if the entry is zero, we have an error */ + else if (act == 0) + { + /* call user syntax error reporting routine */ + syntax_error(cur_token); + + /* try to error recover */ + if (!error_recovery(true)) + { + /* if that fails give up with a fatal syntax error */ + unrecovered_syntax_error(cur_token); + + /* just in case that wasn't fatal enough, end parse */ + done_parsing(); + } else { + lhs_sym = stack.peek(); + } + } + } + return lhs_sym; + } + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + /* Error recovery code */ + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Attempt to recover from a syntax error. This returns false if recovery + * fails, true if it succeeds. Recovery happens in 4 steps. First we + * pop the parse stack down to a point at which we have a shift out + * of the top-most state on the error Symbol. This represents the + * initial error recovery configuration. If no such configuration is + * found, then we fail. Next a small number of "lookahead" or "parse + * ahead" Symbols are read into a buffer. The size of this buffer is + * determined by error_sync_size() and determines how many Symbols beyond + * the error must be matched to consider the recovery a success. Next, + * we begin to discard Symbols in attempt to get past the point of error + * to a point where we can continue parsing. After each Symbol, we attempt + * to "parse ahead" though the buffered lookahead Symbols. The "parse ahead" + * process simulates that actual parse, but does not modify the real + * parser's configuration, nor execute any actions. If we can parse all + * the stored Symbols without error, then the recovery is considered a + * success. Once a successful recovery point is determined, we do an + * actual parse over the stored input -- modifying the real parse + * configuration and executing all actions. Finally, we return the the + * normal parser to continue with the overall parse. + * + * @param debug should we produce debugging messages as we parse. + */ + protected boolean error_recovery(boolean debug) + throws java.lang.Exception + { + if (debug) debug_message("# Attempting error recovery"); + + /* first pop the stack back into a state that can shift on error and + do that shift (if that fails, we fail) */ + if (!find_recovery_config(debug)) + { + if (debug) debug_message("# Error recovery fails"); + return false; + } + + /* read ahead to create lookahead we can parse multiple times */ + read_lookahead(); + + /* repeatedly try to parse forward until we make it the required dist */ + for (;;) + { + /* try to parse forward, if it makes it, bail out of loop */ + if (debug) debug_message("# Trying to parse ahead"); + if (try_parse_ahead(debug)) + { + break; + } + + /* if we are now at EOF, we have failed */ + if (lookahead[0].sym == EOF_sym()) + { + if (debug) debug_message("# Error recovery fails at EOF"); + return false; + } + + /* otherwise, we consume another Symbol and try again */ + // BUG FIX by Bruce Hutton + // Computer Science Department, University of Auckland, + // Auckland, New Zealand. + // It is the first token that is being consumed, not the one + // we were up to parsing + if (debug) + debug_message("# Consuming Symbol #" + lookahead[ 0 ].sym); + restart_lookahead(); + } + + /* we have consumed to a point where we can parse forward */ + if (debug) debug_message("# Parse-ahead ok, going back to normal parse"); + + /* do the real parse (including actions) across the lookahead */ + parse_lookahead(debug); + + /* we have success */ + return true; + } + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Determine if we can shift under the special error Symbol out of the + * state currently on the top of the (real) parse stack. + */ + protected boolean shift_under_error() + { + /* is there a shift under error Symbol */ + return get_action(stack.peek().parse_state, error_sym()) > 0; + } + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Put the (real) parse stack into error recovery configuration by + * popping the stack down to a state that can shift on the special + * error Symbol, then doing the shift. If no suitable state exists on + * the stack we return false + * + * @param debug should we produce debugging messages as we parse. + */ + protected boolean find_recovery_config(boolean debug) + { + Symbol error_token; + int act; + + if (debug) debug_message("# Finding recovery state on stack"); + + /* Remember the right-position of the top symbol on the stack */ + Symbol right = stack.peek();// TUM 20060327 removed .right + Symbol left = right;// TUM 20060327 removed .left + + /* pop down until we can shift under error Symbol */ + while (!shift_under_error()) + { + /* pop the stack */ + if (debug) + debug_message("# Pop stack by one, state was # " + + stack.peek().parse_state); + left = stack.pop(); // TUM 20060327 removed .left + tos--; + + /* if we have hit bottom, we fail */ + if (stack.empty()) + { + if (debug) debug_message("# No recovery state found on stack"); + return false; + } + } + + /* state on top of the stack can shift under error, find the shift */ + act = get_action(stack.peek().parse_state, error_sym()); + if (debug) + { + debug_message("# Recover state found (#" + + stack.peek().parse_state + ")"); + debug_message("# Shifting on error to state #" + (act-1)); + } + + /* build and shift a special error Symbol */ + error_token = getSymbolFactory().newSymbol("ERROR",error_sym(), left, right); + error_token.parse_state = act-1; + error_token.used_by_parser = true; + stack.push(error_token); + tos++; + + return true; + } + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Lookahead Symbols used for attempting error recovery "parse aheads". */ + protected Symbol lookahead[]; + + /** Position in lookahead input buffer used for "parse ahead". */ + protected int lookahead_pos; + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Read from input to establish our buffer of "parse ahead" lookahead + * Symbols. + */ + protected void read_lookahead() throws java.lang.Exception + { + /* create the lookahead array */ + lookahead = new Symbol[error_sync_size()]; + + /* fill in the array */ + for (int i = 0; i < error_sync_size(); i++) + { + lookahead[i] = cur_token; + cur_token = scan(); + } + + /* start at the beginning */ + lookahead_pos = 0; + } + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Return the current lookahead in our error "parse ahead" buffer. */ + protected Symbol cur_err_token() { return lookahead[lookahead_pos]; } + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Advance to next "parse ahead" input Symbol. Return true if we have + * input to advance to, false otherwise. + */ + protected boolean advance_lookahead() + { + /* advance the input location */ + lookahead_pos++; + + /* return true if we didn't go off the end */ + return lookahead_pos < error_sync_size(); + } + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Reset the parse ahead input to one Symbol past where we started error + * recovery (this consumes one new Symbol from the real input). + */ + protected void restart_lookahead() throws java.lang.Exception + { + /* move all the existing input over */ + for (int i = 1; i < error_sync_size(); i++) + lookahead[i-1] = lookahead[i]; + + /* read a new Symbol into the last spot */ + // BUG Fix by Bruce Hutton + // Computer Science Department, University of Auckland, + // Auckland, New Zealand. [applied 5-sep-1999 by csa] + // The following two lines were out of order!! + lookahead[error_sync_size()-1] = cur_token; + cur_token = scan(); + + /* reset our internal position marker */ + lookahead_pos = 0; + } + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Do a simulated parse forward (a "parse ahead") from the current + * stack configuration using stored lookahead input and a virtual parse + * stack. Return true if we make it all the way through the stored + * lookahead input without error. This basically simulates the action of + * parse() using only our saved "parse ahead" input, and not executing any + * actions. + * + * @param debug should we produce debugging messages as we parse. + */ + protected boolean try_parse_ahead(boolean debug) + throws java.lang.Exception + { + int act; + short lhs, rhs_size; + + /* create a virtual stack from the real parse stack */ + virtual_parse_stack vstack = new virtual_parse_stack(stack); + + /* parse until we fail or get past the lookahead input */ + for (;;) + { + /* look up the action from the current state (on top of stack) */ + act = get_action(vstack.top(), cur_err_token().sym); + + /* if its an error, we fail */ + if (act == 0) return false; + + /* > 0 encodes a shift */ + if (act > 0) + { + /* push the new state on the stack */ + vstack.push(act-1); + + if (debug) debug_message("# Parse-ahead shifts Symbol #" + + cur_err_token().sym + " into state #" + (act-1)); + + /* advance simulated input, if we run off the end, we are done */ + if (!advance_lookahead()) return true; + } + /* < 0 encodes a reduce */ + else + { + /* if this is a reduce with the start production we are done */ + if ((-act)-1 == start_production()) + { + if (debug) debug_message("# Parse-ahead accepts"); + return true; + } + + /* get the lhs Symbol and the rhs size */ + lhs = production_tab[(-act)-1][0]; + rhs_size = production_tab[(-act)-1][1]; + + /* pop handle off the stack */ + for (int i = 0; i < rhs_size; i++) + vstack.pop(); + + if (debug) + debug_message("# Parse-ahead reduces: handle size = " + + rhs_size + " lhs = #" + lhs + " from state #" + vstack.top()); + + /* look up goto and push it onto the stack */ + vstack.push(get_reduce(vstack.top(), lhs)); + if (debug) + debug_message("# Goto state #" + vstack.top()); + } + } + } + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Parse forward using stored lookahead Symbols. In this case we have + * already verified that parsing will make it through the stored lookahead + * Symbols and we are now getting back to the point at which we can hand + * control back to the normal parser. Consequently, this version of the + * parser performs all actions and modifies the real parse configuration. + * This returns once we have consumed all the stored input or we accept. + * + * @param debug should we produce debugging messages as we parse. + */ + protected void parse_lookahead(boolean debug) + throws java.lang.Exception + { + /* the current action code */ + int act; + + /* the Symbol/stack element returned by a reduce */ + Symbol lhs_sym = null; + + /* information about production being reduced with */ + short handle_size, lhs_sym_num; + + /* restart the saved input at the beginning */ + lookahead_pos = 0; + + if (debug) + { + debug_message("# Reparsing saved input with actions"); + debug_message("# Current Symbol is #" + cur_err_token().sym); + debug_message("# Current state is #" + + stack.peek().parse_state); + } + + /* continue until we accept or have read all lookahead input */ + while(!_done_parsing) + { + /* current state is always on the top of the stack */ + + /* look up action out of the current state with the current input */ + act = + get_action(stack.peek().parse_state, cur_err_token().sym); + + /* decode the action -- > 0 encodes shift */ + if (act > 0) + { + /* shift to the encoded state by pushing it on the stack */ + cur_err_token().parse_state = act-1; + cur_err_token().used_by_parser = true; + if (debug) debug_shift(cur_err_token()); + stack.push(cur_err_token()); + tos++; + + /* advance to the next Symbol, if there is none, we are done */ + if (!advance_lookahead()) + { + if (debug) debug_message("# Completed reparse"); + + /* scan next Symbol so we can continue parse */ + // BUGFIX by Chris Harris : + // correct a one-off error by commenting out + // this next line. + /*cur_token = scan();*/ + + /* go back to normal parser */ + return; + } + + if (debug) + debug_message("# Current Symbol is #" + cur_err_token().sym); + } + /* if its less than zero, then it encodes a reduce action */ + else if (act < 0) + { + /* perform the action for the reduce */ + lhs_sym = do_action((-act)-1, this, stack, tos); + + /* look up information about the production */ + lhs_sym_num = production_tab[(-act)-1][0]; + handle_size = production_tab[(-act)-1][1]; + + if (debug) debug_reduce((-act)-1, lhs_sym_num, handle_size); + + /* pop the handle off the stack */ + for (int i = 0; i < handle_size; i++) + { + stack.pop(); + tos--; + } + + /* look up the state to go to from the one popped back to */ + act = get_reduce(stack.peek().parse_state, lhs_sym_num); + + /* shift to that state */ + lhs_sym.parse_state = act; + lhs_sym.used_by_parser = true; + stack.push(lhs_sym); + tos++; + + if (debug) debug_message("# Goto state #" + act); + + } + /* finally if the entry is zero, we have an error + (shouldn't happen here, but...)*/ + else if (act == 0) + { + report_fatal_error("Syntax error", lhs_sym); + return; + } + } + + + } + + /*-----------------------------------------------------------*/ + + /** Utility function: unpacks parse tables from strings */ + protected static short[][] unpackFromStrings(String[] sa) + { + // Concatanate initialization strings. + StringBuilder sb = new StringBuilder(sa[0]); + for (int i=1; iOLG%P5dKD5dnK{5v5_HQ9*aX9J)A7y@Q7s$=9MV1LqL=%!$GX&L0Pg|ZLLNw z;Gg8koeNdAT!pK^w^ZdvCFve*Y$HSt>Y488{<^>JUj6m=yY~QQ@i2qqm^JZT3YRiS z;Bp#Y;EIW>84P2VmG4>1Wk{6SHqYXki3Jna)5zjR1|wKx<4qQ~Qn=0M9X8)h;RjZJ zG*L0}lRzetu3u{_xBk1p*wS-%!*x2!^PMW2$^z-C*9ctIiKM_x|NFc))asqki8_Ju zn$oGhY_7HZ@&boy>_EOy0-_=?yby^+q#bm8-`?;d)gfoyK?eTW!U;?YjP{Mpf{jTFr*XzY5hV*ta4an2 z7lC8!I$&5d`27;&_FK5e2vfLd;R1fOFoSOd<~~z2wIN@y>#pz1b-NYVx=H;t-^T+B zRX75(pMjwc+T8KM@#pbC;M^x1;?C4`8~@wn!~2Bptv#1@+Q5l;1N0!OD)NFxZ-?66 zE83y7^kq{9YEipZ3cY>P&OHQL=tFxs6h%xQ1dM$Kh8dxh^mXO(17A~KpjKSJBXO3# z=;QPskc7drg}_PD5;#RV&6Dm14|mUgmOf-bBl?me&e7{Koe4T;irWySKat%*Vs$*Z z4dX+xw1uJK4u)5^VQwK+Ol~1v>>~4)`~|)uISTO)#*r{FZQ^S(@(<8T*a zkM_$*LQo~VZgHX shadowing_stack) throws java.lang.Exception + { + /* sanity check */ + if (shadowing_stack == null) + throw new Exception( + "Internal parser error: attempt to create null virtual stack"); + + /* set up our internals */ + real_stack = shadowing_stack; + vstack = new Stack(); + real_next = 0; + + /* get one element onto the virtual portion of the stack */ + get_from_real(); + } + + /*-----------------------------------------------------------*/ + /*--- (Access to) Instance Variables ------------------------*/ + /*-----------------------------------------------------------*/ + + /** The real stack that we shadow. This is accessed when we move off + * the bottom of the virtual portion of the stack, but is always left + * unmodified. + */ + protected Stack real_stack; + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Top of stack indicator for where we leave off in the real stack. + * This is measured from top of stack, so 0 would indicate that no + * elements have been "moved" from the real to virtual stack. + */ + protected int real_next; + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** The virtual top portion of the stack. This stack contains Integer + * objects with state numbers. This stack shadows the top portion + * of the real stack within the area that has been modified (via operations + * on the virtual stack). When this portion of the stack becomes empty we + * transfer elements from the underlying stack onto this stack. + */ + protected Stack vstack; + + /*-----------------------------------------------------------*/ + /*--- General Methods ---------------------------------------*/ + /*-----------------------------------------------------------*/ + + /** Transfer an element from the real to the virtual stack. This assumes + * that the virtual stack is currently empty. + */ + protected void get_from_real() + { + Symbol stack_sym; + + /* don't transfer if the real stack is empty */ + if (real_next >= real_stack.size()) return; + + /* get a copy of the first Symbol we have not transfered */ + stack_sym = (Symbol)real_stack.elementAt(real_stack.size()-1-real_next); + + /* record the transfer */ + real_next++; + + /* put the state number from the Symbol onto the virtual stack */ + vstack.push(new Integer(stack_sym.parse_state)); + } + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Indicate whether the stack is empty. */ + public boolean empty() + { + /* if vstack is empty then we were unable to transfer onto it and + the whole thing is empty. */ + return vstack.empty(); + } + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Return value on the top of the stack (without popping it). */ + public int top() throws java.lang.Exception + { + if (vstack.empty()) + throw new Exception( + "Internal parser error: top() called on empty virtual stack"); + + return vstack.peek().intValue(); + } + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Pop the stack. */ + public void pop() throws java.lang.Exception + { + if (vstack.empty()) + throw new Exception( + "Internal parser error: pop from empty virtual stack"); + + /* pop it */ + vstack.pop(); + + /* if we are now empty transfer an element (if there is one) */ + if (vstack.empty()) + get_from_real(); + } + + /*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .*/ + + /** Push a state number onto the stack. */ + public void push(int state_num) + { + vstack.push(new Integer(state_num)); + } + + /*-----------------------------------------------------------*/ + +} diff --git a/compiler/src/parser.class b/compiler/src/parser.class new file mode 100644 index 0000000000000000000000000000000000000000..f3afa5411695b011c84f1e6cc32ffcf1422763dc GIT binary patch literal 7952 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 Z*ZGOse_vVY;Q=#rriTq?=rXZT{|m9`FaH1l literal 0 HcmV?d00001 diff --git a/compiler/src/parser.java b/compiler/src/parser.java new file mode 100644 index 0000000..2e41b68 --- /dev/null +++ b/compiler/src/parser.java @@ -0,0 +1,1285 @@ + +//---------------------------------------------------- +// The following code was generated by CUP v0.11b 20140611 (SVN rev 31) +// Thu Mar 10 11:54:22 CET 2016 +//---------------------------------------------------- + +import java_cup.*; +import java_cup.runtime.ComplexSymbolFactory.Location; + +/** CUP v0.11b 20140611 (SVN rev 31) generated parser. + * @version Thu Mar 10 11:54:22 CET 2016 + */ +public class parser extends java_cup.runtime.lr_parser { + + /** Default constructor. */ + public parser() {super();} + + /** Constructor which sets the default scanner. */ + public parser(java_cup.runtime.Scanner s) {super(s);} + + /** Constructor which sets the default scanner. */ + public parser(java_cup.runtime.Scanner s, java_cup.runtime.SymbolFactory sf) {super(s,sf);} + + /** Production table. */ + protected static final short _production_table[][] = + unpackFromStrings(new String[] { + "\000\131\000\002\002\010\000\002\002\004\000\002\003" + + "\005\000\002\003\004\000\002\004\007\000\002\004\004" + + "\000\002\004\003\000\002\005\004\000\002\005\005\000" + + "\002\005\005\000\002\005\005\000\002\005\003\000\002" + + "\006\006\000\002\042\004\000\002\042\003\000\002\010" + + "\006\000\002\044\006\000\002\044\003\000\002\011\005" + + "\000\002\045\004\000\002\045\004\000\002\045\003\000" + + "\002\012\006\000\002\046\004\000\002\046\003\000\002" + + "\013\012\000\002\014\016\000\002\014\003\000\002\014" + + "\004\000\002\015\005\000\002\015\005\000\002\015\003" + + "\000\002\015\004\000\002\016\003\000\002\016\003\000" + + "\002\016\004\000\002\016\003\000\002\017\012\000\002" + + "\036\013\000\002\036\003\000\002\037\007\000\002\020" + + "\011\000\002\020\007\000\002\021\007\000\002\021\011" + + "\000\002\022\010\000\002\023\005\000\002\023\005\000" + + "\002\023\003\000\002\024\005\000\002\024\005\000\002" + + "\024\003\000\002\025\005\000\002\025\005\000\002\025" + + "\003\000\002\026\005\000\002\026\003\000\002\026\003" + + "\000\002\026\003\000\002\027\003\000\002\027\003\000" + + "\002\027\006\000\002\047\004\000\002\047\003\000\002" + + "\030\003\000\002\030\003\000\002\030\003\000\002\030" + + "\003\000\002\030\003\000\002\030\003\000\002\031\003" + + "\000\002\031\003\000\002\032\003\000\002\032\003\000" + + "\002\041\003\000\002\041\005\000\002\033\003\000\002" + + "\033\003\000\002\040\006\000\002\040\004\000\002\034" + + "\003\000\002\034\003\000\002\034\003\000\002\034\003" + + "\000\002\034\003\000\002\035\004\000\002\035\004\000" + + "\002\035\003\000\002\035\003" }); + + /** Access to production table. */ + public short[][] production_table() {return _production_table;} + + /** Parse-action table. */ + protected static final short[][] _action_table = + unpackFromStrings(new String[] { + "\000\315\000\004\005\006\001\002\000\010\007\012\012" + + "\014\050\013\001\002\000\004\002\011\001\002\000\004" + + "\006\007\001\002\000\004\012\010\001\002\000\010\007" + + "\uffff\012\uffff\050\uffff\001\002\000\004\002\000\001\002" + + "\000\004\016\314\001\002\000\016\012\ufffb\050\ufffb\051" + + "\ufffb\053\ufffb\055\ufffb\060\ufffb\001\002\000\010\007\ufffe" + + "\012\ufffe\050\ufffe\001\002\000\016\012\021\050\025\051" + + "\016\053\024\055\020\060\022\001\002\000\004\005\167" + + "\001\002\000\014\050\025\051\016\053\024\055\020\060" + + "\022\001\002\000\004\005\134\001\002\000\016\012\ufffc" + + "\050\ufffc\051\ufffc\053\ufffc\055\ufffc\060\ufffc\001\002\000" + + "\004\005\237\001\002\000\014\050\025\051\016\053\024" + + "\055\020\060\022\001\002\000\004\005\153\001\002\000" + + "\006\012\ufff6\061\ufff6\001\002\000\004\061\036\001\002" + + "\000\014\050\025\051\016\053\024\055\020\060\022\001" + + "\002\000\014\050\025\051\016\053\024\055\020\060\022" + + "\001\002\000\004\012\032\001\002\000\006\012\ufff8\061" + + "\ufff8\001\002\000\004\012\034\001\002\000\006\012\ufff9" + + "\061\ufff9\001\002\000\020\012\261\050\263\051\100\053" + + "\104\055\101\060\102\061\073\001\002\000\004\004\037" + + "\001\002\000\004\016\040\001\002\000\004\017\041\001" + + "\002\000\004\012\042\001\002\000\004\050\043\001\002" + + "\000\042\005\uffe2\012\uffe2\013\uffe2\014\uffe2\016\uffe2\024" + + "\uffe2\025\uffe2\027\uffe2\031\uffe2\050\uffe2\051\uffe2\053\uffe2" + + "\055\uffe2\060\uffe2\061\uffe2\063\uffe2\001\002\000\040\005" + + "\050\012\056\013\047\016\072\024\054\025\074\027\065" + + "\031\052\050\025\051\055\053\060\055\071\060\051\061" + + "\073\063\064\001\002\000\004\012\260\001\002\000\004" + + "\021\252\001\002\000\004\004\251\001\002\000\050\012" + + "\uffc9\016\245\017\uffc9\022\uffc9\032\uffc9\033\uffc9\034\uffc9" + + "\035\uffc9\036\uffc9\037\uffc9\040\uffc9\041\uffc9\042\uffc9\043" + + "\uffc9\044\uffc9\045\uffc9\046\uffc9\047\uffc9\050\uffc9\001\002" + + "\000\006\005\237\021\uffaf\001\002\000\004\005\225\001" + + "\002\000\046\012\uffcb\017\uffcb\022\uffcb\032\uffcb\033\uffcb" + + "\034\uffcb\035\uffcb\036\222\037\221\040\uffcb\041\uffcb\042" + + "\uffcb\043\uffcb\044\uffcb\045\uffcb\046\uffcb\047\uffcb\050\uffcb" + + "\001\002\000\026\005\050\016\072\051\100\053\104\055" + + "\101\056\103\057\105\060\102\061\073\063\064\001\002" + + "\000\006\005\167\021\uffb1\001\002\000\042\005\uffe1\012" + + "\uffe1\013\uffe1\014\uffe1\016\uffe1\024\uffe1\025\uffe1\027\uffe1" + + "\031\uffe1\050\uffe1\051\uffe1\053\uffe1\055\uffe1\060\uffe1\061" + + "\uffe1\063\uffe1\001\002\000\046\012\uffc7\017\uffc7\022\uffc7" + + "\032\uffc7\033\uffc7\034\uffc7\035\uffc7\036\uffc7\037\uffc7\040" + + "\uffc7\041\uffc7\042\uffc7\043\uffc7\044\uffc7\045\uffc7\046\uffc7" + + "\047\uffc7\050\uffc7\001\002\000\006\005\153\021\uffae\001" + + "\002\000\004\012\uffdf\001\002\000\042\012\uffce\017\uffce" + + "\022\uffce\032\uffce\033\uffce\034\147\035\150\040\uffce\041" + + "\uffce\042\uffce\043\uffce\044\uffce\045\uffce\046\uffce\047\uffce" + + "\050\uffce\001\002\000\036\012\uffd1\017\uffd1\022\uffd1\032" + + "\144\033\143\040\uffd1\041\uffd1\042\uffd1\043\uffd1\044\uffd1" + + "\045\uffd1\046\uffd1\047\uffd1\050\uffd1\001\002\000\046\012" + + "\uffc8\017\uffc8\022\uffc8\032\uffc8\033\uffc8\034\uffc8\035\uffc8" + + "\036\uffc8\037\uffc8\040\uffc8\041\uffc8\042\uffc8\043\uffc8\044" + + "\uffc8\045\uffc8\046\uffc8\047\uffc8\050\uffc8\001\002\000\004" + + "\012\137\001\002\000\004\012\136\001\002\000\004\012" + + "\uffe0\001\002\000\004\012\uffdd\001\002\000\006\005\134" + + "\021\uffb0\001\002\000\022\005\050\016\072\051\100\053" + + "\104\055\101\060\102\061\073\063\064\001\002\000\006" + + "\005\uffad\021\uffad\001\002\000\004\026\077\001\002\000" + + "\004\012\076\001\002\000\042\005\uffe3\012\uffe3\013\uffe3" + + "\014\uffe3\016\uffe3\024\uffe3\025\uffe3\027\uffe3\031\uffe3\050" + + "\uffe3\051\uffe3\053\uffe3\055\uffe3\060\uffe3\061\uffe3\063\uffe3" + + "\001\002\000\026\005\050\016\072\051\100\053\104\055" + + "\101\056\103\057\105\060\102\061\073\063\064\001\002" + + "\000\006\005\uffb1\021\uffb1\001\002\000\006\005\uffb0\021" + + "\uffb0\001\002\000\006\005\uffaf\021\uffaf\001\002\000\004" + + "\012\uffc6\001\002\000\006\005\uffae\021\uffae\001\002\000" + + "\004\012\uffc5\001\002\000\004\012\126\001\002\000\016" + + "\040\115\041\114\042\112\043\110\044\111\045\113\001" + + "\002\000\022\005\uffbe\016\uffbe\051\uffbe\053\uffbe\055\uffbe" + + "\060\uffbe\061\uffbe\063\uffbe\001\002\000\022\005\uffbd\016" + + "\uffbd\051\uffbd\053\uffbd\055\uffbd\060\uffbd\061\uffbd\063\uffbd" + + "\001\002\000\022\005\uffbf\016\uffbf\051\uffbf\053\uffbf\055" + + "\uffbf\060\uffbf\061\uffbf\063\uffbf\001\002\000\022\005\uffbc" + + "\016\uffbc\051\uffbc\053\uffbc\055\uffbc\060\uffbc\061\uffbc\063" + + "\uffbc\001\002\000\022\005\uffc0\016\uffc0\051\uffc0\053\uffc0" + + "\055\uffc0\060\uffc0\061\uffc0\063\uffc0\001\002\000\022\005" + + "\uffc1\016\uffc1\051\uffc1\053\uffc1\055\uffc1\060\uffc1\061\uffc1" + + "\063\uffc1\001\002\000\022\005\050\016\072\051\100\053" + + "\104\055\101\060\102\061\073\063\064\001\002\000\010" + + "\046\123\047\124\050\121\001\002\000\026\005\050\016" + + "\072\051\100\053\104\055\101\056\103\057\105\060\102" + + "\061\073\063\064\001\002\000\004\012\uffc2\001\002\000" + + "\004\012\uffc4\001\002\000\026\005\uffbb\016\uffbb\051\uffbb" + + "\053\uffbb\055\uffbb\056\uffbb\057\uffbb\060\uffbb\061\uffbb\063" + + "\uffbb\001\002\000\026\005\uffba\016\uffba\051\uffba\053\uffba" + + "\055\uffba\056\uffba\057\uffba\060\uffba\061\uffba\063\uffba\001" + + "\002\000\004\012\uffc3\001\002\000\004\050\043\001\002" + + "\000\040\005\050\012\056\013\130\016\072\024\054\025" + + "\074\027\065\031\052\050\025\051\055\053\060\055\071" + + "\060\051\061\073\063\064\001\002\000\004\025\131\001" + + "\002\000\004\012\uffd8\001\002\000\004\017\133\001\002" + + "\000\046\012\uffca\017\uffca\022\uffca\032\uffca\033\uffca\034" + + "\uffca\035\uffca\036\uffca\037\uffca\040\uffca\041\uffca\042\uffca" + + "\043\uffca\044\uffca\045\uffca\046\uffca\047\uffca\050\uffca\001" + + "\002\000\004\012\135\001\002\000\014\050\uffef\051\uffef" + + "\053\uffef\055\uffef\060\uffef\001\002\000\042\005\uffe4\012" + + "\uffe4\013\uffe4\014\uffe4\016\uffe4\024\uffe4\025\uffe4\027\uffe4" + + "\031\uffe4\050\uffe4\051\uffe4\053\uffe4\055\uffe4\060\uffe4\061" + + "\uffe4\063\uffe4\001\002\000\004\050\043\001\002\000\040" + + "\005\050\012\056\013\141\016\072\024\054\025\074\027" + + "\065\031\052\050\025\051\055\053\060\055\071\060\051" + + "\061\073\063\064\001\002\000\004\027\142\001\002\000" + + "\004\012\uffd7\001\002\000\022\005\050\016\072\051\100" + + "\053\104\055\101\060\102\061\073\063\064\001\002\000" + + "\022\005\050\016\072\051\100\053\104\055\101\060\102" + + "\061\073\063\064\001\002\000\032\012\uffd3\017\uffd3\022" + + "\uffd3\040\uffd3\041\uffd3\042\uffd3\043\uffd3\044\uffd3\045\uffd3" + + "\046\uffd3\047\uffd3\050\uffd3\001\002\000\032\012\uffd2\017" + + "\uffd2\022\uffd2\040\uffd2\041\uffd2\042\uffd2\043\uffd2\044\uffd2" + + "\045\uffd2\046\uffd2\047\uffd2\050\uffd2\001\002\000\022\005" + + "\050\016\072\051\100\053\104\055\101\060\102\061\073" + + "\063\064\001\002\000\022\005\050\016\072\051\100\053" + + "\104\055\101\060\102\061\073\063\064\001\002\000\036" + + "\012\uffcf\017\uffcf\022\uffcf\032\uffcf\033\uffcf\040\uffcf\041" + + "\uffcf\042\uffcf\043\uffcf\044\uffcf\045\uffcf\046\uffcf\047\uffcf" + + "\050\uffcf\001\002\000\036\012\uffd0\017\uffd0\022\uffd0\032" + + "\uffd0\033\uffd0\040\uffd0\041\uffd0\042\uffd0\043\uffd0\044\uffd0" + + "\045\uffd0\046\uffd0\047\uffd0\050\uffd0\001\002\000\006\023" + + "\156\050\154\001\002\000\004\012\ufff0\001\002\000\004" + + "\012\166\001\002\000\004\020\157\001\002\000\006\052" + + "\160\063\162\001\002\000\010\020\uffa9\052\uffa9\063\uffa9" + + "\001\002\000\010\020\164\052\163\063\165\001\002\000" + + "\010\020\uffaa\052\uffaa\063\uffaa\001\002\000\010\020\uffab" + + "\052\uffab\063\uffab\001\002\000\004\012\ufff1\001\002\000" + + "\010\020\uffac\052\uffac\063\uffac\001\002\000\014\050\ufff2" + + "\051\ufff2\053\ufff2\055\ufff2\060\ufff2\001\002\000\006\023" + + "\172\050\170\001\002\000\004\012\ufff3\001\002\000\004" + + "\012\174\001\002\000\022\005\050\016\072\051\100\053" + + "\104\055\101\060\102\061\073\063\064\001\002\000\004" + + "\012\ufff4\001\002\000\014\050\ufff5\051\ufff5\053\ufff5\055" + + "\ufff5\060\ufff5\001\002\000\004\012\176\001\002\000\004" + + "\050\043\001\002\000\040\005\050\012\056\013\200\016" + + "\072\024\054\025\074\027\065\031\052\050\025\051\055" + + "\053\060\055\071\060\051\061\073\063\064\001\002\000" + + "\004\024\201\001\002\000\004\050\202\001\002\000\004" + + "\030\uffda\001\002\000\004\030\204\001\002\000\006\012" + + "\206\024\207\001\002\000\004\012\uffdc\001\002\000\004" + + "\050\043\001\002\000\026\005\050\016\072\051\100\053" + + "\104\055\101\056\103\057\105\060\102\061\073\063\064" + + "\001\002\000\004\012\211\001\002\000\004\050\043\001" + + "\002\000\040\005\050\012\056\013\213\016\072\024\054" + + "\025\074\027\065\031\052\050\025\051\055\053\060\055" + + "\071\060\051\061\073\063\064\001\002\000\004\030\214" + + "\001\002\000\004\024\215\001\002\000\004\030\uffdb\001" + + "\002\000\040\005\050\012\056\013\217\016\072\024\054" + + "\025\074\027\065\031\052\050\025\051\055\053\060\055" + + "\071\060\051\061\073\063\064\001\002\000\004\030\220" + + "\001\002\000\004\012\uffd9\001\002\000\022\005\050\016" + + "\072\051\100\053\104\055\101\060\102\061\073\063\064" + + "\001\002\000\022\005\050\016\072\051\100\053\104\055" + + "\101\060\102\061\073\063\064\001\002\000\042\012\uffcd" + + "\017\uffcd\022\uffcd\032\uffcd\033\uffcd\034\uffcd\035\uffcd\040" + + "\uffcd\041\uffcd\042\uffcd\043\uffcd\044\uffcd\045\uffcd\046\uffcd" + + "\047\uffcd\050\uffcd\001\002\000\042\012\uffcc\017\uffcc\022" + + "\uffcc\032\uffcc\033\uffcc\034\uffcc\035\uffcc\040\uffcc\041\uffcc" + + "\042\uffcc\043\uffcc\044\uffcc\045\uffcc\046\uffcc\047\uffcc\050" + + "\uffcc\001\002\000\004\016\226\001\002\000\024\005\050" + + "\016\072\050\230\051\100\053\104\055\101\060\102\061" + + "\073\063\064\001\002\000\006\017\uffb9\022\235\001\002" + + "\000\004\017\uffb8\001\002\000\004\017\233\001\002\000" + + "\006\017\uffb7\022\uffb7\001\002\000\004\012\234\001\002" + + "\000\004\012\uffd4\001\002\000\022\005\050\016\072\051" + + "\100\053\104\055\101\060\102\061\073\063\064\001\002" + + "\000\006\017\uffb6\022\uffb6\001\002\000\006\023\242\050" + + "\240\001\002\000\004\012\uffe9\001\002\000\004\012\244" + + "\001\002\000\004\054\243\001\002\000\004\012\uffea\001" + + "\002\000\014\050\uffeb\051\uffeb\053\uffeb\055\uffeb\060\uffeb" + + "\001\002\000\024\005\050\016\072\050\230\051\100\053" + + "\104\055\101\060\102\061\073\063\064\001\002\000\004" + + "\017\247\001\002\000\004\012\250\001\002\000\046\012" + + "\uffd6\017\uffd6\022\uffd6\032\uffd6\033\uffd6\034\uffd6\035\uffd6" + + "\036\uffd6\037\uffd6\040\uffd6\041\uffd6\042\uffd6\043\uffd6\044" + + "\uffd6\045\uffd6\046\uffd6\047\uffd6\050\uffd6\001\002\000\020" + + "\012\uffe8\050\uffe8\051\uffe8\053\uffe8\055\uffe8\060\uffe8\061" + + "\uffe8\001\002\000\004\005\253\001\002\000\004\016\254" + + "\001\002\000\024\005\050\016\072\050\230\051\100\053" + + "\104\055\101\060\102\061\073\063\064\001\002\000\004" + + "\017\256\001\002\000\004\012\257\001\002\000\046\012" + + "\uffd5\017\uffd5\022\uffd5\032\uffd5\033\uffd5\034\uffd5\035\uffd5" + + "\036\uffd5\037\uffd5\040\uffd5\041\uffd5\042\uffd5\043\uffd5\044" + + "\uffd5\045\uffd5\046\uffd5\047\uffd5\050\uffd5\001\002\000\004" + + "\012\uffde\001\002\000\020\012\261\050\263\051\100\053" + + "\104\055\101\060\102\061\073\001\002\000\004\011\307" + + "\001\002\000\004\011\uffe6\001\002\000\004\005\265\001" + + "\002\000\004\016\266\001\002\000\016\050\271\051\100" + + "\053\104\055\101\060\102\061\073\001\002\000\006\017" + + "\uffb5\022\304\001\002\000\004\017\274\001\002\000\004" + + "\017\uffb4\001\002\000\004\005\273\001\002\000\006\017" + + "\uffb2\022\uffb2\001\002\000\004\012\275\001\002\000\004" + + "\050\043\001\002\000\040\005\050\012\056\014\277\016" + + "\072\024\054\025\074\027\065\031\052\050\025\051\055" + + "\053\060\055\071\060\051\061\073\063\064\001\002\000" + + "\022\005\050\016\072\051\100\053\104\055\101\060\102" + + "\061\073\063\064\001\002\000\004\012\301\001\002\000" + + "\004\013\302\001\002\000\004\005\303\001\002\000\004" + + "\011\uffe7\001\002\000\014\051\100\053\104\055\101\060" + + "\102\061\073\001\002\000\004\005\306\001\002\000\006" + + "\017\uffb3\022\uffb3\001\002\000\004\002\001\001\002\000" + + "\004\011\uffe5\001\002\000\004\012\312\001\002\000\006" + + "\012\ufff7\061\ufff7\001\002\000\006\012\ufffa\061\ufffa\001" + + "\002\000\004\005\315\001\002\000\004\017\316\001\002" + + "\000\004\012\317\001\002\000\016\012\ufffd\050\ufffd\051" + + "\ufffd\053\ufffd\055\ufffd\060\ufffd\001\002" }); + + /** Access to parse-action table. */ + public short[][] action_table() {return _action_table;} + + /** reduce_goto table. */ + protected static final short[][] _reduce_table = + unpackFromStrings(new String[] { + "\000\315\000\006\002\004\003\003\001\001\000\004\004" + + "\014\001\001\000\002\001\001\000\002\001\001\000\002" + + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + + "\001\000\002\001\001\000\002\001\001\000\014\005\025" + + "\006\016\010\026\011\027\012\022\001\001\000\002\001" + + "\001\000\014\005\312\006\016\010\026\011\027\012\022" + + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + + "\001\000\014\005\310\006\016\010\026\011\027\012\022" + + "\001\001\000\002\001\001\000\002\001\001\000\004\013" + + "\034\001\001\000\014\005\032\006\016\010\026\011\027" + + "\012\022\001\001\000\014\005\030\006\016\010\026\011" + + "\027\012\022\001\001\000\002\001\001\000\002\001\001" + + "\000\002\001\001\000\002\001\001\000\006\014\261\034" + + "\263\001\001\000\002\001\001\000\002\001\001\000\002" + + "\001\001\000\002\001\001\000\004\015\043\001\001\000" + + "\002\001\001\000\040\005\065\006\016\010\026\011\027" + + "\012\022\016\074\017\066\020\060\021\056\022\067\023" + + "\044\024\062\025\061\026\052\034\045\001\001\000\002" + + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\000\020\021\056\023\106\024\062\025\061\026\052\027" + + "\174\034\045\001\001\000\002\001\001\000\002\001\001" + + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + + "\001\000\002\001\001\000\016\021\056\023\131\024\062" + + "\025\061\026\052\034\045\001\001\000\002\001\001\000" + + "\002\001\001\000\002\001\001\000\002\001\001\000\020" + + "\021\056\023\106\024\062\025\061\026\052\027\105\034" + + "\045\001\001\000\002\001\001\000\002\001\001\000\002" + + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + + "\001\000\002\001\001\000\004\030\115\001\001\000\002" + + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + + "\001\000\002\001\001\000\002\001\001\000\016\021\056" + + "\023\116\024\062\025\061\026\052\034\045\001\001\000" + + "\006\031\117\047\121\001\001\000\020\021\056\023\106" + + "\024\062\025\061\026\052\027\124\034\045\001\001\000" + + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + + "\001\001\000\002\001\001\000\004\015\126\001\001\000" + + "\040\005\065\006\016\010\026\011\027\012\022\016\074" + + "\017\066\020\060\021\056\022\067\023\044\024\062\025" + + "\061\026\052\034\045\001\001\000\002\001\001\000\002" + + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + + "\001\000\002\001\001\000\002\001\001\000\004\015\137" + + "\001\001\000\040\005\065\006\016\010\026\011\027\012" + + "\022\016\074\017\066\020\060\021\056\022\067\023\044" + + "\024\062\025\061\026\052\034\045\001\001\000\002\001" + + "\001\000\002\001\001\000\014\021\056\024\145\025\061" + + "\026\052\034\045\001\001\000\014\021\056\024\144\025" + + "\061\026\052\034\045\001\001\000\002\001\001\000\002" + + "\001\001\000\012\021\056\025\151\026\052\034\045\001" + + "\001\000\012\021\056\025\150\026\052\034\045\001\001" + + "\000\002\001\001\000\002\001\001\000\004\044\154\001" + + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\000\004\035\160\001\001\000\002\001\001\000\002\001" + + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\000\002\001\001\000\002\001\001\000\004\042\170\001" + + "\001\000\002\001\001\000\002\001\001\000\016\021\056" + + "\023\172\024\062\025\061\026\052\034\045\001\001\000" + + "\002\001\001\000\002\001\001\000\002\001\001\000\004" + + "\015\176\001\001\000\040\005\065\006\016\010\026\011" + + "\027\012\022\016\074\017\066\020\060\021\056\022\067" + + "\023\044\024\062\025\061\026\052\034\045\001\001\000" + + "\002\001\001\000\004\036\202\001\001\000\002\001\001" + + "\000\004\037\204\001\001\000\002\001\001\000\002\001" + + "\001\000\004\015\215\001\001\000\020\021\056\023\106" + + "\024\062\025\061\026\052\027\207\034\045\001\001\000" + + "\002\001\001\000\004\015\211\001\001\000\040\005\065" + + "\006\016\010\026\011\027\012\022\016\074\017\066\020" + + "\060\021\056\022\067\023\044\024\062\025\061\026\052" + + "\034\045\001\001\000\002\001\001\000\002\001\001\000" + + "\002\001\001\000\040\005\065\006\016\010\026\011\027" + + "\012\022\016\074\017\066\020\060\021\056\022\067\023" + + "\044\024\062\025\061\026\052\034\045\001\001\000\002" + + "\001\001\000\002\001\001\000\010\021\056\026\223\034" + + "\045\001\001\000\010\021\056\026\222\034\045\001\001" + + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + + "\022\021\056\023\231\024\062\025\061\026\052\032\230" + + "\034\045\041\226\001\001\000\002\001\001\000\002\001" + + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\000\002\001\001\000\016\021\056\023\235\024\062\025" + + "\061\026\052\034\045\001\001\000\002\001\001\000\004" + + "\046\240\001\001\000\002\001\001\000\002\001\001\000" + + "\002\001\001\000\002\001\001\000\002\001\001\000\022" + + "\021\056\023\231\024\062\025\061\026\052\032\245\034" + + "\045\041\226\001\001\000\002\001\001\000\002\001\001" + + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + + "\002\001\001\000\022\021\056\023\231\024\062\025\061" + + "\026\052\032\254\034\045\041\226\001\001\000\002\001" + + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\000\006\014\307\034\263\001\001\000\002\001\001\000" + + "\002\001\001\000\002\001\001\000\002\001\001\000\010" + + "\033\267\034\271\040\266\001\001\000\002\001\001\000" + + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + + "\001\001\000\002\001\001\000\004\015\275\001\001\000" + + "\040\005\065\006\016\010\026\011\027\012\022\016\074" + + "\017\066\020\060\021\056\022\067\023\044\024\062\025" + + "\061\026\052\034\045\001\001\000\016\021\056\023\277" + + "\024\062\025\061\026\052\034\045\001\001\000\002\001" + + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\000\004\034\304\001\001\000\002\001\001\000\002\001" + + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + + "\002\001\001\000\002\001\001\000\002\001\001" }); + + /** Access to reduce_goto table. */ + public short[][] reduce_table() {return _reduce_table;} + + /** Instance of action encapsulation class. */ + protected CUP$parser$actions action_obj; + + /** Action encapsulation object initializer. */ + protected void init_actions() + { + action_obj = new CUP$parser$actions(this); + } + + /** Invoke a user supplied parse action. */ + public java_cup.runtime.Symbol do_action( + int act_num, + java_cup.runtime.lr_parser parser, + java.util.Stack stack, + int top) + throws java.lang.Exception + { + /* call code in generated class */ + return action_obj.CUP$parser$do_action(act_num, parser, stack, top); + } + + /** Indicates start state. */ + public int start_state() {return 0;} + /** Indicates start production. */ + public int start_production() {return 1;} + + /** EOF Symbol index. */ + public int EOF_sym() {return 0;} + + /** error Symbol index. */ + public int error_sym() {return 1;} + + + + public void report_error(String message, Object info) { + StringBuilder m = new StringBuilder("Error "); + + if (info instanceof java_cup.runtime.Symbol) + m.append( "("+info.toString()+")" ); + + m.append(" : "+message); + + System.out.println(m); + } + + public void report_fatal_error(String message, Object info) { + report_error(message, info); + throw new RuntimeException("Fatal Syntax Error"); + } + +} + +/** Cup generated class to encapsulate user supplied action code.*/ +class CUP$parser$actions { + private final parser parser; + + /** Constructor */ + CUP$parser$actions(parser parser) { + this.parser = parser; + } + + /** Method 0 with the actual generated action code for actions 0 to 300. */ + public final java_cup.runtime.Symbol CUP$parser$do_action_part00000000( + int CUP$parser$act_num, + java_cup.runtime.lr_parser CUP$parser$parser, + java.util.Stack CUP$parser$stack, + int CUP$parser$top) + throws java.lang.Exception + { + /* Symbol object for return from actions */ + java_cup.runtime.Symbol CUP$parser$result; + + /* select the action based on the action number */ + switch (CUP$parser$act_num) + { + /*. . . . . . . . . . . . . . . . . . . .*/ + case 0: // Prog ::= robo load dcl start_func func End_Of_File + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("Prog",0, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 1: // $START ::= Prog EOF + { + Object RESULT =null; + Location start_valxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).getLeft(); + Location start_valxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).getRight(); + Object start_val = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + RESULT = start_val; + CUP$parser$result = parser.getSymbolFactory().newSymbol("$START",0, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + /* ACCEPT */ + CUP$parser$parser.done_parsing(); + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 2: // robo ::= IDENTIFIER COLON EOL + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("robo",1, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 3: // robo ::= robo EOL + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("robo",1, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 4: // load ::= LOAD lparen IDENTIFIER rparen EOL + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("load",2, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 5: // load ::= load EOL + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("load",2, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 6: // load ::= lambda + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("load",2, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 7: // dcl ::= num_dcl dcl + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("dcl",3, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 8: // dcl ::= string_dcl dcl EOL + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("dcl",3, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 9: // dcl ::= bool_dcl dcl EOL + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("dcl",3, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 10: // dcl ::= coord_dcl dcl EOL + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("dcl",3, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 11: // dcl ::= lambda + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("dcl",3, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 12: // num_dcl ::= NUM IDENTIFIER num_opt EOL + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("num_dcl",4, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 13: // num_opt ::= ASSIGN expr + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("num_opt",32, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 14: // num_opt ::= lambda + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("num_opt",32, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 15: // string_dcl ::= STRING IDENTIFIER string_opt EOL + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("string_dcl",6, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 16: // string_opt ::= ASSIGN quote string_lit quote + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("string_opt",34, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 17: // string_opt ::= lambda + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("string_opt",34, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 18: // bool_dcl ::= BOOL IDENTIFIER EOL + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_dcl",7, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 19: // bool_opt ::= ASSIGN TRUE + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_opt",35, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 20: // bool_opt ::= ASSIGN FALSE + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_opt",35, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 21: // bool_opt ::= lambda + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_opt",35, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 22: // coord_dcl ::= COORD IDENTIFIER coord_opt EOL + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("coord_dcl",8, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 23: // coord_opt ::= ASSIGN coord_lit + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("coord_opt",36, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 24: // coord_opt ::= lambda + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("coord_opt",36, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 25: // start_func ::= VOID START lparen rparen EOL func_body END START + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("start_func",9, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 26: // func ::= type IDENTIFIER lparen params rparen EOL func_body RETURN expr EOL END IDENTIFIER + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("func",10, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-11)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 27: // func ::= lambda + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("func",10, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 28: // func ::= EOL func + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("func",10, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 29: // func_body ::= func_body dcl EOL + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("func_body",11, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 30: // func_body ::= func_body stmt EOL + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("func_body",11, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 31: // func_body ::= lambda + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("func_body",11, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 32: // func_body ::= func_body EOL + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("func_body",11, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 33: // stmt ::= if_stmt + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("stmt",12, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 34: // stmt ::= loop_stmt + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("stmt",12, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 35: // stmt ::= expr EOL + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("stmt",12, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 36: // stmt ::= sig_stmt + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("stmt",12, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 37: // if_stmt ::= IF cond EOL func_body END IF else_if else + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("if_stmt",13, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 38: // else_if ::= else_if ELSE IF cond EOL func_body END ELSE IF + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("else_if",28, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-8)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 39: // else_if ::= lambda + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("else_if",28, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 40: // else ::= ELSE EOL func_body END ELSE + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("else",29, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 41: // loop_stmt ::= REPEAT UNTIL cond EOL func_body END REPEAT + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("loop_stmt",14, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 42: // loop_stmt ::= FOREVER EOL func_body END FOREVER + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("loop_stmt",14, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 43: // func_call ::= IDENTIFIER lparen args rparen EOL + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("func_call",15, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 44: // func_call ::= type dot IDENTIFIER lparen args rparen EOL + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("func_call",15, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 45: // sig_stmt ::= SIGNAL IDENTIFIER lparen args rparen EOL + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("sig_stmt",16, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 46: // expr ::= term plus term + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("expr",17, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 47: // expr ::= term minus term + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("expr",17, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 48: // expr ::= term + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("expr",17, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 49: // term ::= factor asterix factor + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("term",18, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 50: // term ::= factor slash factor + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("term",18, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 51: // term ::= factor + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("term",18, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 52: // factor ::= exp hat exp + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("factor",19, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 53: // factor ::= exp SQRT exp + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("factor",19, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 54: // factor ::= exp + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("factor",19, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 55: // exp ::= lparen expr rparen + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("exp",20, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 56: // exp ::= IDENTIFIER + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("exp",20, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 57: // exp ::= num_lit + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("exp",20, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 58: // exp ::= func_call + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("exp",20, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 59: // cond ::= TRUE + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("cond",21, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 60: // cond ::= FALSE + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("cond",21, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 61: // cond ::= expr bool_op expr cond_opt + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("cond",21, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 62: // cond_opt ::= bool_cnd cond + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("cond_opt",37, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 63: // cond_opt ::= lambda + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("cond_opt",37, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 64: // bool_op ::= IS + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_op",22, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 65: // bool_op ::= NOT + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_op",22, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 66: // bool_op ::= GT + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_op",22, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 67: // bool_op ::= LT + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_op",22, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 68: // bool_op ::= GTE + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_op",22, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 69: // bool_op ::= LTE + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_op",22, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 70: // bool_cnd ::= AND + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_cnd",23, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 71: // bool_cnd ::= OR + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_cnd",23, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 72: // args ::= args_list + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("args",24, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 73: // args ::= lambda + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("args",24, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 74: // args_list ::= expr + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("args_list",31, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 75: // args_list ::= args_list comma expr + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("args_list",31, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 76: // params ::= params_list + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("params",25, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 77: // params ::= lambda + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("params",25, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 78: // params_list ::= params_list comma type IDENTIFIER + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("params_list",30, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 79: // params_list ::= type IDENTIFIER + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("params_list",30, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 80: // type ::= NUM + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("type",26, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 81: // type ::= BOOL + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("type",26, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 82: // type ::= COORD + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("type",26, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 83: // type ::= STRING + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("type",26, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 84: // type ::= VOID + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("type",26, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 85: // string_lit ::= string_lit num_lit + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("string_lit",27, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 86: // string_lit ::= string_lit char_lit + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("string_lit",27, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 87: // string_lit ::= num_lit + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("string_lit",27, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 88: // string_lit ::= char_lit + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("string_lit",27, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /* . . . . . .*/ + default: + throw new Exception( + "Invalid action number "+CUP$parser$act_num+"found in internal parse table"); + + } + } /* end of method */ + + /** Method splitting the generated action code into several parts. */ + public final java_cup.runtime.Symbol CUP$parser$do_action( + int CUP$parser$act_num, + java_cup.runtime.lr_parser CUP$parser$parser, + java.util.Stack CUP$parser$stack, + int CUP$parser$top) + throws java.lang.Exception + { + return CUP$parser$do_action_part00000000( + CUP$parser$act_num, + CUP$parser$parser, + CUP$parser$stack, + CUP$parser$top); + } +} + diff --git a/compiler/src/sym.class b/compiler/src/sym.class new file mode 100644 index 0000000000000000000000000000000000000000..76790d31c2fb3664eaadd55942c47f9393bba6e2 GIT binary patch literal 1561 zcmYk*X;<1n6b9fKQE@}Xec$&Dm+pJS0BIx9B+$Jy0tz;Z4bap6wSMRi=#T2@JCoXT zzujk+cW!3j_n)7?7-L7wi?c6r=5p52aGgetGp=!#NC$qS>G;i} z&U4nLSz_ZHDqW5(BJXP}Xv%Z@F>IJ(!73U&HVpY`+gMV_+nU6Ph%20mHR~wVXh|1( zR4hx&=EX!(oRbmN5Vocb!<3!u$@OxaAwH)n@~B?U;u*tKi>lMO!!QU%GRH2b(X58`?}Ag<<=!}9)fei+O3PNF*JwjT(a>ZIDbBjfK@e6-Ze2da z7JAA?Pql=I@P9-?cCH(;i*`h)x+S|96JHTsZ8v)GTi$Kf0Ro~QhUj6Fv#xT@32$dN za4FFfb|N~X{EOQajXT~&MLy^n7G>qTEQm1NXY}hD$Dx%#c09mYk9MNsJu+H!V=+uN zet4V>UOV5Ml * + * All rights reserved. * + * * + * License: BSD * + * * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + + +/* �3.3 of the Java Language Specification : + +UnicodeInputCharacter: + + UnicodeEscape + + RawInputCharacter + + UnicodeEscape: + + \ UnicodeMarker HexDigit HexDigit HexDigit HexDigit + + UnicodeMarker: + + u + + UnicodeMarker u + + RawInputCharacter: + + any Unicode character + + HexDigit: one of + + 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F + +only an even number of '\' is eligible to start a Unicode escape sequence + +*/ + +import java.io.*; + +%% + +%public +%final +%class UnicodeEscapes +%extends FilterReader + +%int +%function read + +%16bit + +UnicodeEscape = {UnicodeMarker} {HexDigit} {4} +UnicodeMarker = "u"+ +HexDigit = [0-9a-fA-F] + +%state DIGITS + +%init{ + super(in); +%init} + +%{ + private boolean even; + + private int value() { + int r = 0; + + for (int k = zzMarkedPos-4; k < zzMarkedPos; k++) { + int c = zzBuffer[k]; + + if (c >= 'a') + c-= 'a'-10; + else if (c >= 'A') + c-= 'A'-10; + else + c-= '0'; + + r <<= 4; + r += c; + } + + return r; + } + + public int read(char cbuf[], int off, int len) throws IOException { + if ( !ready() ) return -1; + + len+= off; + + for (int i=off; i { + \\ { even = false; return '\\'; } + \\ / \\ { even = !even; return '\\'; } + \\ / "u" { + if (even) { + even = false; + return '\\'; + } + else + yybegin(DIGITS); + } + [^] { return zzBuffer[zzStartRead]; } + + <> { return -1; } +} + + { + {UnicodeEscape} { yybegin(YYINITIAL); return value(); } + [^] { throw new Error("incorrect Unicode escape"); } + + <> { throw new Error("EOF in Unicode escape"); } +} From c10aea46944fdbc2da25acc6c83bc1204dc78531 Mon Sep 17 00:00:00 2001 From: Lee Paludan Date: Fri, 11 Mar 2016 08:45:45 +0100 Subject: [PATCH 33/55] Added jflex and cup jar files --- compiler/src/cup.jar | Bin 0 -> 97217 bytes compiler/src/jflex.jar | Bin 0 -> 1053521 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 compiler/src/cup.jar create mode 100644 compiler/src/jflex.jar diff --git a/compiler/src/cup.jar b/compiler/src/cup.jar new file mode 100644 index 0000000000000000000000000000000000000000..a39d5b30e8961eac4452bb155270e20790196ee4 GIT binary patch literal 97217 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Ì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⃥|AYP9$;Qhp3 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�Bz0r^lhm%**+w+r%PC^%yAxRqjNdDwsVE)Sjg(ByWb}K=|Xfc zx3{FDGgp(6;#m|@5Bjyh5{t0`caY&Xe4}t<32vO&VN%*KofuUz;h>&Au#xuk9%Qb* z=={jUab*fqUvd|0z<{D3$={0O?!bES=jTRWj?xBnP853;&&Lu-BCATgT^=S6%B_LH`1)Z|A8+xI_Gf|LVP7 z9H7|Izq})v60G@>Kb|9}*~&had)?&Mwl9`dfU~_D!E~sHzP{+%U6@oSeBtq7vUUvY z@nOsL{%R}1J-3F3i&Pl1ObP|G8l9S)xqeMKh_P=v$lM8X_yv&WvK`K?uwvO&>^UsL zlib~ij`65V4YhVRS!HG;tM|`1wiCA_f$QnG9)7;`JE85C^1lJ(259`^89;EucZwl> z_-i9PHERB-l=+w1F?idb9Uwe){>xQ{yB_UWw3+PR`vE%>dtXwKi;-_oNi{GIQ{=lq zxPKY!aFq=Ie?HY1AJs&#a=5<$pCa=@5DIzspi6AWG8@90m=0-gFH5L&gD!w`$5hd@UO3d6s>ve?8Q z`43bp6ld9*hF~uA%m)j24`^F|6cOw{G`ZL_s5l=!!%9K#LJ1qfuzdOmo9}Pg%V0

XB@akD0F{Wkq<1esj!3dVJ>W0x{lCR z&~_r^y|5P0jWBD_S^jn+({h(`!vDob!oK)_>ZKs*{Hm1(KLLXUCF|duPxwDLd+WG3 zmaX4=fB;Fb1a}P(g1Zj{g1fuBJHcHN2<{#{1b3G}fFZa94L*2q_qS(f@8_Q9+~>Ua ze(oPM)oXrLy&9^kyL#4l6)?O5?Gq}Zd_m>_rGth+%%9Q5D8e)dFvvfM7H$6I!skN! z7vC!7%f%YP1fX5In_KBqy8j`{Exp@HI7}7S# z6)qay3+_JPZ5N9nHVgU@0u3l3fQ9^dD&WK>oKqJ(`LnUqdTmI&f-DQ_4tQ-y$b$00;rn$J%d*w?GD-f4k7eT1lzVY#5E@hViAY;f z;LSy>L|i+>4@&Ng&l^E3aTA9Hkut?65R<2}h&zSwIK!pAv(9v)pNMv)ERCy&cmb2x zXLFyLT$AWTptQ|1~n-Vem$(Ukqb1o(+FCV{wk+$2N`D!>-4D@+qdXwe-}N0kM! zHf5|KoeQuP;i77XaQ$9Fj_ZLaL3t)(GKJ+Sdw}-{guIcN5`A$fkXOpc0>f9?)t z62QzFm<==6pv?vT79kb8puCL>h8X?1?Z}hU#u)*#{HRPZpmXZH105a>M`M^z6k;_@%QTTUTS@*5{#bJuT+Xc>-8QmXe z2cNBNI{l(_ye$m1J^iwu1vg)5$acPlRp=9Y9w{H>9;#$u802FAnZq&Sa4f=cN5ch( zkL-?GhDLuJYNnWA&NRl4*1}Kj%rsn`S?PtOyi~sn!vQ+IB1Woq8m0Hc%>mhFiv3Np z+22=D0AB#n*wZ7BHmE$nU6}SW(HO!u0xBpBL>0gqfbjzK1dc-Z$@+_;WDAhX-#rqb zOaH!pNxIN1pLl>61Js52KVyxdZNr_xA%R2#UUuPkAwLBL1-u}KPlX5W9iVDefqIZ+ zQM{GSe6l-8cW2ktt_8f9YA^3SS-x}OYSBWwm~o(hQ4kIsxBARu9^)yz$c`gldba#1 z{N`kJUA($FF)(0|{QCuu!2-gE{{-p-frUXYo`isux=_jC6hXTYUb0BDAoKtfMT9R1 zO>j{ljL(Q;&n<&QW zA&)><{suKegdAZsWO`z@PE(!|aW|^*m-_iI2*b3f9SH@~v}IuG;ia>R&WiM_i`@bRS$E9DY2 z_i?n@>kBXC(m7N(Nkun|DLGqJj*i&l@h##CIm^(F#lAy0V3}nFshH>2-?@EfC9&A}aef{cmG7OK`5j@*vUf%RO#)zX*0H2e&5Mu)2am&BA&=AH>)1(!$8CwoU=ZnI zSFo&S*OK~Yt4nhsr0J64DGRdz5|(!UF9)tGXVB=b$?>Na3_}EmeN_c4#cL~YC10_c zaAKeLB%q6uLXg)WtfFDThEkim||YuSZ|x@h7}>f=Aai0yA521iZ)e zi5zj&b^03{X@BpBv6x2;B;Q!(F2#*a9j8?1M+6M;2P%26=4!q?{*+xifr~D0MOzU9 z9`WJc6Q>w9-vc%?b3fs~jwH{|GBJBV zN26=n6Fj_LL2g9a;}74_{4IAK$iqw-UNRf|GxIw4BF5n8M9!AgUBFM^_|tw`k%hM5 zCytv>Ii0Sj%KEx<=ho5>ZrJ^djlk8NbN?HUS$BZ1)vIu2H|e&pOw;bZypjU?^nLH$ z@?|$?i77^nLw|Z=Or=yDfzRO&4A|)1+}rH7(6ayO@e`SZ0x7r)F2d=F>v@+47VQ}Y zu$Y;Ckt<7K2Hm}E+S?Hd6JcB5@~|Fz9^J6~KF2A-Xm!)p)om7H-!PL|$4`Gf$zT_k z4u7%d`U*U(EIB(g&K+3y>~sCP5A%jN-lAT9Z!Y(ciCI1G{87&1&^>C^O9DyGM8z6_ zg93{RWHtU8=GC~3zTmGaz2B7cSUj}r?Y%WD;%a7}_wFZ~=iS0MOzQC+|GPlFDLF4x07x_*1bx_+%egWmKi^Oev;Rj2z_iKe@y zd|kgsRwn-=o|H?$ZyOjnP-iK9!mg!KCs>N23t!4+$>gWDB=@nD>l60Z znGb|p?Z=Z%wiJSj&SkJtTT+5jxftY(=bNy*>#XQLl~~XPS)D3lPbL@A$+pW(rZzAQ z8_qXyL|WZW5Eo_1u*$Y3ucf*(Q?m%R)CE|L#s^s)Dq~J|P~)gDhIZ;Crc!S9x(Cxv+wi(Y>TxA&q3MicEzj!jy<9CwrXD_7bgIR%r4iR@xl|D8=&l%l2LasP>O1(S}6 zeFYQn1c^evK>`2d+IvCRUb}+Hy*x(2IO$Gq-PNKb;eH&cLgeywOym|?(K!0fnA36Q zD#wispI00DWXZaw{>~1^jg%Kx)I(gh5K}gDviPGUz13MTPJe_8qO?z;SD`tg^_BFZ z^!;lw=q+=Sx}GPWN;@K+HezbOy)ApEQKbGkM8jOY%0~l}etVSu zM}&u;o7nme>oxw(A?pHb-6U&2E5nRQg~@hjzjbu(BWWpr*ahzyk1@Ko&?T^KWaA|8>5#QUS}2#*L&{-a*YCZFv(oL|Gf!6^_eM+-4*950Epl;GnW`A@3;c8m-V9v*0t>%#@tAR8~Kba*}CL(1K zZO-zTmW?{SC+mQ;AGx(D#=I5LWv~sbbfaEPtbtIf8D08K zt!~oV5@)~Gd^pc{##XCL!sdcu-g7vv_oi-hD6f4+SF23J=BHNOt+pKQ-i)>#?!9?A zQ{=gAIXKd>mEHhbGm%(#X5U-4$l44ZASd(*tUrm*?Kk+`wugXc0_)W0)SS z&t+(+wdv7f2(OQ0NbZ@p#2qxUV~E^8nD+om!zsPanx_`k#MAIF#YaG)%@TQTXU7I? z7!!MM8gKz0N6<~j4{JoV7%G2D;ttaDC-IF!eXU8R)9+JuJIzYA7w9(B@8t;C zNwoo!1k9weml|`P2H0fm2|^zX3_*7AYCeAQM>O3Sqx< zb*}5quFlr*flHg4#s6;fm*ISK;Pt}x5@0@qnQypQ{D}~VQaht^(T0}$AV`}ICbkHt zjjIb?cgI30!B&7(%(++$e5x~xY4bBY786u5c>MTz+ds|-@z#D^ zZ%nAo@W@GU`ODb(@sgil;rqj;sSnnnH(NFAW0VY!$Alj=4Z*Yt8J1fKyRcHdoKJx3tSynzXd*S+2LVi&}ygm*_Y;?GG`v zg&W_a*oicf;b<#1UOu%`ZoGWXSg>##f;+u`FA}+Z0hcT0cKdm($n`dMtjO)QYRugA z_QROD+wGUJP1oDhu}!zzrZMA|McTS1`%4tY+yw*?ow0o^5fxW&MN6qgFdc_lV|Yl> zjyuEqMf6Wkhrcf5i`4F1(B;m#-PVl}xA=-%$}dK{f%3P?06S~z7_rw79Y+djDXw-D zX(^6&7HKJ7x=sw|({iO4&S%5<{qLTgJmpui7x*Ech#OOfW%fOP|J}gR2Yw||fnE7T z_?R}VhOP1U-D?8y3bSbvtIzgMBn6CANTX;O2B=O#?mbkqs|aI;uo~9JJ-bB&L=8KCc1@*gaFYwO!Nqd&R`-CHXsTBM3{lE3y4@?qA-|GikiU^M9*!GK8PBjk-EJu`$mNk%IR^ITZI%Oj6J=g^r4$j08=W!iNN&pV;!yG0B9G=Pt9QFYm9*+SWhF1p8>Md|q zl9GT3jSdh|0wUFdDl&{{K%}G2DN?%|Q59%BnZyTlCNWJ>r|k$GOL@JQ?n=5X6R+#6 z^j4v5{lpp9I3i&;!g~mcvFuNJtM~F+EzDJ{Zv979 z#fMCKsus$5Co@%z5VS;Ay_fqu{t}X!!JTigv9wh+POh^il0tw>L2QcHOk4vycX&7A zi|CKciZ3D=GdM~aS27aa>QbfI*bUP2X9ZPi6BV?feN{|{ zK;N)&tSs#E%b0CgqlBe<&jLM1`074Z`sC3C%CMOSa)`Q}2Xd&oiAQ*dx{XJ8sJexR zM2NbBheYTmSDT554NKd)hz&;@IG2+^pMkqWIH&Hp9Yl6Mgv*v@A2^c)^xUX)sp7G| zp#mApb@Li+OR!2ExM+=AY|rEk9IVJ@6fxbe8dPNID{D4^T^>^sGGv-R)@@!RW%-hQ z=cV?PEEkI157~yNcJs1cpdEMS!E6?f1BR|j6;&hYhFGRfBB^Bf1NMhE|n z{4V&LET|~C5URw%Yx01gph5d=W^yHg4Jr?Qzaz{O3-U@_+E^i4e>gg7|K{`c!A@mI zI%2w}yG?G~x>qO+mwJ?X&WFA!(kV;c%Vra1mrIQj^DclvCS}>1ENQ#_vfU`g6%jI6 zNdH!O=S{4Jq(*R?atjhvZDLPYpRt`3$~i$K+#&Bp1(}h-gm6oSk}tn*e^&6Soxn8r z3^(Cwi@I*cNGG#j&RHv{pxJ}&)8PX_q_~hDsM~{4&LJ#>QYohgShfE78)NKNd ze3`Kw8G1h9{dS4G9RuoJa2f1Vc?K7Im;ioyaz7D8E=0cg{{QQKuFedPherKIr=*=SHiOB@5u%GVDD@bdBLf~DANZv{5iw4ywtPF0G zxIuzcN-aORcH7Y*@1*c0f^rvnzx9*3L5DcV0NLv*&je$a<2o=-S|>1s{S;a-pqGVY zL3e?!LXg`6vcS9CGZ5sqkSzEv?u;CQT#yrRSFQTwP>m+v(-Vr4Cs4Q@qgdoZ3E^bPLUOWX^gy3?ZxFQJBn1n+B0% zDEe$KNmT~_ijr#=scV^risx zFP{-;#^Kalh0#ckG`0gCpOZMgByoI3;z&Tk5{jNGj;#9@Ss)Dkii2;($+gR34DOMT zk;Q#5*0Ai4)8i6a)t5jNjS?RLOuE<(0AvJWZA5h~xx@@Iqx z8`m!XVDu}8aX13L&(Y|XpAk04;QXV|uMUA01^HI|g^}-cT)R3&k?+ue8uoExZ$^fts0o5ds@5lhJfdl&kA5#6PiUjNdEsz1n z6hXcNYWT0BYf3(ELdM1H)~kxuY{I~emubQRHqCgr@q7esC^Tw2KJ*qf8hB)*fWqf@4!%i$%YWd=~+C0dVQ@(;nZ(c^f8GrFQ;R|E3F532&gv_iSwZriK>dqQc^h7{dAtO@!_vMQ{yFGdnU&BzrN&c+`uDXNnUtQe@QkiKvQe`TrZ)tHSnHDj;4;Iw(I$|4Sh4Cpw@d{g58-FZPG;HA>u0#7~62zGkF;42$n9 zgf1(eyidFnq=s?6N+*YO*MiiK!XKpugp^^>Z%pDHt@Ojk_($0R|6FLN^2ze+>%+u5 z4Cx12>c`0VN4WtZl@sPEWnsn;ZH6gl#ClyRMh&Gwuyu2~_Un3GQN|hNLANPq!TMjq zjLiATDJp~XUpA7aD3xR=>f0i;_2n2VbCUs0)PDni9rBX7RR(pwY|vOYr)e)q|2y^@ z3d4R6bCWNX{|oKCE!jY~_9Uxs%h3i4Gy01&`pYwt6(nOQ4H_s8hL>zmO`RxNU*p&N zWNL%oGUgN{D<};Xmu#?4ooHEK6W9A>Yj+4U8WbcmD-EWUY|u}gs99eV*85~>cf4g> zE=YDz8f+}t;Gc4)t@laM?vP+yE>0#>9KBzdlh{uxkLq}A?4|qq+elJ|c>`@#caO&`H5_WQa3SgE z6@dC8{b2%7#ixaBW!j34f#!E%r_mi4ID)Rk8{K8@%+z_Q)WD}%7E72EqA+m zDY@X7mXSF9Jw#uC%_qkLTwv zHBdvkJ8GY`u)D&wnjW!2>b8jQHcYv>COhvtu7t0vPx3b|lX7m0PQo$NumwYgw>Z}( zzTJ`qd=)@i_WN8=SFrmMz|B!Q<21VE@cbH~icZ(75qTyOZ{GhvBP;QNZU>%BNPk&2 z=^sQ_C+VLEUOeytF+e-w*F;+%Zy2w+2V+P<2z2~DUkbJj5j7b#7sm4CMDwsA8v(_?T{;ddiXd6yz1uCC+&1 zCxl0kF}$JYL*48=O%rwOL=e-x_eAT)OG?(jCF>SP9PVt&gBotgt1S58)hTN0A{Kr7 z`GiKz4XXPR11|+fG;%q=O~av6&9AO0!hbz3&!l%N8@ob-xUbJu??FV&=@@|@4bcEc zNLNkQ{R7ec1sO?a4w39Y1qzNtjF4l2X>mt$G}#+oRYXKy*X830<)N*N?->n3%I;Sl zJK5?^{^R2=Q3`F$OzmEmg+C;uWjr4}N4`g6lYM#ZXSrns{HFuH4o0|3D>;`v9aIG3 z@b3%+6;<6=u6T(8Q_RG|BiuVS;I>1_x*VFtbzx92D*{L5r5dS_yDa|8!_krU>hh|* ztnPz$pY0du^lc6;V>y8(om~C|HZ66~z_l#g3+LmJ@w|yViIwH?tWB4?r+k7h+BQzd zW8PaP@%OpZ6`UBdZkLxe-Fa+`q_iKyJE-H32`Kk&zmXc|Pi? zJUsKX7}~GBdvOSQbAnr?qLI`efswp2mUD>y*?h%!`)RbA6Mu<-ANiy4meJRU=;XwM zy3ns{6YJqIJ(el{o&{e_i?7D`fN0QAO>|P|8kp&bx-Q(t{RTZwNL~M#39`WKQUzS! zji^`>i$T-F3jsQ8cA+3WmoH6q(ARfjh@%eg^;pI>7vOa}0_mR=QSpnuxbQiOqw2-j z>NH!9lZYmv3zP67IQwL#_JtCEVkK+Oy+!)>C&S-Nl`9Rkr*<>Rs>z3KO$UCdky+l6 z7)cwKB=m1q72qag*7Ohx3+oai^K}zllzI^@kEEB-Df|=nb}d=)bT!Pvn^yc)kjRS7 zHp~ob#Kwv$LTx+Tjll7T7oSUDR4~b3RPf=USFFjMc>mQ5+4_6_zS1qtXLyeJrJs|W z_Uee&IXkx&?62mIomo3h^vS@=1D#(mUD`C0?nX}&0=n;1O&w;mJ?uNaZy92o4A5X( zUj8;(cE`~>wPZz|Xu}Js^h?}Z9XHWc)mN~mYE1AIx~^|yYmDa^KW^H3_J|cndz*76 z$a}1DBDE#8Jn$`{mUc^?2DB^X_On{MaTkfB0=)vglC#2ddVZz_2CxNSu+(wY+Uvcq zLPjdEq5XJ+vc@e)~3 zsdE`yP|0(_d;TB6;2anj+{Pc3Y4IPxV6$~!Tc3b`z+gWB48C(4TK;}Vx_QagnRAUW zL}v70wV7k|z`L1a@qmBYpJwp(t8I55&DXhiXc=EDu+VJtBIV9%KKeoNGg8gq=uu|1 zx(49S8O8!^jRVbbk7@#P5aAhK7zJA4rWytE;(n+N=%&fCtx1=gt{L#+n(Lwwlq3Vl z;IRLJ46gk{1`h|ZGw_W5MFs=Nty*mfA(z@{5#g*Vf5xt%O1tgX7&)}6lDAx(eMOZ2 znG6O30dWZp|B%5#f5>1LhPtl*KnBbSC%o%RilNGVP{n9$3%>)B!^@umBn~I!(&*nLoYh61=-)(| z`-Pu@Qk$C8i^)(_?SUbqsny+wiEhd%GgbADqy}#82PO%_crPXb11kixhk+FcgG7R1 z!9|*sBbZXjlGO!6@#x7wz?EiAAhjUFTyK0k!(8!#Ps?J-f?$iUej_a}NzK9Ui7bQ` z8_DGk!kg6ElPc=oQyUm^5fZwgCm zDn@p9+bVcnhYM}=^=xM9N%i(7>#Hi{_U6kfzO{a(7z`t3gMKh_BbW{_3LPplvf;1= z_u#VpChY-R@|gC#WY5&^F=N*y&F3?mf{6Q0ISxu@jK{JF)T|P)rkmwAk62z1ECr0e zA=Zo}zCB3?PTUC!yXD1O*9&Tn+~lgJl{5Y4ab-L{c% zC-l7+U;aGKZGSdQbYCv+Up!96b(1gNnVztb*%q6?DPPKIVKY3};@t3%X~$xr;eu{4 z@^Xkbk5|KFWMiNi$(hr+qKI2#eembJOFel)vo@m!-oVen=9?Scc3O?f&0o$HM&Oy) zA53jWSg9WS9@S1TJ|K3dO$#njM1=ptYZn17< z3|-^8@ymyLEwtQjAOK#Z0+N5ZcyFRw0P*#rWmhaILDRpx) zxH#M?)=8JtlnH|^1vxFnI@Ty+Ncks&+MqHP1CE)spo*ZZoryJaO=O9RZ0H_}Y!m{s zr{eB46@DTOGlsOW;*H+B2j9n|joh7+F;`E^76A@D()5RA47qQEqLVofV+AW?P`xyR zk2%{uZ95-7(snDLgWwgcY4vE4<~|dE2j|%L87IiHgW;c^%eD` z!eoXZmZzzDDKkXVL^Y(s1`Q7RUins&%{%jDi)9P8v$pf7_VRWk4otQ*@?s5q4SbD0 zIvtao0WFi+lcE9NcfPBP6sKpW`@FfE`Zam3z%8(N?|L|SuW$<*D6VH;Vn?tLvFPsn zcu(^{w9h?1Mmn*%}uQ6FCQ@)}uSF>xsk((KN@qsrJe#qtG`0I>d`F)WMI z>I!tFB8p>#zz!HGTO}MX*AnXn5$BrwPLnYQ1!WMMCgj^phVS-@xW+dY?NUtEQUm5BYqTqttJ5A?cQhjHPCIsfGQd@MEMsA z%o~^~Mx*(vH%}gjjgAx3(W(m;L)LWtASR*3(Opz-J0EB(%tb{TTMK!TAzw{ETLZ&@ zwdZ7!Gj>ea0rZB8{f9ZF?eq_G;2ccZo#E3AYw5VQ3|-{8G$L(HUG{A&5{A*Lnkl%r ze{51R(9~+i_p0I^nmtRS{w+x>)1;Y)t2K&gpKNLRj9JE&(iid)ia#-miN)~p9Zl>T z8B2zpcj{C`S~VZ3TeWJ!sc*HEO-cw&0}3f+-Pr3tmcRl|Ka@BMhRJR>z%3q3?8~+I zzHOv+ZOvQYT%0TCzjd3bIv|`W#kvV9qV+oe9*`}&EhVQh?^Y#LN48)Yjj1ij#EF^68(`cx)FUC(B+Uf=ZHOkN9D_*6g`@n)Sm(e$$(Le4Vwu=0T_ zH2em-o+Z=SaMV_Fp0%*rUdK5!jRYk@D^(lu`#Pmc0(*K3(Fw~5)X^`ih}l+z-K*UpYt#{vcmUpu=qZaG4URd^*{ZCQ)lIRDhH zC}P%Nk1chBTEBhMtj(!`H~iD8+3S5p2c1Tx6Bh%N5VN`HL3dKPLh5!u=;CsB_ON^Y z@K(Z4=yTdbEN@BLH*5A;VDlYJk-7-`SsxFz+{lbdZ zy%}WOhcq<%fdD1LshFUWbzL9I!)DpHdV}g5&7Q`V@U;YzSpvtt!LBwuRaT^KVqIUf z$y#r&vd2-+q_W3e52r#T5hlkdRdJKS55C(W!x3x&cwxBz#S8n zp<0pUZ6>PUg(1WCiRZk(zAzn#Z!8vBxh9ouzmdz_dgD3TkhL$!?=g)bKZ*FO2%E?) ze*yZo(JD16x_bQR)G2$!CF2*KQ%2tCvK`;3k#i?Lx{7sW57f`-&+m>8J=lKFh-ogF z!s+gid1Vjq1^|&HdctiUy2^ipg{^eIgrV>#WP*zVPF=I9%*?EZPhE=jl_jMAfWiy% zNjftEt-AC%6^QSf)gz34@{n+ua@LGEdZ0-V)l52`5k$j!dkiXm^q1Atw<&|jOfwBG z2=;QujXG4B@$CnY0D`lOZ(W7F)Fmi9)T6Gzf};Om!q_}yi{{otvZ2GOQ>wSJKQ9@g zpEiHpP$=^DPp-J0gLl98viE{r zq-bP*WL)odT2~r~D93!A{TIFop@a5GnUNg+bb(PRyY2aPk=ms3Q~)|H&pI%!u!C*; zR?WIpe;2KBBmuk!E%Vgpk|>e!mE6OtqqVcOA!8rbk$!sHhFRxwryd%j2JIyz9WM{| zGo+AWu?lGchn$_zYncWak_xA?#eL)f+dB73ZVrgJgyVL-AX$#2pL&iZODBXA94UHu zdh!u!fm&_E#TtcBet+#P$`)NSTGM9cO$t_0G*e-7ZnT(kid&t2phRt?hzc#oGuUmZ zd&_Oz`}Xo0quM7i$?0?X5~<~$L6nb&}Y#@2I(dl+c%Jc{ie~((I;&``6v{`;M*roR-_- z7)Epkbof48T3lMZp2*sO>)u&oXC<9o5Ca3Fz)OG1;{r6Fs_|1FmQ{aVjZ%$L?%zZe zE*%p)Q&#(R7m4R|L>_X{?B_nmyRuN*+qt;f_3Pd@M3-SrqNZl~oZGl?8RP7P^ZGS4 zo9)?7^j?B!5Q>9!XgkrF7ERgckrt&bWrSZulsDNgxN7@ba?b4lj?eu@8%s}$`*_X7 zM)QmoiY+BD;9DpO=DG&9PEQawPbUd!b8=c8%@8+#s%KhpJND&4v~>_a_Rmw!|Q0@r!#3gRd`R{jkRs#QkNtpsJ=omG)O(YTCMRLbJR@RQRkujl z;*DU@8ha9u3v*ai!4Ef`khPvdg=mg{ftas6TRkTp?m}`%TO^Y^0%S)hwup`V5DAru{3G9gk-O4s!@N#8l6S>iUc1~PSn9QoZN}tlX7R(e zCg}_%0xbnJDh+iFEsT)4=`BGkJ;z30cZ|~$-KVZr5cvtZUY>g(O55~SuJ5NCd~-@% zJ~A~$Gw9(dS)D;NBn>AJlEpZ##+jSy*5v4592G(pWzy&dv(j`mW?l${azlx3K8Mm9 zVMhB0=A%E>Sf&12p>@p2F_7x23lQqcYx|yH#v3&XXTq&N0*T4*_;!{h&|_{SA8fX2 zPjBAE=gorPK7@03t#VRwWH4x}X>!V@GnPto+7v~oWia*$E=_{;g9m)f-2&qNdtfb0 zFgeYsudf`Z5^~t2iQ(I7nXWC2ZrQ}n-o<{Sah9&mAU6H$cTg!0U*Dzax~KCa;DdqL zBWBUDK$AeKF>ezZBrK+(E>y{lG=o8h>z|Z9SK`0%Povaa!`5sDIw}TVTBlG=F-d&U zi&ktU&UNP%*^hZ8!YHI4?>~DnlpRjHDMZAB#}}|P`@xGsXy`$=RbljKfT=2`Zarb{ z6s#pI=x^}46Xlf;+j;k`z_nghP|10LH@W@kY9I>9P zD4CPhkeSdWDSW~BgEonvj;GBhYBDGBE+t+iRwb~!95y8m1C1Ol939yD5lq9(y(!8v z^UkK8UYPZtm_{d%bB=cZ|pqnx~!voNfNeK@UC8!+&{zIVW z4UWtVwm1&_?$zO3UwUM3EEn-s|B)FS<}<O(@^Fii$rX)kDCU$sXo1;@F33(d|fs zmNKN#aV6fBIr|i%^>3JzzNyeeII#!}Jj8-Xjt~xOSvXJ6Wx9ba^dMU6yf%~;YR=Qx zOcnKOYlJL+K~z>y24~X0A*wnUMD-U9Dah;XGIB6Hr{i(~tO-qJark4d)dir>+nFtL z#J*;>&YXO|S!7o~V8XOwJ^H18rJ6v1p1N8<5XU@#w}n1T;^5D}EIeQ96teKHiG;)G z4f=?nj&M%%enW3bFP-jl>-7v7AODi`bm~UX5~S z-B@f~^16M9@i|M#X}itt_p9FSF&jMYmFf~8AHZY8HYS0W)Yy4aogL`B(H&fA+hpJdJog3$Dp)d=DwDvw`d4591U{Z3tr z&6Lb})XR1mvWmWv9)yOMn(pFkBY!Y3;LGbtZlM6*h?lhK$U9KmZZv1q*XnqQju&$k z6t}2qEnDb5(_w^lKy;D%1H@+ahE7*xw}-kwNmq!F0%`*g=L-HU+sGlOHZ3TT)sem9 zN1VD~o0Y(DybRt<5}v(v8EF=ir}mY<4zz2BD<{{U+xe+A1hRMDyiwP6(#6{=HRj}u z$b1`-G~t03*?PV59GYKpo0nf=y+9zrY*z0w!}FZ04D>#xs3_0*WP`^rL}i~_E!7eY zLFyawTVE6fuWVZ|RnAKyPGhRxP=3(J-F&C!`IbRN1oJoQryT*p7uWU=8*3{Yu|AFUL|hw zY58myo;w8jDZ$FO#~3_e$B%QLuaq+@Y&^ad?>)F8iII9tT`6aOX}ubQ(3xL)v>XJ{ zn|p^Tur5EUfTt*I!qi5>DUSndQ)04wu6(}r3yg$PhF*qI9w+rgBEAxoP<%<&qOVyc z><7wVHDP(jY541VZT6B1$B4``lQ&JQw5{%WmG6LV=vbQ7-w+$r*}9S3dg%9?wL>Hz zTTt=sSK+grz{Rj%Hjw-6<$m5~g~N9_;83tH!p#}h_AtU;EG*el@ZS)lvV01J9aB717;yob*{9VrgoSGdi4Hu|FKbf%e2T=zQb4(V* z4m||G5$j zG>034Tgz|);|yV7v;GJ28$hrycms&vp;Jl3twWwcUpYUAk>5au4=6lav@E5HWE8u- z*nFHkFzv$CiUHnaP-MjEn-bL^%!R^ogCWQMO>qNnLEgzzzzA?8-f&&vzBnn<=Os=w z{{yVvL*e^^_Y*OY6^k}D0YV3Z)JMp-Vo@MGY#(JQI7bR_tR(p2egb*b1c7(DA-3XP zadyDX2-f9bR4iq99FX!6hN$y~qEh9?zf~uM!&ku0M-Q*INkZvNst7Owv`_ZPF(LCo_-rCNo3#HTU>T^H(jq z38L_d*}Gy_pAtoDtz_>Yq2Cs)=xlk1|DuOx6B+ny*o>ugfauko25=h9;R9X?>s40{ zmkrzg$T;!b+S?n6{0xoOUuaHvb;mML!Tu^`?Z-YZ8Rf{3K}|+OKM7Xx+w4)^7k=2L zmr_?U0*7()-fQ=WO{$|#BBGhv{^}Z*qs?cLO}tz3*@s|>RUbM9MP2AnGY{S|>iZtY zp>NnE7GEnOv%YtXy}G03`RKb-T#2Gzz4l}ZvPIVtpm8G6P%2m%rdIKo+j z+(6u)U#`H_fwbZF1LTFdVR;vh;Qlb#-42>!7>woyIvSRVL>`VfDa%ifARrT1Xmm2Da=5kKnqvm`o?5E}t7lxVE$l+I z2etPQahJoU#X%+@A#xCasoPLgziuQQx%r!W$M}bP|0^W}t1$d$&{SCq1;YQ;DWk&j zRJe&Q*1-}52@C!!XU_bYYy|-o?w{iVSR;_wg1muX9VPm@_e1KZItmg=yc#5}aMB(F4>JBI7sG!>#tSh1;OX~}zwz{ceX^4M@gMPYyt$Y&ittz}2x|cufiO}Wh3S(& zxf@I}rK2i1?3gpJ-Kfjx9hDaJ!L2LZ1Y?!O-7VVrrE)FvC8Y>0yEAG{m_3?>gu39p z@1g8MOqsn`@pIXQ)&CIVX5N8iduu4BDq&PL?Xp}{xT%tXUW48at#*$OF}`aDIRY1h zz2xLA_>17329n>bQOM;akSAg8Q+7GQ^ZL~;o~Rn7N{d0Z8$%8rKk*N|diL3W1yf?b z@@L7Yy#4OTS&SF+%r58US}E@Wa_up3Q^^^SQitjI%k|{jJKYzK-BUpYD`btMJf&Om z+*_k;2GGnJ9sB_+hZqr8S$iQYW zHGqTHTilLZ5M6+K4ya6zJ&{^YhSS@>Riwm_f^({VZh4+LHpc04c+?Be>(^H-X?0U0 z3e7)I1c{j`_12y_;YJ@dJ)!POOhdWj2;@<3+CzTsh%uYtQV-R&^C4?Ar_`X`+O?MY zMsyv>UepvArW<98v>9^|JB#u>r{huK_kP@Ty&_P1DD6%^K$Y1vdgGR%>5c3erKw#?Ak?01BulK)-b#%CIO)e zM~8PtctX+XF~qW)!B0+|f+$t1Fy5nuIn4;)xexFkwrkkRZ@j;J?=T1DHgk;WT!~)% zmY0G{nC^Mmdf2>$*J&t?nFeoMt=p#AW*Vhg14=IYuRF;<1A7eLm?H8i1fMNXHTI2# zuK0W`I*R+QvvL8t|Iinn%!go`i-u!zeLz|)V7H1XK@j>ne{9)Z62qCk8pJexth=8>dk{> zkNeddSyMjLxo`@Bm!i=GY`RaPbkIskL`{AR)P+c-Or<+rE(uS;Wfpu;8G<9VjmMC1 zOPA&(HL7TpRQx)siY-qX9TA?cLS>qBSY*I-!z3Z3AMMvheDA?~bF4snqx66k7>N(Cvk{4Km?H1-EHfX`uC7YqeZ;a!em(JeFhWBQ= zUw-mf;FaTTwZh%qR;SPAo9X5xdPI$iUnw=(_4f!t zqLOzw8Fw*AYhJ2f@#g+N!rnTljrWWHE#(8WXesUx3bYi5;!bcY?oc#16n81bi=-4M zxD;=J;#vv>cPMVbiv%N_n zNyM@`X7A*mh2dUkXHYV-^6HTrIBPH|sjzWvFqLZVPP3yPC_0}TA@zyNG zRh#xI4k-@Yl}1&4Q*DbOb{lR)#o3!SDn==70P@{nKHt6=YPao1R=hMQmUh8$32a6* zq|}AtyiK(3i=Qd2f!rNO0(*gJ>fPY?(albty^lhTU#^Yt*$b9aN>Vi>25SeurveTA zFjO`MzejE&cv6Ceetp?AotfZKpPZ?~)AFAWE#*DZS7{y?{ZY7XO{ll{W%0XCs$9z`KeDM8i*NMSeZ&}q+WAorrk;q#Zw~T747tw5<1doz0;va+?SiQX zp}RiR2cXGx!r<8(!4$^HOTqf1q0Wt~+uK=kE}DU;4!ZtaQyxq84}sRbyzBnV*)K-v zhJZ>Q%OCehUR#Ou9U{*(HHpyk)b#$`C95qSTh8=wmOrPxKtjP3=Jj)3|6`RTj((|W zsX-`dhh~Fj$5SRVJAJ!9mzlbvY5dizD}WEedzZIPZ@*V3$0w_)wCFZ-9~kWR)CFVg z2lfD@wh;hnBOf7c)FY(5tatmU?8KhA0U+(cM@T!c5`eVza(ne`^xm7jjV7r(BC(bg z?P$(FIr|*&^Z@nw;J>}y&l~^EoIam@Ubjv3j%6%ceF`Rdm*tw%c@da@@?ZTCQ8v-v zcJ;cf&I`Bv^T*c*EI-7uJgU4Zdp&hbJS#0C>kVsT2$~IBVrb^=msrJ*%lz@EM(j5z zmp}Zn!y{>$Z;iq8`DN|tho{}VXVMeVI^P^a@@u|62E*9NtOwiZK))xVZN7=pC`{hy zz*MzDN~ijwBLAtbzuwQh>Wj*JknWA%&#r3xihOC^KnEnH_W0gvh9}-(t8lB0QEjzq zb$mtMT6KI?-Y4C@8Dod{Q`0B!w5Q5~@u+6@{!p?yzWWh@=iupvN7BGw7eUg*U-KC1 zfv{!P9b=4BVJ=&RG5cP^A@AMPVDr0JY|{qopA3}?wcmF<cgnt5Zf&AhFDnpf&U zG*0&48908}|7E~ec;3v$Uw3}ZM!DWB5{u{D#=VeWr$tJ&+zg??vuyLFIe(;?BN`4( zIU!KQ%PTlxz3*!^t_Nj6mnD*h@v_WXjJCB8K#HW2(?#~wI}W%Xdf&aKCf0b;x2k=WjUB(|>yu50zp z0AhRpk=PCdi0z6;V%u*}4WeN-H^;UY{ZNQg{F7~uDHEPAUZX^Mo~To+e~;&jKG+7p z(tazpbDh`Awo9FU%eE_>*GoH#oqkIIE`7bYv($<2T@Z}E|FOFvbn`Fye5ae^7sn4m z{Js1?sHyJp*!tu?pb!2eTm~>iuiv7*NSs&0bP(kMek!dPNZ|WIrmV9YRd+5ppg21h&d|)M12GWU)Il3aplIO+%mE@3$n5W866Oh?!xv?R{zcG?`Mf*|#{X@vK9w3s2*n**g0FPp{a-5ybG zw-{%F7-OXd_2{g!1sPDuu2;n)v>lbD(;zQ9QoK+iJ5sd(0gvP@Kx9Ws7k=V>u*%Xw zIQk87xZ#U!5eq$1+f9^Wx^LY){VGfmi+&YS2+DK)B)IQc+IJ~hF_yhJ`LXEvbq$aF zc%N6W?-aDEEPG+{Q_+U28lKXZqBUx^S@N^b#ZI4z?J9(-o@t%HrxB{UKl zZfJN*>xm-OY@_5?p0^!8Yi;GvVnC*h^{vX z{iK6MmDG0<-J#Hz_ zR!#KVd)u%`B5bGQMCm*{THV)mT{1Y~{60Q;W0(Zo#Ph4>5z0HPJ|GD4y9s%JE>`AtfRgj%YeIlaa=`52p}rT5vCI2CY(HU3rg4DUos z*y6|g3{Tk|NjqTbivDX;6TfXKww|o7 z)?{-EXWy5q%|Y&R2b9~;u3$LF6eNB(W6X}V%0arM^mEl_4ri$YYFo>L zJ$U6?RrC#VNeMu;%gWc=%T)Dx0(DxdVs6UtO-Qb_V9l&&CCwf>b?<`el!5RY2)_*U z!o8+RO-M#7{5*9;Yv;?#^D9f8npyd(>i5gi(vD>;q%UtP(#G0^zn4p2?j=^m)RcBN zvknx;@00<>vd3at7538Uh7BN`N*_zcZYFEiggk!CaFs*;x7*wF*O4<74*Ar#)Q`;e z``JIWK(h(v!*Z#%wT9y{83-7Gi3ia}MBr}M!GXIC3MfEs*MbD>1-HS@L#`vSi;Zi> zFN8YQzC;+Y(SjLBH;klH+?IOrLt$jk5K#+H>Vju`_Ya0k6 z&>9HZ=4!nIZS%FFgSL5E#i8Z=tzjTN0Nw^y%^c&$8pGCT2%G%6MOfXOyG5AY@FKj8 z5tMkn=)C1 z&CoYJgw3#aIea+1lpmTYpmhLz-C|)dhfT4tEQfPUJN^R|Sw;G%%>EWQI|c^E4YsNL zvg)#yB;0>3IeZbj8i2KB?mYv%pH7M(cW=A`5ATkz(GjCwrVqZM7)ZKTbWc%auGYb5 zXvDPPUfx<73bC|bA^s?{l+Y80nkXFNH(pSk<=)Q3tVsM8d zDoIn8He7(S9(?4ipCSee^*#kOy$THo*M5dfo+y`8nkbhdRjNiqvF`q&H)CIVhI|JQ z-|f17VsNS=fsg>$nOtIZ>hga`yopSyb`3uqxPYQSXh5w8FT6p)1;aP#j6YF8*#!%w zyGujA!rVrLSSa!i4T$u>fqN?*VWK#8#pqq2%Q(oTiAwqv#wAQ-+r$CAOY%int72 z9Xg8ee<*k0Q$$~(`ls8*vp0!3iQ;(3qzQ;*kkU09TwOT_9YwKwN-yy?5Dl?i$oc8E z^^7UeEU_II89SjT8Kij43g=WdLr0P9?$dX$2BITo3tc|lHlML4t|YeOAu}huC4-ck zi4YA%N1txv0eah8X$1>qvWrFE!E*NkptoBj?*sJf z<;zb15B>%qw`J*%lJP@sOFdp#K|P)!&`QY>QoG`bk%is#u|)*y{{(w^hu#y*|uUOVoMP=)tTg13T1IFjb_378p#r; z$*Z1GNSf{Qic>wKNH@Dq!AbN)=|I#jS@%tepaBPmaBs~#>z6z8fKfUWt+@UHvo7^{a48o zqbn4rD-@Nv3>ioE5KbfZA}=Wt{Z^ z&v0`kU+3PaZlFV^{MNs2U?orIUZidyI6)T$yb6{q=L1xPl}L$PoqKk}&0ui(tvay5 z&$_4_;0+w0B3pjz0#s-!k->mQy>8$kTo=^=yh%}sGy^`Au=4B5$-T5@=WtEp3+L4E zKfm#66OFsrfzYoCgdV5b#D5#T1`1VMGX@G*A2fhqtD&QC<@&KT(KwQHAm<=Y`gdep zB+hd>0opgO0#<$M5|5!9KY?OAz;laxJ@VXL0MGq7fwqJ7RkgGh`>Sd>BOpjw0zuY+ z{gps|6Y1C4yfz>dbdi1)$n60FcG4XS-y8sa*8#zXZ(bTnS~oB4MwH>i&}8t}iF4iw zz`rS-8GNY>fgqB>VUOuZmP7I-^#O(J+eh-Dg%<$}P+=Bi?x6@9;lg zSleT9ZM{c4p#6U_?_Y{+53=e{o@n3y|6<;}|Bs{dzrg1KRDGV}-n)M{-hP}B%H;d$ z-WPpfEcR7UFR55>zSuKqriof9pJ|@B^!-=MZR16j=ZW-PnNK*4|ND6SpX8JMuf$9S zgam`%4&aIqtX;we4!@O$i-#>d1!yyyh!O6Q!lTr;Y@*Af(P#^eI1?i z`@NM$xxH^+^%UQLilX_X3Kc=BgmxJUyxe60l< zCbA1vhy@Ev7czlpm?pSEG%OR{U}34kBf{NR(3I#p=|UY)CE+e12nL!c02{JQ*n!04 z3j3nZ{)4uw7xIGrzA8x2PY^_(LBRRoiReF3+MtPqsIzVGH4f;G33?x+Ai+GL1-^Cw z-QhvAnI~3WmZ}tXFixxx?b1b^C4jG4KzF>*`*4K^rNUswi4LM&iKw$2@HHpsP6Bi% z0KJcd>wr_D*oc}k;Ce4mOyKsfa6Q8G7bts>nGC`qI)DaR&4N^pzU2X}NFq{+3>c7c z;2;dBnIb}u5H$@B!h@PABh2WL`%$-kpa&2XPzk(5F@siA5CVj#VQ>%*bVUi#K!`d3 z2Vp^16cI*Iw;Z63OnAdf6hCN14RQGb)dmitgRZC}2wtF4qizSm_avYPR;Yvmf`Aa! z4Q>yE(=j0Bqi?xE!CCMedSo>rDhYf~3=M|CbC{7XFHi!}w?^Q5C(r}Hn-@1VBy+IFH z(1#@WgDm1f9`V48d`R45)ntd-r)%pa?Y&hvS5`PrF1%*dR8=^iF1)7H3}i2DkJmO+ zFEdjrGm|TGp`YetnZ_<{hiZ3x((d@G-4UbRk)hoYq1}<9{qVFjh^911tn^-1^A1z< zPEIqBsI)y@yCYh=1Bl_;9m(1qaoQa)?T#?*jwJ0B>9Q5svK7@b7pCb3=-z_jxxd1> zzvB6g!ugHjIhMjXCv?w@dAdWoEI3&^I8i$|N;^1Bdqt{DLb^;ssZ2tyOhT$m*tWwS z!K|*{(y_z?qfXnIq}E30e6b9{dMs8^8CAzsy1&C=byHh=vH8(~H?4h{!`~b8(mngD zl=c1D9Ip3?xh2Re-WL`3+X8y;kM>Ev(ZAZ25R3rEBr{D1}8eHOCRhE^# zEiBVByCOR77(jI>mPxSdnE1+@$Smb0DCtZe`D||&mA&pxQhjZvm4vzM%9rdN9@%tvX z@&{|of@|y#Cj;!9GE8%3v-GBV{HBrfnv*{c7B8m{?aS`2>)pwK=K;68!IlMrc&>g} z_Fmmh|Elep)yw>Z+UI?2&73A}44$=neHay^g1GZWal_fptILJ06E51&~f?e z=d;}BkiCoElB??&@I2G4!$ZJ0wD-o|L7>Cqvh7mJ^V8_`L0NgV$XTxTc{5IjhQY`V4-MsTEvtC^8+UTOVB`!Mzwc}V$YuLMnd z>I&S`$kcW|_^Lh7GxJx}+q->Fe|)L_i$(XwcG^uP*_)oY1ipV_#vPSaOGdRFAGIRa z15YO2Hne*jcU}7}mt?h_%c9r&^55)bNM5$qx2m@OFi6fFuM&H9zWHQ!_%QH&)ROV9 z%$`b-_q7IdBSCk8@9vdQi%1rapRLW(A+-f@mAja z(hcQRY8C)~?)2^b9MIuwc<9Q&Y$Op#prYj7hQ$iXZRBhEvko|ZzVUn5TAJ{AqV91T z!#{oKytwe5)jcr*=$JYCUwXk2AbhhjK{acFE6%HXv#g&_UfJJ;EZ?wfj=!{z(K!-JJp|A&k21BlK|XMK0u!h`op z*aH6kg`G2@Y|lM&clm;DAm~2|9z{EV;q+V=M2BR4?BO9Cnv?pz*)_4jnrbnRQpdI+)g~x|vl@ttn zOexDR?AnsisE#LwMyT*vI4SY3LKz{Rt+d!4{G@gqILiO;db zoD5H3(v_tqA>zhPP_nz5k2-&iI*uGlO8IdjDpIbMZ@mEeEbfo(D_KS&J|0EJNj@GK zMheRQ2?bh%LJh{adD|(q0uD;2;&ErngMx81t0=h=+aXCyX3E;JwAkJZC@rN!5jS0& ztSy_I^{HF9 ze2_vR-U&H(uMBrkCiH-BR?&Tlk1V%IDub%HNduSwThPRvK~>VkHat9T96D0!F`}{! zOq_)|6uX-W&#G=;?-+MD~uYq8=Rl-0G>0H<4y)*1$#}jVq{a> zHGZbkr!;=;%A=S2s9e(@I~Xmdwlg@UZDXZm&5vxZl_V$eS$-K=$=Ujss&vocG6!*! z(|yD0s`GtA%~@s-C#BidC6Ja*F>_jm1?F4cKWS*6-`F^s_tNwBru7f1gbh{jxJMWS z4B1=ha@O{wnOIlxxtA+2I*f2v5418?=vY^(%}`pklRN08cZ8wBDtP;wwP!XhO~fih z`mb>-Mu)B|Dn`4m7b`f2uJbEadag5}v@*^U)unUi@P{m|q>~ zhcRQAbl6L4nRGVz$d!68zW!{nqJB+*rCe;$@AxKtgUP+w%IS?k8m7elN`&Ti2 zw=^Yug>5DLN`y+Xv3>t0Yf~$e-cN+C@-T1FR@2v#4#e{m(H=VMDLOLw2VI>(=!u&# zdtc>dV>R^=TOZcINxGY;R{Zwh323{~kXGPZpX%mEci%-rwZcI~Ghd~*>i&bg*+>;5 z-x=L()nv%_K>7zEUgMF%0RzA?@ik;&VD7?=UwcGuVD6_IscFt@2;i5v*%aWbwlPFC z5FYAg{==9p<(;KLZSp&a!RfbO^))jFGkybxW(GJZzup_fe)|PBc>C?0YV+QP1TT%s z{%+S~_uu|BZ{c*9noUWPZ=NtkhMrxQ91gx=)P!^fsY%^VQ4hW$Fnx4#U6B3ver;VE zhN)M{)D7?0o45lHrF<=*HHEks*X{a2MmD~^x`V9BuM#W`TCnf4O@?og8nkl0|7{X} zlh>e?75ePIi7f{RlQg6OW^==-6ad?#AEbU4M z2Q`mfsgYf;A4#8b7IS?2B3ej`Lro>j|J-Cp&?E2pj<`|o4YgmyVJ(sHXul3gv%(Ey zy!_%qb3cwJbY$=!NCZq4y<~Bsc;3IoBBtJ(qjJ}Yk~xnog*m&GWClPzlX&HXE%SLv zg*Qrg#XOi*AC)OPjR~A~X}ntGQ}bk*$N^AyoPn7xrH{ehAU+>v&A=#@45mz2C%(6^H4j#` z7<#1Yd80h_QV*4Os=ggMk1v^8WgZ@mEtxd?OL}9S+mtUm&Sv_bZArBWRX6Pm%k8f|^KX+bnCDU_x-boT7uuhJ>yTtTXV42f# zX+5-Lo;k-pGiabhe3KVgBsOc^Os7TY&{hDaw`IRqbfi6h*5mu8`lkJw}mTfN% zxZ1nhUuYkWPx)>8&HA~D`OM?H!Y;CDpCZ(@X=_Edd>#M&L|9HHw9vW)wQirZ_hHcz zJl&$5%|4bO^Z}iKkt*vd$S+=U{xuj}_f|-(Dmq&Ul}Wv(a!hCc(1W> zHQ|h6hUADLxDBO!UY;(ceL>!9p17>SJUhyP@iA&V62Wd#%KC{PVG%ICMd|J!%ESCM zQ%YLN__5>Hc%$P{p>isG7R7{Qadl$~Z{zC56^PU2)EFSp4^y2T#DWFPl)omvhsnW! z5!(V2zWD^)v7Og(pO*3_(kOQ2>gg8}HLNIw!iUEHQq$CeU~p35tvt(04>rj@%-z4Q zY0!DWMIU)<(tC|;Ta$YiY(-;K7)xveGJ4(l#O3>jJrzx$-)l!D21!lPxh+`&#AKjh`F$k5{s6{fMf}9aIN0*#0-s> zK85j5+Tp;w=#6&ja@4%Xcb~v$^Ct^Dgk>SP9=%`w74j~5*gQ>_C*A!b2XXS4k%E|b z)Q69F(ThN(gfok4C;18{hNy>$?dlV@v@>`a*!dtuLRb^B?#>wwc|vr5TL{ z&S^dq8o(LN60T?ho0-n4vTx3l7r^vL(h>0Wn5=Lf*ez~#p72mkaHbfm>~4NnvEbIM zI(fja7MY7amoFmPTtGAzM?FS^wqz$GoXFlhSs;=G=W~Jp|7;9Xng+E3uKP-#3h`I%m*oPMP^-SBPnaNmUb0kw27Z6QO8x#$_2op*4gs zFDA5^Nb`+1m`|G?s-U&WwBV0xVop=G9QGYaG2I$Z6BufxbnyH+^W-#+JE!+HXp7*- z2=4xrzMjbbp2ZSTg}QYhX<^cNlfK#K+Lbs*scZdUtou>XW@9C_ z%iF$|fs=N(08#@<`>YMQ!f;-04Ym5@l4&HL{_77Vbt#a8%{ePyezTGP2GXH!%myQd z0|x#=`!W&0?E-LB2dlY{kPNu@xS4LU{WlQ)q3L__I~jx8)OYd*rzyW?YG!n1ngEA{ue3Vd+C%!y=O!VXjFic)2 zk&r3r78&3S1Gb@j3wOU8wK6zY71nSk0=|)sd@Lik9S@3k*!+4({2?MqM2EV$%fHHD zQ+7i;dT)4_T`jqB83vw>kviIynpMIzd3%93J5a3E^PM2W?8Pj$ZM!~V>I;=KX+xE7 zgP_r;X3~{)$9~?hUORpeU{1|@lh%YjH#~GVB>L&mf{~mzf!Frf^c%70$v~T(>Q@6cd8+RVKwp%hBv2V8wqPpC~^*G1} z!n55Nv^ic4hI=&qHRHhKT(eKC`tqRS8L{p4xd}2&C_ZZPVGm>Hsn%#P+10IA5T|j& zWsA)~wN&9i^;eCRP&ZCH)|J52lPrE`UgLa`M zd(~*VnSK>2-3vSlx^!v?+>tr$LeUGn9WZ!waP3O>W;99^lPuj6F78be?w$Hr%$z&b zuwpvmAEG(!y$rO`XxpDL+K$|k-_|_Olv67GD674 zgQuX}Ehn8Q>w@1Va_`0F5N4vx=08^DP`(E?5<$%3P~OrOO8t?{v1Cvv~4oX#<=92SAVecxV_7#n6=o0oUwx*6x9!4al0 zTglBezOygD}&jNE^sQC?VsYh}-eGp0I1ziX~AzQ(+WXx`auX z^{y7LpvQHEQUvCH$71vAj8MDv5*rI6wOH}R4>YHhyH9Nc+2d@V?opW^QnbG>C1g8F?s$d{FKE}I?42|8?QO$&1{GHz@}31Esn#O$&i&uU$EOp-o1Req=24? zBLrd6actJPZx%<^jG99N1uf8gEokWWb8O32jsol?heC)*oJfdBg!kU+ZODy~G>Jqc z)L*bMsasP1U}x`1eSU+bZMTricORbLm}gdejFF8i`RhL=CBRdz*>oV;0=qLY@+SFE z5fWUgAPf;?b438K;#V#KY; z-%`1rEe;t_pf$i~&>$1=Hy+3Hw)Np#6Y$cw6Nh#ln_=(q0D)n3!2j4ljl7mLrtbSh zemZGoo$UgD&~$~Q3C-*@F}_ZZt!D~>J}T{3Y=Qxn&3Wi2+8-bqzs^1^cNq=t7}nCC zUo-w_C=gVQP`pTKc?I~V3A7!g5Cq@Gn%!-AZ(*V3p>}Tn2Dk-bbMfY+=VZ>33ZvEH z)Dl4GMqpgo$62-_go50D7Su53-)lAo_3R63BI+We;8C!hxcn(bTS+Q`D2i*clne)G zzJl94Qz3IRh!uurLe~3DEI|94&0#@-C#$bqyUT zNbq`dpFZL3e*cm95!)q#8(TlKd!9ujJ#UoW7HHWt!xzug<5~mzbu~((ea}h2g2yy% zta-rnPG1wShc!loqpMiD^#9f48Ajt2d%~tpf}%hC_hDFT62^!p z&zNcrd03h{mo~0QjUVudkEKIH+E~eac;lb$B?kxlg4q++BG>#z)*x3xZlMhal8s6UXRtLTAq#yn>_^T{?y-(EDmw07IYwij5;%4Xy_EJ2~DE>dF zO+c)_{;|LBQcpvp5c+Qt7Ol5FxG=%&mjraZlf{JOWFMlD_69OyANZ&rxb(%1J@sPZ zpSN$;U2@-A)5`aGM!ri47Q=1$jEw@x++$Xc8Rrsx*j|75&`R^5dzkXuY$SBN@4?s9 zWOXjz@4pqSOms6-&4dk%&-I~2geuw=DPu^=&^`C!R?>a5|%-Omny8YcX!W$_fda}{{ji$6+gmAX~db&%ATmzOO zM(K5$l0PU6E4%h2?GgOAdcMq*G8Ht-@NA`wM>$4i@|8ga=+q za$_Hbzzy&1HKUcE(=KbvttgJwHu~zh=cg)E!<$!{s_ z2FadNe7{QMeEIDC38tBqpP7#z=Q}$IlxQO-QZ{4Ob^Y$;VQl5(zaS3- z6_cvW^_Z(q%^wVYu=|i20{2x*ICnT*;p5@Q(ryfGT(yZNui0#4OM9Yw=6e1S_7Pq} zXBZFUW0bp!x{45*d*4yEE90RB-SRT>B?&h1Lh(%r=d@IUq=KZv{Js+bUt2iq)gF9O zEeA_Uwv`5BT#77pOx{&wJmC-V|7HD)D$!)P%6HaqHUL1hSLQqChvxq=_Q=<1MQHT` z!_@6s_gb(LKecf6oQA;^ znLpw~FiV{M1d5%D1$(~59)CWWZxC|&M8q8JrN&*^wVz7ELOta~gm2OOp&n~a9)i_a zLYF4vjKj(Y0RB!uQ$RYN7=Y-XlqM~}4;8nPaC=4}*9&bVN~By52wECi-1i7#leTDa zpy;Pj$G4%dN-?*guugea`zOu%i^0SYPe0q_&{y*m>e?ah7K&ZTW&je-n(Ip!>;Ly= z>jwi3oF2fON2u+#(k$Zbw%}ayDMC71d|V~zLhM6!5H&3K-gMr6W2r4ln<{emxDDdH zx-@BaibXhSA=zAnBVcb2jL|&$Yg2#$=K0Y)KAn|ff~ni8pG${l=o@Y=lT5u8JQ)}D zH814;$m=W^eFOdHVTBL;{uEMWortQVe{}CQ;`x=L(*Cuy%?g>S0%Owh z?w``)IZsx(W11wcfj3Q$b7bvrH%)U={3UP9n%i{a(N!Bs*4ne~d3FrFDP5SJJ+DfJt}1~=GZ<IDtb_eoA`EV`2PQ(kSc^{^GBy&+b1{ew%* z5nsw?PpB+YKlD<^=DY~q3^kzFAxww%>a8F~J`crO^5R=+8oEO;-d~PqBrprfLBm|DoLR$yj zC1g_d__7a>tV@gk3`SdzyUij_{gwM>Ba@U+l}lzqW(dTx?uVFK!S@`WocM9Sl^s4I z8AYZ=uuQT1sjEoi|Fsv!Og{oKVC6NixWL}7{G+F+Q$4?qB3#an$=OyF2!;f?vaEXj zzm^MwKl-;rn2XIH8bjLv~@~Lt_>{z|U#k!GGv2%qBDV1g0|JGi-h%c-4 z2fTvqkkl8hKDw9#?)tsg?l!rtFK&eR9{$`2-I{T|ujlZ0@@2SmZ){Be4YY!3Z0N?2 zcUw@Q;Ldh8frq2M6c0UwFVO~&J;%RWG36<@AIjDJB-4bN=o8r8y77=ukF_0*2xsOb zCLMsy7=4n7-R7)o(+^=uAa4#aI8I`3t|Z4w+QjvE7$*Pc+26*9q=YaPdYowvx|T0% zYE~M7tTdh*#W2SJb5P8hkMq-%F;kDzn64yiwa@jAeEP^bu7+Jk5{47Z!3R|Ju3G9EdDqlZ%S`{Kj<6a)sGq`k`}QB~}7G zMF?tg=E8==fo3ET<8e8XYTP$$wcF`!ozz~1RC5uyJbm=;U%2Gcge-=*d#RsqDe#m) zg;a;^tktO8z35w@1qyMKOTGPV*OaHe>6|g<5gapX)-+n=aXaSs^#kt*B;dE*Lv+^n z&$n`{?kTo%tnWon$@EJGgz+jS2ZWs}Cc_=gVU-o`QJ(S0KHOs#JbnGtWKW?)_KLyo z=IccCtR>(SgBFm? zzK-K$mw;`NQ-&|J@gsd`(WqAftD~9qRKM+7j(?NWhfaF$hQHxD+yPK3z(S0YYqq9mH)}QE20N3IP;Qmx4*sV zH=h5Iy^e6G5Vh?QwrlsbJl6`@vfQo;oo}8TEYg#p$ZGC#N2^{K{cbK?C?J2f6|G!p z^RhgpF=03#%PC;E3#ZP0H$Bji2Cjy9p%s~)A@vEcuRd;wKL0rx5RGm|hf{YPj=#8q zSzJc(hEzDDYd!*prt`yr)z)gSbR^e&=}BBNo}@(W8J99$?b&HKe%41DMdYsiVcWiW zy{^qEgUDDCL^30NDaQS;T2{BSxff>*%`W7^+2+XlLfnSV>Vmd z7fKMOyLG|s{kf@+CiTz)<#A5u&`)_WrnBi(2@1M?iQVNZ<@sL?O3fEZ*T-^ zJFNqLOS#WiqlU9zSF6Ud?@>EqGc(sKjAa0c@?_SB*muX;*_iOpSVK(IW~PUlTS+=> z^f>qTfDY@az0G(EMEm$Z4jHVT2?32tv_@M5&Onn3qrQFFKXLqDpiIT`2ItDJ52QHJh!0BusdL6QZtVdeQ23Tw0 zl!#!0tAGA16i(!@;(csq^*F%11UE%UD&o14v74Fjh7HlX!$oW0={iukLW(BO&EUsY zNS*24^bLm??^oH*7_p$;o4=!8%}Nx0b*K(}L$LJ_E&cC9ZatCBr8|iYFA0Qpa)wZ^LZWV%oRXYn zzb)_zcmUdD1q{Nf=q2&<8SJnS#&WfG;f<#xzE@Ud=$6} zL=&HYrZ#YMwSwn%kE8MM<(Qi|cXFW^phZ&_Gm+c>G9viyS39|(_sJ?4^dqI7tF&xw z7TIOS&s-u_6?87|&!j6P6MnOJF$C)qxP_ed?4Xxlj~T59OZ=xWT;f`iVPJ#nj%4a! zHa^;aVQSb;gSP_h{oT*P8m2i7SwW@%V@}Fu8FblnF!j+A&X?X~7QN4$eKxj}nRN*mwkV2K~C=lBzI0;?@S+^b;98_e$A6V4GbqsA{M+K6;pPYa50=zY3z@Aii>@ zn$Xe9BC;Y`MbpKhRHM&$LK=d%`lRv6@DqX$mTo`MADbv0|6iQF1yCH%!ncbA2o{37 zyUQZM9Ts;F7J^%XJ0t{mf&>q+xVuXrNMNzWLvV-S?%(h~=hQu4y>Hd6d#k3Vp8nA@ z+f2gD>~zo55&Z!YfZLr2IT``5mj$Uw#3CjJ@v6$Ia;PF&5rU!wB`DP2vQcQj_Yb`& zz&8_Ld$Wdc9HEHy9e)K7gbBef2AN0zIwPVN7>IK4&-OHAA{07!+ip5D5-#*X_|u@Z z#Mbu+`fwgWzJQt%a~yuhWY3u7-(ItqRE@liysyCUg>aytznV@Z)e!Oq1Tr{*71-C( z2l;=y*9;hgH{lf`N(r>VW2C=={;ap zBL25_jEg6dOga|u-~o5b&&DIG1lK_X&2=bAJOj|r0Q3p{`($$)4_rY0C9uJu0!|}? z&x1TH#a;`P)PwG-M_5Ex~I5pn#{@a`D_jqQjx8Qc@j-an}ExIWc^tOF|r22Z7Yf;mo; z2s1CbiUW80@RM$%SBnw9Zi}|j_dqA1nLpAH_6u_SPnD_DIOlNHIi5-w^*RCuw3oT3 zImfiOJLXY!L`oe89G1BkJfWB5bq{?`jTV`n^isD{4EHFphQMC}I@d=xDbC*)dGeed zyL~|>(K~%~l?=bu(Qv3gHXHi%#h;+6GeGYn8=vfh*P4Ktb*Ks zHE!s;us5(ZaNMN)PQ6z$R`OSRQ2JD`0(;)x5RFq7{-eY@=9VOr^tb8AP!7wKQ>B}H zE8v9lf>&Ic>JpCXB@se2oK(@&A{PqA~-Va4!Kx8WGih9Sryl zIB$uQgf-@iq}3!;GsI@NX9Xnr3W^)N51fC{|MTx4f$3asj317ly_C z{dYI(^D~QoU3LLAB9#`POT=>l9@KBed%sTr716|iL9obr+AOd@Ez+)RBlSXpB%sWF zzB0#izb8urW&yw*WZuBw35HUi4bp69{{LuYrgvNRmBWi<`Ex(bvEHcPayB<|poNad78k;jFR+xZ$ zk^24T$(bI9Y}Zt)lW-?t*S2rMgMWgF((rm4ln=2hMkKXozl=u*WtXbq0(1}Wm_texJwgfgoCA2DuP$y zb(kN^g2m5bvX?8HERSb=$}LSJq$46_10uMPT=w6ZThvHVGVMvmi=O>?^D7YW{+ z>Dpn)(y5x)XL1y_cCXfUAM0OV-8wsyeQVNK^CyziBE6jLa93rgqXb<#=L?PJVNgm=oy8PjR>HHz3?~-NzYtld*h%*(A`z z+9bw}EX~fknoQJh*9V@Vk*jSCe?;ijH{yQVK)9}jNIJ%!*3XB(*zD00YtP69tFN__ z`k4{gfGfS(!__YxF8`+U;IOR^86kPmwvi*ViY;b9)UH&_ZIzsa(^qtV`|tiu@}hqJa+LkKK(JL^;&}4r|eF>A@!Uw5&g!Z&NtGicSU;W^u+WHvVgec{VaPbY)F>m@I;&iL?uC?5M; z{u+B}dMa%aIO(|+EPMw#{5#fMC%!(mb14s$9-YT1yLKqTIWDd5Z~mlx+^*RX@5>@C zxcf2Gy18g$?te1uxg3Km&{WqvF+%vx)z>~&eC0$WWB8{1_gkAk;=!Br6a?Ppcf&0w zHiLM-4N}+z25t}$5i4;P$tYg1U@7CtJ+xp+;H6qtzsonB}D7i|1Sq!DiZV@9%% z>J|3k8|PhpOOaruLy=@`bW=L({^?Y?`bP&+i$wqJgYVgCV{dm>GyG64hJPEA0X`H* z!jqxV)fV7}I5sW-u)zr~<9f~9rOF@W+o*e@E#YrJsCB&ZCxGs zdh`uzBC)`w{T9)kHFBd>{G_X$go6&fhLjkbIh@G@I*w0GXZ*<_+?GZWkQ^MQ)5W7$M_B8 zPQkN)9S=RrTX?&5a1ItXViZTgyEX@_L?Le`YNg5+qiM{W<98}AuUKxy{Ap#6H^sBfg=YOe3-t@PY=ddGlyby9luW^(!-|0rc4+5Ce;qNc8e~L&u8tuZ+CsYZb^N; zZ!_+^ZjIc>dy4|^OgNrK{l7niO^r>R1urj-O)lH7>>df6p4Xvx-J+PT?^5!goR0>} z*N07s3;o<2Bj4KHKHA=;49qGDJcUyOW*;mvy+&5sE=s*iIm0S3>wIx@^4Z+{wd;D% z>#f2NbLa>2E5 z?mu<$KmWAF_q4lH$9OOFyx8gtQGhNG7IGcwf9wC##TD#5D}{V^7{azCiY^HCCEVgV zG8(j4>Qe9aGs_Kc@p$osRnCXF)h~;?wIz$bH6u&9bt#LoH7ZNEb=YSGH6jrG=1XYA z?QC>zzSKGQsU@%m_pGwd3F=GW%Y9_@cfik#JIMP3HvTIDN*0pxP7SDZRIy(5qk4`R zd>+LQG?|A_^x-~;O0O>vXQ=j&*m?}0by3AA)fhGRX5{Z$en@G1ztYXacAdlqZKcra zLLKG*eiM!}^Zw!T^YrsY_$CrM&hW4RcYpiC%M`+L1vXCoBz===mYQ}mgLmFPT7gO- z5t~S?xWniv3@NG3;nCh3&lOdHirGL#F`(k7cMou^c*B?}Oev)08f*gk5Phd=#hO26 z8Sh$BF$PZjekk_sW2CT{Y}4f%bdVJEGhHrYBEZ>yQ){ZKFJlDzaY16@#$@(a#;RiTU&{rfKo_?N`Z zEThiS{q-|Ftx%6htJ_W<^3n78mZGK?-18)}57WDbK|!{o!LGr}{7)him#W_=c- za7q+FAhL(ab{mnej@Vr)-|@*ZZWC^w;>fr9xJJZm+g=1kiSo#``V!dSWc>oA?747% zB8IY0d4WU=SANBX*6o8u3l9KEx6cb&1OQmNeGq67+bg+*x_#hjUzBs+Clr0dBJXwS zv4I~(rA20Aj3%khDhS>UIGD4b!V?W!v3AYu*;Q;E+>Jx{wGWp431;U6!PJ@ z?>*{>Pao$yKI40~SR$d<{x$f4j)M65zGt&>GXlT)%W$XV{o3ZGWjPh_3l@)CKJn-# zZH`)&zaBOoPQzFK;WFmpgj71`a>T>p(-KIG-yu>RE%4jLj2OR@?5&30cNR9RN+R7A z!qhOmXx75yh|L6ihYu<8ddCQCVY=n4--kAj(M-ZO2hnslHh0jLebK(mq0PJ}0<9*0 z;>NWj>Q^Z?ClbyLHNXGDht{uNY)d4cTWHP}k{)`3XGhYn4Fr0*Yi4dCXhu4-)pAuN zGslWmB(v34Rp~RwkyYul)uB~}Gsi z`{^y(d!dvA7jo~a#&S%vLxbKk(~HWrtTw={M`+XFh;J0Cv&>@hefm1_ZUm#m$HsBuUufZ&>Gpd2c~`KjY8Ftgn%;ddDR@s4&7TJ zSz-oe#+#Eae^s?gUMEx=O6cV7hRONI&IZ#rdit2eqhCSaBErq5Fnb@p8CJucLfSvz6~HCefA;w!&kPC?tA%LL36Du2 z5op~#>?6p;nMiouJ@f=*VoD^v?jG`yHwC>Prq4m7X3=7%9JBfPBOegV0D&nGL_Y`o zK=2y~oPhxP90&lx5)cGhv|I-#c#l%XMz`$ZnTS)k2es_unP3s6THKg9#BK(k2&Tk| zD-)kpYUzs+l>uQp5ONErVD%pWK^qXKj*Tr6 zmLL}Jl#jb_lPD(C65DmQGbNM`iBqjwKN1zHizV32uiL+Fi?f=kDe~iOi|u-{aUy4j z$#2h`h)|4FSs>opn3IofPpk>?e~+`<_cGbv6IzPf4|Nyma$kR@LU)ld_p@h8aTi&3 z-+!h?_jZo`OZRrlS@M1TSoiJctkS(*b^q`=%a}d!sc0%+e`r257}#$-6pguB_u02C zPu+JcIuWY8Qw4sq6hKn7?K5BtRDUQs36QZ4mjug+THquajOl-QKMmrip1+8e2CIs$ z<0Kl5@uHW=j(L6AmO=Io+~%S`*#Sx&%u`uAB&y=3c&U=j030M13>(oJOlM}LIVKvbMg$_&j~F6f;iI=zHwjpn^6>O zf_)PJV0?zJ0LVW>G62@kkP1N9Go%4f^b8pQ3;-aU4Z!wuk^=yWA^^DnFg`;*0P@dJ z0D$!~6af(S3?(w|YuPLsS*@V9bGcMYVzyzY4=ZQ^wHw4tcW3%zs zrpEL15M5DDw|M8tGf}D2UGLl&zqafnT+Og-LZ4N89$G1qsk6NH8){KXTv&BBA^lj~ z&P{W?+(rAiq!?ryR|;+4I~TLF6+{cE&#p@Hlp5Rq!dtQ}JMv3y_oh9*@S?p~`i5B4 z6c1LOP1q1og^S9j<+(TviHBS~ne=X>=)4q#TpiLQHNu zNE$8_O0;$_Oaocm)QP6hrBFhsf$Hi+GtY?q4+8a3LgIn?D@ytyuh5t~n1+nN`?4BK zJzpwyhPX@YlU%}|`&d6o<^ncKR6YT+?-A7}m%4Rw$ukwVx1z05mD}1Ai zym6-*70yUkj@$FRH{0*pOz_+*=5h%``lA9m-cUhQJDA+YX0Oo}2~mKm{vW}dk+t|? z7kNxZA7wa!RQ@^Th7g7v-td^``gR)X@07j-tZgi+d$Jm{yk9FLG*8`o^T-U#DkEHu zFM8MB)=L`WZs*19rC%Fk0#j(Aw+3rTk-Sf-j}QH3DFyC@@-RcNtDmSe!39~(SF~_L2U~SYwZa$KY#hF+pj~4hsQK0 zUKu*eNe4Q^eEF-#51!f}jgyIv^b8a2*QlSglnd8#b$ljNfQF9nEC%h@h#xgIAIMZ6 z%nl{QP7J#_ZvD9J`GX3Q>+*vMvg-1K4wB&VgAFp_@`DDV-eQKY+5EN|m06RZLQRm8 zJ!+;XGcH+nUu*PV>w)3C3+C;At#LP{qT&-bKg)wlTz;@Z+*-z2AQ3LPD&Vi1pVh!x zn^JAStT`dCs7I2}1E@z*(6gk5lF*H%hEimW2CmdOSCUIw4NjG^baZs|bUSqS5?jmY zN>F0omk`F@K?34UhqE5Op|E&=7~V!+^#YSDiBOazN>U_C#fPpYFO<d4(g^D5X&@ACDYcF9%jEHf)%te5bMoRfl8?HY}C3Do9(y1a&uNsEo=#Cu@_mPuVF2*jZ}{ zefMDKj>p>3)Tts47t72UaI)~rPh!-pNLx(vtEr*_G40%#Lq?{UqyDEy~ z1LV0SZjJlAwv9QfH1ToAFe1~e<@$O+U*Bz}8PuFW^X9y*bjU>Nm{qgq@d?MsA~UR2 z3(~AP3PP-%`g-fE`iAQW3X-iU3Sz8H`UdKB3$m;o6;a0gB6F+{6dA{ak~p$&lAW^M zSwuzlHGRBiD$Y;J<#)FYs(8BV#OS;00_X?p;4R~=;Vr|hB`v>M2M@g*3r*6<#$=_= zj$ty-j$y&h4oPAf>rsrh#UXG$84EmJ*gOK4N^?8u2YP)Cbo>VHlQD?%hX(%&(z#7Fq!buRi{`p z(74gcwjB}~qtGPqx-1%^8QV&x6){pz@oFq4+nmSVBpOReS{D&66@k`S454O|>vay) zg(ZI#5zb{h`|CS|Hm1r_=BcV%;mDsDcPw{`=S)Yr8M7heOs94xcgpQRM>!yOit0eu z6&JHX>_C_EQ|=UH4*d9<^p|+AT;e<05)0a2)d_6ov^TU4bWdcYzq-2RPC085?pYn^ z0;6L#w1CQd{E30VF&mQrvhyce0`*=2^??0SRwvxc14UHQUxEE{r=~zr4=7>+Mc}96 zKv4}SqLco53X9nYw4l8aZ%=5~C|#@Ah)MjJ@r#r`t?8?P;&gj%yGHBhrX&GH&Q+Do z7+7+91rS6EqzEXstKB4%(l3?V@5SI8>4;rF8I?PevF0&F<~dN~AS8++yS!_^>O65g zURo&3=pTU(g@3``4rd;sLX6nEl9QjKt6p%oXIsT;Zdvm)nI1L#}1Z&lG%| zx4MdM2K1|z4L?))aLi^DzZfu5TXp>WhKci@UomN(&fKc*XBs<>O`{@Yo*~z&?PoeU zj)R9{{XG4uRnyN5Y}7ZtbZdW;#mG~)`Wl0|gLSt(R*a(UwhsM6bXud-4l+$3oxWKm^P=?IKd z%-m%2CUj8cXXz-6Q-j>3X<#a-3QcqjDvIi@>>9R;J+S(p1;RMrtmt?algHiE-c9Yp*G~hc%PQNlipFQX8K$;dD z+^#4*FohW$oSl_}r5C5WldXmGdrQvu=5FSkI{zw|f=szNEF8>TUH^8V_|Xoyi@*9? z3jO6Gd^PuRf%o&dK zw}A||fz*kyU>_OV`(Rx}+U zU~y?k6V9%q%&h@UM;2II9?}+m{)*;7Bq87v_=pY$l$>ZDXcCsBA*M7i--vTDnvNVW zB^3-M!c8DSOa_95yPFzuj!pA`mhgz55ReRhN(XnzK};E8@)75xGPgtt0bjwCj4;OV za|IgzNN^4V%o%&PDdJpM=GK_zfg&Lw2OKB?5vPMuV()@vZY^jYP!k@Lz&Z4=9PHh( z2sf;R$IswE1;`loZdLgCtjw)QLZ<|T6K7XR=9ZMkKMib34bzLzmWR;F2q{7=WJ(!f z9Wp|y5L_8MDww}aYYsR@Mo0m|@a!tIrFmda7=69VmN1IF3+zV@QiZzsLBTDFxz@vh_ zNcb$1PNx|T){;TP1x$?CG_nzRw3?a!QZjx9E6|K!+h&8Gb&W~XnkisGn#~ApszgOd zSorx9_CIDuLmC)Qf^K-dB7~1dR2d>4?)C{Bs0NY8+MO+Mr*V93`xR^?^P2(oDuIF) z#*x5*v-^=oR1(4%ac)dwO!I7Bq<9uJ22$bBC(6;uL1+>JBp`v(kU%9!pgaWF6D7_r zaI8>h9^`36ftXG+0{kQcd0vzuPf`#-%lIS*c~XTuNkX0!AWyQ8Cl$z(G~`JM@&s(p z0PA{fApc%8fu3eqrZeO}(!}>t8`95S#44)OESUiM1XI}!J=_~UnE>_#EZiG+nE=s$ zdl*$@0ze7NQX4tcr$!O?{4`H&34n4jhZayE0yaiKh}b2u0q7Bdl0ZUW!r&40Dd0r> zFCAmBOlQU*CCzDA#Iu(1WkO)c;8Wyam*NJX_A{kDt-`&@mwCjb35*`>QrL(CMn%dz z(j|z?Zm8kjG=<*-DnxRcCys=`xWO*94RNYd%709Z#57Ob2~S_1O@w1OH)G-V+cKSD z|5gWXhu`bTJla3I8cnHA2_x?5X`V0>x|BDnUf+~G`xvolDCtkRX=ZV6OlT+>Pf=+E zUf+n(0P;vVz+LEqo1lh$!<+DwGH4y{mom5=?g#9L_H;Jl9xj2B?o=TBUWFzwYH*q1 z)H56q66%IKP}L?3GSFm1I8fIn501z*V$Z9-M@caHm!`2o#sha=8t^kV;m#`oenwB6 zmZ-r+nL}z9&ICZ&sI~!5gN5TAJ}3s58%2~iuxa9OyrT!#WnR7Z{yZp2qlP0W1K1eD zB1BX+UMA$r#9|A+s?f<^?fZM+vgRRJGTX8Bei0FqaV+P)LTg}8+_yA$H`Ao(39;ia zxy!wD_isyUp=(Z=y@)C2zR4NqQ{HUH-g%l<(f(Mb?`u<$ve}NqsGOFnLwk2mff+vX zuDfhkYm)TXr%)5mmz@QV(Ahl_Knu8h#hGL0P%J$BbYdOb(^&KPcV4_w*z^3S_5Nt4 z{hQejrMuao&fU(tZcRJx&aJnMD}h+1HyJY7llxA0`qEmxEphwqr@jHZu0D(G?Q%Yg zW#W_L+E0wzY7`~nXN2zZB>Oi{IYNfB*Db9eOuw%CHTG>)-fqw3i?q8#$MV3H!!s33 z`PJnkFIwpXNu_5kw)}*iCOvT-LjGxT8RJ?F@(QtOo z?U9a5%6NSj*Ij;ZjE@Wnb1JJuxCcqobL+jomb5W$=3r}`JSmCll=z48Rj*#bN8Jly zCvnYXxAw{!$tvHzgiwnQ$12;SnRZ`}#1Q0tyG*WPX=93Fm!2|wyFT11Kg{12y1L)X z{PEp`DyYw8ZH^@cULQ2H>G`!E&Wn9`VP|+FQGhUQ`o?u{|2Vh`yG?#?l%LG;%hQGq zTbFjp$o|k>`xk~6rf!E07g2GULjHRjCBACA?#_Rnq#h8r_cCHXc4!BzO(719PWh9M z&5;gqW|i36IFySUd%hxh;~XV!6!7rFxw`-X^I*gK4V%q1RBl4axa?wa*S*Kv z+r2o7j-$u?BGsNNUNT!7hc{Q>O|E9jx-@jpjP(MWR`nlB)~)wcbAsa9uja*EF7J0I zrAQmPJPHqqC_WyvIahTWRf3HtYbLidVzY(giqJTg_fS@(TAFen^$$L^pZ#{uiyiCH zn_8S3_%3??_Qs+}mEu!baF$2%7fa?wc)5{24_n51cWuH4s=hflw zu)P~^=}pABb2R}8{IRLo_JBud+HGMzmdQskN)g0^Ac1R_1z}{&8|8-VbGb(WAGcxTSG`qg?A-i+e< zhG}4B&6G^ua}5c-Fx%sNHf_Cu@b`(pJ!Vk_ziY0ynH+L(a#b(vddeXjbABj(>J2u~E`gN?%2^R0v_>Kwi=e>1W z5I4F3PoA8`-2FcEcV|@7(P3F42;5M9m@Sic&0EFDL|fWg zVmB#ntPjoqu=ZUrYpYbq2Z7~dl6|Y;V(6s%bYt_?#nmhyxgZvrufO}%H6mv6e(`U* zmCeFd3-{^#X3EgSyA!6N^p2+&nJz@^eI^!*CaGT@euvpt4bINCYiI-->$u;Uig{qj z54HA}J(0fEa%Sm@J}9kOeY~~13uy4#es65C7<`O^2yJ7j$`sbXLaJKtL^iq^YcjbJ z6g!^H67IV&IOJ00&lEMpvMwumoVux-4)kBpSrX9;JeR?JO6;%@ns&R_rfr;ZY2Y|= z7>*RbF*C+}yEFYzsMS2ZZ(_70Z}I)l_0aYj-Z=?lnYeo?wzhuQtmloLh&zeBwj+)8 zUR<`&(iBx?^^j+#tygvB@3(3>w%3M>Ew^XZ`(>1GdMhIL%(EPAK9}WH`tXl_hLPTA z_{SJAym_CD?|SLBsIlaoCDecS3$%Io{de_fcBT05Aoi+1dQ!cgu4)XT( zV|q9f*CQ@bw5aX*0?(~Ix1`eV$2)61-I-v%)G>Qj&gr+a@13W_{5G$4-C+~??ahQ@ zEdo=D@)=(6Pp+irEQ~j4G`{3l>;rqF*>I%Azg?F#7OW{tUxAL*d>7f6O=ZTL2TcaN zjS7a_@rCjKyem?;6q2i*r5|EE&XL*f3vqFlwTrIr;Mi}(#mW}bz&~nqac|PQqph9AT{Jule*f3siG4xK^RxeO zT*<5Q%Fu_lm^+WS`_sq8)`vFv%cG?(=c}DZ&$z>OxfJ9Sf#+w0E{u8yo z7o|;l!m1^^M4Z>0yeAWlB~~9cn%)%k`L9)Mnw+Vt1bW-I5c=`G#j%Ohc2+eBshT3& zruLI0OYy=*ZnvXXJzEzUiCgDATpEr-HaSi~>tGc}*yTOCe7d}6{)qKsMA)nD&zPe1 zO@YRNRYBd=*=PH|Y)7~({wo!muZ|iO^{#}9Hx-tu{(|zI%G~^$!c~th?L0k;x2lh> zZ&91Cy}~esn{+s~^+eQt4-!#IQ_Ie&swM=Q^SVB!6Ivfli5D(UFJEqkB~5SGSykMb zkJ0{+e@7U~am}gx*l}9CsqvKG8^=JQB9;!1N5Nj60dy>>O6=br-|oomhg#>`=VNif z5g}Z|(~{O@gsN;??Wg#bIog}q+bpym%yS>{9?f|edSnV`XO(0Ps=6>Xd<|ghTxeKm z+g~8>ob#J_6>h9-3Ketm`E%yAb27Ic!I&8o5QN2bFSDhv`RkJLK}}Vh`0nuD6SU0! zR+FQ_Lq>UML|~k`^Wv z{EEbF@_QI^2QLxi$7{@fn-8JL*0x*`2svFcoP>-i?A>D$EcYCOK&kFRzlc0*T_JdaSC!jy5Q( zcCv&(XfscX0+{*ryOstC|9EvoC_C?8h`9i!ug#oNuO!K`e(`EZ=j)aKDLlJ zIlu<-EIia8AriuqzgCq=73l2(+!8-r&v1>u5cU7%R)R2qYar>7OB z@s7N=Wl*a_8%ejFiL9R}kFpZwT~Mk+Ks|vCd9Er5ron{jo5y~?N zHgq*qVm2&P8@_IEFdSw!tkfF5uxXKG-<~}sV0WH840V*0V?{;%cB?SjkiT?;fQAMTFozh7OEfC(<)?; zn&U2S5ZB|=US1S;AvYiN3G>^0P%`G+e9%`+bpOynNUY6nnpPrj#)Zvf31yeV| zfOyRSeWE9MS!SdnCG!Hj#+05V&E_^d3YL&<#Z_(QOx6(e%t=Mt-|Ff7$%P{Yw)V_8 zoU$DSUknv}6kQKtZ+&e$TX-p1N34~Y1DW{@75fxzU6~y@3l@}iV>N};6;YISOEgJL za+nKn2U|4x^@d6_1*MtAwTG}$(LxgK*h)s|r!_Pe=^HvA9;s8Ei9+g{5A=NMn!)sZ znwn?yI@8OKzX(U*COtl0uQ9#i*$S52GK&`^dhawtCGCnfA~4yWwZ&*Fri#v9zmglG zYPchJ3G3ly@7_PFk4IiQ{yz0YLzGnb3YngpNt9eGo0!CZ_m#@n^|bXALdqVfmkBE$ z7_s^i7_l0c_s{Uu=fSCD5`saeFNScLP&8iUiA0>z4N)gaGpXf@gaFbauAxaL`4&H} zFBBNLDAGGWUf)iFzJy|hj;B7pPWNTT%zgit+H$0czm^|edWRPy7n?}T$o!hjJ7u+w z6nSi31t}D~(CEL=;{2`s_v_u}AJny47zuCK2(mS^T|_qnSnjp|`oQ|CrjHMkxzCa$y|kaItf)JZ7M0g@C%=%oYodEeFZVz$hfa`Z?(#V zgYJmca`obsmvQ|W4@##k5!6i2 z|K7j^&YyWVVd!9}R5r6VVc1%qLQz4V*YK0qx@_y5YJtzXXzTAprgZvbRZDsLaAC_W zFEFHL$hIP2Bx_s*xx!O*U#q?ozGAHEVxXQ{_6*ZTtZOS{>OOMIdHSAWWV!6-;rDSn zf1VBPS8=Da&!hzWRv(PbO=Kq8iDUt7>sAQrNYuROSx>TMrHK83^cl?u%(Hi$?@Z2X zm#)z*O}M&x(C&%e+} zDq6@=Yx2!@q6}#D|GRrRU$pR5%{RHIqra$QtEfYF)IOa#n9~PD|DegEb$C5~#-){r zVm0(B&Bd&c>>KlcP$Ur4cV;1=m1OOLmLjcxTSL~z(?8t4PTaLhT+F~ZP=j&GbLi8b z(>;qj24(P0lMux2=J^TOmaOj;?v+o|yiih%+cSx~U0y0trqJ?jzDa>+W30ijApXG< zW7${;J#!%lw44bqKvhEL#LaW)hkYtQR}#s7L7|2a$M|XBYxj}biU1>8yYiX<2We@5?Bw`%5`uAIgy17`y#kZoFaTHYWGzJ-c7dH;F1 zo?4$6_^MVfvg(s}6!D2MH2WB_R;^ggLv+`d=k)!#=7#2ZqK|@qDL&VO_PHW2|IBTq9}q7L56|}G3#Lxq?q-S-E=&$nFXKdFyGryDIt1~ zqM~P2!%&5@K8#1`3Qfo|`s~PvXAw!oPDFeZN+^&-#7wstR}N<9ol^{U*funX=cWvDhxFjHoc6l$%zp(#s+gpL4>Yl3|s#cY~91{$Y4{vk0G#G6?#X(i-X zFzF$5@O`qvt@W$w)%b3Jkmwh(+{tw}Ayryr5^h=}o1e0@j)NQ|ySWJg8&ohgT3TKn z)n_NN?6VU&3_1?ZmQ&%i%heFBO_po3sSlGwGW#vu`X#J^!&Zwa7@3Lq6j8(6GE!7q;VzqtyODzW1mZ&dnsGCz%`B`msCrjCvP zFPtJ|Y3=%fvYIAu2!xguw}E$3!QxqQlQ(oK%)H43B?u~5w-ZnfoyA)Xw@@_Q7Zvr88M6>8PrX8pLC!cxt#p_dZd)sSz2|%FPb2; zex)#k;(fN3yGBEDDMe{%I?rbenxgo+^u(#8=)&UkTs6=w?^hjA3*ThB)sRhLrj;h2 zQjQfdtUN#6UCMscW~9{0eybk+cS1$_V#RzLpbn-UIh-UL0S<(YYcrob9O=JU@i- z75dsb)WFIOlpjZI0o|}FzIjG^>|wfdC{_qFQGO#blk(Lcf2Rq2is?b? z?=U`wyo#v6KlLlLbzU8#gePaHA1?(tqb3fNVP=qAVyqm)!#AMaP#iS>jgtgV)xvsW zPK)<8QZ8@;LNKzG=iO=(i(ldNzI3jfz%f`hqsm5r@IZYl@=|I7n^S1&T~yuN8b@Ps zX5~#DtCkxU{$gjI5z?cX(;>>)9v1p1%F?~bgUX_XMYX0lkwvjvH{Z{b_7cE<4z=Fb zLcEvJYV1g~1r^y&Uk(j=AX@*hJS6)r#&$mgGqESz5y%VRN>Lt#smE7X+pHE~`TOA!U`c z1y*ZJz5?$mWqtc00=6uDkC~)kKFh*F?W-Y3L7@yfZ-lOStz#8*CBgc5P^X?rr&?`W zeay^pbHeIxfYqBg+z2z!tK5cffmScZ`u@M(;T$E)vH7=WYK&V!_pv$-q`MwVIH&wA zs9%5)c+k^iEoj+<5gZC2tBK0DTg*2i+qFWHs5YogM!llWB_H}~}(zW74 z_m#yj*Uo8?ecnP%wK+@UNGSxwoGMi%N2ip9RmF(gHae!fZC7B&1uF%%nV+Geo2!#? zY9)HA;#<4TxJ8trZyw$#4j{UT+~zAwneadCwD+G|+{@<#v^%U#+(;>lY+b2|2<0sQ zv=s_lbcbYs`J^q*N=mZj*VSUTRV|-Gf?` zchMJAL}{#-7O-(X`G;=Alpo*rJJNzBZsKg#mluU^ZnPoBATN%bc)wrDvZ{8KUL)G? z_4i}ezCa}R_j^%)#m`WdC@cMDnM@RLmBQgQW%^LsKePeS(h}v&hM#YW6CQ zI&2_b$xLuySVVPs^CaU;f8Q@U6^S(Ex((?*S?Z;Vz&-x7UovX9Id5X+H@K;e94oIWey`L3$u5zY{`dRvX32?UuiO>W;1iE@^=xK3hbk>GA4ft*Zg ztwv%9Ivvk=b!oFtY}gNi5p8g!XB* zwu@GyY;}$jKT7DNH{SPLEA-=ji<+q8N5{E|Zqiffq2(VOp6D4XITps_71t6>>B)J5 zLr4J`A>N39Amp;vv>%vlcNz#`0ux`7w7OEhqGI6s*WG&qn>)~yO9DK z%C6B&?yot0tzve6@F#TEQQ_Wb2^T{i+z|gDuYXVB4zFFNW#Yc;{e*R-eB8}tgmf7EUXp$kS zdHgPl3bM(0xX4dj7_Ikge;9l?u2Z722TmlK?~qx-J)4e)*guFwtmM2w>Hc=)H_FD23Pyt3I|OkvQ$S1tsE^@ zo~c`6G7ceH#VhoNN*IT|329>6%y(VxWmPxKV#s3R$h))XF<44or$T2{RSFT!6O|;w z_Kf9>*;kdlG^b?ZU7e-_N82}%gNwf{aS*)2%OBFwEK5Z9VpVJI*jInO4IxR9^0L!q z5*+#uSc**DX6D4M=c2c1%g1f6Q=85{ z+MEmd4>;P?u6U;-wrRaB$krt3JRoR3Ti?zV`Bq$m^N1)w*{td8t$352K`AwjMICF3 zt6_r|@=fZ7wW(W$eVP*1R_uetLL6WS#X1cDfStm9^SPSRRSe7ktyw zWfUZRjqwMil`jxoUtjs7t}k=_$Gqg;P;U0&F&P(vVQ9nctm1OQIAtXHo8J`wV|k<_ zcgz=8m0$4pSp1ZFpmJ5)0i&R3t<>9Za9m$_x}o0uYI?sXK*&H?NPvUxioP52_jBtU z<~P&KD!y$B1=C|=qN;Q^v(XBpnGE<@p6%!$YtZiPIHWAyl@Of}J&qL)_xrowBQCCo z3P{kFoq|{0bW|?PfbB!>Z%mr2g_|E)DsOi&Xz4}1)0U<4RNt%U)|_~a)M6rc7L~RH ze{rWt4(snNPU-vkfSj5>-gOXS|c|P`=f(tc0%Y-w@|IJ-)|i!Z|Q1q6XLVNbhYng=|c?=>-gmK0w><6b9dD4(7B|+Z>=NGx$+hK zBpaQ^0H)!^{H7Dp!#7gOI#QI`l{B1kY9@A(db(cV7hT7t&2n97p=fOWMzpLZ$%`QZ z9r2gC_dDbvLEIE8;Od&U%1hW%_(MIL%$M}`ZF*yc-kI?DzS!9(EH-6MWmC7eZZ-j| z@yry3ZamT{lXE?`_9z6&@N}6Q`po#81y+i?6dO#|qexTxOMVsjuR9L2X5GO|@?|?0 z5x^U(Wv0e25%Pjwm<3R~^O;7upS6a}M)}(Ry;1smMe1J*JV{mRR0?o=iE50~i4A{9 znovdtUmZjFMIUYj^jKLdkKif!;Ugu&q1?(E#`ZXBcOS8Ae*$oWqFJt1lwtc@VX`9A zuVGHXRg`yD$yH%PgeQjW__59mf&^mMw}lr{U{%-JO0ZSUF+TIYG96xHp(uabrP1ud z*PyN~B}*S!=8x#rvdI;s)=}r2eQ`1SrH+j*VTv z(JVs6&B?He)T@RAtY%l4X>!GFBYXD8h!{g56O5>lxKF|6^$tjepsP%TcJCz z^~51r`RFu8&~%9#zTM4)*>T9}6zbS(obQy*jXdCInWM#Boneol$dv>s416s~J?nAy zG?yHlwex+5n;z-OokOSNaF#{#%Umj)zX0Bc9`eQ|HUv1k&+ib4blz=J5cB=u@>xWw z@)2GPt)ra(ZDg4#K{QJldF+4(=;mC}TgsO#|A6N<`3m7KLrhH8`EOfWnEg^ef3P?H znz4p_$dfJY6iGQEeq29hutOA?J8)wLdbZ^|3+tl`8k*mwA>-q22nU zN*QI*gDwGPHEGd(-tQM_2|f9P_&^Fiqu?sB)0w8 zRik)LT(Lruis0PJlh2J{F#Vl;nt6M0R8jYbDW1;$s3X)rrbe&s3js z{q@Z1(Si48=EdKGw)utz!MykSS~pu6JiV;pI_0?HzSbv+-#QjLK(K0BO%gr@zE05N zu(GiIu*41qRI$4HBhVzEW{`vxKPh>F|B0`kHxsm8YBxbr%p(TmfH*SVvDbGqa5Hx^ zuK=Vt<>03v9bYCXW_^99`30fo-L^KGB%C8C4~;g69JMNa9n=C1*sz)o)=Jlow4oJx zOMfH}ZVn*Nv|dsWc}=5y@%FCC>$pEisqY5i1SU@&mjRxIR?<1bk70j?TDVjDh9ViH z&l2%4!oAzht6U!bDesm;c1`J_$hgX%hJ;Bueyc-v{F_CM$nm9Np`R zdYE07TGl@}sS@>_uuWG>Jv+qd0sqs{{@Tgjd~=<)0*e?Y`O>1hqk_G)E9zt78$BgO z;v1^!Renxd8dVWaRWL0L7y1pR4>L;_xwRK9wbY}A#?PFMxHjy{(r}h3Ows;N?p+qR zBpiMzowXYkYjJ;GAl&DkeR{{us6o*;C#2K&JZ`e=ScVSQLZAHr&be#%oajZam z|F*z^3Ao1CQI{XC+gSgO8#MfKZy^tWG42vt3ocbM(TMJB-^U=rh{BL*V(z zeZ4jJy~TO~y9g9Bwr^yb=d5R&dV0(N#K^;))TFU5W<4t3QzoYA$SRZYs3(T<(I83I z=en09iAKQ;$8sy>{6Fr@@XS+phL=AoBegM_OsoOh7}X|D4EFt?+QCp9>r!vuP0{Ha z>f#3XJ?iF`FiOz)-WLsDjgT0f?o4XvR&ZSAhxPZF7z>G&i6->_v@GmffdksWgu?iV zvqUT3iQq)5z==*I&hnE-J(jyxoF=`GwEQNL6K4iCdHS{u044hIqq@imnFOzx8%yEO z%?~E&CP%amvM*$gfhXa8wS_iy@AI+M1is3ef3VaR(i4N=Q*6g}L zZZp⪼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 B^^J0}E8>gXo5J#@m{9~f`){w`N($WGyeT$riY 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%0ApnY!ok)VgshPowjgT}`^CSOa`9 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

u;B=8*ZjrIG)^WU;+LRn?NX*2Bx!YhEm9zz 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

R!RG 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¥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

deP2{#-{0WbS5gI0P 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%0A7K008 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Ξozi`_+$Pt>hOA~E= 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

Dxo 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 Z3jfLDI`G8L#s&xfb%A1hi3rt({{vRhisS$Q literal 0 HcmV?d00001 From 498618fb0c332d0e32ae10fc8f3ec3422be46470 Mon Sep 17 00:00:00 2001 From: "Esben L. Kirkegaard" Date: Fri, 11 Mar 2016 12:23:20 +0000 Subject: [PATCH 34/55] Updated grammar, fixed build.xml, added a testfile with a more complete program, current error is at EOF --- compiler/src/Scanner.class | Bin 15795 -> 15771 bytes compiler/src/Scanner.java | 223 ++++--- compiler/src/Scanner.java~ | 229 ++++---- compiler/src/UnicodeEscapes.java | 2 +- compiler/src/build.xml | 4 +- compiler/src/cancer | 14 +- compiler/src/java.flex | 19 +- compiler/src/java12.cup | 68 ++- compiler/src/parser.class | Bin 7952 -> 8431 bytes compiler/src/parser.java | 962 +++++++++++++++++-------------- compiler/src/sym.java | 2 +- 11 files changed, 811 insertions(+), 712 deletions(-) diff --git a/compiler/src/Scanner.class b/compiler/src/Scanner.class index bbfb005ab7995b8a6a2a506ffb52375b7af570dd..fb44be976b1c622bf18c118127a56a4b1f498b97 100644 GIT binary patch delta 610 zcmW;JT}V_x7{>8=X53jnT3s`>HrLNKzZ0!kj6^{&h#&+J#E*i4L{Rb0T;VK&cY&ZF zhy{YsT_79?qArBMAP5Wup}?yo?*i`(LH~O3J7?x)-e+dc2{Y@Nt!L5To!ibzvU12# zL|#$lDo^<;hyIB8PuymjWji}u$izHwr*v9Cp?QLVz%9d$=LL$E7It}V+>#nuP}oQ7O{ji4)+lk2mgv6*vB87u!%zqNu@VgYZk jijB{vdnml0PT9i$T%Nyhag8Z6w=&*&tRNhHFzC(!7K%<^ delta 631 zcmW;JZ)DX`9LMqR=bU@*x!c;^U3J^P_P4gW+iL8}G$m0ZQH;$ZC6P#)D6;Xp^q`cA zHhK`vh>e)(XSHWdk4E$?iWrTEB74wml-|1!UccY>9Orz__xyg($KtX1iy@kl+)`0a zUI`?XQczlDDp!TJWrHe}QI)c))^_dCPUT8#*^<^$F&VT=HR+(*R8SogrP)MKy$@>8 zZn7H7gPPRLT#H&6w`mX0y=ZqqtsNBmDE2F_PBwM1u$!<09DR^+Py9F3S0)Oy8Q0~i zo62S^X<4&Wdt4~oaM6O92^VZR`Cn#94Zj(3HAj0Joqa92nKK# z=WrRxvut@-DOSuk=&i(EX^5PYfPj^Y>CNKG{F) F{{z!{Qpo@S diff --git a/compiler/src/Scanner.java b/compiler/src/Scanner.java index 9348a66..3ff8597 100644 --- a/compiler/src/Scanner.java +++ b/compiler/src/Scanner.java @@ -6,7 +6,7 @@ /** * This class is a scanner generated by * JFlex 1.6.1 - * from the specification file /Users/Lee/Documents/compiler/src/java.flex + * from the specification file /home/esben/documents/P4 stuffs/P4 Scanner/P4/compiler/src/java.flex */ public class Scanner implements sym, java_cup.runtime.Scanner { @@ -176,16 +176,16 @@ public class Scanner implements sym, java_cup.runtime.Scanner { private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\1\1\2\0\1\2\1\3\1\4\1\3\1\5\1\6"+ - "\1\7\1\10\1\11\1\12\1\13\1\14\20\7\1\15"+ - "\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25"+ - "\1\2\1\3\1\0\1\10\1\0\5\7\1\26\1\27"+ - "\10\7\1\30\6\7\1\31\1\0\1\10\1\0\4\7"+ - "\1\32\3\7\1\33\1\34\1\7\1\35\12\7\1\36"+ - "\1\37\4\7\1\40\1\41\1\7\1\42\1\43\1\7"+ - "\1\44\1\7\1\45\2\7\1\46\1\7\1\47\2\7"+ - "\1\50\1\51\1\52\3\7\1\53\4\7\1\54\6\7"+ - "\1\55\20\7\1\56\3\7\1\57"; + "\3\0\1\1\1\2\1\3\1\2\1\4\1\5\1\6"+ + "\1\7\1\10\1\11\1\12\1\13\20\6\1\14\1\15"+ + "\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\1"+ + "\1\2\1\0\1\7\1\0\5\6\1\25\1\26\10\6"+ + "\1\27\6\6\1\30\1\0\1\7\1\0\4\6\1\31"+ + "\3\6\1\32\1\33\1\6\1\34\12\6\1\35\1\36"+ + "\4\6\1\37\1\40\1\6\1\41\1\42\1\6\1\43"+ + "\1\6\1\44\2\6\1\45\1\6\1\46\2\6\1\47"+ + "\1\50\1\51\3\6\1\52\4\6\1\53\6\6\1\54"+ + "\20\6\1\55\3\6\1\56"; private static int [] zzUnpackAction() { int [] result = new int[155]; @@ -435,9 +435,9 @@ private static int zzUnpackTrans(String packed, int offset, int [] result) { private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\1\2\0\1\11\1\1\2\11\1\1\1\11\3\1"+ - "\3\11\20\1\7\11\1\1\1\11\2\1\1\0\1\1"+ - "\1\0\26\1\1\11\1\0\1\1\1\0\124\1"; + "\3\0\1\11\1\1\2\11\1\1\1\11\3\1\3\11"+ + "\20\1\7\11\1\1\1\11\2\1\1\0\1\1\1\0"+ + "\26\1\1\11\1\0\1\1\1\0\124\1"; private static int [] zzUnpackAttribute() { int [] result = new int[155]; @@ -519,11 +519,11 @@ the source of the yytext() string */ StringBuilder string = new StringBuilder(); private Symbol symbol(int type) { - return new Symbol(type, yyline + 1, yycolumn + 1); + return new Symbol(type, yyline+1, yycolumn+1); } private Symbol symbol(int type, Object value) { - return new Symbol(type, yyline + 1, yycolumn + 1, value); + return new Symbol(type, yyline+1, yycolumn+1, value); } /** @@ -924,201 +924,196 @@ else if (zzAtEOF) { if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { zzAtEOF = true; zzDoEOF(); - { - return symbol(EOF); - } + { return symbol(EOF); + } } else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { case 1: - { return symbol(lambda); - } - case 48: break; - case 2: { throw new RuntimeException("Illegal character \""+yytext()+ "\" at line "+yyline+", column "+yycolumn); } - case 49: break; - case 3: + case 47: break; + case 2: { /* ignore */ } - case 50: break; - case 4: + case 48: break; + case 3: { return symbol(EOL); } - case 51: break; - case 5: + case 49: break; + case 4: { return symbol(slash); } - case 52: break; - case 6: + case 50: break; + case 5: { return symbol(asterix); } - case 53: break; - case 7: + case 51: break; + case 6: { return symbol(IDENTIFIER, yytext()); } - case 54: break; - case 8: + case 52: break; + case 7: { return symbol(num_lit, new Integer(yytext())); } - case 55: break; - case 9: + case 53: break; + case 8: { return symbol(dot); } - case 56: break; - case 10: + case 54: break; + case 9: { return symbol(minus); } - case 57: break; - case 11: + case 55: break; + case 10: { yybegin(STRING); string.setLength(0); } - case 58: break; - case 12: + case 56: break; + case 11: { yybegin(CHARLITERAL); } - case 59: break; - case 13: + case 57: break; + case 12: { return symbol(lparen); } - case 60: break; - case 14: + case 58: break; + case 13: { return symbol(rparen); } - case 61: break; - case 15: + case 59: break; + case 14: { return symbol(comma); } - case 62: break; - case 16: + case 60: break; + case 15: { return symbol(COLON); } - case 63: break; - case 17: + case 61: break; + case 16: { return symbol(ASSIGN); } - case 64: break; - case 18: + case 62: break; + case 17: { return symbol(plus); } - case 65: break; - case 19: + case 63: break; + case 18: { return symbol(hat); } - case 66: break; - case 20: + case 64: break; + case 19: { string.append( yytext() ); } - case 67: break; - case 21: + case 65: break; + case 20: { yybegin(YYINITIAL); return symbol(STRING_LITERAL, string.toString()); } - case 68: break; - case 22: + case 66: break; + case 21: { return symbol(IS); } - case 69: break; - case 23: + case 67: break; + case 22: { return symbol(IF); } - case 70: break; - case 24: + case 68: break; + case 23: { return symbol(OR); } - case 71: break; - case 25: + case 69: break; + case 24: { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, yytext().charAt(0)); } - case 72: break; - case 26: + case 70: break; + case 25: { return symbol(AND); } - case 73: break; - case 27: + case 71: break; + case 26: { return symbol(NUM); } - case 74: break; - case 28: + case 72: break; + case 27: { return symbol(NOT); } - case 75: break; - case 29: + case 73: break; + case 28: { return symbol(END); } - case 76: break; - case 30: + case 74: break; + case 29: { return symbol(SQRT); } - case 77: break; - case 31: + case 75: break; + case 30: { return symbol(TRUE); } - case 78: break; - case 32: + case 76: break; + case 31: { return symbol(ELSE); } - case 79: break; - case 33: + case 77: break; + case 32: { return symbol(VOID); } - case 80: break; - case 34: + case 78: break; + case 33: { return symbol(LOAD); } - case 81: break; - case 35: + case 79: break; + case 34: { return symbol(HEAR); } - case 82: break; - case 36: + case 80: break; + case 35: { return symbol(BOOL); } - case 83: break; - case 37: + case 81: break; + case 36: { return symbol(START); } - case 84: break; - case 38: + case 82: break; + case 37: { return symbol(FALSE); } - case 85: break; - case 39: + case 83: break; + case 38: { return symbol(UNTIL); } - case 86: break; - case 40: + case 84: break; + case 39: { return symbol(COORD); } - case 87: break; - case 41: + case 85: break; + case 40: { return symbol(STRING); } - case 88: break; - case 42: + case 86: break; + case 41: { return symbol(REPEAT); } - case 89: break; - case 43: + case 87: break; + case 42: { return symbol(FOREVER); } - case 90: break; - case 44: + case 88: break; + case 43: { return symbol(LT); } - case 91: break; - case 45: + case 89: break; + case 44: { return symbol(GT); } - case 92: break; - case 46: + case 90: break; + case 45: { return symbol(LTE); } - case 93: break; - case 47: + case 91: break; + case 46: { return symbol(GTE); } - case 94: break; + case 92: break; default: zzScanError(ZZ_NO_MATCH); } diff --git a/compiler/src/Scanner.java~ b/compiler/src/Scanner.java~ index 6ac0133..c1f4472 100644 --- a/compiler/src/Scanner.java~ +++ b/compiler/src/Scanner.java~ @@ -6,7 +6,7 @@ import java_cup.runtime.*; /** * This class is a scanner generated by * JFlex 1.6.1 - * from the specification file /Users/Lee/Documents/compiler/src/java.flex + * from the specification file /home/esben/documents/P4 stuffs/P4 Scanner/P4/compiler/src/java.flex */ public class Scanner implements sym, java_cup.runtime.Scanner { @@ -176,16 +176,16 @@ public class Scanner implements sym, java_cup.runtime.Scanner { private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\1\1\2\0\1\2\1\3\1\4\1\3\1\5\1\6"+ - "\1\7\1\10\1\11\1\12\1\13\1\14\20\7\1\15"+ - "\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25"+ - "\1\2\1\3\1\0\1\10\1\0\5\7\1\26\1\27"+ - "\10\7\1\30\6\7\1\31\1\0\1\10\1\0\4\7"+ - "\1\32\3\7\1\33\1\34\1\7\1\35\12\7\1\36"+ - "\1\37\4\7\1\40\1\41\1\7\1\42\1\43\1\7"+ - "\1\44\1\7\1\45\2\7\1\46\1\7\1\47\2\7"+ - "\1\50\1\51\1\52\3\7\1\53\4\7\1\54\6\7"+ - "\1\55\20\7\1\56\3\7\1\57"; + "\3\0\1\1\1\2\1\3\1\2\1\4\1\5\1\6"+ + "\1\7\1\10\1\11\1\12\1\13\20\6\1\14\1\15"+ + "\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\1"+ + "\1\2\1\0\1\7\1\0\5\6\1\25\1\26\10\6"+ + "\1\27\6\6\1\30\1\0\1\7\1\0\4\6\1\31"+ + "\3\6\1\32\1\33\1\6\1\34\12\6\1\35\1\36"+ + "\4\6\1\37\1\40\1\6\1\41\1\42\1\6\1\43"+ + "\1\6\1\44\2\6\1\45\1\6\1\46\2\6\1\47"+ + "\1\50\1\51\3\6\1\52\4\6\1\53\6\6\1\54"+ + "\20\6\1\55\3\6\1\56"; private static int [] zzUnpackAction() { int [] result = new int[155]; @@ -435,9 +435,9 @@ public class Scanner implements sym, java_cup.runtime.Scanner { private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\1\2\0\1\11\1\1\2\11\1\1\1\11\3\1"+ - "\3\11\20\1\7\11\1\1\1\11\2\1\1\0\1\1"+ - "\1\0\26\1\1\11\1\0\1\1\1\0\124\1"; + "\3\0\1\11\1\1\2\11\1\1\1\11\3\1\3\11"+ + "\20\1\7\11\1\1\1\11\2\1\1\0\1\1\1\0"+ + "\26\1\1\11\1\0\1\1\1\0\124\1"; private static int [] zzUnpackAttribute() { int [] result = new int[155]; @@ -517,14 +517,16 @@ public class Scanner implements sym, java_cup.runtime.Scanner { /* user code: */ StringBuilder string = new StringBuilder(); - + private Symbol EOFSymbol(int type){ + return new ComplexSymbolFactory.ComplexSymbol("EOF", EOF); + } private Symbol symbol(int type) { - return new JavaSymbol(type, yyline+1, yycolumn+1); - + return new Symbol(type, yyline+1, yycolumn+1); + } private Symbol symbol(int type, Object value) { - return new JavaSymbol(type, yyline+1, yycolumn+1, value); - + return new Symbol(type, yyline+1, yycolumn+1, value); + } /** * assumes correct representation of a long value for @@ -924,201 +926,194 @@ public class Scanner implements sym, java_cup.runtime.Scanner { if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { zzAtEOF = true; zzDoEOF(); - { - return symbol(EOF); - } } else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { case 1: - { return symbol(lambda); - } - case 48: break; - case 2: { throw new RuntimeException("Illegal character \""+yytext()+ "\" at line "+yyline+", column "+yycolumn); } - case 49: break; - case 3: + case 47: break; + case 2: { /* ignore */ } - case 50: break; - case 4: + case 48: break; + case 3: { return symbol(EOL); } - case 51: break; - case 5: + case 49: break; + case 4: { return symbol(slash); } - case 52: break; - case 6: + case 50: break; + case 5: { return symbol(asterix); } - case 53: break; - case 7: + case 51: break; + case 6: { return symbol(IDENTIFIER, yytext()); } - case 54: break; - case 8: + case 52: break; + case 7: { return symbol(num_lit, new Integer(yytext())); } - case 55: break; - case 9: + case 53: break; + case 8: { return symbol(dot); } - case 56: break; - case 10: + case 54: break; + case 9: { return symbol(minus); } - case 57: break; - case 11: + case 55: break; + case 10: { yybegin(STRING); string.setLength(0); } - case 58: break; - case 12: + case 56: break; + case 11: { yybegin(CHARLITERAL); } - case 59: break; - case 13: + case 57: break; + case 12: { return symbol(lparen); } - case 60: break; - case 14: + case 58: break; + case 13: { return symbol(rparen); } - case 61: break; - case 15: + case 59: break; + case 14: { return symbol(comma); } - case 62: break; - case 16: + case 60: break; + case 15: { return symbol(COLON); } - case 63: break; - case 17: + case 61: break; + case 16: { return symbol(ASSIGN); } - case 64: break; - case 18: + case 62: break; + case 17: { return symbol(plus); } - case 65: break; - case 19: + case 63: break; + case 18: { return symbol(hat); } - case 66: break; - case 20: + case 64: break; + case 19: { string.append( yytext() ); } - case 67: break; - case 21: + case 65: break; + case 20: { yybegin(YYINITIAL); return symbol(STRING_LITERAL, string.toString()); } - case 68: break; - case 22: + case 66: break; + case 21: { return symbol(IS); } - case 69: break; - case 23: + case 67: break; + case 22: { return symbol(IF); } - case 70: break; - case 24: + case 68: break; + case 23: { return symbol(OR); } - case 71: break; - case 25: + case 69: break; + case 24: { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, yytext().charAt(0)); } - case 72: break; - case 26: + case 70: break; + case 25: { return symbol(AND); } - case 73: break; - case 27: + case 71: break; + case 26: { return symbol(NUM); } - case 74: break; - case 28: + case 72: break; + case 27: { return symbol(NOT); } - case 75: break; - case 29: + case 73: break; + case 28: { return symbol(END); } - case 76: break; - case 30: + case 74: break; + case 29: { return symbol(SQRT); } - case 77: break; - case 31: + case 75: break; + case 30: { return symbol(TRUE); } - case 78: break; - case 32: + case 76: break; + case 31: { return symbol(ELSE); } - case 79: break; - case 33: + case 77: break; + case 32: { return symbol(VOID); } - case 80: break; - case 34: + case 78: break; + case 33: { return symbol(LOAD); } - case 81: break; - case 35: + case 79: break; + case 34: { return symbol(HEAR); } - case 82: break; - case 36: + case 80: break; + case 35: { return symbol(BOOL); } - case 83: break; - case 37: + case 81: break; + case 36: { return symbol(START); } - case 84: break; - case 38: + case 82: break; + case 37: { return symbol(FALSE); } - case 85: break; - case 39: + case 83: break; + case 38: { return symbol(UNTIL); } - case 86: break; - case 40: + case 84: break; + case 39: { return symbol(COORD); } - case 87: break; - case 41: + case 85: break; + case 40: { return symbol(STRING); } - case 88: break; - case 42: + case 86: break; + case 41: { return symbol(REPEAT); } - case 89: break; - case 43: + case 87: break; + case 42: { return symbol(FOREVER); } - case 90: break; - case 44: + case 88: break; + case 43: { return symbol(LT); } - case 91: break; - case 45: + case 89: break; + case 44: { return symbol(GT); } - case 92: break; - case 46: + case 90: break; + case 45: { return symbol(LTE); } - case 93: break; - case 47: + case 91: break; + case 46: { return symbol(GTE); } - case 94: break; + case 92: break; default: zzScanError(ZZ_NO_MATCH); } diff --git a/compiler/src/UnicodeEscapes.java b/compiler/src/UnicodeEscapes.java index 9d2b6ac..a7dcd65 100644 --- a/compiler/src/UnicodeEscapes.java +++ b/compiler/src/UnicodeEscapes.java @@ -45,7 +45,7 @@ /** * This class is a scanner generated by * JFlex 1.6.1 - * from the specification file /Users/Lee/Documents/compiler/src/unicode.flex + * from the specification file /home/esben/documents/P4 stuffs/P4 Scanner/P4/compiler/src/unicode.flex */ public final class UnicodeEscapes extends FilterReader { diff --git a/compiler/src/build.xml b/compiler/src/build.xml index b7e045c..6bb2497 100644 --- a/compiler/src/build.xml +++ b/compiler/src/build.xml @@ -1,7 +1,7 @@ - - + + diff --git a/compiler/src/cancer b/compiler/src/cancer index 0da8054..2fd1217 100644 --- a/compiler/src/cancer +++ b/compiler/src/cancer @@ -1,15 +1,21 @@ Robot: -LOAD (KAGE) -NUM a = 5 -VOID START () + +NUM a + + + +VOID START () + + + -END START \ No newline at end of file +END START diff --git a/compiler/src/java.flex b/compiler/src/java.flex index 4a1b356..95de87b 100644 --- a/compiler/src/java.flex +++ b/compiler/src/java.flex @@ -11,6 +11,10 @@ import java_cup.runtime.*; %line %column +%eofval{ + return symbol(EOF); +%eofval} + %cup %cupdebug @@ -18,12 +22,12 @@ import java_cup.runtime.*; StringBuilder string = new StringBuilder(); private Symbol symbol(int type) { - return new JavaSymbol(type, yyline+1, yycolumn+1); - + return new Symbol(type, yyline+1, yycolumn+1); + } private Symbol symbol(int type, Object value) { - return new JavaSymbol(type, yyline+1, yycolumn+1, value); - + return new Symbol(type, yyline+1, yycolumn+1, value); + } /** * assumes correct representation of a long value for @@ -50,6 +54,7 @@ InputCharacter = [^\r\n] WhiteSpace = {LineTerminator} | [ \t\f] + /* comments */ Comment = {TraditionalComment} | {EndOfLineComment} | {DocumentationComment} @@ -123,8 +128,7 @@ Identifier = [:jletter:][:jletterdigit:]* "*" { return symbol(asterix);} "/" { return symbol(slash); } "^" { return symbol(hat);} - "\n" { return symbol(EOL);} - "" { return symbol(lambda); } + "\n" { return symbol(EOL);} /* Identifier */ {Identifier} { return symbol(IDENTIFIER, yytext()); } @@ -159,4 +163,5 @@ Identifier = [:jletter:][:jletterdigit:]* /* error fallback */ [^] { throw new RuntimeException("Illegal character \""+yytext()+ "\" at line "+yyline+", column "+yycolumn); } -<> { return symbol(EOF); } + +//<> { return symbol(EOF); } diff --git a/compiler/src/java12.cup b/compiler/src/java12.cup index 669f424..8cc301b 100644 --- a/compiler/src/java12.cup +++ b/compiler/src/java12.cup @@ -25,7 +25,7 @@ non terminal Prog, robo, load, dcl, loop_stmt, func_call, sig_stmt, expr, term, factor, exp, cond, bool_op, bool_cnd, args, params, type, string_lit, else_if, else, - params_list, args_list; + params_list, args_list, EOL_list, init_dcl; //Optional non-terminals, used in stead of [] i EBNF non terminal num_opt, ref_opt, string_opt, bool_opt, coord_opt, @@ -57,70 +57,79 @@ terminal java.lang.Character CHARACTER_LITERAL; // Actual grammar // -Prog ::= robo load dcl start_func func End_Of_File; -robo ::= IDENTIFIER COLON EOL - | robo EOL +Prog ::= robo load init_dcl start_func func; +robo ::= IDENTIFIER COLON EOL_list ; load ::= LOAD lparen IDENTIFIER rparen EOL - | load EOL - | lambda + | /* lambda */ + ; +init_dcl ::= dcl EOL_list + | /* lambda */ ; dcl ::= num_dcl dcl - | string_dcl dcl EOL - | bool_dcl dcl EOL - | coord_dcl dcl EOL - | lambda + | string_dcl dcl + | bool_dcl dcl + | coord_dcl dcl + | num_dcl + | string_dcl + | bool_dcl + | coord_dcl + ; +num_dcl::= NUM IDENTIFIER num_opt EOL ; -num_dcl::= NUM IDENTIFIER num_opt EOL; num_opt::= ASSIGN expr - | lambda + | /* lambda */ ; //ref_dcl::= type IDENTIFIER ref_opt EOL; //ref_opt::= ASSIGN AT coord_lit -// | lambda +// | /* lambda */ // ; string_dcl - ::= STRING IDENTIFIER string_opt EOL; + ::= STRING IDENTIFIER string_opt EOL + ; string_opt ::= ASSIGN quote string_lit quote - | lambda + | /* lambda */ ; bool_dcl - ::= BOOL IDENTIFIER EOL; + ::= BOOL IDENTIFIER bool_opt EOL + ; bool_opt ::= ASSIGN TRUE | ASSIGN FALSE - | lambda + | /* lambda */ ; coord_dcl - ::= COORD IDENTIFIER coord_opt EOL; + ::= COORD IDENTIFIER coord_opt EOL + ; coord_opt ::= ASSIGN coord_lit - | lambda + | /* lambda */ ; start_func ::= VOID START lparen rparen EOL func_body END START ; func ::= type IDENTIFIER lparen params rparen EOL func_body RETURN expr EOL END IDENTIFIER - | lambda - | EOL func + | /* lambda */ + | EOL_list ; func_body - ::= func_body dcl EOL - | func_body stmt EOL - | lambda - | func_body EOL + ::= func_body dcl EOL_list + | func_body stmt EOL_list + | dcl EOL_list + | stmt EOL_list + | EOL_list ; stmt ::= if_stmt | loop_stmt - | expr EOL + | expr | sig_stmt ; if_stmt ::= IF cond EOL func_body END IF else_if else ; else_if::= else_if ELSE IF cond EOL func_body END ELSE IF - | lambda + | /* lambda */ ; else ::= ELSE EOL func_body END ELSE ; @@ -192,4 +201,7 @@ string_lit | num_lit | char_lit ; - +EOL_list + ::= EOL_list EOL + | EOL + ; diff --git a/compiler/src/parser.class b/compiler/src/parser.class index f3afa5411695b011c84f1e6cc32ffcf1422763dc..f38534fa3c0fc128ec0925ffa525c9315d8c49d1 100644 GIT binary patch literal 8431 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 Z*ZGOse_vVY;Q=#rriTq?=rXZT{|m9`FaH1l diff --git a/compiler/src/parser.java b/compiler/src/parser.java index 2e41b68..14f8475 100644 --- a/compiler/src/parser.java +++ b/compiler/src/parser.java @@ -1,14 +1,14 @@ //---------------------------------------------------- // The following code was generated by CUP v0.11b 20140611 (SVN rev 31) -// Thu Mar 10 11:54:22 CET 2016 +// Fri Mar 11 12:21:39 GMT 2016 //---------------------------------------------------- import java_cup.*; import java_cup.runtime.ComplexSymbolFactory.Location; /** CUP v0.11b 20140611 (SVN rev 31) generated parser. - * @version Thu Mar 10 11:54:22 CET 2016 + * @version Fri Mar 11 12:21:39 GMT 2016 */ public class parser extends java_cup.runtime.lr_parser { @@ -24,34 +24,36 @@ public class parser extends java_cup.runtime.lr_parser { /** Production table. */ protected static final short _production_table[][] = unpackFromStrings(new String[] { - "\000\131\000\002\002\010\000\002\002\004\000\002\003" + - "\005\000\002\003\004\000\002\004\007\000\002\004\004" + - "\000\002\004\003\000\002\005\004\000\002\005\005\000" + - "\002\005\005\000\002\005\005\000\002\005\003\000\002" + - "\006\006\000\002\042\004\000\002\042\003\000\002\010" + - "\006\000\002\044\006\000\002\044\003\000\002\011\005" + - "\000\002\045\004\000\002\045\004\000\002\045\003\000" + - "\002\012\006\000\002\046\004\000\002\046\003\000\002" + - "\013\012\000\002\014\016\000\002\014\003\000\002\014" + - "\004\000\002\015\005\000\002\015\005\000\002\015\003" + - "\000\002\015\004\000\002\016\003\000\002\016\003\000" + - "\002\016\004\000\002\016\003\000\002\017\012\000\002" + - "\036\013\000\002\036\003\000\002\037\007\000\002\020" + - "\011\000\002\020\007\000\002\021\007\000\002\021\011" + - "\000\002\022\010\000\002\023\005\000\002\023\005\000" + - "\002\023\003\000\002\024\005\000\002\024\005\000\002" + - "\024\003\000\002\025\005\000\002\025\005\000\002\025" + - "\003\000\002\026\005\000\002\026\003\000\002\026\003" + - "\000\002\026\003\000\002\027\003\000\002\027\003\000" + - "\002\027\006\000\002\047\004\000\002\047\003\000\002" + - "\030\003\000\002\030\003\000\002\030\003\000\002\030" + - "\003\000\002\030\003\000\002\030\003\000\002\031\003" + - "\000\002\031\003\000\002\032\003\000\002\032\003\000" + - "\002\041\003\000\002\041\005\000\002\033\003\000\002" + - "\033\003\000\002\040\006\000\002\040\004\000\002\034" + - "\003\000\002\034\003\000\002\034\003\000\002\034\003" + - "\000\002\034\003\000\002\035\004\000\002\035\004\000" + - "\002\035\003\000\002\035\003" }); + "\000\137\000\002\002\007\000\002\002\004\000\002\003" + + "\005\000\002\004\007\000\002\004\002\000\002\043\004" + + "\000\002\043\002\000\002\005\004\000\002\005\004\000" + + "\002\005\004\000\002\005\004\000\002\005\003\000\002" + + "\005\003\000\002\005\003\000\002\005\003\000\002\006" + + "\006\000\002\044\004\000\002\044\002\000\002\010\006" + + "\000\002\046\006\000\002\046\002\000\002\011\006\000" + + "\002\047\004\000\002\047\004\000\002\047\002\000\002" + + "\012\006\000\002\050\004\000\002\050\002\000\002\013" + + "\012\000\002\014\016\000\002\014\002\000\002\014\003" + + "\000\002\015\005\000\002\015\005\000\002\015\004\000" + + "\002\015\004\000\002\015\003\000\002\016\003\000\002" + + "\016\003\000\002\016\003\000\002\016\003\000\002\017" + + "\012\000\002\036\013\000\002\036\002\000\002\037\007" + + "\000\002\020\011\000\002\020\007\000\002\021\007\000" + + "\002\021\011\000\002\022\010\000\002\023\005\000\002" + + "\023\005\000\002\023\003\000\002\024\005\000\002\024" + + "\005\000\002\024\003\000\002\025\005\000\002\025\005" + + "\000\002\025\003\000\002\026\005\000\002\026\003\000" + + "\002\026\003\000\002\026\003\000\002\027\003\000\002" + + "\027\003\000\002\027\006\000\002\051\004\000\002\051" + + "\003\000\002\030\003\000\002\030\003\000\002\030\003" + + "\000\002\030\003\000\002\030\003\000\002\030\003\000" + + "\002\031\003\000\002\031\003\000\002\032\003\000\002" + + "\032\003\000\002\041\003\000\002\041\005\000\002\033" + + "\003\000\002\033\003\000\002\040\006\000\002\040\004" + + "\000\002\034\003\000\002\034\003\000\002\034\003\000" + + "\002\034\003\000\002\034\003\000\002\035\004\000\002" + + "\035\004\000\002\035\003\000\002\035\003\000\002\042" + + "\004\000\002\042\003" }); /** Access to production table. */ public short[][] production_table() {return _production_table;} @@ -59,210 +61,223 @@ public class parser extends java_cup.runtime.lr_parser { /** Parse-action table. */ protected static final short[][] _action_table = unpackFromStrings(new String[] { - "\000\315\000\004\005\006\001\002\000\010\007\012\012" + - "\014\050\013\001\002\000\004\002\011\001\002\000\004" + - "\006\007\001\002\000\004\012\010\001\002\000\010\007" + - "\uffff\012\uffff\050\uffff\001\002\000\004\002\000\001\002" + - "\000\004\016\314\001\002\000\016\012\ufffb\050\ufffb\051" + - "\ufffb\053\ufffb\055\ufffb\060\ufffb\001\002\000\010\007\ufffe" + - "\012\ufffe\050\ufffe\001\002\000\016\012\021\050\025\051" + - "\016\053\024\055\020\060\022\001\002\000\004\005\167" + - "\001\002\000\014\050\025\051\016\053\024\055\020\060" + - "\022\001\002\000\004\005\134\001\002\000\016\012\ufffc" + - "\050\ufffc\051\ufffc\053\ufffc\055\ufffc\060\ufffc\001\002\000" + - "\004\005\237\001\002\000\014\050\025\051\016\053\024" + - "\055\020\060\022\001\002\000\004\005\153\001\002\000" + - "\006\012\ufff6\061\ufff6\001\002\000\004\061\036\001\002" + - "\000\014\050\025\051\016\053\024\055\020\060\022\001" + - "\002\000\014\050\025\051\016\053\024\055\020\060\022" + - "\001\002\000\004\012\032\001\002\000\006\012\ufff8\061" + - "\ufff8\001\002\000\004\012\034\001\002\000\006\012\ufff9" + - "\061\ufff9\001\002\000\020\012\261\050\263\051\100\053" + - "\104\055\101\060\102\061\073\001\002\000\004\004\037" + - "\001\002\000\004\016\040\001\002\000\004\017\041\001" + - "\002\000\004\012\042\001\002\000\004\050\043\001\002" + - "\000\042\005\uffe2\012\uffe2\013\uffe2\014\uffe2\016\uffe2\024" + - "\uffe2\025\uffe2\027\uffe2\031\uffe2\050\uffe2\051\uffe2\053\uffe2" + - "\055\uffe2\060\uffe2\061\uffe2\063\uffe2\001\002\000\040\005" + - "\050\012\056\013\047\016\072\024\054\025\074\027\065" + - "\031\052\050\025\051\055\053\060\055\071\060\051\061" + - "\073\063\064\001\002\000\004\012\260\001\002\000\004" + - "\021\252\001\002\000\004\004\251\001\002\000\050\012" + - "\uffc9\016\245\017\uffc9\022\uffc9\032\uffc9\033\uffc9\034\uffc9" + - "\035\uffc9\036\uffc9\037\uffc9\040\uffc9\041\uffc9\042\uffc9\043" + - "\uffc9\044\uffc9\045\uffc9\046\uffc9\047\uffc9\050\uffc9\001\002" + - "\000\006\005\237\021\uffaf\001\002\000\004\005\225\001" + - "\002\000\046\012\uffcb\017\uffcb\022\uffcb\032\uffcb\033\uffcb" + - "\034\uffcb\035\uffcb\036\222\037\221\040\uffcb\041\uffcb\042" + - "\uffcb\043\uffcb\044\uffcb\045\uffcb\046\uffcb\047\uffcb\050\uffcb" + - "\001\002\000\026\005\050\016\072\051\100\053\104\055" + - "\101\056\103\057\105\060\102\061\073\063\064\001\002" + - "\000\006\005\167\021\uffb1\001\002\000\042\005\uffe1\012" + - "\uffe1\013\uffe1\014\uffe1\016\uffe1\024\uffe1\025\uffe1\027\uffe1" + - "\031\uffe1\050\uffe1\051\uffe1\053\uffe1\055\uffe1\060\uffe1\061" + - "\uffe1\063\uffe1\001\002\000\046\012\uffc7\017\uffc7\022\uffc7" + - "\032\uffc7\033\uffc7\034\uffc7\035\uffc7\036\uffc7\037\uffc7\040" + - "\uffc7\041\uffc7\042\uffc7\043\uffc7\044\uffc7\045\uffc7\046\uffc7" + - "\047\uffc7\050\uffc7\001\002\000\006\005\153\021\uffae\001" + - "\002\000\004\012\uffdf\001\002\000\042\012\uffce\017\uffce" + - "\022\uffce\032\uffce\033\uffce\034\147\035\150\040\uffce\041" + - "\uffce\042\uffce\043\uffce\044\uffce\045\uffce\046\uffce\047\uffce" + - "\050\uffce\001\002\000\036\012\uffd1\017\uffd1\022\uffd1\032" + - "\144\033\143\040\uffd1\041\uffd1\042\uffd1\043\uffd1\044\uffd1" + - "\045\uffd1\046\uffd1\047\uffd1\050\uffd1\001\002\000\046\012" + - "\uffc8\017\uffc8\022\uffc8\032\uffc8\033\uffc8\034\uffc8\035\uffc8" + - "\036\uffc8\037\uffc8\040\uffc8\041\uffc8\042\uffc8\043\uffc8\044" + - "\uffc8\045\uffc8\046\uffc8\047\uffc8\050\uffc8\001\002\000\004" + - "\012\137\001\002\000\004\012\136\001\002\000\004\012" + - "\uffe0\001\002\000\004\012\uffdd\001\002\000\006\005\134" + - "\021\uffb0\001\002\000\022\005\050\016\072\051\100\053" + - "\104\055\101\060\102\061\073\063\064\001\002\000\006" + - "\005\uffad\021\uffad\001\002\000\004\026\077\001\002\000" + - "\004\012\076\001\002\000\042\005\uffe3\012\uffe3\013\uffe3" + - "\014\uffe3\016\uffe3\024\uffe3\025\uffe3\027\uffe3\031\uffe3\050" + - "\uffe3\051\uffe3\053\uffe3\055\uffe3\060\uffe3\061\uffe3\063\uffe3" + - "\001\002\000\026\005\050\016\072\051\100\053\104\055" + - "\101\056\103\057\105\060\102\061\073\063\064\001\002" + - "\000\006\005\uffb1\021\uffb1\001\002\000\006\005\uffb0\021" + - "\uffb0\001\002\000\006\005\uffaf\021\uffaf\001\002\000\004" + - "\012\uffc6\001\002\000\006\005\uffae\021\uffae\001\002\000" + - "\004\012\uffc5\001\002\000\004\012\126\001\002\000\016" + - "\040\115\041\114\042\112\043\110\044\111\045\113\001" + - "\002\000\022\005\uffbe\016\uffbe\051\uffbe\053\uffbe\055\uffbe" + - "\060\uffbe\061\uffbe\063\uffbe\001\002\000\022\005\uffbd\016" + - "\uffbd\051\uffbd\053\uffbd\055\uffbd\060\uffbd\061\uffbd\063\uffbd" + - "\001\002\000\022\005\uffbf\016\uffbf\051\uffbf\053\uffbf\055" + - "\uffbf\060\uffbf\061\uffbf\063\uffbf\001\002\000\022\005\uffbc" + - "\016\uffbc\051\uffbc\053\uffbc\055\uffbc\060\uffbc\061\uffbc\063" + - "\uffbc\001\002\000\022\005\uffc0\016\uffc0\051\uffc0\053\uffc0" + - "\055\uffc0\060\uffc0\061\uffc0\063\uffc0\001\002\000\022\005" + - "\uffc1\016\uffc1\051\uffc1\053\uffc1\055\uffc1\060\uffc1\061\uffc1" + - "\063\uffc1\001\002\000\022\005\050\016\072\051\100\053" + - "\104\055\101\060\102\061\073\063\064\001\002\000\010" + - "\046\123\047\124\050\121\001\002\000\026\005\050\016" + - "\072\051\100\053\104\055\101\056\103\057\105\060\102" + - "\061\073\063\064\001\002\000\004\012\uffc2\001\002\000" + - "\004\012\uffc4\001\002\000\026\005\uffbb\016\uffbb\051\uffbb" + - "\053\uffbb\055\uffbb\056\uffbb\057\uffbb\060\uffbb\061\uffbb\063" + - "\uffbb\001\002\000\026\005\uffba\016\uffba\051\uffba\053\uffba" + - "\055\uffba\056\uffba\057\uffba\060\uffba\061\uffba\063\uffba\001" + - "\002\000\004\012\uffc3\001\002\000\004\050\043\001\002" + - "\000\040\005\050\012\056\013\130\016\072\024\054\025" + - "\074\027\065\031\052\050\025\051\055\053\060\055\071" + - "\060\051\061\073\063\064\001\002\000\004\025\131\001" + - "\002\000\004\012\uffd8\001\002\000\004\017\133\001\002" + - "\000\046\012\uffca\017\uffca\022\uffca\032\uffca\033\uffca\034" + - "\uffca\035\uffca\036\uffca\037\uffca\040\uffca\041\uffca\042\uffca" + - "\043\uffca\044\uffca\045\uffca\046\uffca\047\uffca\050\uffca\001" + - "\002\000\004\012\135\001\002\000\014\050\uffef\051\uffef" + - "\053\uffef\055\uffef\060\uffef\001\002\000\042\005\uffe4\012" + - "\uffe4\013\uffe4\014\uffe4\016\uffe4\024\uffe4\025\uffe4\027\uffe4" + - "\031\uffe4\050\uffe4\051\uffe4\053\uffe4\055\uffe4\060\uffe4\061" + - "\uffe4\063\uffe4\001\002\000\004\050\043\001\002\000\040" + - "\005\050\012\056\013\141\016\072\024\054\025\074\027" + - "\065\031\052\050\025\051\055\053\060\055\071\060\051" + - "\061\073\063\064\001\002\000\004\027\142\001\002\000" + - "\004\012\uffd7\001\002\000\022\005\050\016\072\051\100" + - "\053\104\055\101\060\102\061\073\063\064\001\002\000" + - "\022\005\050\016\072\051\100\053\104\055\101\060\102" + - "\061\073\063\064\001\002\000\032\012\uffd3\017\uffd3\022" + - "\uffd3\040\uffd3\041\uffd3\042\uffd3\043\uffd3\044\uffd3\045\uffd3" + - "\046\uffd3\047\uffd3\050\uffd3\001\002\000\032\012\uffd2\017" + - "\uffd2\022\uffd2\040\uffd2\041\uffd2\042\uffd2\043\uffd2\044\uffd2" + - "\045\uffd2\046\uffd2\047\uffd2\050\uffd2\001\002\000\022\005" + - "\050\016\072\051\100\053\104\055\101\060\102\061\073" + - "\063\064\001\002\000\022\005\050\016\072\051\100\053" + - "\104\055\101\060\102\061\073\063\064\001\002\000\036" + - "\012\uffcf\017\uffcf\022\uffcf\032\uffcf\033\uffcf\040\uffcf\041" + - "\uffcf\042\uffcf\043\uffcf\044\uffcf\045\uffcf\046\uffcf\047\uffcf" + - "\050\uffcf\001\002\000\036\012\uffd0\017\uffd0\022\uffd0\032" + - "\uffd0\033\uffd0\040\uffd0\041\uffd0\042\uffd0\043\uffd0\044\uffd0" + - "\045\uffd0\046\uffd0\047\uffd0\050\uffd0\001\002\000\006\023" + - "\156\050\154\001\002\000\004\012\ufff0\001\002\000\004" + - "\012\166\001\002\000\004\020\157\001\002\000\006\052" + - "\160\063\162\001\002\000\010\020\uffa9\052\uffa9\063\uffa9" + - "\001\002\000\010\020\164\052\163\063\165\001\002\000" + - "\010\020\uffaa\052\uffaa\063\uffaa\001\002\000\010\020\uffab" + - "\052\uffab\063\uffab\001\002\000\004\012\ufff1\001\002\000" + - "\010\020\uffac\052\uffac\063\uffac\001\002\000\014\050\ufff2" + - "\051\ufff2\053\ufff2\055\ufff2\060\ufff2\001\002\000\006\023" + - "\172\050\170\001\002\000\004\012\ufff3\001\002\000\004" + - "\012\174\001\002\000\022\005\050\016\072\051\100\053" + - "\104\055\101\060\102\061\073\063\064\001\002\000\004" + - "\012\ufff4\001\002\000\014\050\ufff5\051\ufff5\053\ufff5\055" + - "\ufff5\060\ufff5\001\002\000\004\012\176\001\002\000\004" + - "\050\043\001\002\000\040\005\050\012\056\013\200\016" + - "\072\024\054\025\074\027\065\031\052\050\025\051\055" + - "\053\060\055\071\060\051\061\073\063\064\001\002\000" + - "\004\024\201\001\002\000\004\050\202\001\002\000\004" + - "\030\uffda\001\002\000\004\030\204\001\002\000\006\012" + - "\206\024\207\001\002\000\004\012\uffdc\001\002\000\004" + - "\050\043\001\002\000\026\005\050\016\072\051\100\053" + - "\104\055\101\056\103\057\105\060\102\061\073\063\064" + - "\001\002\000\004\012\211\001\002\000\004\050\043\001" + - "\002\000\040\005\050\012\056\013\213\016\072\024\054" + - "\025\074\027\065\031\052\050\025\051\055\053\060\055" + - "\071\060\051\061\073\063\064\001\002\000\004\030\214" + - "\001\002\000\004\024\215\001\002\000\004\030\uffdb\001" + - "\002\000\040\005\050\012\056\013\217\016\072\024\054" + - "\025\074\027\065\031\052\050\025\051\055\053\060\055" + - "\071\060\051\061\073\063\064\001\002\000\004\030\220" + - "\001\002\000\004\012\uffd9\001\002\000\022\005\050\016" + - "\072\051\100\053\104\055\101\060\102\061\073\063\064" + - "\001\002\000\022\005\050\016\072\051\100\053\104\055" + - "\101\060\102\061\073\063\064\001\002\000\042\012\uffcd" + - "\017\uffcd\022\uffcd\032\uffcd\033\uffcd\034\uffcd\035\uffcd\040" + - "\uffcd\041\uffcd\042\uffcd\043\uffcd\044\uffcd\045\uffcd\046\uffcd" + - "\047\uffcd\050\uffcd\001\002\000\042\012\uffcc\017\uffcc\022" + - "\uffcc\032\uffcc\033\uffcc\034\uffcc\035\uffcc\040\uffcc\041\uffcc" + - "\042\uffcc\043\uffcc\044\uffcc\045\uffcc\046\uffcc\047\uffcc\050" + - "\uffcc\001\002\000\004\016\226\001\002\000\024\005\050" + - "\016\072\050\230\051\100\053\104\055\101\060\102\061" + - "\073\063\064\001\002\000\006\017\uffb9\022\235\001\002" + - "\000\004\017\uffb8\001\002\000\004\017\233\001\002\000" + - "\006\017\uffb7\022\uffb7\001\002\000\004\012\234\001\002" + - "\000\004\012\uffd4\001\002\000\022\005\050\016\072\051" + - "\100\053\104\055\101\060\102\061\073\063\064\001\002" + - "\000\006\017\uffb6\022\uffb6\001\002\000\006\023\242\050" + - "\240\001\002\000\004\012\uffe9\001\002\000\004\012\244" + - "\001\002\000\004\054\243\001\002\000\004\012\uffea\001" + - "\002\000\014\050\uffeb\051\uffeb\053\uffeb\055\uffeb\060\uffeb" + - "\001\002\000\024\005\050\016\072\050\230\051\100\053" + - "\104\055\101\060\102\061\073\063\064\001\002\000\004" + - "\017\247\001\002\000\004\012\250\001\002\000\046\012" + - "\uffd6\017\uffd6\022\uffd6\032\uffd6\033\uffd6\034\uffd6\035\uffd6" + - "\036\uffd6\037\uffd6\040\uffd6\041\uffd6\042\uffd6\043\uffd6\044" + - "\uffd6\045\uffd6\046\uffd6\047\uffd6\050\uffd6\001\002\000\020" + - "\012\uffe8\050\uffe8\051\uffe8\053\uffe8\055\uffe8\060\uffe8\061" + - "\uffe8\001\002\000\004\005\253\001\002\000\004\016\254" + - "\001\002\000\024\005\050\016\072\050\230\051\100\053" + - "\104\055\101\060\102\061\073\063\064\001\002\000\004" + - "\017\256\001\002\000\004\012\257\001\002\000\046\012" + - "\uffd5\017\uffd5\022\uffd5\032\uffd5\033\uffd5\034\uffd5\035\uffd5" + - "\036\uffd5\037\uffd5\040\uffd5\041\uffd5\042\uffd5\043\uffd5\044" + - "\uffd5\045\uffd5\046\uffd5\047\uffd5\050\uffd5\001\002\000\004" + - "\012\uffde\001\002\000\020\012\261\050\263\051\100\053" + - "\104\055\101\060\102\061\073\001\002\000\004\011\307" + - "\001\002\000\004\011\uffe6\001\002\000\004\005\265\001" + - "\002\000\004\016\266\001\002\000\016\050\271\051\100" + - "\053\104\055\101\060\102\061\073\001\002\000\006\017" + - "\uffb5\022\304\001\002\000\004\017\274\001\002\000\004" + - "\017\uffb4\001\002\000\004\005\273\001\002\000\006\017" + - "\uffb2\022\uffb2\001\002\000\004\012\275\001\002\000\004" + - "\050\043\001\002\000\040\005\050\012\056\014\277\016" + - "\072\024\054\025\074\027\065\031\052\050\025\051\055" + - "\053\060\055\071\060\051\061\073\063\064\001\002\000" + - "\022\005\050\016\072\051\100\053\104\055\101\060\102" + - "\061\073\063\064\001\002\000\004\012\301\001\002\000" + - "\004\013\302\001\002\000\004\005\303\001\002\000\004" + - "\011\uffe7\001\002\000\014\051\100\053\104\055\101\060" + - "\102\061\073\001\002\000\004\005\306\001\002\000\006" + - "\017\uffb3\022\uffb3\001\002\000\004\002\001\001\002\000" + - "\004\011\uffe5\001\002\000\004\012\312\001\002\000\006" + - "\012\ufff7\061\ufff7\001\002\000\006\012\ufffa\061\ufffa\001" + - "\002\000\004\005\315\001\002\000\004\017\316\001\002" + - "\000\004\012\317\001\002\000\016\012\ufffd\050\ufffd\051" + - "\ufffd\053\ufffd\055\ufffd\060\ufffd\001\002" }); + "\000\311\000\004\005\006\001\002\000\016\007\014\051" + + "\ufffd\053\ufffd\055\ufffd\060\ufffd\061\ufffd\001\002\000\004" + + "\002\013\001\002\000\004\006\007\001\002\000\004\012" + + "\010\001\002\000\044\002\uffa3\005\uffa3\007\uffa3\012\uffa3" + + "\013\uffa3\014\uffa3\016\uffa3\024\uffa3\025\uffa3\027\uffa3\031" + + "\uffa3\051\uffa3\053\uffa3\055\uffa3\060\uffa3\061\uffa3\063\uffa3" + + "\001\002\000\020\007\uffff\012\012\051\uffff\053\uffff\055" + + "\uffff\060\uffff\061\uffff\001\002\000\044\002\uffa4\005\uffa4" + + "\007\uffa4\012\uffa4\013\uffa4\014\uffa4\016\uffa4\024\uffa4\025" + + "\uffa4\027\uffa4\031\uffa4\051\uffa4\053\uffa4\055\uffa4\060\uffa4" + + "\061\uffa4\063\uffa4\001\002\000\004\002\000\001\002\000" + + "\004\016\310\001\002\000\014\051\016\053\023\055\020" + + "\060\021\061\ufffb\001\002\000\004\005\170\001\002\000" + + "\014\012\ufff6\051\016\053\023\055\020\060\021\001\002" + + "\000\004\005\132\001\002\000\004\005\236\001\002\000" + + "\014\012\ufff3\051\016\053\023\055\020\060\021\001\002" + + "\000\004\005\155\001\002\000\004\012\010\001\002\000" + + "\014\012\ufff5\051\016\053\023\055\020\060\021\001\002" + + "\000\004\061\032\001\002\000\014\012\ufff4\051\016\053" + + "\023\055\020\060\021\001\002\000\004\012\ufff8\001\002" + + "\000\020\002\uffe3\012\010\051\072\053\076\055\073\060" + + "\074\061\066\001\002\000\004\004\033\001\002\000\004" + + "\016\034\001\002\000\004\017\035\001\002\000\004\012" + + "\036\001\002\000\034\005\042\012\010\016\064\024\046" + + "\025\065\027\057\031\044\051\047\053\052\055\063\060" + + "\043\061\066\063\056\001\002\000\034\005\042\013\255" + + "\016\064\024\046\025\065\027\057\031\044\051\047\053" + + "\052\055\063\060\043\061\066\063\056\001\002\000\004" + + "\012\uffda\001\002\000\004\021\247\001\002\000\050\012" + + "\uffc5\016\243\017\uffc5\022\uffc5\032\uffc5\033\uffc5\034\uffc5" + + "\035\uffc5\036\uffc5\037\uffc5\040\uffc5\041\uffc5\042\uffc5\043" + + "\uffc5\044\uffc5\045\uffc5\046\uffc5\047\uffc5\050\uffc5\001\002" + + "\000\006\005\236\021\uffab\001\002\000\004\005\224\001" + + "\002\000\046\012\uffc7\017\uffc7\022\uffc7\032\uffc7\033\uffc7" + + "\034\uffc7\035\uffc7\036\221\037\220\040\uffc7\041\uffc7\042" + + "\uffc7\043\uffc7\044\uffc7\045\uffc7\046\uffc7\047\uffc7\050\uffc7" + + "\001\002\000\026\005\042\016\064\051\072\053\076\055" + + "\073\056\075\057\077\060\074\061\066\063\056\001\002" + + "\000\006\005\170\021\uffad\001\002\000\046\012\uffc3\017" + + "\uffc3\022\uffc3\032\uffc3\033\uffc3\034\uffc3\035\uffc3\036\uffc3" + + "\037\uffc3\040\uffc3\041\uffc3\042\uffc3\043\uffc3\044\uffc3\045" + + "\uffc3\046\uffc3\047\uffc3\050\uffc3\001\002\000\040\005\uffdd" + + "\012\012\013\uffdd\014\uffdd\016\uffdd\024\uffdd\025\uffdd\027" + + "\uffdd\031\uffdd\051\uffdd\053\uffdd\055\uffdd\060\uffdd\061\uffdd" + + "\063\uffdd\001\002\000\006\005\155\021\uffaa\001\002\000" + + "\004\012\uffdb\001\002\000\042\012\uffca\017\uffca\022\uffca" + + "\032\uffca\033\uffca\034\151\035\152\040\uffca\041\uffca\042" + + "\uffca\043\uffca\044\uffca\045\uffca\046\uffca\047\uffca\050\uffca" + + "\001\002\000\036\012\uffcd\017\uffcd\022\uffcd\032\146\033" + + "\145\040\uffcd\041\uffcd\042\uffcd\043\uffcd\044\uffcd\045\uffcd" + + "\046\uffcd\047\uffcd\050\uffcd\001\002\000\046\012\uffc4\017" + + "\uffc4\022\uffc4\032\uffc4\033\uffc4\034\uffc4\035\uffc4\036\uffc4" + + "\037\uffc4\040\uffc4\041\uffc4\042\uffc4\043\uffc4\044\uffc4\045" + + "\uffc4\046\uffc4\047\uffc4\050\uffc4\001\002\000\004\012\141" + + "\001\002\000\004\012\010\001\002\000\004\012\uffdc\001" + + "\002\000\004\012\uffd9\001\002\000\006\005\132\021\uffac" + + "\001\002\000\022\005\042\016\064\051\072\053\076\055" + + "\073\060\074\061\066\063\056\001\002\000\004\026\071" + + "\001\002\000\006\005\uffa9\021\uffa9\001\002\000\004\012" + + "\010\001\002\000\040\005\uffde\012\012\013\uffde\014\uffde" + + "\016\uffde\024\uffde\025\uffde\027\uffde\031\uffde\051\uffde\053" + + "\uffde\055\uffde\060\uffde\061\uffde\063\uffde\001\002\000\026" + + "\005\042\016\064\051\072\053\076\055\073\056\075\057" + + "\077\060\074\061\066\063\056\001\002\000\006\005\uffad" + + "\021\uffad\001\002\000\006\005\uffac\021\uffac\001\002\000" + + "\006\005\uffab\021\uffab\001\002\000\004\012\uffc2\001\002" + + "\000\006\005\uffaa\021\uffaa\001\002\000\004\012\uffc1\001" + + "\002\000\004\012\120\001\002\000\016\040\107\041\105" + + "\042\104\043\103\044\102\045\106\001\002\000\022\005" + + "\uffb9\016\uffb9\051\uffb9\053\uffb9\055\uffb9\060\uffb9\061\uffb9" + + "\063\uffb9\001\002\000\022\005\uffba\016\uffba\051\uffba\053" + + "\uffba\055\uffba\060\uffba\061\uffba\063\uffba\001\002\000\022" + + "\005\uffbb\016\uffbb\051\uffbb\053\uffbb\055\uffbb\060\uffbb\061" + + "\uffbb\063\uffbb\001\002\000\022\005\uffbc\016\uffbc\051\uffbc" + + "\053\uffbc\055\uffbc\060\uffbc\061\uffbc\063\uffbc\001\002\000" + + "\022\005\uffb8\016\uffb8\051\uffb8\053\uffb8\055\uffb8\060\uffb8" + + "\061\uffb8\063\uffb8\001\002\000\022\005\uffbd\016\uffbd\051" + + "\uffbd\053\uffbd\055\uffbd\060\uffbd\061\uffbd\063\uffbd\001\002" + + "\000\022\005\042\016\064\051\072\053\076\055\073\060" + + "\074\061\066\063\056\001\002\000\010\046\115\047\116" + + "\050\113\001\002\000\026\005\042\016\064\051\072\053" + + "\076\055\073\056\075\057\077\060\074\061\066\063\056" + + "\001\002\000\004\012\uffbe\001\002\000\004\012\uffc0\001" + + "\002\000\026\005\uffb7\016\uffb7\051\uffb7\053\uffb7\055\uffb7" + + "\056\uffb7\057\uffb7\060\uffb7\061\uffb7\063\uffb7\001\002\000" + + "\026\005\uffb6\016\uffb6\051\uffb6\053\uffb6\055\uffb6\056\uffb6" + + "\057\uffb6\060\uffb6\061\uffb6\063\uffb6\001\002\000\004\012" + + "\uffbf\001\002\000\034\005\042\012\010\016\064\024\046" + + "\025\065\027\057\031\044\051\047\053\052\055\063\060" + + "\043\061\066\063\056\001\002\000\034\005\042\013\122" + + "\016\064\024\046\025\065\027\057\031\044\051\047\053" + + "\052\055\063\060\043\061\066\063\056\001\002\000\004" + + "\025\127\001\002\000\004\012\010\001\002\000\004\012" + + "\010\001\002\000\040\005\uffe0\012\012\013\uffe0\014\uffe0" + + "\016\uffe0\024\uffe0\025\uffe0\027\uffe0\031\uffe0\051\uffe0\053" + + "\uffe0\055\uffe0\060\uffe0\061\uffe0\063\uffe0\001\002\000\040" + + "\005\uffe1\012\012\013\uffe1\014\uffe1\016\uffe1\024\uffe1\025" + + "\uffe1\027\uffe1\031\uffe1\051\uffe1\053\uffe1\055\uffe1\060\uffe1" + + "\061\uffe1\063\uffe1\001\002\000\004\012\uffd4\001\002\000" + + "\004\017\131\001\002\000\046\012\uffc6\017\uffc6\022\uffc6" + + "\032\uffc6\033\uffc6\034\uffc6\035\uffc6\036\uffc6\037\uffc6\040" + + "\uffc6\041\uffc6\042\uffc6\043\uffc6\044\uffc6\045\uffc6\046\uffc6" + + "\047\uffc6\050\uffc6\001\002\000\006\012\uffe9\023\134\001" + + "\002\000\004\012\137\001\002\000\006\056\135\057\136" + + "\001\002\000\004\012\uffeb\001\002\000\004\012\uffea\001" + + "\002\000\014\012\uffec\051\uffec\053\uffec\055\uffec\060\uffec" + + "\001\002\000\040\005\uffdf\012\012\013\uffdf\014\uffdf\016" + + "\uffdf\024\uffdf\025\uffdf\027\uffdf\031\uffdf\051\uffdf\053\uffdf" + + "\055\uffdf\060\uffdf\061\uffdf\063\uffdf\001\002\000\034\005" + + "\042\012\010\016\064\024\046\025\065\027\057\031\044" + + "\051\047\053\052\055\063\060\043\061\066\063\056\001" + + "\002\000\034\005\042\013\143\016\064\024\046\025\065" + + "\027\057\031\044\051\047\053\052\055\063\060\043\061" + + "\066\063\056\001\002\000\004\027\144\001\002\000\004" + + "\012\uffd3\001\002\000\022\005\042\016\064\051\072\053" + + "\076\055\073\060\074\061\066\063\056\001\002\000\022" + + "\005\042\016\064\051\072\053\076\055\073\060\074\061" + + "\066\063\056\001\002\000\032\012\uffcf\017\uffcf\022\uffcf" + + "\040\uffcf\041\uffcf\042\uffcf\043\uffcf\044\uffcf\045\uffcf\046" + + "\uffcf\047\uffcf\050\uffcf\001\002\000\032\012\uffce\017\uffce" + + "\022\uffce\040\uffce\041\uffce\042\uffce\043\uffce\044\uffce\045" + + "\uffce\046\uffce\047\uffce\050\uffce\001\002\000\022\005\042" + + "\016\064\051\072\053\076\055\073\060\074\061\066\063" + + "\056\001\002\000\022\005\042\016\064\051\072\053\076" + + "\055\073\060\074\061\066\063\056\001\002\000\036\012" + + "\uffcb\017\uffcb\022\uffcb\032\uffcb\033\uffcb\040\uffcb\041\uffcb" + + "\042\uffcb\043\uffcb\044\uffcb\045\uffcb\046\uffcb\047\uffcb\050" + + "\uffcb\001\002\000\036\012\uffcc\017\uffcc\022\uffcc\032\uffcc" + + "\033\uffcc\040\uffcc\041\uffcc\042\uffcc\043\uffcc\044\uffcc\045" + + "\uffcc\046\uffcc\047\uffcc\050\uffcc\001\002\000\006\012\uffed" + + "\023\157\001\002\000\004\012\167\001\002\000\004\020" + + "\160\001\002\000\006\052\161\063\163\001\002\000\010" + + "\020\uffa5\052\uffa5\063\uffa5\001\002\000\010\020\165\052" + + "\164\063\166\001\002\000\010\020\uffa6\052\uffa6\063\uffa6" + + "\001\002\000\010\020\uffa7\052\uffa7\063\uffa7\001\002\000" + + "\004\012\uffee\001\002\000\010\020\uffa8\052\uffa8\063\uffa8" + + "\001\002\000\014\012\uffef\051\uffef\053\uffef\055\uffef\060" + + "\uffef\001\002\000\006\012\ufff0\023\172\001\002\000\004" + + "\012\174\001\002\000\022\005\042\016\064\051\072\053" + + "\076\055\073\060\074\061\066\063\056\001\002\000\004" + + "\012\ufff1\001\002\000\014\012\ufff2\051\ufff2\053\ufff2\055" + + "\ufff2\060\ufff2\001\002\000\004\012\176\001\002\000\034" + + "\005\042\012\010\016\064\024\046\025\065\027\057\031" + + "\044\051\047\053\052\055\063\060\043\061\066\063\056" + + "\001\002\000\034\005\042\013\200\016\064\024\046\025" + + "\065\027\057\031\044\051\047\053\052\055\063\060\043" + + "\061\066\063\056\001\002\000\004\024\201\001\002\000" + + "\004\030\uffd6\001\002\000\004\030\203\001\002\000\006" + + "\012\205\024\206\001\002\000\004\012\uffd8\001\002\000" + + "\034\005\042\012\010\016\064\024\046\025\065\027\057" + + "\031\044\051\047\053\052\055\063\060\043\061\066\063" + + "\056\001\002\000\026\005\042\016\064\051\072\053\076" + + "\055\073\056\075\057\077\060\074\061\066\063\056\001" + + "\002\000\004\012\210\001\002\000\034\005\042\012\010" + + "\016\064\024\046\025\065\027\057\031\044\051\047\053" + + "\052\055\063\060\043\061\066\063\056\001\002\000\034" + + "\005\042\013\212\016\064\024\046\025\065\027\057\031" + + "\044\051\047\053\052\055\063\060\043\061\066\063\056" + + "\001\002\000\004\030\213\001\002\000\004\024\214\001" + + "\002\000\004\030\uffd7\001\002\000\034\005\042\013\216" + + "\016\064\024\046\025\065\027\057\031\044\051\047\053" + + "\052\055\063\060\043\061\066\063\056\001\002\000\004" + + "\030\217\001\002\000\004\012\uffd5\001\002\000\022\005" + + "\042\016\064\051\072\053\076\055\073\060\074\061\066" + + "\063\056\001\002\000\022\005\042\016\064\051\072\053" + + "\076\055\073\060\074\061\066\063\056\001\002\000\042" + + "\012\uffc9\017\uffc9\022\uffc9\032\uffc9\033\uffc9\034\uffc9\035" + + "\uffc9\040\uffc9\041\uffc9\042\uffc9\043\uffc9\044\uffc9\045\uffc9" + + "\046\uffc9\047\uffc9\050\uffc9\001\002\000\042\012\uffc8\017" + + "\uffc8\022\uffc8\032\uffc8\033\uffc8\034\uffc8\035\uffc8\040\uffc8" + + "\041\uffc8\042\uffc8\043\uffc8\044\uffc8\045\uffc8\046\uffc8\047" + + "\uffc8\050\uffc8\001\002\000\004\016\225\001\002\000\024" + + "\005\042\016\064\050\227\051\072\053\076\055\073\060" + + "\074\061\066\063\056\001\002\000\006\017\uffb5\022\234" + + "\001\002\000\004\017\uffb4\001\002\000\004\017\232\001" + + "\002\000\006\017\uffb3\022\uffb3\001\002\000\004\012\233" + + "\001\002\000\004\012\uffd0\001\002\000\022\005\042\016" + + "\064\051\072\053\076\055\073\060\074\061\066\063\056" + + "\001\002\000\006\017\uffb2\022\uffb2\001\002\000\006\012" + + "\uffe6\023\240\001\002\000\004\012\242\001\002\000\004" + + "\054\241\001\002\000\004\012\uffe7\001\002\000\014\012" + + "\uffe8\051\uffe8\053\uffe8\055\uffe8\060\uffe8\001\002\000\024" + + "\005\042\016\064\050\227\051\072\053\076\055\073\060" + + "\074\061\066\063\056\001\002\000\004\017\245\001\002" + + "\000\004\012\246\001\002\000\046\012\uffd2\017\uffd2\022" + + "\uffd2\032\uffd2\033\uffd2\034\uffd2\035\uffd2\036\uffd2\037\uffd2" + + "\040\uffd2\041\uffd2\042\uffd2\043\uffd2\044\uffd2\045\uffd2\046" + + "\uffd2\047\uffd2\050\uffd2\001\002\000\004\005\250\001\002" + + "\000\004\016\251\001\002\000\024\005\042\016\064\050" + + "\227\051\072\053\076\055\073\060\074\061\066\063\056" + + "\001\002\000\004\017\253\001\002\000\004\012\254\001" + + "\002\000\046\012\uffd1\017\uffd1\022\uffd1\032\uffd1\033\uffd1" + + "\034\uffd1\035\uffd1\036\uffd1\037\uffd1\040\uffd1\041\uffd1\042" + + "\uffd1\043\uffd1\044\uffd1\045\uffd1\046\uffd1\047\uffd1\050\uffd1" + + "\001\002\000\004\004\256\001\002\000\020\002\uffe5\012" + + "\uffe5\051\uffe5\053\uffe5\055\uffe5\060\uffe5\061\uffe5\001\002" + + "\000\006\002\uffe2\012\012\001\002\000\004\002\001\001" + + "\002\000\004\005\262\001\002\000\004\016\263\001\002" + + "\000\016\050\266\051\072\053\076\055\073\060\074\061" + + "\066\001\002\000\006\017\uffb1\022\301\001\002\000\004" + + "\017\271\001\002\000\004\017\uffb0\001\002\000\004\005" + + "\270\001\002\000\006\017\uffae\022\uffae\001\002\000\004" + + "\012\272\001\002\000\034\005\042\012\010\016\064\024" + + "\046\025\065\027\057\031\044\051\047\053\052\055\063" + + "\060\043\061\066\063\056\001\002\000\034\005\042\014" + + "\274\016\064\024\046\025\065\027\057\031\044\051\047" + + "\053\052\055\063\060\043\061\066\063\056\001\002\000" + + "\022\005\042\016\064\051\072\053\076\055\073\060\074" + + "\061\066\063\056\001\002\000\004\012\276\001\002\000" + + "\004\013\277\001\002\000\004\005\300\001\002\000\004" + + "\002\uffe4\001\002\000\014\051\072\053\076\055\073\060" + + "\074\061\066\001\002\000\004\005\303\001\002\000\006" + + "\017\uffaf\022\uffaf\001\002\000\004\012\ufff9\001\002\000" + + "\006\012\012\061\ufffc\001\002\000\004\012\ufff7\001\002" + + "\000\004\012\ufffa\001\002\000\004\005\311\001\002\000" + + "\004\017\312\001\002\000\004\012\313\001\002\000\014" + + "\051\ufffe\053\ufffe\055\ufffe\060\ufffe\061\ufffe\001\002" }); /** Access to parse-action table. */ public short[][] action_table() {return _action_table;} @@ -270,110 +285,127 @@ public class parser extends java_cup.runtime.lr_parser { /** reduce_goto table. */ protected static final short[][] _reduce_table = unpackFromStrings(new String[] { - "\000\315\000\006\002\004\003\003\001\001\000\004\004" + - "\014\001\001\000\002\001\001\000\002\001\001\000\002" + - "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\002\001\001\000\014\005\025" + - "\006\016\010\026\011\027\012\022\001\001\000\002\001" + - "\001\000\014\005\312\006\016\010\026\011\027\012\022" + - "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\014\005\310\006\016\010\026\011\027\012\022" + - "\001\001\000\002\001\001\000\002\001\001\000\004\013" + - "\034\001\001\000\014\005\032\006\016\010\026\011\027" + - "\012\022\001\001\000\014\005\030\006\016\010\026\011" + - "\027\012\022\001\001\000\002\001\001\000\002\001\001" + - "\000\002\001\001\000\002\001\001\000\006\014\261\034" + - "\263\001\001\000\002\001\001\000\002\001\001\000\002" + - "\001\001\000\002\001\001\000\004\015\043\001\001\000" + - "\002\001\001\000\040\005\065\006\016\010\026\011\027" + - "\012\022\016\074\017\066\020\060\021\056\022\067\023" + - "\044\024\062\025\061\026\052\034\045\001\001\000\002" + - "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\002\001\001\000\002\001\001" + - "\000\020\021\056\023\106\024\062\025\061\026\052\027" + - "\174\034\045\001\001\000\002\001\001\000\002\001\001" + + "\000\311\000\006\002\004\003\003\001\001\000\004\004" + + "\014\001\001\000\002\001\001\000\002\001\001\000\004" + + "\042\010\001\001\000\002\001\001\000\002\001\001\000" + + "\002\001\001\000\002\001\001\000\002\001\001\000\016" + + "\005\023\006\016\010\024\011\026\012\021\043\025\001" + + "\001\000\002\001\001\000\014\005\306\006\016\010\024" + + "\011\026\012\021\001\001\000\002\001\001\000\002\001" + + "\001\000\014\005\305\006\016\010\024\011\026\012\021" + + "\001\001\000\002\001\001\000\004\042\304\001\001\000" + + "\014\005\303\006\016\010\024\011\026\012\021\001\001" + + "\000\004\013\030\001\001\000\014\005\027\006\016\010" + + "\024\011\026\012\021\001\001\000\002\001\001\000\010" + + "\014\257\034\260\042\256\001\001\000\002\001\001\000" + + "\002\001\001\000\002\001\001\000\002\001\001\000\044" + + "\005\057\006\016\010\024\011\026\012\021\015\036\016" + + "\066\017\060\020\052\021\047\022\061\023\037\024\054" + + "\025\053\026\044\034\040\042\050\001\001\000\040\005" + + "\122\006\016\010\024\011\026\012\021\016\123\017\060" + + "\020\052\021\047\022\061\023\037\024\054\025\053\026" + + "\044\034\040\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + + "\002\001\001\000\020\021\047\023\100\024\054\025\053" + + "\026\044\027\174\034\040\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\016\021\056\023\131\024\062" + - "\025\061\026\052\034\045\001\001\000\002\001\001\000" + - "\002\001\001\000\002\001\001\000\002\001\001\000\020" + - "\021\056\023\106\024\062\025\061\026\052\027\105\034" + - "\045\001\001\000\002\001\001\000\002\001\001\000\002" + - "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\004\030\115\001\001\000\002" + - "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\002\001\001\000\016\021\056" + - "\023\116\024\062\025\061\026\052\034\045\001\001\000" + - "\006\031\117\047\121\001\001\000\020\021\056\023\106" + - "\024\062\025\061\026\052\027\124\034\045\001\001\000" + - "\002\001\001\000\002\001\001\000\002\001\001\000\002" + - "\001\001\000\002\001\001\000\004\015\126\001\001\000" + - "\040\005\065\006\016\010\026\011\027\012\022\016\074" + - "\017\066\020\060\021\056\022\067\023\044\024\062\025" + - "\061\026\052\034\045\001\001\000\002\001\001\000\002" + - "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\002\001\001\000\004\015\137" + - "\001\001\000\040\005\065\006\016\010\026\011\027\012" + - "\022\016\074\017\066\020\060\021\056\022\067\023\044" + - "\024\062\025\061\026\052\034\045\001\001\000\002\001" + - "\001\000\002\001\001\000\014\021\056\024\145\025\061" + - "\026\052\034\045\001\001\000\014\021\056\024\144\025" + - "\061\026\052\034\045\001\001\000\002\001\001\000\002" + - "\001\001\000\012\021\056\025\151\026\052\034\045\001" + - "\001\000\012\021\056\025\150\026\052\034\045\001\001" + - "\000\002\001\001\000\002\001\001\000\004\044\154\001" + + "\001\000\002\001\001\000\004\042\137\001\001\000\002" + + "\001\001\000\002\001\001\000\002\001\001\000\016\021" + + "\047\023\127\024\054\025\053\026\044\034\040\001\001" + + "\000\002\001\001\000\002\001\001\000\004\042\067\001" + + "\001\000\002\001\001\000\020\021\047\023\100\024\054" + + "\025\053\026\044\027\077\034\040\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + - "\000\004\035\160\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\002\001\001\000\002\001\001" + - "\000\002\001\001\000\002\001\001\000\004\042\170\001" + - "\001\000\002\001\001\000\002\001\001\000\016\021\056" + - "\023\172\024\062\025\061\026\052\034\045\001\001\000" + - "\002\001\001\000\002\001\001\000\002\001\001\000\004" + - "\015\176\001\001\000\040\005\065\006\016\010\026\011" + - "\027\012\022\016\074\017\066\020\060\021\056\022\067" + - "\023\044\024\062\025\061\026\052\034\045\001\001\000" + - "\002\001\001\000\004\036\202\001\001\000\002\001\001" + - "\000\004\037\204\001\001\000\002\001\001\000\002\001" + - "\001\000\004\015\215\001\001\000\020\021\056\023\106" + - "\024\062\025\061\026\052\027\207\034\045\001\001\000" + - "\002\001\001\000\004\015\211\001\001\000\040\005\065" + - "\006\016\010\026\011\027\012\022\016\074\017\066\020" + - "\060\021\056\022\067\023\044\024\062\025\061\026\052" + - "\034\045\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\040\005\065\006\016\010\026\011\027" + - "\012\022\016\074\017\066\020\060\021\056\022\067\023" + - "\044\024\062\025\061\026\052\034\045\001\001\000\002" + - "\001\001\000\002\001\001\000\010\021\056\026\223\034" + - "\045\001\001\000\010\021\056\026\222\034\045\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\022\021\056\023\231\024\062\025\061\026\052\032\230" + - "\034\045\041\226\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\002\001\001\000\002\001\001" + - "\000\002\001\001\000\016\021\056\023\235\024\062\025" + - "\061\026\052\034\045\001\001\000\002\001\001\000\004" + - "\046\240\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\002\001\001\000\002\001\001\000\022" + - "\021\056\023\231\024\062\025\061\026\052\032\245\034" + - "\045\041\226\001\001\000\002\001\001\000\002\001\001" + + "\004\030\107\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\022\021\056\023\231\024\062\025\061" + - "\026\052\032\254\034\045\041\226\001\001\000\002\001" + + "\002\001\001\000\016\021\047\023\110\024\054\025\053" + + "\026\044\034\040\001\001\000\006\031\111\051\113\001" + + "\001\000\020\021\047\023\100\024\054\025\053\026\044" + + "\027\116\034\040\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + - "\000\006\014\307\034\263\001\001\000\002\001\001\000" + - "\002\001\001\000\002\001\001\000\002\001\001\000\010" + - "\033\267\034\271\040\266\001\001\000\002\001\001\000" + - "\002\001\001\000\002\001\001\000\002\001\001\000\002" + - "\001\001\000\002\001\001\000\004\015\275\001\001\000" + - "\040\005\065\006\016\010\026\011\027\012\022\016\074" + - "\017\066\020\060\021\056\022\067\023\044\024\062\025" + - "\061\026\052\034\045\001\001\000\016\021\056\023\277" + - "\024\062\025\061\026\052\034\045\001\001\000\002\001" + + "\000\044\005\057\006\016\010\024\011\026\012\021\015" + + "\120\016\066\017\060\020\052\021\047\022\061\023\037" + + "\024\054\025\053\026\044\034\040\042\050\001\001\000" + + "\040\005\122\006\016\010\024\011\026\012\021\016\123" + + "\017\060\020\052\021\047\022\061\023\037\024\054\025" + + "\053\026\044\034\040\001\001\000\002\001\001\000\004" + + "\042\125\001\001\000\004\042\124\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + - "\000\004\034\304\001\001\000\002\001\001\000\002\001" + + "\000\002\001\001\000\004\047\132\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\000\002\001\001\000\002\001\001\000\044\005\057\006" + + "\016\010\024\011\026\012\021\015\141\016\066\017\060" + + "\020\052\021\047\022\061\023\037\024\054\025\053\026" + + "\044\034\040\042\050\001\001\000\040\005\122\006\016" + + "\010\024\011\026\012\021\016\123\017\060\020\052\021" + + "\047\022\061\023\037\024\054\025\053\026\044\034\040" + + "\001\001\000\002\001\001\000\002\001\001\000\014\021" + + "\047\024\147\025\053\026\044\034\040\001\001\000\014" + + "\021\047\024\146\025\053\026\044\034\040\001\001\000" + + "\002\001\001\000\002\001\001\000\012\021\047\025\153" + + "\026\044\034\040\001\001\000\012\021\047\025\152\026" + + "\044\034\040\001\001\000\002\001\001\000\002\001\001" + + "\000\004\046\155\001\001\000\002\001\001\000\002\001" + + "\001\000\004\035\161\001\001\000\002\001\001\000\002" + + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + + "\001\000\002\001\001\000\002\001\001\000\004\044\170" + + "\001\001\000\002\001\001\000\016\021\047\023\172\024" + + "\054\025\053\026\044\034\040\001\001\000\002\001\001" + + "\000\002\001\001\000\002\001\001\000\044\005\057\006" + + "\016\010\024\011\026\012\021\015\176\016\066\017\060" + + "\020\052\021\047\022\061\023\037\024\054\025\053\026" + + "\044\034\040\042\050\001\001\000\040\005\122\006\016" + + "\010\024\011\026\012\021\016\123\017\060\020\052\021" + + "\047\022\061\023\037\024\054\025\053\026\044\034\040" + + "\001\001\000\002\001\001\000\004\036\201\001\001\000" + + "\004\037\203\001\001\000\002\001\001\000\002\001\001" + + "\000\044\005\057\006\016\010\024\011\026\012\021\015" + + "\214\016\066\017\060\020\052\021\047\022\061\023\037" + + "\024\054\025\053\026\044\034\040\042\050\001\001\000" + + "\020\021\047\023\100\024\054\025\053\026\044\027\206" + + "\034\040\001\001\000\002\001\001\000\044\005\057\006" + + "\016\010\024\011\026\012\021\015\210\016\066\017\060" + + "\020\052\021\047\022\061\023\037\024\054\025\053\026" + + "\044\034\040\042\050\001\001\000\040\005\122\006\016" + + "\010\024\011\026\012\021\016\123\017\060\020\052\021" + + "\047\022\061\023\037\024\054\025\053\026\044\034\040" + + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + + "\001\000\040\005\122\006\016\010\024\011\026\012\021" + + "\016\123\017\060\020\052\021\047\022\061\023\037\024" + + "\054\025\053\026\044\034\040\001\001\000\002\001\001" + + "\000\002\001\001\000\010\021\047\026\222\034\040\001" + + "\001\000\010\021\047\026\221\034\040\001\001\000\002" + + "\001\001\000\002\001\001\000\002\001\001\000\022\021" + + "\047\023\230\024\054\025\053\026\044\032\227\034\040" + + "\041\225\001\001\000\002\001\001\000\002\001\001\000" + + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + + "\001\001\000\016\021\047\023\234\024\054\025\053\026" + + "\044\034\040\001\001\000\002\001\001\000\004\050\236" + + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + + "\001\000\002\001\001\000\022\021\047\023\230\024\054" + + "\025\053\026\044\032\243\034\040\041\225\001\001\000" + + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + + "\001\001\000\002\001\001\000\022\021\047\023\230\024" + + "\054\025\053\026\044\032\251\034\040\041\225\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\002\001\001\000\002\001\001" }); + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + + "\001\001\000\002\001\001\000\002\001\001\000\010\033" + + "\264\034\266\040\263\001\001\000\002\001\001\000\002" + + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + + "\001\000\002\001\001\000\044\005\057\006\016\010\024" + + "\011\026\012\021\015\272\016\066\017\060\020\052\021" + + "\047\022\061\023\037\024\054\025\053\026\044\034\040" + + "\042\050\001\001\000\040\005\122\006\016\010\024\011" + + "\026\012\021\016\123\017\060\020\052\021\047\022\061" + + "\023\037\024\054\025\053\026\044\034\040\001\001\000" + + "\016\021\047\023\274\024\054\025\053\026\044\034\040" + + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + + "\001\000\002\001\001\000\004\034\301\001\001\000\002" + + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\000\002\001\001\000\002\001\001\000\002\001\001" }); /** Access to reduce_goto table. */ public short[][] reduce_table() {return _reduce_table;} @@ -454,11 +486,11 @@ class CUP$parser$actions { switch (CUP$parser$act_num) { /*. . . . . . . . . . . . . . . . . . . .*/ - case 0: // Prog ::= robo load dcl start_func func End_Of_File + case 0: // Prog ::= robo load init_dcl start_func func { Object RESULT =null; - CUP$parser$result = parser.getSymbolFactory().newSymbol("Prog",0, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + CUP$parser$result = parser.getSymbolFactory().newSymbol("Prog",0, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); } return CUP$parser$result; @@ -477,7 +509,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 2: // robo ::= IDENTIFIER COLON EOL + case 2: // robo ::= IDENTIFIER COLON EOL_list { Object RESULT =null; @@ -486,38 +518,38 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 3: // robo ::= robo EOL + case 3: // load ::= LOAD lparen IDENTIFIER rparen EOL { Object RESULT =null; - CUP$parser$result = parser.getSymbolFactory().newSymbol("robo",1, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + CUP$parser$result = parser.getSymbolFactory().newSymbol("load",2, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 4: // load ::= LOAD lparen IDENTIFIER rparen EOL + case 4: // load ::= { Object RESULT =null; - CUP$parser$result = parser.getSymbolFactory().newSymbol("load",2, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + CUP$parser$result = parser.getSymbolFactory().newSymbol("load",2, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 5: // load ::= load EOL + case 5: // init_dcl ::= dcl EOL_list { Object RESULT =null; - CUP$parser$result = parser.getSymbolFactory().newSymbol("load",2, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + CUP$parser$result = parser.getSymbolFactory().newSymbol("init_dcl",33, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 6: // load ::= lambda + case 6: // init_dcl ::= { Object RESULT =null; - CUP$parser$result = parser.getSymbolFactory().newSymbol("load",2, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + CUP$parser$result = parser.getSymbolFactory().newSymbol("init_dcl",33, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); } return CUP$parser$result; @@ -531,34 +563,61 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 8: // dcl ::= string_dcl dcl EOL + case 8: // dcl ::= string_dcl dcl + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("dcl",3, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 9: // dcl ::= bool_dcl dcl + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("dcl",3, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 10: // dcl ::= coord_dcl dcl + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("dcl",3, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 11: // dcl ::= num_dcl { Object RESULT =null; - CUP$parser$result = parser.getSymbolFactory().newSymbol("dcl",3, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + CUP$parser$result = parser.getSymbolFactory().newSymbol("dcl",3, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 9: // dcl ::= bool_dcl dcl EOL + case 12: // dcl ::= string_dcl { Object RESULT =null; - CUP$parser$result = parser.getSymbolFactory().newSymbol("dcl",3, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + CUP$parser$result = parser.getSymbolFactory().newSymbol("dcl",3, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 10: // dcl ::= coord_dcl dcl EOL + case 13: // dcl ::= bool_dcl { Object RESULT =null; - CUP$parser$result = parser.getSymbolFactory().newSymbol("dcl",3, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + CUP$parser$result = parser.getSymbolFactory().newSymbol("dcl",3, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 11: // dcl ::= lambda + case 14: // dcl ::= coord_dcl { Object RESULT =null; @@ -567,7 +626,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 12: // num_dcl ::= NUM IDENTIFIER num_opt EOL + case 15: // num_dcl ::= NUM IDENTIFIER num_opt EOL { Object RESULT =null; @@ -576,25 +635,25 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 13: // num_opt ::= ASSIGN expr + case 16: // num_opt ::= ASSIGN expr { Object RESULT =null; - CUP$parser$result = parser.getSymbolFactory().newSymbol("num_opt",32, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + CUP$parser$result = parser.getSymbolFactory().newSymbol("num_opt",34, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 14: // num_opt ::= lambda + case 17: // num_opt ::= { Object RESULT =null; - CUP$parser$result = parser.getSymbolFactory().newSymbol("num_opt",32, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + CUP$parser$result = parser.getSymbolFactory().newSymbol("num_opt",34, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 15: // string_dcl ::= STRING IDENTIFIER string_opt EOL + case 18: // string_dcl ::= STRING IDENTIFIER string_opt EOL { Object RESULT =null; @@ -603,61 +662,61 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 16: // string_opt ::= ASSIGN quote string_lit quote + case 19: // string_opt ::= ASSIGN quote string_lit quote { Object RESULT =null; - CUP$parser$result = parser.getSymbolFactory().newSymbol("string_opt",34, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + CUP$parser$result = parser.getSymbolFactory().newSymbol("string_opt",36, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 17: // string_opt ::= lambda + case 20: // string_opt ::= { Object RESULT =null; - CUP$parser$result = parser.getSymbolFactory().newSymbol("string_opt",34, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + CUP$parser$result = parser.getSymbolFactory().newSymbol("string_opt",36, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 18: // bool_dcl ::= BOOL IDENTIFIER EOL + case 21: // bool_dcl ::= BOOL IDENTIFIER bool_opt EOL { Object RESULT =null; - CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_dcl",7, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_dcl",7, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 19: // bool_opt ::= ASSIGN TRUE + case 22: // bool_opt ::= ASSIGN TRUE { Object RESULT =null; - CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_opt",35, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_opt",37, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 20: // bool_opt ::= ASSIGN FALSE + case 23: // bool_opt ::= ASSIGN FALSE { Object RESULT =null; - CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_opt",35, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_opt",37, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 21: // bool_opt ::= lambda + case 24: // bool_opt ::= { Object RESULT =null; - CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_opt",35, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_opt",37, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 22: // coord_dcl ::= COORD IDENTIFIER coord_opt EOL + case 25: // coord_dcl ::= COORD IDENTIFIER coord_opt EOL { Object RESULT =null; @@ -666,25 +725,25 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 23: // coord_opt ::= ASSIGN coord_lit + case 26: // coord_opt ::= ASSIGN coord_lit { Object RESULT =null; - CUP$parser$result = parser.getSymbolFactory().newSymbol("coord_opt",36, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + CUP$parser$result = parser.getSymbolFactory().newSymbol("coord_opt",38, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 24: // coord_opt ::= lambda + case 27: // coord_opt ::= { Object RESULT =null; - CUP$parser$result = parser.getSymbolFactory().newSymbol("coord_opt",36, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + CUP$parser$result = parser.getSymbolFactory().newSymbol("coord_opt",38, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 25: // start_func ::= VOID START lparen rparen EOL func_body END START + case 28: // start_func ::= VOID START lparen rparen EOL func_body END START { Object RESULT =null; @@ -693,7 +752,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 26: // func ::= type IDENTIFIER lparen params rparen EOL func_body RETURN expr EOL END IDENTIFIER + case 29: // func ::= type IDENTIFIER lparen params rparen EOL func_body RETURN expr EOL END IDENTIFIER { Object RESULT =null; @@ -702,7 +761,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 27: // func ::= lambda + case 30: // func ::= { Object RESULT =null; @@ -711,16 +770,16 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 28: // func ::= EOL func + case 31: // func ::= EOL_list { Object RESULT =null; - CUP$parser$result = parser.getSymbolFactory().newSymbol("func",10, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + CUP$parser$result = parser.getSymbolFactory().newSymbol("func",10, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 29: // func_body ::= func_body dcl EOL + case 32: // func_body ::= func_body dcl EOL_list { Object RESULT =null; @@ -729,7 +788,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 30: // func_body ::= func_body stmt EOL + case 33: // func_body ::= func_body stmt EOL_list { Object RESULT =null; @@ -738,16 +797,16 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 31: // func_body ::= lambda + case 34: // func_body ::= dcl EOL_list { Object RESULT =null; - CUP$parser$result = parser.getSymbolFactory().newSymbol("func_body",11, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + CUP$parser$result = parser.getSymbolFactory().newSymbol("func_body",11, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 32: // func_body ::= func_body EOL + case 35: // func_body ::= stmt EOL_list { Object RESULT =null; @@ -756,7 +815,16 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 33: // stmt ::= if_stmt + case 36: // func_body ::= EOL_list + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("func_body",11, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 37: // stmt ::= if_stmt { Object RESULT =null; @@ -765,7 +833,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 34: // stmt ::= loop_stmt + case 38: // stmt ::= loop_stmt { Object RESULT =null; @@ -774,16 +842,16 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 35: // stmt ::= expr EOL + case 39: // stmt ::= expr { Object RESULT =null; - CUP$parser$result = parser.getSymbolFactory().newSymbol("stmt",12, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + CUP$parser$result = parser.getSymbolFactory().newSymbol("stmt",12, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 36: // stmt ::= sig_stmt + case 40: // stmt ::= sig_stmt { Object RESULT =null; @@ -792,7 +860,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 37: // if_stmt ::= IF cond EOL func_body END IF else_if else + case 41: // if_stmt ::= IF cond EOL func_body END IF else_if else { Object RESULT =null; @@ -801,7 +869,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 38: // else_if ::= else_if ELSE IF cond EOL func_body END ELSE IF + case 42: // else_if ::= else_if ELSE IF cond EOL func_body END ELSE IF { Object RESULT =null; @@ -810,7 +878,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 39: // else_if ::= lambda + case 43: // else_if ::= { Object RESULT =null; @@ -819,7 +887,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 40: // else ::= ELSE EOL func_body END ELSE + case 44: // else ::= ELSE EOL func_body END ELSE { Object RESULT =null; @@ -828,7 +896,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 41: // loop_stmt ::= REPEAT UNTIL cond EOL func_body END REPEAT + case 45: // loop_stmt ::= REPEAT UNTIL cond EOL func_body END REPEAT { Object RESULT =null; @@ -837,7 +905,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 42: // loop_stmt ::= FOREVER EOL func_body END FOREVER + case 46: // loop_stmt ::= FOREVER EOL func_body END FOREVER { Object RESULT =null; @@ -846,7 +914,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 43: // func_call ::= IDENTIFIER lparen args rparen EOL + case 47: // func_call ::= IDENTIFIER lparen args rparen EOL { Object RESULT =null; @@ -855,7 +923,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 44: // func_call ::= type dot IDENTIFIER lparen args rparen EOL + case 48: // func_call ::= type dot IDENTIFIER lparen args rparen EOL { Object RESULT =null; @@ -864,7 +932,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 45: // sig_stmt ::= SIGNAL IDENTIFIER lparen args rparen EOL + case 49: // sig_stmt ::= SIGNAL IDENTIFIER lparen args rparen EOL { Object RESULT =null; @@ -873,7 +941,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 46: // expr ::= term plus term + case 50: // expr ::= term plus term { Object RESULT =null; @@ -882,7 +950,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 47: // expr ::= term minus term + case 51: // expr ::= term minus term { Object RESULT =null; @@ -891,7 +959,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 48: // expr ::= term + case 52: // expr ::= term { Object RESULT =null; @@ -900,7 +968,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 49: // term ::= factor asterix factor + case 53: // term ::= factor asterix factor { Object RESULT =null; @@ -909,7 +977,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 50: // term ::= factor slash factor + case 54: // term ::= factor slash factor { Object RESULT =null; @@ -918,7 +986,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 51: // term ::= factor + case 55: // term ::= factor { Object RESULT =null; @@ -927,7 +995,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 52: // factor ::= exp hat exp + case 56: // factor ::= exp hat exp { Object RESULT =null; @@ -936,7 +1004,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 53: // factor ::= exp SQRT exp + case 57: // factor ::= exp SQRT exp { Object RESULT =null; @@ -945,7 +1013,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 54: // factor ::= exp + case 58: // factor ::= exp { Object RESULT =null; @@ -954,7 +1022,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 55: // exp ::= lparen expr rparen + case 59: // exp ::= lparen expr rparen { Object RESULT =null; @@ -963,7 +1031,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 56: // exp ::= IDENTIFIER + case 60: // exp ::= IDENTIFIER { Object RESULT =null; @@ -972,7 +1040,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 57: // exp ::= num_lit + case 61: // exp ::= num_lit { Object RESULT =null; @@ -981,7 +1049,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 58: // exp ::= func_call + case 62: // exp ::= func_call { Object RESULT =null; @@ -990,7 +1058,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 59: // cond ::= TRUE + case 63: // cond ::= TRUE { Object RESULT =null; @@ -999,7 +1067,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 60: // cond ::= FALSE + case 64: // cond ::= FALSE { Object RESULT =null; @@ -1008,7 +1076,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 61: // cond ::= expr bool_op expr cond_opt + case 65: // cond ::= expr bool_op expr cond_opt { Object RESULT =null; @@ -1017,25 +1085,25 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 62: // cond_opt ::= bool_cnd cond + case 66: // cond_opt ::= bool_cnd cond { Object RESULT =null; - CUP$parser$result = parser.getSymbolFactory().newSymbol("cond_opt",37, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + CUP$parser$result = parser.getSymbolFactory().newSymbol("cond_opt",39, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 63: // cond_opt ::= lambda + case 67: // cond_opt ::= lambda { Object RESULT =null; - CUP$parser$result = parser.getSymbolFactory().newSymbol("cond_opt",37, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + CUP$parser$result = parser.getSymbolFactory().newSymbol("cond_opt",39, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 64: // bool_op ::= IS + case 68: // bool_op ::= IS { Object RESULT =null; @@ -1044,7 +1112,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 65: // bool_op ::= NOT + case 69: // bool_op ::= NOT { Object RESULT =null; @@ -1053,7 +1121,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 66: // bool_op ::= GT + case 70: // bool_op ::= GT { Object RESULT =null; @@ -1062,7 +1130,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 67: // bool_op ::= LT + case 71: // bool_op ::= LT { Object RESULT =null; @@ -1071,7 +1139,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 68: // bool_op ::= GTE + case 72: // bool_op ::= GTE { Object RESULT =null; @@ -1080,7 +1148,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 69: // bool_op ::= LTE + case 73: // bool_op ::= LTE { Object RESULT =null; @@ -1089,7 +1157,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 70: // bool_cnd ::= AND + case 74: // bool_cnd ::= AND { Object RESULT =null; @@ -1098,7 +1166,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 71: // bool_cnd ::= OR + case 75: // bool_cnd ::= OR { Object RESULT =null; @@ -1107,7 +1175,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 72: // args ::= args_list + case 76: // args ::= args_list { Object RESULT =null; @@ -1116,7 +1184,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 73: // args ::= lambda + case 77: // args ::= lambda { Object RESULT =null; @@ -1125,7 +1193,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 74: // args_list ::= expr + case 78: // args_list ::= expr { Object RESULT =null; @@ -1134,7 +1202,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 75: // args_list ::= args_list comma expr + case 79: // args_list ::= args_list comma expr { Object RESULT =null; @@ -1143,7 +1211,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 76: // params ::= params_list + case 80: // params ::= params_list { Object RESULT =null; @@ -1152,7 +1220,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 77: // params ::= lambda + case 81: // params ::= lambda { Object RESULT =null; @@ -1161,7 +1229,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 78: // params_list ::= params_list comma type IDENTIFIER + case 82: // params_list ::= params_list comma type IDENTIFIER { Object RESULT =null; @@ -1170,7 +1238,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 79: // params_list ::= type IDENTIFIER + case 83: // params_list ::= type IDENTIFIER { Object RESULT =null; @@ -1179,7 +1247,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 80: // type ::= NUM + case 84: // type ::= NUM { Object RESULT =null; @@ -1188,7 +1256,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 81: // type ::= BOOL + case 85: // type ::= BOOL { Object RESULT =null; @@ -1197,7 +1265,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 82: // type ::= COORD + case 86: // type ::= COORD { Object RESULT =null; @@ -1206,7 +1274,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 83: // type ::= STRING + case 87: // type ::= STRING { Object RESULT =null; @@ -1215,7 +1283,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 84: // type ::= VOID + case 88: // type ::= VOID { Object RESULT =null; @@ -1224,7 +1292,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 85: // string_lit ::= string_lit num_lit + case 89: // string_lit ::= string_lit num_lit { Object RESULT =null; @@ -1233,7 +1301,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 86: // string_lit ::= string_lit char_lit + case 90: // string_lit ::= string_lit char_lit { Object RESULT =null; @@ -1242,7 +1310,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 87: // string_lit ::= num_lit + case 91: // string_lit ::= num_lit { Object RESULT =null; @@ -1251,7 +1319,7 @@ class CUP$parser$actions { return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ - case 88: // string_lit ::= char_lit + case 92: // string_lit ::= char_lit { Object RESULT =null; @@ -1259,6 +1327,24 @@ class CUP$parser$actions { } return CUP$parser$result; + /*. . . . . . . . . . . . . . . . . . . .*/ + case 93: // EOL_list ::= EOL_list EOL + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("EOL_list",32, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 94: // EOL_list ::= EOL + { + Object RESULT =null; + + CUP$parser$result = parser.getSymbolFactory().newSymbol("EOL_list",32, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); + } + return CUP$parser$result; + /* . . . . . .*/ default: throw new Exception( diff --git a/compiler/src/sym.java b/compiler/src/sym.java index 170ed90..2b0e200 100644 --- a/compiler/src/sym.java +++ b/compiler/src/sym.java @@ -1,7 +1,7 @@ //---------------------------------------------------- // The following code was generated by CUP v0.11b 20140611 (SVN rev 31) -// Thu Mar 10 11:54:22 CET 2016 +// Fri Mar 11 12:21:39 GMT 2016 //---------------------------------------------------- /** CUP generated interface containing symbol constants. */ From fcd77a19dc0ee576b78b0c2db9bdb75714e00782 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20S=C3=B8by?= Date: Mon, 14 Mar 2016 10:56:36 +0100 Subject: [PATCH 35/55] Added more of the AST node files --- AST/ASTLee/src/java/org/AST/SyntaxNodes/DivNode.java | 7 +++++++ AST/ASTLee/src/java/org/AST/SyntaxNodes/IDNode.java | 8 ++++++++ AST/ASTLee/src/java/org/AST/SyntaxNodes/MinusNode.java | 8 ++++++++ AST/ASTLee/src/java/org/AST/SyntaxNodes/MultNode.java; | 7 +++++++ AST/ASTLee/src/java/org/AST/SyntaxNodes/PwrNode.java; | 7 +++++++ AST/ASTLee/src/java/org/AST/SyntaxNodes/SqrtNode.java; | 7 +++++++ AST/ASTLee/src/java/org/AST/SyntaxNodes/ValueNode.java; | 8 ++++++++ 7 files changed, 52 insertions(+) create mode 100644 AST/ASTLee/src/java/org/AST/SyntaxNodes/DivNode.java create mode 100644 AST/ASTLee/src/java/org/AST/SyntaxNodes/IDNode.java create mode 100644 AST/ASTLee/src/java/org/AST/SyntaxNodes/MinusNode.java create mode 100644 AST/ASTLee/src/java/org/AST/SyntaxNodes/MultNode.java; create mode 100644 AST/ASTLee/src/java/org/AST/SyntaxNodes/PwrNode.java; create mode 100644 AST/ASTLee/src/java/org/AST/SyntaxNodes/SqrtNode.java; create mode 100644 AST/ASTLee/src/java/org/AST/SyntaxNodes/ValueNode.java; diff --git a/AST/ASTLee/src/java/org/AST/SyntaxNodes/DivNode.java b/AST/ASTLee/src/java/org/AST/SyntaxNodes/DivNode.java new file mode 100644 index 0000000..6c0ae30 --- /dev/null +++ b/AST/ASTLee/src/java/org/AST/SyntaxNodes/DivNode.java @@ -0,0 +1,7 @@ +package org.AST; + +public class DivNode extends BinaryNode{ + public DivNode(Node left, Node right){ + super(left,right); + } +} \ No newline at end of file diff --git a/AST/ASTLee/src/java/org/AST/SyntaxNodes/IDNode.java b/AST/ASTLee/src/java/org/AST/SyntaxNodes/IDNode.java new file mode 100644 index 0000000..223c8f0 --- /dev/null +++ b/AST/ASTLee/src/java/org/AST/SyntaxNodes/IDNode.java @@ -0,0 +1,8 @@ +package org.AST.GeneralNodes; + +public class ID_Node extends UnaryNode{ + private String ID; + public ID_Node(String identifier){ + this.ID = identifier; + } +} \ No newline at end of file diff --git a/AST/ASTLee/src/java/org/AST/SyntaxNodes/MinusNode.java b/AST/ASTLee/src/java/org/AST/SyntaxNodes/MinusNode.java new file mode 100644 index 0000000..2f29532 --- /dev/null +++ b/AST/ASTLee/src/java/org/AST/SyntaxNodes/MinusNode.java @@ -0,0 +1,8 @@ +package org.AST.SyntaxNodes; + +public class MinusNode extends BinaryNode{ + public MinusNode(Node left, Node right){ + super(left,right); + } + +} \ No newline at end of file diff --git a/AST/ASTLee/src/java/org/AST/SyntaxNodes/MultNode.java; b/AST/ASTLee/src/java/org/AST/SyntaxNodes/MultNode.java; new file mode 100644 index 0000000..a287c96 --- /dev/null +++ b/AST/ASTLee/src/java/org/AST/SyntaxNodes/MultNode.java; @@ -0,0 +1,7 @@ +package org.AST; + +public class MultNode extends BinaryNode{ + public MultNode(Node left, Node right){ + super(left, right); + } +} \ No newline at end of file diff --git a/AST/ASTLee/src/java/org/AST/SyntaxNodes/PwrNode.java; b/AST/ASTLee/src/java/org/AST/SyntaxNodes/PwrNode.java; new file mode 100644 index 0000000..f029494 --- /dev/null +++ b/AST/ASTLee/src/java/org/AST/SyntaxNodes/PwrNode.java; @@ -0,0 +1,7 @@ +package org.AST; + +public class PwrNode extends BinaryNode{ + public PwrNode(Node left, Node right){ + super(left, right); + } +} \ No newline at end of file diff --git a/AST/ASTLee/src/java/org/AST/SyntaxNodes/SqrtNode.java; b/AST/ASTLee/src/java/org/AST/SyntaxNodes/SqrtNode.java; new file mode 100644 index 0000000..17c1d8c --- /dev/null +++ b/AST/ASTLee/src/java/org/AST/SyntaxNodes/SqrtNode.java; @@ -0,0 +1,7 @@ +package org.AST; + +public class SqrtNode extends BinaryNode{ + public SqrtNode(Node left, Node right){ + super(left, right); + } +} \ No newline at end of file diff --git a/AST/ASTLee/src/java/org/AST/SyntaxNodes/ValueNode.java; b/AST/ASTLee/src/java/org/AST/SyntaxNodes/ValueNode.java; new file mode 100644 index 0000000..7a14e41 --- /dev/null +++ b/AST/ASTLee/src/java/org/AST/SyntaxNodes/ValueNode.java; @@ -0,0 +1,8 @@ +package org.AST; + +public class ValueNode extends UnaryNode{ + private String value; + public ValueNode(String val){ + this.value = val; + } +} \ No newline at end of file From e99dee1cc89f2c7cc7b2c656ab334ac8587f50ab Mon Sep 17 00:00:00 2001 From: TobiasMorell Date: Mon, 14 Mar 2016 11:26:28 +0100 Subject: [PATCH 36/55] compiler/ : Testing dangling else --- .../org/AST/GeneralNodes/NaryNode.class | Bin 856 -> 1147 bytes AST/ASTLee/production/org/AST/Main.class | Bin 700 -> 868 bytes .../java/org/AST/GeneralNodes/NaryNode.java | 12 +- AST/ASTLee/src/java/org/AST/Main.java | 16 +- .../org/AST/SyntaxNodes/ExpressionNode.java | 15 +- compiler/src/Main.class | Bin 484 -> 0 bytes compiler/src/Scanner.class | Bin 15771 -> 0 bytes compiler/src/Scanner.java | 629 ++------ compiler/src/Scanner.java~ | 6 +- compiler/src/UnicodeEscapes.class | Bin 5753 -> 0 bytes compiler/src/UnicodeEscapes.java | 2 +- compiler/src/java.flex | 85 +- compiler/src/java12.cup | 203 +-- .../ComplexSymbolFactory$ComplexSymbol.class | Bin 2090 -> 0 bytes .../ComplexSymbolFactory$Location.class | Bin 862 -> 0 bytes .../runtime/ComplexSymbolFactory.class | Bin 1943 -> 0 bytes .../runtime/DefaultSymbolFactory.class | Bin 1307 -> 0 bytes compiler/src/java_cup/runtime/Scanner.class | Bin 175 -> 0 bytes compiler/src/java_cup/runtime/Symbol.class | Bin 1083 -> 0 bytes .../src/java_cup/runtime/SymbolFactory.class | Bin 530 -> 0 bytes compiler/src/java_cup/runtime/lr_parser.class | Bin 9876 -> 0 bytes .../runtime/virtual_parse_stack.class | Bin 1539 -> 0 bytes compiler/src/parser.class | Bin 8431 -> 0 bytes compiler/src/parser.java | 1371 ----------------- compiler/src/sym.class | Bin 1561 -> 0 bytes compiler/src/sym.java | 62 - 26 files changed, 223 insertions(+), 2178 deletions(-) delete mode 100644 compiler/src/Main.class delete mode 100644 compiler/src/Scanner.class delete mode 100644 compiler/src/UnicodeEscapes.class delete mode 100644 compiler/src/java_cup/runtime/ComplexSymbolFactory$ComplexSymbol.class delete mode 100644 compiler/src/java_cup/runtime/ComplexSymbolFactory$Location.class delete mode 100644 compiler/src/java_cup/runtime/ComplexSymbolFactory.class delete mode 100644 compiler/src/java_cup/runtime/DefaultSymbolFactory.class delete mode 100644 compiler/src/java_cup/runtime/Scanner.class delete mode 100644 compiler/src/java_cup/runtime/Symbol.class delete mode 100644 compiler/src/java_cup/runtime/SymbolFactory.class delete mode 100644 compiler/src/java_cup/runtime/lr_parser.class delete mode 100644 compiler/src/java_cup/runtime/virtual_parse_stack.class delete mode 100644 compiler/src/parser.class delete mode 100644 compiler/src/parser.java delete mode 100644 compiler/src/sym.class delete mode 100644 compiler/src/sym.java diff --git a/AST/ASTLee/production/org/AST/GeneralNodes/NaryNode.class b/AST/ASTLee/production/org/AST/GeneralNodes/NaryNode.class index f8f88b11ba28a9b804af504c4c197d2d58a68fc0..3cdf189c9957433881cb406947acc7bbee0d383c 100644 GIT binary patch delta 648 zcmZuu%}x_h7(JJcPNyB96xs>}oKk;E(T-HBXhmgVh^8P(8}`>S)RAGPnVA|`k@yBp z-S8Glj0+bgZd~{TCO(6SYfaQM?bgkA&pF@ue(t^B&i{^Ye*N?D6M!l<5{Tha0+(?` z#Z?VDN)cJsD3>*?;94Bl6R5ycaU+gZ6;*+F`-Sc7`Ig)NKBs9-yW`5R=MR!%t-o@% znr(P(>Fi41md_olb=ZZunF^VkjL z(KcHI=HsKTZv}zvxe*sgH>~~87+%A$1EcHog27Mm`a~f0QofR=Bi#-g1fg{(5aSeq zOkellson1U8TUMj`0fw6pUkn=Oi$X zF{B6urjRC{rr`%|3eTOvo3YAC`8|{`NS;AW$3H-e=w~EOM@o{)J6aXYFjkOcOp&D- zXE28hipZiwTp_C=k9CgR!~&jSky)TjcM<34%5iL(*$bHEA{@_(Jf0E}&JPz}AlA9- iNQw4dB+fwj%gUIFiz*Cee<9DGUx*kbGij9(5OjsF>FF?9<<13iB zV&Mb$1U`!<>R+8n=6vVNpL6ER_?Yj!f6v|k9Ky*!MJGse;d6|R zZ2_|z46bB6j{M|aoZAL=s4cY75hy25qMWm^3){jT_AMO1P6o3DnAPdUIQi+ zWZ2DUHC8uyRGqsQl7bHx|hj>%S?HR>%b?KMblmR&|sG)h8<41x~3jQ~jg$Us+c)AOHXW diff --git a/AST/ASTLee/production/org/AST/Main.class b/AST/ASTLee/production/org/AST/Main.class index 43e7a585ed43b5d247dec622994e970122345104..84bcfc263fe001301fa4b8110e43635aef9336ef 100644 GIT binary patch literal 868 zcmaJ^vuk>_cKug}kP5XWj58Qu6d zTx_Aq4$hw&_RW{Z^o*mrj0&v$>*f37lc1LfysBT5`!yyrgpBO>+35PE5v8=P#z%q5 z1-@7qr-yYExo_sPxK8W=&t+;JB{vMYtqH`pnR$h0eg?X@$-A3AKnbhVinxU}BF6bE za>!8Drm(sbWc=n7*{%>1SVG6t3oS<-Ecr!4(B`!I5E0DQNt%}MlMlIzbcANGB k(F*P`N|paz++))BiJMGP+XLP#JS1lEjZ5heu_@{O2jk|#O8@`> literal 700 zcmaJfgc5Pjo(m>Bmfg|_rN&_fCcOWaUVC4>YQw~dr4Qq|KYwbHFzJ6dll`m?wY ziAwwceiY)Z)6xry53@UO-n@BZ`}d!pzW}_)UVtZ9_puSc!={g|09CBJudV4X~y|Lr9EY|%kROez0`$ZKF-ZB`qVv* zj+D+0sB+Cyu+lz{uhfl-Qk4y(t~ELv9+Xp*8M1HrKV^Y8V(Z2~$*)P47?mE=R}r~L z{mN)`BWRVJo-VY_O%ZiWV(o2*L+m|9X3)*YW{`Z*Zij}m_s%&A(Lf;BeDK}9&8+%1 zozY3hg}XUUOR(cOGlqnCiC2Q~LCVb#EI#gi(!WXuR`8)cW2YG<_rhwW0m1exjr|^4 z@cG5v@;9ld??1NBF}CYfMQK(!`SSE=T-cc=ZtmYD@apW!*xn{=>3mNUD?iia0} E0sDWPJOBUy diff --git a/AST/ASTLee/src/java/org/AST/GeneralNodes/NaryNode.java b/AST/ASTLee/src/java/org/AST/GeneralNodes/NaryNode.java index bfc4257..bf66052 100644 --- a/AST/ASTLee/src/java/org/AST/GeneralNodes/NaryNode.java +++ b/AST/ASTLee/src/java/org/AST/GeneralNodes/NaryNode.java @@ -1,11 +1,17 @@ package org.AST.GeneralNodes; +import com.sun.org.apache.xpath.internal.operations.Plus; +import org.AST.SyntaxNodes.ExpressionNode; +import org.AST.SyntaxNodes.PlusNode; + import java.util.ArrayList; /** * Created by Nete on 08-03-2016. */ public abstract class NaryNode extends Node { + protected ArrayList children; + public NaryNode(ArrayList childNodes) { //childNodes must be ordered in left to right appearance in tree @@ -14,7 +20,11 @@ public NaryNode(ArrayList childNodes) for (int i = 0; i < childNodes.size(); i++) { Node n = childNodes.get(i); n._parent = this; - } + + if(this._leftmostChild != null) + System.out.println("In outer if."); + if (this._leftmostChild instanceof ExpressionNode) + System.out.println("Left child is plus"); } } diff --git a/AST/ASTLee/src/java/org/AST/Main.java b/AST/ASTLee/src/java/org/AST/Main.java index 3dbf8ba..57b397e 100644 --- a/AST/ASTLee/src/java/org/AST/Main.java +++ b/AST/ASTLee/src/java/org/AST/Main.java @@ -1,15 +1,25 @@ package org.AST; +import org.AST.GeneralNodes.NaryNode; import org.AST.GeneralNodes.Node; +import org.AST.SyntaxNodes.ExpressionNode; import org.AST.SyntaxNodes.PlusNode; import org.Visitors.PrettyPrintVisitor; +import org.Visitors.Visitor; + +import java.util.ArrayList; public class Main { public static void main (String args[]) { - PlusNode pn = new PlusNode(null, null); - PrettyPrintVisitor ppv = new PrettyPrintVisitor(); - ppv.Visit(pn); + ArrayList al = new ArrayList(); + al.add(new ExpressionNode(null, null) ); + NaryNode n = new NaryNode(al) { + @Override + public Object Visit(Visitor v) { + return null; + } + }; } } diff --git a/AST/ASTLee/src/java/org/AST/SyntaxNodes/ExpressionNode.java b/AST/ASTLee/src/java/org/AST/SyntaxNodes/ExpressionNode.java index 076e30a..b2ee9a8 100644 --- a/AST/ASTLee/src/java/org/AST/SyntaxNodes/ExpressionNode.java +++ b/AST/ASTLee/src/java/org/AST/SyntaxNodes/ExpressionNode.java @@ -1,7 +1,20 @@ package org.AST.SyntaxNodes; +import org.AST.GeneralNodes.BinaryNode; +import org.AST.GeneralNodes.Node; +import org.Visitors.Visitor; + /** * Created by Nete on 09-03-2016. */ -public class ExpressionNode { +public class ExpressionNode extends BinaryNode{ + public ExpressionNode (Node left, Node right) + { + super(left, right); + } + + @Override + public Object Visit(Visitor v) { + return null; + } } diff --git a/compiler/src/Main.class b/compiler/src/Main.class deleted file mode 100644 index a8447f09f132fc416f7c8ccc8aaf23fee218faab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 484 zcmZvZT}uK%6o%jNYjm~pBkjX1tuEFQ_M%Ipo2V-#NGPNW8FvR6(OFs7sGrqM3km&z zepEEGD@o8?oWs25J?A{ke0_g>0=U4bfham>gL>-xG4w);8nj#pW|#xN=T$m_rU5 z1hi)}DY-{b44Z^&-HHjn=giTfG52gsIc)Cfh9e#73Sh>(c_cM*IL3+E-VL|s*Q@V_ zV{ZEdrM2`+Ku|XSr!1{>1rkAo?6pW8*o&FvEu=4|+**-`^{m5(i_sv&BB+|paQI*Q z>vZT&+Gs$(wLUQr{Rk>MTL~=K<2));ltfQD;Fp6KY%$_yH(hX_Ei| diff --git a/compiler/src/Scanner.class b/compiler/src/Scanner.class deleted file mode 100644 index fb44be976b1c622bf18c118127a56a4b1f498b97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15771 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 SZQU_~XRbR&<@`B{KmP-mq41;t diff --git a/compiler/src/Scanner.java b/compiler/src/Scanner.java index 3ff8597..ea27df5 100644 --- a/compiler/src/Scanner.java +++ b/compiler/src/Scanner.java @@ -6,7 +6,7 @@ /** * This class is a scanner generated by * JFlex 1.6.1 - * from the specification file /home/esben/documents/P4 stuffs/P4 Scanner/P4/compiler/src/java.flex + * from the specification file C:/Users/Nete/Documents/GitHub/P4/Compiler/src/java.flex */ public class Scanner implements sym, java_cup.runtime.Scanner { @@ -18,8 +18,6 @@ public class Scanner implements sym, java_cup.runtime.Scanner { /** lexical states */ public static final int YYINITIAL = 0; - public static final int STRING = 2; - public static final int CHARLITERAL = 4; /** * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l @@ -28,142 +26,141 @@ public class Scanner implements sym, java_cup.runtime.Scanner { * l is of the form l = 2*k, k a non negative integer */ private static final int ZZ_LEXSTATE[] = { - 0, 0, 1, 1, 2, 2 + 0, 0 }; /** * Translates characters to character classes */ private static final String ZZ_CMAP_PACKED = - "\11\7\1\3\1\2\1\0\1\3\1\1\16\7\4\0\1\3\1\0"+ - "\1\14\1\0\1\6\2\0\1\15\1\43\1\44\1\5\1\51\1\45"+ - "\1\13\1\11\1\4\12\10\1\46\2\0\1\47\3\0\1\21\1\40"+ - "\1\41\1\31\1\30\1\24\1\37\1\35\1\23\2\6\1\34\1\27"+ - "\1\25\1\33\1\36\1\42\1\22\1\17\1\20\1\26\1\32\4\6"+ - "\1\0\1\16\1\0\1\52\1\50\1\0\4\6\1\12\25\6\4\0"+ - "\41\7\2\0\4\6\4\0\1\6\2\0\1\7\7\0\1\6\4\0"+ - "\1\6\5\0\27\6\1\0\37\6\1\0\u01ca\6\4\0\14\6\16\0"+ - "\5\6\7\0\1\6\1\0\1\6\21\0\160\7\5\6\1\0\2\6"+ - "\2\0\4\6\10\0\1\6\1\0\3\6\1\0\1\6\1\0\24\6"+ - "\1\0\123\6\1\0\213\6\1\0\5\7\2\0\236\6\11\0\46\6"+ - "\2\0\1\6\7\0\47\6\11\0\55\7\1\0\1\7\1\0\2\7"+ - "\1\0\2\7\1\0\1\7\10\0\33\6\5\0\3\6\15\0\4\7"+ - "\7\0\1\6\4\0\13\7\5\0\53\6\37\7\4\0\2\6\1\7"+ - "\143\6\1\0\1\6\10\7\1\0\6\7\2\6\2\7\1\0\4\7"+ - "\2\6\12\7\3\6\2\0\1\6\17\0\1\7\1\6\1\7\36\6"+ - "\33\7\2\0\131\6\13\7\1\6\16\0\12\7\41\6\11\7\2\6"+ - "\4\0\1\6\5\0\26\6\4\7\1\6\11\7\1\6\3\7\1\6"+ - "\5\7\22\0\31\6\3\7\244\0\4\7\66\6\3\7\1\6\22\7"+ - "\1\6\7\7\12\6\2\7\2\0\12\7\1\0\7\6\1\0\7\6"+ - "\1\0\3\7\1\0\10\6\2\0\2\6\2\0\26\6\1\0\7\6"+ - "\1\0\1\6\3\0\4\6\2\0\1\7\1\6\7\7\2\0\2\7"+ - "\2\0\3\7\1\6\10\0\1\7\4\0\2\6\1\0\3\6\2\7"+ - "\2\0\12\7\4\6\7\0\1\6\5\0\3\7\1\0\6\6\4\0"+ - "\2\6\2\0\26\6\1\0\7\6\1\0\2\6\1\0\2\6\1\0"+ - "\2\6\2\0\1\7\1\0\5\7\4\0\2\7\2\0\3\7\3\0"+ - "\1\7\7\0\4\6\1\0\1\6\7\0\14\7\3\6\1\7\13\0"+ - "\3\7\1\0\11\6\1\0\3\6\1\0\26\6\1\0\7\6\1\0"+ - "\2\6\1\0\5\6\2\0\1\7\1\6\10\7\1\0\3\7\1\0"+ - "\3\7\2\0\1\6\17\0\2\6\2\7\2\0\12\7\1\0\1\6"+ - "\17\0\3\7\1\0\10\6\2\0\2\6\2\0\26\6\1\0\7\6"+ - "\1\0\2\6\1\0\5\6\2\0\1\7\1\6\7\7\2\0\2\7"+ - "\2\0\3\7\10\0\2\7\4\0\2\6\1\0\3\6\2\7\2\0"+ - "\12\7\1\0\1\6\20\0\1\7\1\6\1\0\6\6\3\0\3\6"+ - "\1\0\4\6\3\0\2\6\1\0\1\6\1\0\2\6\3\0\2\6"+ - "\3\0\3\6\3\0\14\6\4\0\5\7\3\0\3\7\1\0\4\7"+ - "\2\0\1\6\6\0\1\7\16\0\12\7\11\0\1\6\7\0\3\7"+ - "\1\0\10\6\1\0\3\6\1\0\27\6\1\0\12\6\1\0\5\6"+ - "\3\0\1\6\7\7\1\0\3\7\1\0\4\7\7\0\2\7\1\0"+ - "\2\6\6\0\2\6\2\7\2\0\12\7\22\0\2\7\1\0\10\6"+ - "\1\0\3\6\1\0\27\6\1\0\12\6\1\0\5\6\2\0\1\7"+ - "\1\6\7\7\1\0\3\7\1\0\4\7\7\0\2\7\7\0\1\6"+ - "\1\0\2\6\2\7\2\0\12\7\1\0\2\6\17\0\2\7\1\0"+ - "\10\6\1\0\3\6\1\0\51\6\2\0\1\6\7\7\1\0\3\7"+ - "\1\0\4\7\1\6\10\0\1\7\10\0\2\6\2\7\2\0\12\7"+ - "\12\0\6\6\2\0\2\7\1\0\22\6\3\0\30\6\1\0\11\6"+ - "\1\0\1\6\2\0\7\6\3\0\1\7\4\0\6\7\1\0\1\7"+ - "\1\0\10\7\22\0\2\7\15\0\60\6\1\7\2\6\7\7\4\0"+ - "\10\6\10\7\1\0\12\7\47\0\2\6\1\0\1\6\2\0\2\6"+ - "\1\0\1\6\2\0\1\6\6\0\4\6\1\0\7\6\1\0\3\6"+ - "\1\0\1\6\1\0\1\6\2\0\2\6\1\0\4\6\1\7\2\6"+ - "\6\7\1\0\2\7\1\6\2\0\5\6\1\0\1\6\1\0\6\7"+ - "\2\0\12\7\2\0\2\6\42\0\1\6\27\0\2\7\6\0\12\7"+ - "\13\0\1\7\1\0\1\7\1\0\1\7\4\0\2\7\10\6\1\0"+ - "\44\6\4\0\24\7\1\0\2\7\5\6\13\7\1\0\44\7\11\0"+ - "\1\7\71\0\53\6\24\7\1\6\12\7\6\0\6\6\4\7\4\6"+ - "\3\7\1\6\3\7\2\6\7\7\3\6\4\7\15\6\14\7\1\6"+ - "\17\7\2\0\46\6\12\0\53\6\1\0\1\6\3\0\u0149\6\1\0"+ - "\4\6\2\0\7\6\1\0\1\6\1\0\4\6\2\0\51\6\1\0"+ - "\4\6\2\0\41\6\1\0\4\6\2\0\7\6\1\0\1\6\1\0"+ - "\4\6\2\0\17\6\1\0\71\6\1\0\4\6\2\0\103\6\2\0"+ - "\3\7\40\0\20\6\20\0\125\6\14\0\u026c\6\2\0\21\6\1\0"+ - "\32\6\5\0\113\6\3\0\3\6\17\0\15\6\1\0\4\6\3\7"+ - "\13\0\22\6\3\7\13\0\22\6\2\7\14\0\15\6\1\0\3\6"+ - "\1\0\2\7\14\0\64\6\40\7\3\0\1\6\3\0\2\6\1\7"+ - "\2\0\12\7\41\0\3\7\2\0\12\7\6\0\130\6\10\0\51\6"+ - "\1\7\1\6\5\0\106\6\12\0\35\6\3\0\14\7\4\0\14\7"+ - "\12\0\12\7\36\6\2\0\5\6\13\0\54\6\4\0\21\7\7\6"+ - "\2\7\6\0\12\7\46\0\27\6\5\7\4\0\65\6\12\7\1\0"+ - "\35\7\2\0\13\7\6\0\12\7\15\0\1\6\130\0\5\7\57\6"+ - "\21\7\7\6\4\0\12\7\21\0\11\7\14\0\3\7\36\6\12\7"+ - "\3\0\2\6\12\7\6\0\46\6\16\7\14\0\44\6\24\7\10\0"+ - "\12\7\3\0\3\6\12\7\44\6\122\0\3\7\1\0\25\7\4\6"+ - "\1\7\4\6\1\7\15\0\300\6\47\7\25\0\4\7\u0116\6\2\0"+ - "\6\6\2\0\46\6\2\0\6\6\2\0\10\6\1\0\1\6\1\0"+ - "\1\6\1\0\1\6\1\0\37\6\2\0\65\6\1\0\7\6\1\0"+ - "\1\6\3\0\3\6\1\0\7\6\3\0\4\6\2\0\6\6\4\0"+ - "\15\6\5\0\3\6\1\0\7\6\16\0\5\7\32\0\5\7\20\0"+ - "\2\6\23\0\1\6\13\0\5\7\5\0\6\7\1\0\1\6\15\0"+ - "\1\6\20\0\15\6\3\0\32\6\26\0\15\7\4\0\1\7\3\0"+ - "\14\7\21\0\1\6\4\0\1\6\2\0\12\6\1\0\1\6\3\0"+ - "\5\6\6\0\1\6\1\0\1\6\1\0\1\6\1\0\4\6\1\0"+ - "\13\6\2\0\4\6\5\0\5\6\4\0\1\6\21\0\51\6\u0a77\0"+ - "\57\6\1\0\57\6\1\0\205\6\6\0\4\6\3\7\16\0\46\6"+ - "\12\0\66\6\11\0\1\6\17\0\1\7\27\6\11\0\7\6\1\0"+ - "\7\6\1\0\7\6\1\0\7\6\1\0\7\6\1\0\7\6\1\0"+ - "\7\6\1\0\7\6\1\0\40\7\57\0\1\6\u01d5\0\3\6\31\0"+ - "\11\6\6\7\1\0\5\6\2\0\5\6\4\0\126\6\2\0\2\7"+ - "\2\0\3\6\1\0\132\6\1\0\4\6\5\0\51\6\3\0\136\6"+ - "\21\0\33\6\65\0\20\6\u0200\0\u19b6\6\112\0\u51cc\6\64\0\u048d\6"+ - "\103\0\56\6\2\0\u010d\6\3\0\20\6\12\7\2\6\24\0\57\6"+ - "\1\7\14\0\2\7\1\0\31\6\10\0\120\6\2\7\45\0\11\6"+ - "\2\0\147\6\2\0\4\6\1\0\2\6\16\0\12\6\120\0\10\6"+ - "\1\7\3\6\1\7\4\6\1\7\27\6\5\7\20\0\1\6\7\0"+ - "\64\6\14\0\2\7\62\6\21\7\13\0\12\7\6\0\22\7\6\6"+ - "\3\0\1\6\4\0\12\7\34\6\10\7\2\0\27\6\15\7\14\0"+ - "\35\6\3\0\4\7\57\6\16\7\16\0\1\6\12\7\46\0\51\6"+ - "\16\7\11\0\3\6\1\7\10\6\2\7\2\0\12\7\6\0\27\6"+ - "\3\0\1\6\1\7\4\0\60\6\1\7\1\6\3\7\2\6\2\7"+ - "\5\6\2\7\1\6\1\7\1\6\30\0\3\6\43\0\6\6\2\0"+ - "\6\6\2\0\6\6\11\0\7\6\1\0\7\6\221\0\43\6\10\7"+ - "\1\0\2\7\2\0\12\7\6\0\u2ba4\6\14\0\27\6\4\0\61\6"+ - "\u2104\0\u012e\6\2\0\76\6\2\0\152\6\46\0\7\6\14\0\5\6"+ - "\5\0\1\6\1\7\12\6\1\0\15\6\1\0\5\6\1\0\1\6"+ - "\1\0\2\6\1\0\2\6\1\0\154\6\41\0\u016b\6\22\0\100\6"+ - "\2\0\66\6\50\0\15\6\3\0\20\7\20\0\7\7\14\0\2\6"+ - "\30\0\3\6\31\0\1\6\6\0\5\6\1\0\207\6\2\0\1\7"+ - "\4\0\1\6\13\0\12\7\7\0\32\6\4\0\1\6\1\0\32\6"+ - "\13\0\131\6\3\0\6\6\2\0\6\6\2\0\6\6\2\0\3\6"+ - "\3\0\2\6\3\0\2\6\22\0\3\7\4\0\14\6\1\0\32\6"+ - "\1\0\23\6\1\0\2\6\1\0\17\6\2\0\16\6\42\0\173\6"+ - "\105\0\65\6\210\0\1\7\202\0\35\6\3\0\61\6\57\0\37\6"+ - "\21\0\33\6\65\0\36\6\2\0\44\6\4\0\10\6\1\0\5\6"+ - "\52\0\236\6\2\0\12\7\u0356\0\6\6\2\0\1\6\1\0\54\6"+ - "\1\0\2\6\3\0\1\6\2\0\27\6\252\0\26\6\12\0\32\6"+ - "\306\0\1\6\3\7\1\0\2\7\5\0\4\7\4\6\1\0\3\6"+ - "\1\0\33\6\4\0\3\7\4\0\1\7\40\0\35\6\203\0\66\6"+ - "\12\0\26\6\12\0\23\6\215\0\111\6\u03b7\0\3\7\65\6\17\7"+ - "\37\0\12\7\20\0\3\7\55\6\13\7\2\0\1\7\u0f42\0\u036f\6"+ - "\221\0\143\6\u0b9d\0\u042f\6\u33d1\0\u0239\6\u45c7\0\2\6\u2163\0\5\7"+ - "\3\0\26\7\2\0\7\7\36\0\4\7\224\0\3\7\u01bb\0\125\6"+ - "\1\0\107\6\1\0\2\6\2\0\1\6\2\0\2\6\2\0\4\6"+ - "\1\0\14\6\1\0\1\6\1\0\7\6\1\0\101\6\1\0\4\6"+ - "\2\0\10\6\1\0\7\6\1\0\34\6\1\0\4\6\1\0\5\6"+ - "\1\0\1\6\3\0\7\6\1\0\u0154\6\2\0\31\6\1\0\31\6"+ - "\1\0\37\6\1\0\31\6\1\0\37\6\1\0\31\6\1\0\37\6"+ - "\1\0\31\6\1\0\37\6\1\0\31\6\1\0\10\6\2\0\62\7"+ - "\u2800\0\ua6d7\6\51\0\u1035\6\13\0\336\6\u3fe2\0\u021e\6\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05ee\0"+ - "\1\7\36\0\140\7\200\0\360\7\uffff\0\uffff\0\ufe12\0"; + "\11\0\1\3\1\2\1\0\1\3\1\1\16\0\4\0\1\3\1\0"+ + "\1\0\1\0\1\0\2\0\1\0\1\13\1\14\1\0\1\0\1\0"+ + "\1\0\1\0\1\0\12\0\7\0\3\0\1\10\1\6\1\5\2\0"+ + "\1\4\2\0\1\11\1\0\1\7\4\0\1\12\7\0\1\0\1\0"+ + "\2\0\1\0\1\0\4\0\1\0\25\0\4\0\41\0\2\0\4\0"+ + "\4\0\1\0\2\0\1\0\7\0\1\0\4\0\1\0\5\0\27\0"+ + "\1\0\37\0\1\0\u01ca\0\4\0\14\0\16\0\5\0\7\0\1\0"+ + "\1\0\1\0\21\0\160\0\5\0\1\0\2\0\2\0\4\0\10\0"+ + "\1\0\1\0\3\0\1\0\1\0\1\0\24\0\1\0\123\0\1\0"+ + "\213\0\1\0\5\0\2\0\236\0\11\0\46\0\2\0\1\0\7\0"+ + "\47\0\11\0\55\0\1\0\1\0\1\0\2\0\1\0\2\0\1\0"+ + "\1\0\10\0\33\0\5\0\3\0\15\0\4\0\7\0\1\0\4\0"+ + "\13\0\5\0\53\0\37\0\4\0\2\0\1\0\143\0\1\0\1\0"+ + "\10\0\1\0\6\0\2\0\2\0\1\0\4\0\2\0\12\0\3\0"+ + "\2\0\1\0\17\0\1\0\1\0\1\0\36\0\33\0\2\0\131\0"+ + "\13\0\1\0\16\0\12\0\41\0\11\0\2\0\4\0\1\0\5\0"+ + "\26\0\4\0\1\0\11\0\1\0\3\0\1\0\5\0\22\0\31\0"+ + "\3\0\244\0\4\0\66\0\3\0\1\0\22\0\1\0\7\0\12\0"+ + "\2\0\2\0\12\0\1\0\7\0\1\0\7\0\1\0\3\0\1\0"+ + "\10\0\2\0\2\0\2\0\26\0\1\0\7\0\1\0\1\0\3\0"+ + "\4\0\2\0\1\0\1\0\7\0\2\0\2\0\2\0\3\0\1\0"+ + "\10\0\1\0\4\0\2\0\1\0\3\0\2\0\2\0\12\0\4\0"+ + "\7\0\1\0\5\0\3\0\1\0\6\0\4\0\2\0\2\0\26\0"+ + "\1\0\7\0\1\0\2\0\1\0\2\0\1\0\2\0\2\0\1\0"+ + "\1\0\5\0\4\0\2\0\2\0\3\0\3\0\1\0\7\0\4\0"+ + "\1\0\1\0\7\0\14\0\3\0\1\0\13\0\3\0\1\0\11\0"+ + "\1\0\3\0\1\0\26\0\1\0\7\0\1\0\2\0\1\0\5\0"+ + "\2\0\1\0\1\0\10\0\1\0\3\0\1\0\3\0\2\0\1\0"+ + "\17\0\2\0\2\0\2\0\12\0\1\0\1\0\17\0\3\0\1\0"+ + "\10\0\2\0\2\0\2\0\26\0\1\0\7\0\1\0\2\0\1\0"+ + "\5\0\2\0\1\0\1\0\7\0\2\0\2\0\2\0\3\0\10\0"+ + "\2\0\4\0\2\0\1\0\3\0\2\0\2\0\12\0\1\0\1\0"+ + "\20\0\1\0\1\0\1\0\6\0\3\0\3\0\1\0\4\0\3\0"+ + "\2\0\1\0\1\0\1\0\2\0\3\0\2\0\3\0\3\0\3\0"+ + "\14\0\4\0\5\0\3\0\3\0\1\0\4\0\2\0\1\0\6\0"+ + "\1\0\16\0\12\0\11\0\1\0\7\0\3\0\1\0\10\0\1\0"+ + "\3\0\1\0\27\0\1\0\12\0\1\0\5\0\3\0\1\0\7\0"+ + "\1\0\3\0\1\0\4\0\7\0\2\0\1\0\2\0\6\0\2\0"+ + "\2\0\2\0\12\0\22\0\2\0\1\0\10\0\1\0\3\0\1\0"+ + "\27\0\1\0\12\0\1\0\5\0\2\0\1\0\1\0\7\0\1\0"+ + "\3\0\1\0\4\0\7\0\2\0\7\0\1\0\1\0\2\0\2\0"+ + "\2\0\12\0\1\0\2\0\17\0\2\0\1\0\10\0\1\0\3\0"+ + "\1\0\51\0\2\0\1\0\7\0\1\0\3\0\1\0\4\0\1\0"+ + "\10\0\1\0\10\0\2\0\2\0\2\0\12\0\12\0\6\0\2\0"+ + "\2\0\1\0\22\0\3\0\30\0\1\0\11\0\1\0\1\0\2\0"+ + "\7\0\3\0\1\0\4\0\6\0\1\0\1\0\1\0\10\0\22\0"+ + "\2\0\15\0\60\0\1\0\2\0\7\0\4\0\10\0\10\0\1\0"+ + "\12\0\47\0\2\0\1\0\1\0\2\0\2\0\1\0\1\0\2\0"+ + "\1\0\6\0\4\0\1\0\7\0\1\0\3\0\1\0\1\0\1\0"+ + "\1\0\2\0\2\0\1\0\4\0\1\0\2\0\6\0\1\0\2\0"+ + "\1\0\2\0\5\0\1\0\1\0\1\0\6\0\2\0\12\0\2\0"+ + "\2\0\42\0\1\0\27\0\2\0\6\0\12\0\13\0\1\0\1\0"+ + "\1\0\1\0\1\0\4\0\2\0\10\0\1\0\44\0\4\0\24\0"+ + "\1\0\2\0\5\0\13\0\1\0\44\0\11\0\1\0\71\0\53\0"+ + "\24\0\1\0\12\0\6\0\6\0\4\0\4\0\3\0\1\0\3\0"+ + "\2\0\7\0\3\0\4\0\15\0\14\0\1\0\17\0\2\0\46\0"+ + "\12\0\53\0\1\0\1\0\3\0\u0149\0\1\0\4\0\2\0\7\0"+ + "\1\0\1\0\1\0\4\0\2\0\51\0\1\0\4\0\2\0\41\0"+ + "\1\0\4\0\2\0\7\0\1\0\1\0\1\0\4\0\2\0\17\0"+ + "\1\0\71\0\1\0\4\0\2\0\103\0\2\0\3\0\40\0\20\0"+ + "\20\0\125\0\14\0\u026c\0\2\0\21\0\1\0\32\0\5\0\113\0"+ + "\3\0\3\0\17\0\15\0\1\0\4\0\3\0\13\0\22\0\3\0"+ + "\13\0\22\0\2\0\14\0\15\0\1\0\3\0\1\0\2\0\14\0"+ + "\64\0\40\0\3\0\1\0\3\0\2\0\1\0\2\0\12\0\41\0"+ + "\3\0\2\0\12\0\6\0\130\0\10\0\51\0\1\0\1\0\5\0"+ + "\106\0\12\0\35\0\3\0\14\0\4\0\14\0\12\0\12\0\36\0"+ + "\2\0\5\0\13\0\54\0\4\0\21\0\7\0\2\0\6\0\12\0"+ + "\46\0\27\0\5\0\4\0\65\0\12\0\1\0\35\0\2\0\13\0"+ + "\6\0\12\0\15\0\1\0\130\0\5\0\57\0\21\0\7\0\4\0"+ + "\12\0\21\0\11\0\14\0\3\0\36\0\12\0\3\0\2\0\12\0"+ + "\6\0\46\0\16\0\14\0\44\0\24\0\10\0\12\0\3\0\3\0"+ + "\12\0\44\0\122\0\3\0\1\0\25\0\4\0\1\0\4\0\1\0"+ + "\15\0\300\0\47\0\25\0\4\0\u0116\0\2\0\6\0\2\0\46\0"+ + "\2\0\6\0\2\0\10\0\1\0\1\0\1\0\1\0\1\0\1\0"+ + "\1\0\37\0\2\0\65\0\1\0\7\0\1\0\1\0\3\0\3\0"+ + "\1\0\7\0\3\0\4\0\2\0\6\0\4\0\15\0\5\0\3\0"+ + "\1\0\7\0\16\0\5\0\32\0\5\0\20\0\2\0\23\0\1\0"+ + "\13\0\5\0\5\0\6\0\1\0\1\0\15\0\1\0\20\0\15\0"+ + "\3\0\32\0\26\0\15\0\4\0\1\0\3\0\14\0\21\0\1\0"+ + "\4\0\1\0\2\0\12\0\1\0\1\0\3\0\5\0\6\0\1\0"+ + "\1\0\1\0\1\0\1\0\1\0\4\0\1\0\13\0\2\0\4\0"+ + "\5\0\5\0\4\0\1\0\21\0\51\0\u0a77\0\57\0\1\0\57\0"+ + "\1\0\205\0\6\0\4\0\3\0\16\0\46\0\12\0\66\0\11\0"+ + "\1\0\17\0\1\0\27\0\11\0\7\0\1\0\7\0\1\0\7\0"+ + "\1\0\7\0\1\0\7\0\1\0\7\0\1\0\7\0\1\0\7\0"+ + "\1\0\40\0\57\0\1\0\u01d5\0\3\0\31\0\11\0\6\0\1\0"+ + "\5\0\2\0\5\0\4\0\126\0\2\0\2\0\2\0\3\0\1\0"+ + "\132\0\1\0\4\0\5\0\51\0\3\0\136\0\21\0\33\0\65\0"+ + "\20\0\u0200\0\u19b6\0\112\0\u51cc\0\64\0\u048d\0\103\0\56\0\2\0"+ + "\u010d\0\3\0\20\0\12\0\2\0\24\0\57\0\1\0\14\0\2\0"+ + "\1\0\31\0\10\0\120\0\2\0\45\0\11\0\2\0\147\0\2\0"+ + "\4\0\1\0\2\0\16\0\12\0\120\0\10\0\1\0\3\0\1\0"+ + "\4\0\1\0\27\0\5\0\20\0\1\0\7\0\64\0\14\0\2\0"+ + "\62\0\21\0\13\0\12\0\6\0\22\0\6\0\3\0\1\0\4\0"+ + "\12\0\34\0\10\0\2\0\27\0\15\0\14\0\35\0\3\0\4\0"+ + "\57\0\16\0\16\0\1\0\12\0\46\0\51\0\16\0\11\0\3\0"+ + "\1\0\10\0\2\0\2\0\12\0\6\0\27\0\3\0\1\0\1\0"+ + "\4\0\60\0\1\0\1\0\3\0\2\0\2\0\5\0\2\0\1\0"+ + "\1\0\1\0\30\0\3\0\43\0\6\0\2\0\6\0\2\0\6\0"+ + "\11\0\7\0\1\0\7\0\221\0\43\0\10\0\1\0\2\0\2\0"+ + "\12\0\6\0\u2ba4\0\14\0\27\0\4\0\61\0\u2104\0\u012e\0\2\0"+ + "\76\0\2\0\152\0\46\0\7\0\14\0\5\0\5\0\1\0\1\0"+ + "\12\0\1\0\15\0\1\0\5\0\1\0\1\0\1\0\2\0\1\0"+ + "\2\0\1\0\154\0\41\0\u016b\0\22\0\100\0\2\0\66\0\50\0"+ + "\15\0\3\0\20\0\20\0\7\0\14\0\2\0\30\0\3\0\31\0"+ + "\1\0\6\0\5\0\1\0\207\0\2\0\1\0\4\0\1\0\13\0"+ + "\12\0\7\0\32\0\4\0\1\0\1\0\32\0\13\0\131\0\3\0"+ + "\6\0\2\0\6\0\2\0\6\0\2\0\3\0\3\0\2\0\3\0"+ + "\2\0\22\0\3\0\4\0\14\0\1\0\32\0\1\0\23\0\1\0"+ + "\2\0\1\0\17\0\2\0\16\0\42\0\173\0\105\0\65\0\210\0"+ + "\1\0\202\0\35\0\3\0\61\0\57\0\37\0\21\0\33\0\65\0"+ + "\36\0\2\0\44\0\4\0\10\0\1\0\5\0\52\0\236\0\2\0"+ + "\12\0\u0356\0\6\0\2\0\1\0\1\0\54\0\1\0\2\0\3\0"+ + "\1\0\2\0\27\0\252\0\26\0\12\0\32\0\306\0\1\0\3\0"+ + "\1\0\2\0\5\0\4\0\4\0\1\0\3\0\1\0\33\0\4\0"+ + "\3\0\4\0\1\0\40\0\35\0\203\0\66\0\12\0\26\0\12\0"+ + "\23\0\215\0\111\0\u03b7\0\3\0\65\0\17\0\37\0\12\0\20\0"+ + "\3\0\55\0\13\0\2\0\1\0\u0f42\0\u036f\0\221\0\143\0\u0b9d\0"+ + "\u042f\0\u33d1\0\u0239\0\u45c7\0\2\0\u2163\0\5\0\3\0\26\0\2\0"+ + "\7\0\36\0\4\0\224\0\3\0\u01bb\0\125\0\1\0\107\0\1\0"+ + "\2\0\2\0\1\0\2\0\2\0\2\0\4\0\1\0\14\0\1\0"+ + "\1\0\1\0\7\0\1\0\101\0\1\0\4\0\2\0\10\0\1\0"+ + "\7\0\1\0\34\0\1\0\4\0\1\0\5\0\1\0\1\0\3\0"+ + "\7\0\1\0\u0154\0\2\0\31\0\1\0\31\0\1\0\37\0\1\0"+ + "\31\0\1\0\37\0\1\0\31\0\1\0\37\0\1\0\31\0\1\0"+ + "\37\0\1\0\31\0\1\0\10\0\2\0\62\0\u2800\0\ua6d7\0\51\0"+ + "\u1035\0\13\0\336\0\u3fe2\0\u021e\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05ee\0"+ + "\1\0\36\0\140\0\200\0\360\0\uffff\0\uffff\0\ufe12\0"; /** * Translates characters to character classes @@ -176,19 +173,11 @@ public class Scanner implements sym, java_cup.runtime.Scanner { private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\3\0\1\1\1\2\1\3\1\2\1\4\1\5\1\6"+ - "\1\7\1\10\1\11\1\12\1\13\20\6\1\14\1\15"+ - "\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\1"+ - "\1\2\1\0\1\7\1\0\5\6\1\25\1\26\10\6"+ - "\1\27\6\6\1\30\1\0\1\7\1\0\4\6\1\31"+ - "\3\6\1\32\1\33\1\6\1\34\12\6\1\35\1\36"+ - "\4\6\1\37\1\40\1\6\1\41\1\42\1\6\1\43"+ - "\1\6\1\44\2\6\1\45\1\6\1\46\2\6\1\47"+ - "\1\50\1\51\3\6\1\52\4\6\1\53\6\6\1\54"+ - "\20\6\1\55\3\6\1\56"; + "\1\0\1\1\1\2\1\3\1\2\2\1\1\4\1\5"+ + "\1\6\2\0\1\7\1\0\1\10"; private static int [] zzUnpackAction() { - int [] result = new int[155]; + int [] result = new int[15]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -213,29 +202,11 @@ private static int zzUnpackAction(String packed, int offset, int [] result) { private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\53\0\126\0\201\0\254\0\201\0\201\0\327"+ - "\0\201\0\u0102\0\u012d\0\u0158\0\201\0\201\0\201\0\u0183"+ - "\0\u01ae\0\u01d9\0\u0204\0\u022f\0\u025a\0\u0285\0\u02b0\0\u02db"+ - "\0\u0306\0\u0331\0\u035c\0\u0387\0\u03b2\0\u03dd\0\u0408\0\201"+ - "\0\201\0\201\0\201\0\201\0\201\0\201\0\u0433\0\201"+ - "\0\u045e\0\u0489\0\u04b4\0\u04df\0\u050a\0\u0535\0\u0560\0\u058b"+ - "\0\u05b6\0\u05e1\0\u0102\0\u0102\0\u060c\0\u0637\0\u0662\0\u068d"+ - "\0\u06b8\0\u06e3\0\u070e\0\u0739\0\u0102\0\u0764\0\u078f\0\u07ba"+ - "\0\u07e5\0\u0810\0\u083b\0\201\0\u0866\0\u0891\0\u0891\0\u08bc"+ - "\0\u08e7\0\u0912\0\u093d\0\u0102\0\u0968\0\u0993\0\u09be\0\u0102"+ - "\0\u0102\0\u09e9\0\u0102\0\u0a14\0\u0a3f\0\u0a6a\0\u0a95\0\u0ac0"+ - "\0\u0aeb\0\u0b16\0\u0b41\0\u0b6c\0\u0b97\0\u0102\0\u0102\0\u0bc2"+ - "\0\u0bed\0\u0c18\0\u0c43\0\u0102\0\u0102\0\u0c6e\0\u0102\0\u0102"+ - "\0\u0c99\0\u0102\0\u0cc4\0\u0102\0\u0cef\0\u0d1a\0\u0102\0\u0d45"+ - "\0\u0102\0\u0d70\0\u0d9b\0\u0102\0\u0102\0\u0102\0\u0dc6\0\u0df1"+ - "\0\u0e1c\0\u0102\0\u0e47\0\u0e72\0\u0e9d\0\u0ec8\0\u0ef3\0\u0f1e"+ - "\0\u0f49\0\u0f74\0\u0f9f\0\u0fca\0\u0ff5\0\u1020\0\u104b\0\u1076"+ - "\0\u10a1\0\u10cc\0\u10f7\0\u1122\0\u114d\0\u1178\0\u11a3\0\u11ce"+ - "\0\u11f9\0\u1224\0\u124f\0\u127a\0\u12a5\0\u12d0\0\u0102\0\u12fb"+ - "\0\u1326\0\u1351\0\u0102"; + "\0\0\0\15\0\32\0\15\0\15\0\47\0\64\0\15"+ + "\0\15\0\15\0\101\0\116\0\15\0\133\0\15"; private static int [] zzUnpackRowMap() { - int [] result = new int[155]; + int [] result = new int[15]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -258,146 +229,13 @@ private static int zzUnpackRowMap(String packed, int offset, int [] result) { private static final int [] ZZ_TRANS = zzUnpackTrans(); private static final String ZZ_TRANS_PACKED_0 = - "\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\4"+ - "\1\13\1\14\1\12\1\15\1\16\1\17\1\4\1\20"+ - "\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\12"+ - "\1\30\1\12\1\31\1\32\1\33\1\34\1\12\1\35"+ - "\1\36\1\37\1\12\1\40\1\41\1\42\1\43\1\44"+ - "\1\12\1\45\1\46\1\47\2\4\11\47\1\50\1\47"+ - "\1\4\34\47\1\51\2\4\12\51\2\4\34\51\55\0"+ - "\1\7\54\0\1\52\1\53\53\0\3\12\1\0\1\12"+ - "\4\0\24\12\5\0\1\12\12\0\1\13\1\54\1\55"+ - "\15\0\1\55\32\0\1\54\50\0\3\12\1\0\1\12"+ - "\4\0\1\12\1\56\21\12\1\57\5\0\1\12\10\0"+ - "\3\12\1\0\1\12\4\0\3\12\1\60\20\12\5\0"+ - "\1\12\10\0\3\12\1\0\1\12\4\0\6\12\1\61"+ - "\15\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ - "\11\12\1\62\12\12\5\0\1\12\10\0\3\12\1\0"+ - "\1\12\4\0\1\63\4\12\1\64\16\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\2\12\1\65\11\12"+ - "\1\66\7\12\5\0\1\12\10\0\3\12\1\0\1\12"+ - "\4\0\7\12\1\67\4\12\1\70\7\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\6\12\1\71\15\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\6\12"+ - "\1\72\6\12\1\73\6\12\5\0\1\12\10\0\3\12"+ - "\1\0\1\12\4\0\14\12\1\74\7\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\3\12\1\75\20\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\11\12"+ - "\1\76\2\12\1\77\7\12\5\0\1\12\10\0\3\12"+ - "\1\0\1\12\4\0\11\12\1\100\12\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\3\12\1\101\20\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\14\12"+ - "\1\102\7\12\5\0\1\12\10\0\3\12\1\0\1\12"+ - "\4\0\14\12\1\103\7\12\5\0\1\12\2\0\1\47"+ - "\2\0\11\47\1\0\1\47\1\0\34\47\15\0\1\104"+ - "\35\0\1\52\1\5\1\7\50\52\5\53\1\105\45\53"+ - "\10\0\1\54\1\0\1\55\15\0\1\55\32\0\1\106"+ - "\2\0\1\107\35\0\1\107\7\0\3\12\1\0\1\12"+ - "\4\0\2\12\1\110\1\111\20\12\5\0\1\12\10\0"+ - "\3\12\1\0\1\12\4\0\3\12\1\112\20\12\5\0"+ - "\1\12\10\0\3\12\1\0\1\12\4\0\7\12\1\113"+ - "\14\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ - "\12\12\1\114\11\12\5\0\1\12\10\0\3\12\1\0"+ - "\1\12\4\0\17\12\1\115\4\12\5\0\1\12\10\0"+ - "\3\12\1\0\1\12\4\0\15\12\1\116\6\12\5\0"+ - "\1\12\10\0\3\12\1\0\1\12\4\0\3\12\1\117"+ - "\20\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ - "\10\12\1\120\13\12\5\0\1\12\10\0\3\12\1\0"+ - "\1\12\4\0\1\12\1\121\22\12\5\0\1\12\10\0"+ - "\3\12\1\0\1\12\4\0\1\12\1\122\22\12\5\0"+ - "\1\12\10\0\3\12\1\0\1\12\4\0\12\12\1\123"+ - "\11\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ - "\1\124\23\12\5\0\1\12\10\0\3\12\1\0\1\12"+ - "\4\0\4\12\1\125\17\12\5\0\1\12\10\0\3\12"+ - "\1\0\1\12\4\0\1\126\23\12\5\0\1\12\10\0"+ - "\3\12\1\0\1\12\4\0\2\12\1\127\21\12\5\0"+ - "\1\12\10\0\3\12\1\0\1\12\4\0\2\12\1\130"+ - "\21\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ - "\11\12\1\131\12\12\5\0\1\12\10\0\3\12\1\0"+ - "\1\12\4\0\14\12\1\132\7\12\5\0\1\12\10\0"+ - "\3\12\1\0\1\12\4\0\14\12\1\133\7\12\5\0"+ - "\1\12\2\0\4\53\1\7\1\105\45\53\10\0\1\106"+ - "\50\0\3\12\1\0\1\12\4\0\3\12\1\134\20\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\4\12"+ - "\1\135\17\12\5\0\1\12\10\0\3\12\1\0\1\12"+ - "\4\0\1\12\1\136\22\12\5\0\1\12\10\0\3\12"+ - "\1\0\1\12\4\0\11\12\1\137\12\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\11\12\1\140\12\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\1\141"+ - "\23\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ - "\11\12\1\142\12\12\5\0\1\12\10\0\3\12\1\0"+ - "\1\12\4\0\4\12\1\143\17\12\5\0\1\12\10\0"+ - "\3\12\1\0\1\12\4\0\11\12\1\144\12\12\5\0"+ - "\1\12\10\0\3\12\1\0\1\12\4\0\12\12\1\145"+ - "\11\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ - "\1\146\23\12\5\0\1\12\10\0\3\12\1\0\1\12"+ - "\4\0\12\12\1\147\11\12\5\0\1\12\10\0\3\12"+ - "\1\0\1\12\4\0\3\12\1\150\20\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\2\12\1\151\21\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\15\12"+ - "\1\152\6\12\5\0\1\12\10\0\3\12\1\0\1\12"+ - "\4\0\3\12\1\153\20\12\5\0\1\12\10\0\3\12"+ - "\1\0\1\12\4\0\1\12\1\154\22\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\6\12\1\155\15\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\2\12"+ - "\1\156\21\12\5\0\1\12\10\0\3\12\1\0\1\12"+ - "\4\0\11\12\1\157\12\12\5\0\1\12\10\0\3\12"+ - "\1\0\1\12\4\0\13\12\1\160\10\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\15\12\1\161\6\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\24\12"+ - "\5\0\1\162\10\0\3\12\1\0\1\12\4\0\1\12"+ - "\1\163\22\12\5\0\1\12\10\0\3\12\1\0\1\12"+ - "\4\0\12\12\1\164\11\12\5\0\1\12\10\0\3\12"+ - "\1\0\1\12\4\0\20\12\1\165\3\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\1\12\1\166\22\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\11\12"+ - "\1\167\12\12\5\0\1\12\10\0\3\12\1\0\1\12"+ - "\4\0\1\12\1\170\22\12\5\0\1\12\10\0\3\12"+ - "\1\0\1\12\4\0\11\12\1\171\12\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\3\12\1\172\20\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\16\12"+ - "\1\173\5\12\5\0\1\12\10\0\3\12\1\0\1\12"+ - "\4\0\3\12\1\174\20\12\5\0\1\12\10\0\3\12"+ - "\1\0\1\12\4\0\2\12\1\175\21\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\24\12\5\0\1\176"+ - "\10\0\3\12\1\0\1\12\4\0\6\12\1\177\15\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\1\12"+ - "\1\200\22\12\5\0\1\12\10\0\3\12\1\0\1\12"+ - "\4\0\24\12\5\0\1\201\10\0\3\12\1\0\1\12"+ - "\4\0\16\12\1\202\5\12\5\0\1\12\10\0\3\12"+ - "\1\0\1\12\4\0\14\12\1\203\7\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\2\12\1\204\21\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\3\12"+ - "\1\205\20\12\5\0\1\12\10\0\3\12\1\0\1\12"+ - "\4\0\6\12\1\206\15\12\5\0\1\12\10\0\3\12"+ - "\1\0\1\12\4\0\24\12\5\0\1\207\10\0\3\12"+ - "\1\0\1\12\4\0\24\12\5\0\1\210\10\0\3\12"+ - "\1\0\1\12\4\0\11\12\1\211\12\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\14\12\1\212\7\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\23\12"+ - "\1\213\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ - "\3\12\1\214\20\12\5\0\1\12\10\0\3\12\1\0"+ - "\1\12\4\0\7\12\1\215\14\12\5\0\1\12\10\0"+ - "\3\12\1\0\1\12\4\0\24\12\5\0\1\216\10\0"+ - "\3\12\1\0\1\12\4\0\2\12\1\217\21\12\5\0"+ - "\1\12\10\0\3\12\1\0\1\12\4\0\11\12\1\220"+ - "\12\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ - "\15\12\1\221\6\12\5\0\1\12\10\0\3\12\1\0"+ - "\1\12\4\0\23\12\1\222\5\0\1\12\10\0\3\12"+ - "\1\0\1\12\4\0\24\12\5\0\1\223\10\0\3\12"+ - "\1\0\1\12\4\0\7\12\1\224\14\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\1\12\1\225\22\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\2\12"+ - "\1\226\21\12\5\0\1\12\10\0\3\12\1\0\1\12"+ - "\4\0\14\12\1\227\7\12\5\0\1\12\10\0\3\12"+ - "\1\0\1\12\4\0\15\12\1\230\6\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\24\12\5\0\1\231"+ - "\10\0\3\12\1\0\1\12\4\0\1\12\1\232\22\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\14\12"+ - "\1\233\7\12\5\0\1\12\2\0"; + "\1\2\1\3\1\4\1\5\1\6\1\2\1\7\4\2"+ + "\1\10\1\11\17\0\1\5\17\0\1\12\16\0\1\13"+ + "\1\0\1\14\13\0\1\15\16\0\1\16\10\0\1\17"+ + "\6\0"; private static int [] zzUnpackTrans() { - int [] result = new int[4988]; + int [] result = new int[104]; int offset = 0; offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); return result; @@ -435,12 +273,11 @@ private static int zzUnpackTrans(String packed, int offset, int [] result) { private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\3\0\1\11\1\1\2\11\1\1\1\11\3\1\3\11"+ - "\20\1\7\11\1\1\1\11\2\1\1\0\1\1\1\0"+ - "\26\1\1\11\1\0\1\1\1\0\124\1"; + "\1\0\1\11\1\1\2\11\2\1\3\11\2\0\1\11"+ + "\1\0\1\11"; private static int [] zzUnpackAttribute() { - int [] result = new int[155]; + int [] result = new int[15]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; @@ -565,7 +402,7 @@ public Scanner(java.io.Reader in) { char [] map = new char[0x110000]; int i = 0; /* index in packed string */ int j = 0; /* index in unpacked array */ - while (i < 2596) { + while (i < 2570) { int count = packed.charAt(i++); char value = packed.charAt(i++); do map[j++] = value; while (--count > 0); @@ -933,187 +770,35 @@ else if (zzAtEOF) { { throw new RuntimeException("Illegal character \""+yytext()+ "\" at line "+yyline+", column "+yycolumn); } - case 47: break; + case 9: break; case 2: { /* ignore */ } - case 48: break; + case 10: break; case 3: { return symbol(EOL); } - case 49: break; + case 11: break; case 4: - { return symbol(slash); + { return symbol(LPAREN); } - case 50: break; + case 12: break; case 5: - { return symbol(asterix); + { return symbol(RPAREN); } - case 51: break; + case 13: break; case 6: - { return symbol(IDENTIFIER, yytext()); - } - case 52: break; - case 7: - { return symbol(num_lit, new Integer(yytext())); - } - case 53: break; - case 8: - { return symbol(dot); - } - case 54: break; - case 9: - { return symbol(minus); - } - case 55: break; - case 10: - { yybegin(STRING); string.setLength(0); - } - case 56: break; - case 11: - { yybegin(CHARLITERAL); - } - case 57: break; - case 12: - { return symbol(lparen); - } - case 58: break; - case 13: - { return symbol(rparen); - } - case 59: break; - case 14: - { return symbol(comma); - } - case 60: break; - case 15: - { return symbol(COLON); - } - case 61: break; - case 16: - { return symbol(ASSIGN); - } - case 62: break; - case 17: - { return symbol(plus); - } - case 63: break; - case 18: - { return symbol(hat); - } - case 64: break; - case 19: - { string.append( yytext() ); - } - case 65: break; - case 20: - { yybegin(YYINITIAL); return symbol(STRING_LITERAL, string.toString()); - } - case 66: break; - case 21: - { return symbol(IS); - } - case 67: break; - case 22: { return symbol(IF); } - case 68: break; - case 23: - { return symbol(OR); - } - case 69: break; - case 24: - { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, yytext().charAt(0)); - } - case 70: break; - case 25: - { return symbol(AND); - } - case 71: break; - case 26: - { return symbol(NUM); - } - case 72: break; - case 27: - { return symbol(NOT); - } - case 73: break; - case 28: + case 14: break; + case 7: { return symbol(END); } - case 74: break; - case 29: - { return symbol(SQRT); - } - case 75: break; - case 30: - { return symbol(TRUE); - } - case 76: break; - case 31: + case 15: break; + case 8: { return symbol(ELSE); } - case 77: break; - case 32: - { return symbol(VOID); - } - case 78: break; - case 33: - { return symbol(LOAD); - } - case 79: break; - case 34: - { return symbol(HEAR); - } - case 80: break; - case 35: - { return symbol(BOOL); - } - case 81: break; - case 36: - { return symbol(START); - } - case 82: break; - case 37: - { return symbol(FALSE); - } - case 83: break; - case 38: - { return symbol(UNTIL); - } - case 84: break; - case 39: - { return symbol(COORD); - } - case 85: break; - case 40: - { return symbol(STRING); - } - case 86: break; - case 41: - { return symbol(REPEAT); - } - case 87: break; - case 42: - { return symbol(FOREVER); - } - case 88: break; - case 43: - { return symbol(LT); - } - case 89: break; - case 44: - { return symbol(GT); - } - case 90: break; - case 45: - { return symbol(LTE); - } - case 91: break; - case 46: - { return symbol(GTE); - } - case 92: break; + case 16: break; default: zzScanError(ZZ_NO_MATCH); } diff --git a/compiler/src/Scanner.java~ b/compiler/src/Scanner.java~ index c1f4472..3ff8597 100644 --- a/compiler/src/Scanner.java~ +++ b/compiler/src/Scanner.java~ @@ -517,9 +517,7 @@ public class Scanner implements sym, java_cup.runtime.Scanner { /* user code: */ StringBuilder string = new StringBuilder(); - private Symbol EOFSymbol(int type){ - return new ComplexSymbolFactory.ComplexSymbol("EOF", EOF); - } + private Symbol symbol(int type) { return new Symbol(type, yyline+1, yycolumn+1); } @@ -926,6 +924,8 @@ public class Scanner implements sym, java_cup.runtime.Scanner { if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { zzAtEOF = true; zzDoEOF(); + { return symbol(EOF); + } } else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { diff --git a/compiler/src/UnicodeEscapes.class b/compiler/src/UnicodeEscapes.class deleted file mode 100644 index 5ef4e209f27bcb9920044538fe3fac88f46881d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5753 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 diff --git a/compiler/src/UnicodeEscapes.java b/compiler/src/UnicodeEscapes.java index a7dcd65..07cb827 100644 --- a/compiler/src/UnicodeEscapes.java +++ b/compiler/src/UnicodeEscapes.java @@ -45,7 +45,7 @@ /** * This class is a scanner generated by * JFlex 1.6.1 - * from the specification file /home/esben/documents/P4 stuffs/P4 Scanner/P4/compiler/src/unicode.flex + * from the specification file C:/Users/Nete/Documents/GitHub/P4/Compiler/src/unicode.flex */ public final class UnicodeEscapes extends FilterReader { diff --git a/compiler/src/java.flex b/compiler/src/java.flex index 95de87b..676431a 100644 --- a/compiler/src/java.flex +++ b/compiler/src/java.flex @@ -54,21 +54,6 @@ InputCharacter = [^\r\n] WhiteSpace = {LineTerminator} | [ \t\f] - -/* comments */ -Comment = {TraditionalComment} | {EndOfLineComment} | - {DocumentationComment} - -TraditionalComment = "/*" [^*] ~"*/" | "/*" "*"+ "/" -EndOfLineComment = "//" {InputCharacter}* {LineTerminator}? -DocumentationComment = "/*" "*"+ [^/*] ~"*/" - -/* identifiers */ -Identifier = [:jletter:][:jletterdigit:]* - -/* floating point literals */ -numLiteral = ({FLit1}|{FLit2}|{FLit3}) {Exponent}? - FLit1 = [0-9]+ \. [0-9]* FLit2 = \. [0-9]+ FLit3 = [0-9]+ @@ -78,7 +63,6 @@ Exponent = [eE] [+-]? [0-9]+ StringCharacter = [^\r\n\"\\] SingleCharacter = [^\r\n\'\\] -%state STRING, CHARLITERAL Identifier = [:jletter:][:jletterdigit:]* @@ -86,80 +70,23 @@ Identifier = [:jletter:][:jletterdigit:]* { /* keywords */ - "START" { return symbol(START); } - "IF" { return symbol(IF); } - "NUM" { return symbol(NUM); } + "IF" { return symbol(IF); } "END" { return symbol(END); } - "VOID" { return symbol(VOID); } - "LOAD" { return symbol(LOAD); } - "HEAR" { return symbol(HEAR); } - "REPEAT" { return symbol(REPEAT); } - "UNTIL" { return symbol(UNTIL); } - "FOREVER" { return symbol(FOREVER); } - "ELSE" { return symbol(ELSE); } - "STRING" { return symbol(STRING); } - "BOOL" { return symbol(BOOL); } - "COORD" { return symbol(COORD); } - "SQRT" { return symbol(SQRT); } - - /* boolean literals */ - "TRUE" { return symbol(TRUE); } - "FALSE" { return symbol(FALSE); } + "ELSE" { return symbol(ELSE); } + /* seperators */ - "(" { return symbol(lparen); } - ")" { return symbol(rparen); } - "," { return symbol(comma); } - "." { return symbol(dot); } - ":" { return symbol(COLON); } + "(" { return symbol(LPAREN); } + ")" { return symbol(RPAREN); } /* operators */ - "=" { return symbol(ASSIGN); } - "GREATER_THAN" { return symbol(GT); } - "IS" { return symbol(IS); } - "NOT" { return symbol(NOT); } - "LESS_THAN" { return symbol(LT); } - "LESS_THAN_OR_EQUAL_TO" { return symbol(LTE); } - "GREATER_THAN_OR_EQUAL_TO" { return symbol(GTE); } - "AND" { return symbol(AND); } - "OR" { return symbol(OR); } - "+" { return symbol(plus); } - "-" { return symbol(minus); } - "*" { return symbol(asterix);} - "/" { return symbol(slash); } - "^" { return symbol(hat);} - "\n" { return symbol(EOL);} - /* Identifier */ - {Identifier} { return symbol(IDENTIFIER, yytext()); } - - /* string literal */ - \" { yybegin(STRING); string.setLength(0); } - - /* character literal */ - \' { yybegin(CHARLITERAL); } - - /* numeric literals */ - - {numLiteral} { return symbol(num_lit, new Integer(yytext())); } - - /* comments */ - {Comment} { /* ignore */ } + "\n" { return symbol(EOL);} /* whitespace */ {WhiteSpace} { /* ignore */ } } - { - \" { yybegin(YYINITIAL); return symbol(STRING_LITERAL, string.toString()); } - - {StringCharacter}+ { string.append( yytext() ); } -} - - { - {SingleCharacter}\' { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, yytext().charAt(0)); } - } - /* error fallback */ [^] { throw new RuntimeException("Illegal character \""+yytext()+ "\" at line "+yyline+", column "+yycolumn); } diff --git a/compiler/src/java12.cup b/compiler/src/java12.cup index 8cc301b..35ecebe 100644 --- a/compiler/src/java12.cup +++ b/compiler/src/java12.cup @@ -19,189 +19,22 @@ parser code {: } :}; -non terminal Prog, robo, load, dcl, - num_dcl, ref_dcl, string_dcl, bool_dcl, coord_dcl, - start_func, func, func_body, stmt, if_stmt, - loop_stmt, func_call, sig_stmt, expr, term, - factor, exp, cond, bool_op, bool_cnd, args, - params, type, string_lit, else_if, else, - params_list, args_list, EOL_list, init_dcl; - -//Optional non-terminals, used in stead of [] i EBNF -non terminal num_opt, ref_opt, string_opt, bool_opt, coord_opt, - cond_opt; - -//Symbol terminals and method keywords -terminal START, IDENTIFIER, COLON, LOAD, AT, End_Of_File, - EOL, END, RETURN, HEAR, lparen, - rparen, quote, dot, comma, ASSIGN; - -//Statement-types -terminal IF, REPEAT, UNTIL, FOREVER, - ELSE, SIGNAL; - -//Operators -terminal plus, minus, asterix, slash, hat, - SQRT, IS, NOT, GT, LT, GTE, LTE, AND, OR, lambda; - -//Literals -terminal NUM, char_lit, STRING, - coord_lit, BOOL, TRUE, FALSE, COORD, VOID; +non terminal Statement, IfStmt, IfElseStmt; +terminal IF, ELSE, END, LPAREN, RPAREN, EOL, lambda, Expression; -// shit that needs to be added now -terminal java.lang.String STRING_LITERAL; -terminal java.lang.Double num_lit; -terminal java.lang.Character CHARACTER_LITERAL; - -// -// Actual grammar -// - -Prog ::= robo load init_dcl start_func func; -robo ::= IDENTIFIER COLON EOL_list - ; -load ::= LOAD lparen IDENTIFIER rparen EOL - | /* lambda */ - ; -init_dcl ::= dcl EOL_list - | /* lambda */ - ; -dcl ::= num_dcl dcl - | string_dcl dcl - | bool_dcl dcl - | coord_dcl dcl - | num_dcl - | string_dcl - | bool_dcl - | coord_dcl - ; -num_dcl::= NUM IDENTIFIER num_opt EOL - ; -num_opt::= ASSIGN expr - | /* lambda */ - ; -//ref_dcl::= type IDENTIFIER ref_opt EOL; -//ref_opt::= ASSIGN AT coord_lit -// | /* lambda */ -// ; -string_dcl - ::= STRING IDENTIFIER string_opt EOL - ; -string_opt - ::= ASSIGN quote string_lit quote - | /* lambda */ - ; -bool_dcl - ::= BOOL IDENTIFIER bool_opt EOL - ; -bool_opt - ::= ASSIGN TRUE - | ASSIGN FALSE - | /* lambda */ - ; -coord_dcl - ::= COORD IDENTIFIER coord_opt EOL - ; -coord_opt - ::= ASSIGN coord_lit - | /* lambda */ - ; -start_func - ::= VOID START lparen rparen EOL func_body END START - ; -func ::= type IDENTIFIER lparen params rparen EOL func_body RETURN expr EOL END IDENTIFIER - | /* lambda */ - | EOL_list - ; -func_body - ::= func_body dcl EOL_list - | func_body stmt EOL_list - | dcl EOL_list - | stmt EOL_list - | EOL_list - ; -stmt ::= if_stmt - | loop_stmt - | expr - | sig_stmt - ; -if_stmt - ::= IF cond EOL func_body END IF else_if else - ; -else_if::= else_if ELSE IF cond EOL func_body END ELSE IF - | /* lambda */ - ; -else ::= ELSE EOL func_body END ELSE - ; -loop_stmt - ::= REPEAT UNTIL cond EOL func_body END REPEAT - | FOREVER EOL func_body END FOREVER - ; -func_call - ::= IDENTIFIER lparen args rparen EOL - | type dot IDENTIFIER lparen args rparen EOL - ; -sig_stmt - ::= SIGNAL IDENTIFIER lparen args rparen EOL; -expr ::= term plus term - | term minus term - | term - ; -term ::= factor asterix factor - | factor slash factor - | factor - ; -factor ::= exp hat exp - | exp SQRT exp - | exp - ; -exp ::= lparen expr rparen - | IDENTIFIER - | num_lit - | func_call - ; -cond ::= TRUE - | FALSE - | expr bool_op expr cond_opt - ; -cond_opt - ::= bool_cnd cond - | lambda - ; -bool_op::= IS - | NOT - | GT - | LT - | GTE - | LTE - ; -bool_cnd - ::= AND - | OR - ; -args ::= args_list - | lambda - ; -args_list - ::= expr - | args_list comma expr - ; -params ::= params_list - | lambda - ; -params_list - ::= params_list comma type IDENTIFIER - | type IDENTIFIER - ; -type ::= NUM | BOOL | COORD | STRING | VOID - ; -string_lit - ::= string_lit num_lit - | string_lit char_lit - | num_lit - | char_lit - ; -EOL_list - ::= EOL_list EOL - | EOL - ; +Statement + ::= IfStmt + | IfElseStmt + | lambda + ; +IfStmt + ::= IF LPAREN Expresstion RPAREN EOL + Statement + END IF + | IF LPAREN Expression RPAREN EOL + Statement + END IF + ELSE + Statement + END ELSE + ; \ No newline at end of file diff --git a/compiler/src/java_cup/runtime/ComplexSymbolFactory$ComplexSymbol.class b/compiler/src/java_cup/runtime/ComplexSymbolFactory$ComplexSymbol.class deleted file mode 100644 index 46f63e5bb03026bf68f2d8b6244211fa6c912cc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2090 zcmb7Ge@_!Z5PjR;^-4K@RV);W76iQ>mLe!BASzX)S~L-Z!GFwA&RT4*O*sgB13wNX zLK97le_`T>5@+wO(9*M(q}iR_eKYgs?d+w$|9txaU>Yw22x6iQJxFkCl3TawByF zg^glZNBWEr!gp|hosn{CPOBOeYp5k_1(MoT$jXVYKa|>=|Uv@ibtk*7d?w<#-HB0TJCHQV@ zF`H}Hn5sFR3-hkE#Q!U%M$uE%B|KsH+*Oxz_*{FcuB%@m93w!J_zMHy;ajgj3i^-GMq3`5ju1F-*$%eb5a9@N zu*0@RZg)C97Oi0#1$a6`7R8Z9ibEB2)lnS8H3#*UJVo-KphChz1>F`devD2v{u4dK z`w&8y$akq>!P*cHA#y<&DQl^9Lehy6MkS0f3D@ZdbX!zzI7voG2c9H!CaD^yxD?U} zW~-|>_;pg(NBFoJ35!*ETjw+Y&k0?qua1+1Se2IQq#1S6^w*|wAvTVijzfgc6r7FY*a>cFO-rFo3xT#cF0Fw|8~|}35>li{94e4FA=j}Y7iS$gHqigX z0VI-2An^nEQHa^Z{Sc`Tm-l9O-n{pA>|ejX{{*m){Tk-6Vd7R5bGWTSLxnpA?$%Jj zh6qfCP&96J{f6-h2wL2R85$5@qXecSih)T+|Nv3bi74W-Y znejSL+vLm4tL_PeYnMjQ+#MC_Bb43s5%jNQG106Png%r*@0KrU)>Jt)XXW&~D1Xdy z!E*NpDsN9X`v)gVk#bks!EZnMndWX5>op@O==;d#72&xV$c+RlI z@Pgqb!!pB)idQODRa6BEO}l&CF~0Afbr0;0z*x(&45!)Adp)D4q9%~pvD><9+Ll0i z+q6vgtw6F`+Y?Zl_E$q7YZ>1{_sik9dn>!$82S{xj3#MZ zU3FQCIEQyKhyN=p-*a`x4ZBg31#I0fVGI+P6xiYx{&&CjH8H!cF|0GZX4qh;GiVH( z0xLrW78s9a$Zu$Yg#lN;$Y6K`>H~y6eSZ&`z`5*j2D>XZ$|y#aE|Sy7kis|E=iw4R zVDu>XhtULQoh4Z)-l)npBqKxAvW(iQ?O_T0bkNmL??{F$%>dyP{Y{V+WK(M%#83JF z{Z8X)ussVEX<94(M&i@@+(t#Iq&y^l+!0Fwu|l*ItrqTx9+Zeyj*XX!h%+(q(h;o^ z&`MB{q_jCdtp_#YJPSBw5~dI*A4v0%2}!eWJA&u@|~nNH9?11Ko&)^-dx6-SCf)C(B zi8D!R71ww`7XIDMd^5Azoq2wFcmlA5LIQ0VP%)T53x-&7EW<1#ETb%AEaNIBR7|Rv z5{Ru-tctTL5Yh7c0@01yi7AlSG%szlY&hnLK-@BK_HHkZYgGYT+c`I`4ZUhuXZoIF zSFE#Q$@_Fzu3zeQ-Et}yrtag#aDyLY_xRi_JH`B$tiaL#Bn?ZkE=y7J|Ln)-T$Be1 z%iDJ47`D^6U0oU=%zr`V5$3Qab9ncr-#$kY?dTBb=Q5DIIh&_hW>_?qJj*Q09Lv1G z)FA? z4w+(XVn(5b*KwLRrGs1_i)|lc;Jy|}Qj@pROqWj`+)2A`+6kJKSr_7-7C@J$f=oSR zVrT#{8bHS*S`LN^*=SaA5xINgdIK&4g$9spa4w=vs!tj%m-3=1O)e#kMx2XSgG!@6 mpwfua01{r#oC~$VbR!cmDMV-hagTA)+C;L_Fa;NJpTR3$Wl|0R diff --git a/compiler/src/java_cup/runtime/Scanner.class b/compiler/src/java_cup/runtime/Scanner.class deleted file mode 100644 index b4af66b50d133b2286295059f894a8fb2344faad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 175 zcmX^0Z`VEs1_omWE_McXb_Nbc2Clr+ijw$}{Or^`Mh0mOO`oj9vc&l0(gOXW(!7$) z+*JMG%G{*<9BZIb*NWuSf|AVqykd3+PDTa^Or^<*d3mWtj0^%GDgB(pymWp4q^#8B n5=I7Lgb>^uHbw?U1}30`7#J8?7#WxuSb%(1AP+>dF)#oC#Xc=u diff --git a/compiler/src/java_cup/runtime/Symbol.class b/compiler/src/java_cup/runtime/Symbol.class deleted file mode 100644 index e5182b93c377b09f639f5fd3648253cd47d73119..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1083 zcmbV~TW=CU6vzLwTuWD^luIeBmQr;Y!BwmELhXaTNMh25CQbB(EM>)QxCNFbd@D_W zO*HWX_@RvFEZb0m@xk5Xf9CR=|Cu>6zkYxJ3E&VX8%RQDDaS}8%R`n5k5#$#D28nq z+1aI9{2ZF|o-Hm*$mebj)7cIBi~97fwwed~Ek@=S1MWUiao3 z7vq639QPc%YZ+&gZnNL1{d;1?v3ySX-}PIR@92LVdHs%FuP-*UW}Wdp*CxWe#!Iey zAw+%dMxFkdGqihcfs|gpQGvy1O+^lA6}v1NiYz6T0~L7`xOI=^wTdiuRHT^8AT5wx z7IR_sc5HWA7GD7w)Nsu5M#X(R@ZrByRv@voS=k>1-jJ=QR&AV^b7@OdbLPw4fjB3`7Tc##T0F-oL{JEV81S3rn}V@Bp(gk)g`A+;G4nG4PkUh?}s zpC&p$z8f;HD3z7er5gyRCZwQ=739E2H1bdg*&-Jg5vg!m5@nGP`~ZA(k3deCk}je$ sFk{;pV!YGM>+R8P`*ewDL3H*9)Q>K1CF674mQ%#$NX)VIm8R(X1Aa`=6aWAK diff --git a/compiler/src/java_cup/runtime/SymbolFactory.class b/compiler/src/java_cup/runtime/SymbolFactory.class deleted file mode 100644 index cd0af1577b11644e3050d08d5379b450f64057b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 530 zcmX^0Z`VEs1_omW9(D#Ub_Q-n2F|?H^5Dwcr2HI4h9V80ti-ZJ{hY+Sbp7CxqRhN> zYfrFHd~#`leo<*&NoH=UK18`SehG*n{z+M>$tBjBIMp&TBv8jvd{#K%w1Q|?>R~ei zpPk&rC5c5Pu#nZqrri^temPJ~Uv0Yp?mLYa+`fsug;7`qG%tSpQS Y%nU3H3}BiSO0z*}b}-GszzI?c0RO+JVE_OC diff --git a/compiler/src/java_cup/runtime/lr_parser.class b/compiler/src/java_cup/runtime/lr_parser.class deleted file mode 100644 index 4ed61b45aa8a6b12e7eaaf6b9f5f156af9faaf6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9876 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 table. */ - protected static final short[][] _reduce_table = - unpackFromStrings(new String[] { - "\000\311\000\006\002\004\003\003\001\001\000\004\004" + - "\014\001\001\000\002\001\001\000\002\001\001\000\004" + - "\042\010\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\002\001\001\000\002\001\001\000\016" + - "\005\023\006\016\010\024\011\026\012\021\043\025\001" + - "\001\000\002\001\001\000\014\005\306\006\016\010\024" + - "\011\026\012\021\001\001\000\002\001\001\000\002\001" + - "\001\000\014\005\305\006\016\010\024\011\026\012\021" + - "\001\001\000\002\001\001\000\004\042\304\001\001\000" + - "\014\005\303\006\016\010\024\011\026\012\021\001\001" + - "\000\004\013\030\001\001\000\014\005\027\006\016\010" + - "\024\011\026\012\021\001\001\000\002\001\001\000\010" + - "\014\257\034\260\042\256\001\001\000\002\001\001\000" + - "\002\001\001\000\002\001\001\000\002\001\001\000\044" + - "\005\057\006\016\010\024\011\026\012\021\015\036\016" + - "\066\017\060\020\052\021\047\022\061\023\037\024\054" + - "\025\053\026\044\034\040\042\050\001\001\000\040\005" + - "\122\006\016\010\024\011\026\012\021\016\123\017\060" + - "\020\052\021\047\022\061\023\037\024\054\025\053\026" + - "\044\034\040\001\001\000\002\001\001\000\002\001\001" + - "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\020\021\047\023\100\024\054\025\053" + - "\026\044\027\174\034\040\001\001\000\002\001\001\000" + - "\002\001\001\000\002\001\001\000\002\001\001\000\002" + - "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\004\042\137\001\001\000\002" + - "\001\001\000\002\001\001\000\002\001\001\000\016\021" + - "\047\023\127\024\054\025\053\026\044\034\040\001\001" + - "\000\002\001\001\000\002\001\001\000\004\042\067\001" + - "\001\000\002\001\001\000\020\021\047\023\100\024\054" + - "\025\053\026\044\027\077\034\040\001\001\000\002\001" + - "\001\000\002\001\001\000\002\001\001\000\002\001\001" + - "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\004\030\107\001\001\000\002\001\001\000\002\001\001" + - "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\016\021\047\023\110\024\054\025\053" + - "\026\044\034\040\001\001\000\006\031\111\051\113\001" + - "\001\000\020\021\047\023\100\024\054\025\053\026\044" + - "\027\116\034\040\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\002\001\001\000\002\001\001" + - "\000\044\005\057\006\016\010\024\011\026\012\021\015" + - "\120\016\066\017\060\020\052\021\047\022\061\023\037" + - "\024\054\025\053\026\044\034\040\042\050\001\001\000" + - "\040\005\122\006\016\010\024\011\026\012\021\016\123" + - "\017\060\020\052\021\047\022\061\023\037\024\054\025" + - "\053\026\044\034\040\001\001\000\002\001\001\000\004" + - "\042\125\001\001\000\004\042\124\001\001\000\002\001" + - "\001\000\002\001\001\000\002\001\001\000\002\001\001" + - "\000\002\001\001\000\004\047\132\001\001\000\002\001" + - "\001\000\002\001\001\000\002\001\001\000\002\001\001" + - "\000\002\001\001\000\002\001\001\000\044\005\057\006" + - "\016\010\024\011\026\012\021\015\141\016\066\017\060" + - "\020\052\021\047\022\061\023\037\024\054\025\053\026" + - "\044\034\040\042\050\001\001\000\040\005\122\006\016" + - "\010\024\011\026\012\021\016\123\017\060\020\052\021" + - "\047\022\061\023\037\024\054\025\053\026\044\034\040" + - "\001\001\000\002\001\001\000\002\001\001\000\014\021" + - "\047\024\147\025\053\026\044\034\040\001\001\000\014" + - "\021\047\024\146\025\053\026\044\034\040\001\001\000" + - "\002\001\001\000\002\001\001\000\012\021\047\025\153" + - "\026\044\034\040\001\001\000\012\021\047\025\152\026" + - "\044\034\040\001\001\000\002\001\001\000\002\001\001" + - "\000\004\046\155\001\001\000\002\001\001\000\002\001" + - "\001\000\004\035\161\001\001\000\002\001\001\000\002" + - "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\002\001\001\000\004\044\170" + - "\001\001\000\002\001\001\000\016\021\047\023\172\024" + - "\054\025\053\026\044\034\040\001\001\000\002\001\001" + - "\000\002\001\001\000\002\001\001\000\044\005\057\006" + - "\016\010\024\011\026\012\021\015\176\016\066\017\060" + - "\020\052\021\047\022\061\023\037\024\054\025\053\026" + - "\044\034\040\042\050\001\001\000\040\005\122\006\016" + - "\010\024\011\026\012\021\016\123\017\060\020\052\021" + - "\047\022\061\023\037\024\054\025\053\026\044\034\040" + - "\001\001\000\002\001\001\000\004\036\201\001\001\000" + - "\004\037\203\001\001\000\002\001\001\000\002\001\001" + - "\000\044\005\057\006\016\010\024\011\026\012\021\015" + - "\214\016\066\017\060\020\052\021\047\022\061\023\037" + - "\024\054\025\053\026\044\034\040\042\050\001\001\000" + - "\020\021\047\023\100\024\054\025\053\026\044\027\206" + - "\034\040\001\001\000\002\001\001\000\044\005\057\006" + - "\016\010\024\011\026\012\021\015\210\016\066\017\060" + - "\020\052\021\047\022\061\023\037\024\054\025\053\026" + - "\044\034\040\042\050\001\001\000\040\005\122\006\016" + - "\010\024\011\026\012\021\016\123\017\060\020\052\021" + - "\047\022\061\023\037\024\054\025\053\026\044\034\040" + - "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\040\005\122\006\016\010\024\011\026\012\021" + - "\016\123\017\060\020\052\021\047\022\061\023\037\024" + - "\054\025\053\026\044\034\040\001\001\000\002\001\001" + - "\000\002\001\001\000\010\021\047\026\222\034\040\001" + - "\001\000\010\021\047\026\221\034\040\001\001\000\002" + - "\001\001\000\002\001\001\000\002\001\001\000\022\021" + - "\047\023\230\024\054\025\053\026\044\032\227\034\040" + - "\041\225\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\002\001\001\000\002\001\001\000\002" + - "\001\001\000\016\021\047\023\234\024\054\025\053\026" + - "\044\034\040\001\001\000\002\001\001\000\004\050\236" + - "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\022\021\047\023\230\024\054" + - "\025\053\026\044\032\243\034\040\041\225\001\001\000" + - "\002\001\001\000\002\001\001\000\002\001\001\000\002" + - "\001\001\000\002\001\001\000\022\021\047\023\230\024" + - "\054\025\053\026\044\032\251\034\040\041\225\001\001" + - "\000\002\001\001\000\002\001\001\000\002\001\001\000" + - "\002\001\001\000\002\001\001\000\002\001\001\000\002" + - "\001\001\000\002\001\001\000\002\001\001\000\010\033" + - "\264\034\266\040\263\001\001\000\002\001\001\000\002" + - "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\044\005\057\006\016\010\024" + - "\011\026\012\021\015\272\016\066\017\060\020\052\021" + - "\047\022\061\023\037\024\054\025\053\026\044\034\040" + - "\042\050\001\001\000\040\005\122\006\016\010\024\011" + - "\026\012\021\016\123\017\060\020\052\021\047\022\061" + - "\023\037\024\054\025\053\026\044\034\040\001\001\000" + - "\016\021\047\023\274\024\054\025\053\026\044\034\040" + - "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\004\034\301\001\001\000\002" + - "\001\001\000\002\001\001\000\002\001\001\000\002\001" + - "\001\000\002\001\001\000\002\001\001\000\002\001\001" + - "\000\002\001\001\000\002\001\001\000\002\001\001" }); - - /** Access to reduce_goto table. */ - public short[][] reduce_table() {return _reduce_table;} - - /** Instance of action encapsulation class. */ - protected CUP$parser$actions action_obj; - - /** Action encapsulation object initializer. */ - protected void init_actions() - { - action_obj = new CUP$parser$actions(this); - } - - /** Invoke a user supplied parse action. */ - public java_cup.runtime.Symbol do_action( - int act_num, - java_cup.runtime.lr_parser parser, - java.util.Stack stack, - int top) - throws java.lang.Exception - { - /* call code in generated class */ - return action_obj.CUP$parser$do_action(act_num, parser, stack, top); - } - - /** Indicates start state. */ - public int start_state() {return 0;} - /** Indicates start production. */ - public int start_production() {return 1;} - - /** EOF Symbol index. */ - public int EOF_sym() {return 0;} - - /** error Symbol index. */ - public int error_sym() {return 1;} - - - - public void report_error(String message, Object info) { - StringBuilder m = new StringBuilder("Error "); - - if (info instanceof java_cup.runtime.Symbol) - m.append( "("+info.toString()+")" ); - - m.append(" : "+message); - - System.out.println(m); - } - - public void report_fatal_error(String message, Object info) { - report_error(message, info); - throw new RuntimeException("Fatal Syntax Error"); - } - -} - -/** Cup generated class to encapsulate user supplied action code.*/ -class CUP$parser$actions { - private final parser parser; - - /** Constructor */ - CUP$parser$actions(parser parser) { - this.parser = parser; - } - - /** Method 0 with the actual generated action code for actions 0 to 300. */ - public final java_cup.runtime.Symbol CUP$parser$do_action_part00000000( - int CUP$parser$act_num, - java_cup.runtime.lr_parser CUP$parser$parser, - java.util.Stack CUP$parser$stack, - int CUP$parser$top) - throws java.lang.Exception - { - /* Symbol object for return from actions */ - java_cup.runtime.Symbol CUP$parser$result; - - /* select the action based on the action number */ - switch (CUP$parser$act_num) - { - /*. . . . . . . . . . . . . . . . . . . .*/ - case 0: // Prog ::= robo load init_dcl start_func func - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("Prog",0, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 1: // $START ::= Prog EOF - { - Object RESULT =null; - Location start_valxleft = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).getLeft(); - Location start_valxright = ((java_cup.runtime.ComplexSymbolFactory.ComplexSymbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).getRight(); - Object start_val = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; - RESULT = start_val; - CUP$parser$result = parser.getSymbolFactory().newSymbol("$START",0, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - /* ACCEPT */ - CUP$parser$parser.done_parsing(); - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 2: // robo ::= IDENTIFIER COLON EOL_list - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("robo",1, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 3: // load ::= LOAD lparen IDENTIFIER rparen EOL - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("load",2, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 4: // load ::= - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("load",2, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 5: // init_dcl ::= dcl EOL_list - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("init_dcl",33, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 6: // init_dcl ::= - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("init_dcl",33, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 7: // dcl ::= num_dcl dcl - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("dcl",3, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 8: // dcl ::= string_dcl dcl - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("dcl",3, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 9: // dcl ::= bool_dcl dcl - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("dcl",3, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 10: // dcl ::= coord_dcl dcl - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("dcl",3, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 11: // dcl ::= num_dcl - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("dcl",3, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 12: // dcl ::= string_dcl - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("dcl",3, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 13: // dcl ::= bool_dcl - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("dcl",3, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 14: // dcl ::= coord_dcl - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("dcl",3, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 15: // num_dcl ::= NUM IDENTIFIER num_opt EOL - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("num_dcl",4, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 16: // num_opt ::= ASSIGN expr - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("num_opt",34, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 17: // num_opt ::= - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("num_opt",34, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 18: // string_dcl ::= STRING IDENTIFIER string_opt EOL - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("string_dcl",6, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 19: // string_opt ::= ASSIGN quote string_lit quote - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("string_opt",36, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 20: // string_opt ::= - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("string_opt",36, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 21: // bool_dcl ::= BOOL IDENTIFIER bool_opt EOL - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_dcl",7, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 22: // bool_opt ::= ASSIGN TRUE - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_opt",37, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 23: // bool_opt ::= ASSIGN FALSE - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_opt",37, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 24: // bool_opt ::= - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_opt",37, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 25: // coord_dcl ::= COORD IDENTIFIER coord_opt EOL - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("coord_dcl",8, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 26: // coord_opt ::= ASSIGN coord_lit - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("coord_opt",38, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 27: // coord_opt ::= - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("coord_opt",38, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 28: // start_func ::= VOID START lparen rparen EOL func_body END START - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("start_func",9, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 29: // func ::= type IDENTIFIER lparen params rparen EOL func_body RETURN expr EOL END IDENTIFIER - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("func",10, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-11)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 30: // func ::= - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("func",10, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 31: // func ::= EOL_list - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("func",10, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 32: // func_body ::= func_body dcl EOL_list - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("func_body",11, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 33: // func_body ::= func_body stmt EOL_list - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("func_body",11, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 34: // func_body ::= dcl EOL_list - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("func_body",11, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 35: // func_body ::= stmt EOL_list - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("func_body",11, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 36: // func_body ::= EOL_list - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("func_body",11, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 37: // stmt ::= if_stmt - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("stmt",12, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 38: // stmt ::= loop_stmt - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("stmt",12, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 39: // stmt ::= expr - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("stmt",12, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 40: // stmt ::= sig_stmt - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("stmt",12, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 41: // if_stmt ::= IF cond EOL func_body END IF else_if else - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("if_stmt",13, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 42: // else_if ::= else_if ELSE IF cond EOL func_body END ELSE IF - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("else_if",28, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-8)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 43: // else_if ::= - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("else_if",28, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 44: // else ::= ELSE EOL func_body END ELSE - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("else",29, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 45: // loop_stmt ::= REPEAT UNTIL cond EOL func_body END REPEAT - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("loop_stmt",14, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 46: // loop_stmt ::= FOREVER EOL func_body END FOREVER - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("loop_stmt",14, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 47: // func_call ::= IDENTIFIER lparen args rparen EOL - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("func_call",15, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 48: // func_call ::= type dot IDENTIFIER lparen args rparen EOL - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("func_call",15, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-6)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 49: // sig_stmt ::= SIGNAL IDENTIFIER lparen args rparen EOL - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("sig_stmt",16, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 50: // expr ::= term plus term - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("expr",17, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 51: // expr ::= term minus term - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("expr",17, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 52: // expr ::= term - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("expr",17, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 53: // term ::= factor asterix factor - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("term",18, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 54: // term ::= factor slash factor - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("term",18, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 55: // term ::= factor - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("term",18, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 56: // factor ::= exp hat exp - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("factor",19, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 57: // factor ::= exp SQRT exp - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("factor",19, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 58: // factor ::= exp - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("factor",19, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 59: // exp ::= lparen expr rparen - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("exp",20, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 60: // exp ::= IDENTIFIER - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("exp",20, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 61: // exp ::= num_lit - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("exp",20, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 62: // exp ::= func_call - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("exp",20, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 63: // cond ::= TRUE - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("cond",21, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 64: // cond ::= FALSE - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("cond",21, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 65: // cond ::= expr bool_op expr cond_opt - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("cond",21, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 66: // cond_opt ::= bool_cnd cond - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("cond_opt",39, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 67: // cond_opt ::= lambda - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("cond_opt",39, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 68: // bool_op ::= IS - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_op",22, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 69: // bool_op ::= NOT - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_op",22, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 70: // bool_op ::= GT - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_op",22, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 71: // bool_op ::= LT - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_op",22, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 72: // bool_op ::= GTE - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_op",22, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 73: // bool_op ::= LTE - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_op",22, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 74: // bool_cnd ::= AND - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_cnd",23, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 75: // bool_cnd ::= OR - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("bool_cnd",23, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 76: // args ::= args_list - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("args",24, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 77: // args ::= lambda - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("args",24, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 78: // args_list ::= expr - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("args_list",31, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 79: // args_list ::= args_list comma expr - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("args_list",31, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 80: // params ::= params_list - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("params",25, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 81: // params ::= lambda - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("params",25, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 82: // params_list ::= params_list comma type IDENTIFIER - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("params_list",30, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 83: // params_list ::= type IDENTIFIER - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("params_list",30, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 84: // type ::= NUM - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("type",26, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 85: // type ::= BOOL - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("type",26, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 86: // type ::= COORD - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("type",26, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 87: // type ::= STRING - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("type",26, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 88: // type ::= VOID - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("type",26, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 89: // string_lit ::= string_lit num_lit - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("string_lit",27, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 90: // string_lit ::= string_lit char_lit - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("string_lit",27, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 91: // string_lit ::= num_lit - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("string_lit",27, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 92: // string_lit ::= char_lit - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("string_lit",27, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 93: // EOL_list ::= EOL_list EOL - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("EOL_list",32, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /*. . . . . . . . . . . . . . . . . . . .*/ - case 94: // EOL_list ::= EOL - { - Object RESULT =null; - - CUP$parser$result = parser.getSymbolFactory().newSymbol("EOL_list",32, ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$parser$stack.peek()), RESULT); - } - return CUP$parser$result; - - /* . . . . . .*/ - default: - throw new Exception( - "Invalid action number "+CUP$parser$act_num+"found in internal parse table"); - - } - } /* end of method */ - - /** Method splitting the generated action code into several parts. */ - public final java_cup.runtime.Symbol CUP$parser$do_action( - int CUP$parser$act_num, - java_cup.runtime.lr_parser CUP$parser$parser, - java.util.Stack CUP$parser$stack, - int CUP$parser$top) - throws java.lang.Exception - { - return CUP$parser$do_action_part00000000( - CUP$parser$act_num, - CUP$parser$parser, - CUP$parser$stack, - CUP$parser$top); - } -} - diff --git a/compiler/src/sym.class b/compiler/src/sym.class deleted file mode 100644 index 76790d31c2fb3664eaadd55942c47f9393bba6e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1561 zcmYk*X;<1n6b9fKQE@}Xec$&Dm+pJS0BIx9B+$Jy0tz;Z4bap6wSMRi=#T2@JCoXT zzujk+cW!3j_n)7?7-L7wi?c6r=5p52aGgetGp=!#NC$qS>G;i} z&U4nLSz_ZHDqW5(BJXP}Xv%Z@F>IJ(!73U&HVpY`+gMV_+nU6Ph%20mHR~wVXh|1( zR4hx&=EX!(oRbmN5Vocb!<3!u$@OxaAwH)n@~B?U;u*tKi>lMO!!QU%GRH2b(X58`?}Ag<<=!}9)fei+O3PNF*JwjT(a>ZIDbBjfK@e6-Ze2da z7JAA?Pql=I@P9-?cCH(;i*`h)x+S|96JHTsZ8v)GTi$Kf0Ro~QhUj6Fv#xT@32$dN za4FFfb|N~X{EOQajXT~&MLy^n7G>qTEQm1NXY}hD$Dx%#c09mYk9MNsJu+H!V=+uN zet4V>UOV5Ml Date: Tue, 15 Mar 2016 09:39:43 +0100 Subject: [PATCH 37/55] func calll --- Scanner/src/java/org/Scanner/Token.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Scanner/src/java/org/Scanner/Token.java b/Scanner/src/java/org/Scanner/Token.java index a265c02..094db47 100644 --- a/Scanner/src/java/org/Scanner/Token.java +++ b/Scanner/src/java/org/Scanner/Token.java @@ -15,7 +15,7 @@ public enum type { SIGNAL, START, IF, REPEAT, UNTIL, FOREVER, ELSE, VAL, PLUS, MINUS, TIMES, DIVIDE, ASSIGN, POWER, SQUARE_ROOT, BOOL_AND, BOOL_OR, BOOL_EQ, BOOL_GT, BOOL_LT, BOOL_GTE, - BOOL_LTE, BOOL_LIT, COORD_LIT, STRING_LIT, DOT + BOOL_LTE, BOOL_LIT, COORD_LIT, STRING_LIT, DOT, FUNC_CALL } public final type _type; From 75b53e93b23f0f8ff367ce6c3e503cfa6b73fc88 Mon Sep 17 00:00:00 2001 From: TobiasMorell Date: Tue, 15 Mar 2016 11:46:39 +0100 Subject: [PATCH 38/55] compiler/ : Updated the grammar - hopefully this works --- compiler/src/Scanner.java | 660 ++++++++++++++++++++++++++++--------- compiler/src/Scanner.java~ | 629 +++++++++-------------------------- compiler/src/java.flex | 71 +++- compiler/src/java12.cup | 305 ++++++++++++++++- 4 files changed, 1013 insertions(+), 652 deletions(-) diff --git a/compiler/src/Scanner.java b/compiler/src/Scanner.java index ea27df5..fb23ac3 100644 --- a/compiler/src/Scanner.java +++ b/compiler/src/Scanner.java @@ -18,6 +18,8 @@ public class Scanner implements sym, java_cup.runtime.Scanner { /** lexical states */ public static final int YYINITIAL = 0; + public static final int STRING = 2; + public static final int CHARLITERAL = 4; /** * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l @@ -26,141 +28,156 @@ public class Scanner implements sym, java_cup.runtime.Scanner { * l is of the form l = 2*k, k a non negative integer */ private static final int ZZ_LEXSTATE[] = { - 0, 0 + 0, 0, 1, 1, 2, 2 }; /** * Translates characters to character classes */ private static final String ZZ_CMAP_PACKED = - "\11\0\1\3\1\2\1\0\1\3\1\1\16\0\4\0\1\3\1\0"+ - "\1\0\1\0\1\0\2\0\1\0\1\13\1\14\1\0\1\0\1\0"+ - "\1\0\1\0\1\0\12\0\7\0\3\0\1\10\1\6\1\5\2\0"+ - "\1\4\2\0\1\11\1\0\1\7\4\0\1\12\7\0\1\0\1\0"+ - "\2\0\1\0\1\0\4\0\1\0\25\0\4\0\41\0\2\0\4\0"+ - "\4\0\1\0\2\0\1\0\7\0\1\0\4\0\1\0\5\0\27\0"+ - "\1\0\37\0\1\0\u01ca\0\4\0\14\0\16\0\5\0\7\0\1\0"+ - "\1\0\1\0\21\0\160\0\5\0\1\0\2\0\2\0\4\0\10\0"+ - "\1\0\1\0\3\0\1\0\1\0\1\0\24\0\1\0\123\0\1\0"+ - "\213\0\1\0\5\0\2\0\236\0\11\0\46\0\2\0\1\0\7\0"+ - "\47\0\11\0\55\0\1\0\1\0\1\0\2\0\1\0\2\0\1\0"+ - "\1\0\10\0\33\0\5\0\3\0\15\0\4\0\7\0\1\0\4\0"+ - "\13\0\5\0\53\0\37\0\4\0\2\0\1\0\143\0\1\0\1\0"+ - "\10\0\1\0\6\0\2\0\2\0\1\0\4\0\2\0\12\0\3\0"+ - "\2\0\1\0\17\0\1\0\1\0\1\0\36\0\33\0\2\0\131\0"+ - "\13\0\1\0\16\0\12\0\41\0\11\0\2\0\4\0\1\0\5\0"+ - "\26\0\4\0\1\0\11\0\1\0\3\0\1\0\5\0\22\0\31\0"+ - "\3\0\244\0\4\0\66\0\3\0\1\0\22\0\1\0\7\0\12\0"+ - "\2\0\2\0\12\0\1\0\7\0\1\0\7\0\1\0\3\0\1\0"+ - "\10\0\2\0\2\0\2\0\26\0\1\0\7\0\1\0\1\0\3\0"+ - "\4\0\2\0\1\0\1\0\7\0\2\0\2\0\2\0\3\0\1\0"+ - "\10\0\1\0\4\0\2\0\1\0\3\0\2\0\2\0\12\0\4\0"+ - "\7\0\1\0\5\0\3\0\1\0\6\0\4\0\2\0\2\0\26\0"+ - "\1\0\7\0\1\0\2\0\1\0\2\0\1\0\2\0\2\0\1\0"+ - "\1\0\5\0\4\0\2\0\2\0\3\0\3\0\1\0\7\0\4\0"+ - "\1\0\1\0\7\0\14\0\3\0\1\0\13\0\3\0\1\0\11\0"+ - "\1\0\3\0\1\0\26\0\1\0\7\0\1\0\2\0\1\0\5\0"+ - "\2\0\1\0\1\0\10\0\1\0\3\0\1\0\3\0\2\0\1\0"+ - "\17\0\2\0\2\0\2\0\12\0\1\0\1\0\17\0\3\0\1\0"+ - "\10\0\2\0\2\0\2\0\26\0\1\0\7\0\1\0\2\0\1\0"+ - "\5\0\2\0\1\0\1\0\7\0\2\0\2\0\2\0\3\0\10\0"+ - "\2\0\4\0\2\0\1\0\3\0\2\0\2\0\12\0\1\0\1\0"+ - "\20\0\1\0\1\0\1\0\6\0\3\0\3\0\1\0\4\0\3\0"+ - "\2\0\1\0\1\0\1\0\2\0\3\0\2\0\3\0\3\0\3\0"+ - "\14\0\4\0\5\0\3\0\3\0\1\0\4\0\2\0\1\0\6\0"+ - "\1\0\16\0\12\0\11\0\1\0\7\0\3\0\1\0\10\0\1\0"+ - "\3\0\1\0\27\0\1\0\12\0\1\0\5\0\3\0\1\0\7\0"+ - "\1\0\3\0\1\0\4\0\7\0\2\0\1\0\2\0\6\0\2\0"+ - "\2\0\2\0\12\0\22\0\2\0\1\0\10\0\1\0\3\0\1\0"+ - "\27\0\1\0\12\0\1\0\5\0\2\0\1\0\1\0\7\0\1\0"+ - "\3\0\1\0\4\0\7\0\2\0\7\0\1\0\1\0\2\0\2\0"+ - "\2\0\12\0\1\0\2\0\17\0\2\0\1\0\10\0\1\0\3\0"+ - "\1\0\51\0\2\0\1\0\7\0\1\0\3\0\1\0\4\0\1\0"+ - "\10\0\1\0\10\0\2\0\2\0\2\0\12\0\12\0\6\0\2\0"+ - "\2\0\1\0\22\0\3\0\30\0\1\0\11\0\1\0\1\0\2\0"+ - "\7\0\3\0\1\0\4\0\6\0\1\0\1\0\1\0\10\0\22\0"+ - "\2\0\15\0\60\0\1\0\2\0\7\0\4\0\10\0\10\0\1\0"+ - "\12\0\47\0\2\0\1\0\1\0\2\0\2\0\1\0\1\0\2\0"+ - "\1\0\6\0\4\0\1\0\7\0\1\0\3\0\1\0\1\0\1\0"+ - "\1\0\2\0\2\0\1\0\4\0\1\0\2\0\6\0\1\0\2\0"+ - "\1\0\2\0\5\0\1\0\1\0\1\0\6\0\2\0\12\0\2\0"+ - "\2\0\42\0\1\0\27\0\2\0\6\0\12\0\13\0\1\0\1\0"+ - "\1\0\1\0\1\0\4\0\2\0\10\0\1\0\44\0\4\0\24\0"+ - "\1\0\2\0\5\0\13\0\1\0\44\0\11\0\1\0\71\0\53\0"+ - "\24\0\1\0\12\0\6\0\6\0\4\0\4\0\3\0\1\0\3\0"+ - "\2\0\7\0\3\0\4\0\15\0\14\0\1\0\17\0\2\0\46\0"+ - "\12\0\53\0\1\0\1\0\3\0\u0149\0\1\0\4\0\2\0\7\0"+ - "\1\0\1\0\1\0\4\0\2\0\51\0\1\0\4\0\2\0\41\0"+ - "\1\0\4\0\2\0\7\0\1\0\1\0\1\0\4\0\2\0\17\0"+ - "\1\0\71\0\1\0\4\0\2\0\103\0\2\0\3\0\40\0\20\0"+ - "\20\0\125\0\14\0\u026c\0\2\0\21\0\1\0\32\0\5\0\113\0"+ - "\3\0\3\0\17\0\15\0\1\0\4\0\3\0\13\0\22\0\3\0"+ - "\13\0\22\0\2\0\14\0\15\0\1\0\3\0\1\0\2\0\14\0"+ - "\64\0\40\0\3\0\1\0\3\0\2\0\1\0\2\0\12\0\41\0"+ - "\3\0\2\0\12\0\6\0\130\0\10\0\51\0\1\0\1\0\5\0"+ - "\106\0\12\0\35\0\3\0\14\0\4\0\14\0\12\0\12\0\36\0"+ - "\2\0\5\0\13\0\54\0\4\0\21\0\7\0\2\0\6\0\12\0"+ - "\46\0\27\0\5\0\4\0\65\0\12\0\1\0\35\0\2\0\13\0"+ - "\6\0\12\0\15\0\1\0\130\0\5\0\57\0\21\0\7\0\4\0"+ - "\12\0\21\0\11\0\14\0\3\0\36\0\12\0\3\0\2\0\12\0"+ - "\6\0\46\0\16\0\14\0\44\0\24\0\10\0\12\0\3\0\3\0"+ - "\12\0\44\0\122\0\3\0\1\0\25\0\4\0\1\0\4\0\1\0"+ - "\15\0\300\0\47\0\25\0\4\0\u0116\0\2\0\6\0\2\0\46\0"+ - "\2\0\6\0\2\0\10\0\1\0\1\0\1\0\1\0\1\0\1\0"+ - "\1\0\37\0\2\0\65\0\1\0\7\0\1\0\1\0\3\0\3\0"+ - "\1\0\7\0\3\0\4\0\2\0\6\0\4\0\15\0\5\0\3\0"+ - "\1\0\7\0\16\0\5\0\32\0\5\0\20\0\2\0\23\0\1\0"+ - "\13\0\5\0\5\0\6\0\1\0\1\0\15\0\1\0\20\0\15\0"+ - "\3\0\32\0\26\0\15\0\4\0\1\0\3\0\14\0\21\0\1\0"+ - "\4\0\1\0\2\0\12\0\1\0\1\0\3\0\5\0\6\0\1\0"+ - "\1\0\1\0\1\0\1\0\1\0\4\0\1\0\13\0\2\0\4\0"+ - "\5\0\5\0\4\0\1\0\21\0\51\0\u0a77\0\57\0\1\0\57\0"+ - "\1\0\205\0\6\0\4\0\3\0\16\0\46\0\12\0\66\0\11\0"+ - "\1\0\17\0\1\0\27\0\11\0\7\0\1\0\7\0\1\0\7\0"+ - "\1\0\7\0\1\0\7\0\1\0\7\0\1\0\7\0\1\0\7\0"+ - "\1\0\40\0\57\0\1\0\u01d5\0\3\0\31\0\11\0\6\0\1\0"+ - "\5\0\2\0\5\0\4\0\126\0\2\0\2\0\2\0\3\0\1\0"+ - "\132\0\1\0\4\0\5\0\51\0\3\0\136\0\21\0\33\0\65\0"+ - "\20\0\u0200\0\u19b6\0\112\0\u51cc\0\64\0\u048d\0\103\0\56\0\2\0"+ - "\u010d\0\3\0\20\0\12\0\2\0\24\0\57\0\1\0\14\0\2\0"+ - "\1\0\31\0\10\0\120\0\2\0\45\0\11\0\2\0\147\0\2\0"+ - "\4\0\1\0\2\0\16\0\12\0\120\0\10\0\1\0\3\0\1\0"+ - "\4\0\1\0\27\0\5\0\20\0\1\0\7\0\64\0\14\0\2\0"+ - "\62\0\21\0\13\0\12\0\6\0\22\0\6\0\3\0\1\0\4\0"+ - "\12\0\34\0\10\0\2\0\27\0\15\0\14\0\35\0\3\0\4\0"+ - "\57\0\16\0\16\0\1\0\12\0\46\0\51\0\16\0\11\0\3\0"+ - "\1\0\10\0\2\0\2\0\12\0\6\0\27\0\3\0\1\0\1\0"+ - "\4\0\60\0\1\0\1\0\3\0\2\0\2\0\5\0\2\0\1\0"+ - "\1\0\1\0\30\0\3\0\43\0\6\0\2\0\6\0\2\0\6\0"+ - "\11\0\7\0\1\0\7\0\221\0\43\0\10\0\1\0\2\0\2\0"+ - "\12\0\6\0\u2ba4\0\14\0\27\0\4\0\61\0\u2104\0\u012e\0\2\0"+ - "\76\0\2\0\152\0\46\0\7\0\14\0\5\0\5\0\1\0\1\0"+ - "\12\0\1\0\15\0\1\0\5\0\1\0\1\0\1\0\2\0\1\0"+ - "\2\0\1\0\154\0\41\0\u016b\0\22\0\100\0\2\0\66\0\50\0"+ - "\15\0\3\0\20\0\20\0\7\0\14\0\2\0\30\0\3\0\31\0"+ - "\1\0\6\0\5\0\1\0\207\0\2\0\1\0\4\0\1\0\13\0"+ - "\12\0\7\0\32\0\4\0\1\0\1\0\32\0\13\0\131\0\3\0"+ - "\6\0\2\0\6\0\2\0\6\0\2\0\3\0\3\0\2\0\3\0"+ - "\2\0\22\0\3\0\4\0\14\0\1\0\32\0\1\0\23\0\1\0"+ - "\2\0\1\0\17\0\2\0\16\0\42\0\173\0\105\0\65\0\210\0"+ - "\1\0\202\0\35\0\3\0\61\0\57\0\37\0\21\0\33\0\65\0"+ - "\36\0\2\0\44\0\4\0\10\0\1\0\5\0\52\0\236\0\2\0"+ - "\12\0\u0356\0\6\0\2\0\1\0\1\0\54\0\1\0\2\0\3\0"+ - "\1\0\2\0\27\0\252\0\26\0\12\0\32\0\306\0\1\0\3\0"+ - "\1\0\2\0\5\0\4\0\4\0\1\0\3\0\1\0\33\0\4\0"+ - "\3\0\4\0\1\0\40\0\35\0\203\0\66\0\12\0\26\0\12\0"+ - "\23\0\215\0\111\0\u03b7\0\3\0\65\0\17\0\37\0\12\0\20\0"+ - "\3\0\55\0\13\0\2\0\1\0\u0f42\0\u036f\0\221\0\143\0\u0b9d\0"+ - "\u042f\0\u33d1\0\u0239\0\u45c7\0\2\0\u2163\0\5\0\3\0\26\0\2\0"+ - "\7\0\36\0\4\0\224\0\3\0\u01bb\0\125\0\1\0\107\0\1\0"+ - "\2\0\2\0\1\0\2\0\2\0\2\0\4\0\1\0\14\0\1\0"+ - "\1\0\1\0\7\0\1\0\101\0\1\0\4\0\2\0\10\0\1\0"+ - "\7\0\1\0\34\0\1\0\4\0\1\0\5\0\1\0\1\0\3\0"+ - "\7\0\1\0\u0154\0\2\0\31\0\1\0\31\0\1\0\37\0\1\0"+ - "\31\0\1\0\37\0\1\0\31\0\1\0\37\0\1\0\31\0\1\0"+ - "\37\0\1\0\31\0\1\0\10\0\2\0\62\0\u2800\0\ua6d7\0\51\0"+ - "\u1035\0\13\0\336\0\u3fe2\0\u021e\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05ee\0"+ - "\1\0\36\0\140\0\200\0\360\0\uffff\0\uffff\0\ufe12\0"; + "\11\21\1\3\1\2\1\0\1\3\1\1\16\21\4\0\1\3\1\0"+ + "\1\16\1\0\1\12\2\0\1\17\1\44\1\45\1\5\1\50\1\15"+ + "\1\11\1\7\1\4\12\6\3\0\1\47\3\0\1\30\1\34\1\12"+ + "\1\25\1\10\1\23\1\33\1\31\1\22\1\12\1\35\1\13\1\12"+ + "\1\24\1\27\1\40\1\43\1\32\1\26\1\36\1\37\1\41\1\12"+ + "\1\46\2\12\1\0\1\20\1\0\1\51\1\42\1\0\1\12\3\12"+ + "\1\14\3\12\1\12\2\12\1\12\1\12\1\12\3\12\1\12\1\12"+ + "\1\12\1\12\5\12\3\0\1\52\41\21\2\0\4\12\4\0\1\12"+ + "\2\0\1\21\7\0\1\12\4\0\1\12\5\0\27\12\1\0\37\12"+ + "\1\0\u01ca\12\4\0\14\12\16\0\5\12\7\0\1\12\1\0\1\12"+ + "\21\0\160\21\5\12\1\0\2\12\2\0\4\12\10\0\1\12\1\0"+ + "\3\12\1\0\1\12\1\0\24\12\1\0\123\12\1\0\213\12\1\0"+ + "\5\21\2\0\236\12\11\0\46\12\2\0\1\12\7\0\47\12\7\0"+ + "\1\12\1\0\55\21\1\0\1\21\1\0\2\21\1\0\2\21\1\0"+ + "\1\21\10\0\33\12\5\0\3\12\15\0\5\21\6\0\1\12\4\0"+ + "\13\21\5\0\53\12\37\21\4\0\2\12\1\21\143\12\1\0\1\12"+ + "\10\21\1\0\6\21\2\12\2\21\1\0\4\21\2\12\12\21\3\12"+ + "\2\0\1\12\17\0\1\21\1\12\1\21\36\12\33\21\2\0\131\12"+ + "\13\21\1\12\16\0\12\21\41\12\11\21\2\12\4\0\1\12\5\0"+ + "\26\12\4\21\1\12\11\21\1\12\3\21\1\12\5\21\22\0\31\12"+ + "\3\21\104\0\1\12\1\0\13\12\67\0\33\21\1\0\4\21\66\12"+ + "\3\21\1\12\22\21\1\12\7\21\12\12\2\21\2\0\12\21\1\0"+ + "\7\12\1\0\7\12\1\0\3\21\1\0\10\12\2\0\2\12\2\0"+ + "\26\12\1\0\7\12\1\0\1\12\3\0\4\12\2\0\1\21\1\12"+ + "\7\21\2\0\2\21\2\0\3\21\1\12\10\0\1\21\4\0\2\12"+ + "\1\0\3\12\2\21\2\0\12\21\4\12\7\0\1\12\5\0\3\21"+ + "\1\0\6\12\4\0\2\12\2\0\26\12\1\0\7\12\1\0\2\12"+ + "\1\0\2\12\1\0\2\12\2\0\1\21\1\0\5\21\4\0\2\21"+ + "\2\0\3\21\3\0\1\21\7\0\4\12\1\0\1\12\7\0\14\21"+ + "\3\12\1\21\13\0\3\21\1\0\11\12\1\0\3\12\1\0\26\12"+ + "\1\0\7\12\1\0\2\12\1\0\5\12\2\0\1\21\1\12\10\21"+ + "\1\0\3\21\1\0\3\21\2\0\1\12\17\0\2\12\2\21\2\0"+ + "\12\21\1\0\1\12\17\0\3\21\1\0\10\12\2\0\2\12\2\0"+ + "\26\12\1\0\7\12\1\0\2\12\1\0\5\12\2\0\1\21\1\12"+ + "\7\21\2\0\2\21\2\0\3\21\10\0\2\21\4\0\2\12\1\0"+ + "\3\12\2\21\2\0\12\21\1\0\1\12\20\0\1\21\1\12\1\0"+ + "\6\12\3\0\3\12\1\0\4\12\3\0\2\12\1\0\1\12\1\0"+ + "\2\12\3\0\2\12\3\0\3\12\3\0\14\12\4\0\5\21\3\0"+ + "\3\21\1\0\4\21\2\0\1\12\6\0\1\21\16\0\12\21\11\0"+ + "\1\12\7\0\3\21\1\0\10\12\1\0\3\12\1\0\27\12\1\0"+ + "\12\12\1\0\5\12\3\0\1\12\7\21\1\0\3\21\1\0\4\21"+ + "\7\0\2\21\1\0\2\12\6\0\2\12\2\21\2\0\12\21\22\0"+ + "\2\21\1\0\10\12\1\0\3\12\1\0\27\12\1\0\12\12\1\0"+ + "\5\12\2\0\1\21\1\12\7\21\1\0\3\21\1\0\4\21\7\0"+ + "\2\21\7\0\1\12\1\0\2\12\2\21\2\0\12\21\1\0\2\12"+ + "\17\0\2\21\1\0\10\12\1\0\3\12\1\0\51\12\2\0\1\12"+ + "\7\21\1\0\3\21\1\0\4\21\1\12\10\0\1\21\10\0\2\12"+ + "\2\21\2\0\12\21\12\0\6\12\2\0\2\21\1\0\22\12\3\0"+ + "\30\12\1\0\11\12\1\0\1\12\2\0\7\12\3\0\1\21\4\0"+ + "\6\21\1\0\1\21\1\0\10\21\22\0\2\21\15\0\60\12\1\21"+ + "\2\12\7\21\4\0\10\12\10\21\1\0\12\21\47\0\2\12\1\0"+ + "\1\12\2\0\2\12\1\0\1\12\2\0\1\12\6\0\4\12\1\0"+ + "\7\12\1\0\3\12\1\0\1\12\1\0\1\12\2\0\2\12\1\0"+ + "\4\12\1\21\2\12\6\21\1\0\2\21\1\12\2\0\5\12\1\0"+ + "\1\12\1\0\6\21\2\0\12\21\2\0\4\12\40\0\1\12\27\0"+ + "\2\21\6\0\12\21\13\0\1\21\1\0\1\21\1\0\1\21\4\0"+ + "\2\21\10\12\1\0\44\12\4\0\24\21\1\0\2\21\5\12\13\21"+ + "\1\0\44\21\11\0\1\21\71\0\53\12\24\21\1\12\12\21\6\0"+ + "\6\12\4\21\4\12\3\21\1\12\3\21\2\12\7\21\3\12\4\21"+ + "\15\12\14\21\1\12\17\21\2\0\46\12\1\0\1\12\5\0\1\12"+ + "\2\0\53\12\1\0\u014d\12\1\0\4\12\2\0\7\12\1\0\1\12"+ + "\1\0\4\12\2\0\51\12\1\0\4\12\2\0\41\12\1\0\4\12"+ + "\2\0\7\12\1\0\1\12\1\0\4\12\2\0\17\12\1\0\71\12"+ + "\1\0\4\12\2\0\103\12\2\0\3\21\40\0\20\12\20\0\125\12"+ + "\14\0\u026c\12\2\0\21\12\1\0\32\12\5\0\113\12\3\0\3\12"+ + "\17\0\15\12\1\0\4\12\3\21\13\0\22\12\3\21\13\0\22\12"+ + "\2\21\14\0\15\12\1\0\3\12\1\0\2\21\14\0\64\12\40\21"+ + "\3\0\1\12\3\0\2\12\1\21\2\0\12\21\41\0\3\21\2\0"+ + "\12\21\6\0\130\12\10\0\51\12\1\21\1\12\5\0\106\12\12\0"+ + "\35\12\3\0\14\21\4\0\14\21\12\0\12\21\36\12\2\0\5\12"+ + "\13\0\54\12\4\0\21\21\7\12\2\21\6\0\12\21\46\0\27\12"+ + "\5\21\4\0\65\12\12\21\1\0\35\21\2\0\13\21\6\0\12\21"+ + "\15\0\1\12\130\0\5\21\57\12\21\21\7\12\4\0\12\21\21\0"+ + "\11\21\14\0\3\21\36\12\15\21\2\12\12\21\54\12\16\21\14\0"+ + "\44\12\24\21\10\0\12\21\3\0\3\12\12\21\44\12\122\0\3\21"+ + "\1\0\25\21\4\12\1\21\4\12\3\21\2\12\11\0\300\12\47\21"+ + "\25\0\4\21\u0116\12\2\0\6\12\2\0\46\12\2\0\6\12\2\0"+ + "\10\12\1\0\1\12\1\0\1\12\1\0\1\12\1\0\37\12\2\0"+ + "\65\12\1\0\7\12\1\0\1\12\3\0\3\12\1\0\7\12\3\0"+ + "\4\12\2\0\6\12\4\0\15\12\5\0\3\12\1\0\7\12\16\0"+ + "\5\21\32\0\5\21\20\0\2\12\23\0\1\12\13\0\5\21\5\0"+ + "\6\21\1\0\1\12\15\0\1\12\20\0\15\12\3\0\33\12\25\0"+ + "\15\21\4\0\1\21\3\0\14\21\21\0\1\12\4\0\1\12\2\0"+ + "\12\12\1\0\1\12\3\0\5\12\6\0\1\12\1\0\1\12\1\0"+ + "\1\12\1\0\4\12\1\0\13\12\2\0\4\12\5\0\5\12\4\0"+ + "\1\12\21\0\51\12\u0a77\0\57\12\1\0\57\12\1\0\205\12\6\0"+ + "\4\12\3\21\2\12\14\0\46\12\1\0\1\12\5\0\1\12\2\0"+ + "\70\12\7\0\1\12\17\0\1\21\27\12\11\0\7\12\1\0\7\12"+ + "\1\0\7\12\1\0\7\12\1\0\7\12\1\0\7\12\1\0\7\12"+ + "\1\0\7\12\1\0\40\21\57\0\1\12\u01d5\0\3\12\31\0\11\12"+ + "\6\21\1\0\5\12\2\0\5\12\4\0\126\12\2\0\2\21\2\0"+ + "\3\12\1\0\132\12\1\0\4\12\5\0\51\12\3\0\136\12\21\0"+ + "\33\12\65\0\20\12\u0200\0\u19b6\12\112\0\u51cd\12\63\0\u048d\12\103\0"+ + "\56\12\2\0\u010d\12\3\0\20\12\12\21\2\12\24\0\57\12\1\21"+ + "\4\0\12\21\1\0\31\12\7\0\1\21\120\12\2\21\45\0\11\12"+ + "\2\0\147\12\2\0\4\12\1\0\4\12\14\0\13\12\115\0\12\12"+ + "\1\21\3\12\1\21\4\12\1\21\27\12\5\21\20\0\1\12\7\0"+ + "\64\12\14\0\2\21\62\12\21\21\13\0\12\21\6\0\22\21\6\12"+ + "\3\0\1\12\4\0\12\21\34\12\10\21\2\0\27\12\15\21\14\0"+ + "\35\12\3\0\4\21\57\12\16\21\16\0\1\12\12\21\46\0\51\12"+ + "\16\21\11\0\3\12\1\21\10\12\2\21\2\0\12\21\6\0\27\12"+ + "\3\0\1\12\1\21\4\0\60\12\1\21\1\12\3\21\2\12\2\21"+ + "\5\12\2\21\1\12\1\21\1\12\30\0\3\12\2\0\13\12\5\21"+ + "\2\0\3\12\2\21\12\0\6\12\2\0\6\12\2\0\6\12\11\0"+ + "\7\12\1\0\7\12\221\0\43\12\10\21\1\0\2\21\2\0\12\21"+ + "\6\0\u2ba4\12\14\0\27\12\4\0\61\12\u2104\0\u016e\12\2\0\152\12"+ + "\46\0\7\12\14\0\5\12\5\0\1\12\1\21\12\12\1\0\15\12"+ + "\1\0\5\12\1\0\1\12\1\0\2\12\1\0\2\12\1\0\154\12"+ + "\41\0\u016b\12\22\0\100\12\2\0\66\12\50\0\15\12\3\0\20\21"+ + "\20\0\7\21\14\0\2\12\30\0\3\12\31\0\1\12\6\0\5\12"+ + "\1\0\207\12\2\0\1\21\4\0\1\12\13\0\12\21\7\0\32\12"+ + "\4\0\1\12\1\0\32\12\13\0\131\12\3\0\6\12\2\0\6\12"+ + "\2\0\6\12\2\0\3\12\3\0\2\12\3\0\2\12\22\0\3\21"+ + "\4\0\14\12\1\0\32\12\1\0\23\12\1\0\2\12\1\0\17\12"+ + "\2\0\16\12\42\0\173\12\105\0\65\12\210\0\1\21\202\0\35\12"+ + "\3\0\61\12\57\0\37\12\21\0\33\12\65\0\36\12\2\0\44\12"+ + "\4\0\10\12\1\0\5\12\52\0\236\12\2\0\12\21\u0356\0\6\12"+ + "\2\0\1\12\1\0\54\12\1\0\2\12\3\0\1\12\2\0\27\12"+ + "\252\0\26\12\12\0\32\12\106\0\70\12\6\0\2\12\100\0\1\12"+ + "\3\21\1\0\2\21\5\0\4\21\4\12\1\0\3\12\1\0\33\12"+ + "\4\0\3\21\4\0\1\21\40\0\35\12\203\0\66\12\12\0\26\12"+ + "\12\0\23\12\215\0\111\12\u03b7\0\3\21\65\12\17\21\37\0\12\21"+ + "\20\0\3\21\55\12\13\21\2\0\1\21\22\0\31\12\7\0\12\21"+ + "\6\0\3\21\44\12\16\21\1\0\12\21\100\0\3\21\60\12\16\21"+ + "\4\12\13\0\12\21\u04a6\0\53\12\15\21\10\0\12\21\u0936\0\u036f\12"+ + "\221\0\143\12\u0b9d\0\u042f\12\u33d1\0\u0239\12\u04c7\0\105\12\13\0\1\12"+ + "\56\21\20\0\4\21\15\12\u4060\0\2\12\u2163\0\5\21\3\0\26\21"+ + "\2\0\7\21\36\0\4\21\224\0\3\21\u01bb\0\125\12\1\0\107\12"+ + "\1\0\2\12\2\0\1\12\2\0\2\12\2\0\4\12\1\0\14\12"+ + "\1\0\1\12\1\0\7\12\1\0\101\12\1\0\4\12\2\0\10\12"+ + "\1\0\7\12\1\0\34\12\1\0\4\12\1\0\5\12\1\0\1\12"+ + "\3\0\7\12\1\0\u0154\12\2\0\31\12\1\0\31\12\1\0\37\12"+ + "\1\0\31\12\1\0\37\12\1\0\31\12\1\0\37\12\1\0\31\12"+ + "\1\0\37\12\1\0\31\12\1\0\10\12\2\0\62\21\u1600\0\4\12"+ + "\1\0\33\12\1\0\2\12\1\0\1\12\2\0\1\12\1\0\12\12"+ + "\1\0\4\12\1\0\1\12\1\0\1\12\6\0\1\12\4\0\1\12"+ + "\1\0\1\12\1\0\1\12\1\0\3\12\1\0\2\12\1\0\1\12"+ + "\2\0\1\12\1\0\1\12\1\0\1\12\1\0\1\12\1\0\1\12"+ + "\1\0\2\12\1\0\1\12\2\0\4\12\1\0\7\12\1\0\4\12"+ + "\1\0\4\12\1\0\1\12\1\0\12\12\1\0\21\12\5\0\3\12"+ + "\1\0\5\12\1\0\21\12\u1144\0\ua6d7\12\51\0\u1035\12\13\0\336\12"+ + "\u3fe2\0\u021e\12\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05ee\0"+ + "\1\21\36\0\140\21\200\0\360\21\uffff\0\uffff\0\ufe12\0"; /** * Translates characters to character classes @@ -173,11 +190,19 @@ public class Scanner implements sym, java_cup.runtime.Scanner { private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\1\0\1\1\1\2\1\3\1\2\2\1\1\4\1\5"+ - "\1\6\2\0\1\7\1\0\1\10"; + "\3\0\1\1\1\2\1\1\1\3\1\4\1\5\1\6"+ + "\1\7\1\10\2\7\1\11\1\12\1\13\15\7\1\14"+ + "\1\15\1\7\1\16\1\17\1\20\1\21\1\22\1\23"+ + "\1\0\1\21\1\24\1\0\1\5\1\0\4\7\1\25"+ + "\1\26\4\7\1\27\11\7\1\30\2\24\1\0\1\5"+ + "\1\0\1\7\1\31\4\7\1\32\1\7\1\33\10\7"+ + "\1\34\1\35\1\7\1\36\3\7\1\37\4\7\1\40"+ + "\1\7\1\41\2\7\1\42\4\7\1\43\1\44\2\7"+ + "\1\45\1\46\1\47\2\7\1\50\3\7\1\51\6\7"+ + "\1\52\20\7\1\53\3\7\1\54"; private static int [] zzUnpackAction() { - int [] result = new int[15]; + int [] result = new int[152]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -202,11 +227,28 @@ private static int zzUnpackAction(String packed, int offset, int [] result) { private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\15\0\32\0\15\0\15\0\47\0\64\0\15"+ - "\0\15\0\15\0\101\0\116\0\15\0\133\0\15"; + "\0\0\0\53\0\126\0\201\0\254\0\254\0\327\0\254"+ + "\0\u0102\0\u012d\0\u0158\0\254\0\u0183\0\u01ae\0\254\0\254"+ + "\0\254\0\u01d9\0\u0204\0\u022f\0\u025a\0\u0285\0\u02b0\0\u02db"+ + "\0\u0306\0\u0331\0\u035c\0\u0387\0\u03b2\0\u03dd\0\254\0\254"+ + "\0\u0408\0\254\0\254\0\254\0\254\0\u0433\0\254\0\u045e"+ + "\0\u045e\0\u0489\0\u04b4\0\u04df\0\u050a\0\u0535\0\u0560\0\u058b"+ + "\0\u05b6\0\u0183\0\u0183\0\u05e1\0\u060c\0\u0637\0\u0662\0\u0183"+ + "\0\u068d\0\u06b8\0\u06e3\0\u070e\0\u0739\0\u0764\0\u078f\0\u07ba"+ + "\0\u07e5\0\254\0\u0810\0\254\0\u083b\0\u0866\0\u0866\0\u0891"+ + "\0\u0183\0\u08bc\0\u08e7\0\u0912\0\u093d\0\u0183\0\u0968\0\u0183"+ + "\0\u0993\0\u09be\0\u09e9\0\u0a14\0\u0a3f\0\u0a6a\0\u0a95\0\u0ac0"+ + "\0\u0183\0\u0183\0\u0aeb\0\u0183\0\u0b16\0\u0b41\0\u0b6c\0\u0183"+ + "\0\u0b97\0\u0bc2\0\u0bed\0\u0c18\0\u0183\0\u0c43\0\u0183\0\u0c6e"+ + "\0\u0c99\0\u0183\0\u0cc4\0\u0cef\0\u0d1a\0\u0d45\0\u0183\0\u0183"+ + "\0\u0d70\0\u0d9b\0\u0183\0\u0183\0\u0183\0\u0dc6\0\u0df1\0\u0183"+ + "\0\u0e1c\0\u0e47\0\u0e72\0\u0e9d\0\u0ec8\0\u0ef3\0\u0f1e\0\u0f49"+ + "\0\u0f74\0\u0f9f\0\u0fca\0\u0ff5\0\u1020\0\u104b\0\u1076\0\u10a1"+ + "\0\u10cc\0\u10f7\0\u1122\0\u114d\0\u1178\0\u11a3\0\u11ce\0\u11f9"+ + "\0\u1224\0\u124f\0\u127a\0\u0183\0\u12a5\0\u12d0\0\u12fb\0\u0183"; private static int [] zzUnpackRowMap() { - int [] result = new int[15]; + int [] result = new int[152]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -229,13 +271,165 @@ private static int zzUnpackRowMap(String packed, int offset, int [] result) { private static final int [] ZZ_TRANS = zzUnpackTrans(); private static final String ZZ_TRANS_PACKED_0 = - "\1\2\1\3\1\4\1\5\1\6\1\2\1\7\4\2"+ - "\1\10\1\11\17\0\1\5\17\0\1\12\16\0\1\13"+ - "\1\0\1\14\13\0\1\15\16\0\1\16\10\0\1\17"+ - "\6\0"; + "\1\0\1\4\1\5\1\6\1\7\1\10\1\11\1\12"+ + "\1\13\1\14\1\15\1\16\1\15\1\17\1\20\1\21"+ + "\2\0\1\22\1\23\1\24\1\15\1\25\1\26\1\27"+ + "\1\30\1\31\1\32\1\33\1\15\1\34\1\35\1\15"+ + "\1\36\2\15\1\37\1\40\1\41\1\42\1\43\1\44"+ + "\1\45\1\46\2\0\13\46\1\47\1\46\1\0\32\46"+ + "\1\50\2\0\14\50\2\0\31\50\1\51\2\0\1\6"+ + "\127\0\1\52\1\53\53\0\1\11\1\54\1\55\3\0"+ + "\1\55\44\0\1\54\52\0\1\15\1\0\1\15\1\0"+ + "\1\15\1\56\1\15\4\0\3\15\1\57\17\15\2\0"+ + "\1\15\12\0\1\15\1\0\1\15\1\0\3\15\4\0"+ + "\23\15\2\0\1\15\12\0\1\15\1\0\1\60\1\0"+ + "\3\15\4\0\6\15\1\61\14\15\2\0\1\15\12\0"+ + "\1\15\1\0\1\15\1\0\3\15\4\0\2\15\1\62"+ + "\2\15\1\63\15\15\2\0\1\15\12\0\1\15\1\0"+ + "\1\15\1\0\3\15\4\0\6\15\1\64\1\65\13\15"+ + "\2\0\1\15\12\0\1\15\1\0\1\15\1\0\3\15"+ + "\4\0\6\15\1\66\14\15\2\0\1\15\12\0\1\15"+ + "\1\0\1\15\1\0\3\15\4\0\1\15\1\67\21\15"+ + "\2\0\1\15\12\0\1\15\1\0\1\15\1\0\3\15"+ + "\4\0\11\15\1\70\11\15\2\0\1\15\12\0\1\15"+ + "\1\0\1\15\1\0\3\15\4\0\3\15\1\71\17\15"+ + "\2\0\1\15\12\0\1\15\1\0\1\72\1\0\3\15"+ + "\4\0\23\15\2\0\1\15\12\0\1\15\1\0\1\73"+ + "\1\0\3\15\4\0\23\15\2\0\1\15\12\0\1\15"+ + "\1\0\1\15\1\0\3\15\4\0\11\15\1\74\11\15"+ + "\2\0\1\15\12\0\1\15\1\0\1\15\1\0\3\15"+ + "\4\0\11\15\1\75\11\15\2\0\1\15\12\0\1\15"+ + "\1\0\1\15\1\0\3\15\4\0\11\15\1\76\11\15"+ + "\2\0\1\15\12\0\1\15\1\0\1\15\1\0\3\15"+ + "\4\0\3\15\1\77\17\15\2\0\1\15\12\0\1\15"+ + "\1\0\1\15\1\0\3\15\4\0\6\15\1\100\14\15"+ + "\2\0\1\15\12\0\1\15\1\0\1\15\1\0\3\15"+ + "\4\0\6\15\1\101\14\15\2\0\1\15\4\0\1\46"+ + "\2\0\13\46\1\0\1\46\1\0\32\46\17\0\1\102"+ + "\33\0\1\52\1\103\1\104\50\52\5\53\1\105\45\53"+ + "\6\0\1\54\1\0\1\55\3\0\1\55\44\0\1\106"+ + "\2\0\1\107\36\0\1\107\10\0\1\15\1\0\1\15"+ + "\1\0\3\15\4\0\5\15\1\110\15\15\2\0\1\15"+ + "\12\0\1\15\1\0\1\15\1\0\3\15\4\0\4\15"+ + "\1\111\16\15\2\0\1\15\12\0\1\15\1\0\1\15"+ + "\1\0\3\15\4\0\5\15\1\112\15\15\2\0\1\15"+ + "\12\0\1\15\1\0\1\15\1\0\3\15\4\0\7\15"+ + "\1\113\13\15\2\0\1\15\12\0\1\15\1\0\1\15"+ + "\1\0\3\15\4\0\11\15\1\114\11\15\2\0\1\15"+ + "\12\0\1\15\1\0\1\15\1\0\1\15\1\115\1\15"+ + "\4\0\23\15\2\0\1\15\12\0\1\15\1\0\1\15"+ + "\1\0\3\15\4\0\15\15\1\116\5\15\2\0\1\15"+ + "\12\0\1\15\1\0\1\15\1\0\3\15\4\0\12\15"+ + "\1\117\10\15\2\0\1\15\12\0\1\15\1\0\1\15"+ + "\1\0\3\15\4\0\4\15\1\120\16\15\2\0\1\15"+ + "\12\0\1\15\1\0\1\15\1\0\3\15\4\0\7\15"+ + "\1\121\13\15\2\0\1\15\12\0\1\15\1\0\1\15"+ + "\1\0\3\15\4\0\15\15\1\122\1\15\1\123\3\15"+ + "\2\0\1\15\12\0\1\15\1\0\1\124\1\0\3\15"+ + "\4\0\23\15\2\0\1\15\12\0\1\15\1\0\1\125"+ + "\1\0\3\15\4\0\23\15\2\0\1\15\12\0\1\15"+ + "\1\0\1\15\1\0\3\15\4\0\16\15\1\126\4\15"+ + "\2\0\1\15\12\0\1\15\1\0\1\15\1\0\3\15"+ + "\4\0\15\15\1\127\5\15\2\0\1\15\12\0\1\15"+ + "\1\0\1\15\1\0\3\15\4\0\1\15\1\130\21\15"+ + "\2\0\1\15\12\0\1\15\1\0\1\15\1\0\3\15"+ + "\4\0\11\15\1\131\11\15\2\0\1\15\6\0\1\104"+ + "\50\0\4\53\1\104\1\105\45\53\6\0\1\106\52\0"+ + "\1\15\1\0\1\132\1\0\3\15\4\0\23\15\2\0"+ + "\1\15\12\0\1\15\1\0\1\15\1\0\3\15\4\0"+ + "\5\15\1\133\15\15\2\0\1\15\12\0\1\15\1\0"+ + "\1\15\1\0\3\15\4\0\4\15\1\134\16\15\2\0"+ + "\1\15\12\0\1\15\1\0\1\135\1\0\3\15\4\0"+ + "\23\15\2\0\1\15\12\0\1\15\1\0\1\15\1\0"+ + "\3\15\4\0\5\15\1\136\15\15\2\0\1\15\12\0"+ + "\1\15\1\0\1\15\1\0\3\15\4\0\3\15\1\137"+ + "\17\15\2\0\1\15\12\0\1\15\1\0\1\15\1\0"+ + "\3\15\4\0\11\15\1\140\11\15\2\0\1\15\12\0"+ + "\1\15\1\0\1\15\1\0\3\15\4\0\16\15\1\141"+ + "\4\15\2\0\1\15\12\0\1\15\1\0\1\142\1\0"+ + "\3\15\4\0\23\15\2\0\1\15\12\0\1\15\1\0"+ + "\1\15\1\0\3\15\4\0\7\15\1\143\13\15\2\0"+ + "\1\15\12\0\1\15\1\0\1\15\1\0\3\15\4\0"+ + "\7\15\1\144\13\15\2\0\1\15\12\0\1\15\1\0"+ + "\1\145\1\0\3\15\4\0\23\15\2\0\1\15\12\0"+ + "\1\15\1\0\1\15\1\0\3\15\4\0\1\15\1\146"+ + "\21\15\2\0\1\15\12\0\1\15\1\0\1\15\1\0"+ + "\3\15\4\0\4\15\1\147\16\15\2\0\1\15\12\0"+ + "\1\15\1\0\1\15\1\0\3\15\4\0\21\15\1\150"+ + "\1\15\2\0\1\15\12\0\1\15\1\0\1\15\1\0"+ + "\3\15\4\0\20\15\1\151\2\15\2\0\1\15\12\0"+ + "\1\15\1\0\1\152\1\0\3\15\4\0\23\15\2\0"+ + "\1\15\12\0\1\15\1\0\1\15\1\0\3\15\4\0"+ + "\7\15\1\153\13\15\2\0\1\15\12\0\1\15\1\0"+ + "\1\15\1\0\3\15\4\0\11\15\1\154\11\15\2\0"+ + "\1\15\12\0\1\15\1\0\1\15\1\0\3\15\4\0"+ + "\7\15\1\155\13\15\2\0\1\15\12\0\1\15\1\0"+ + "\1\15\1\0\3\15\4\0\15\15\1\156\5\15\2\0"+ + "\1\15\12\0\1\15\1\0\1\15\1\0\3\15\4\0"+ + "\14\15\1\157\6\15\2\0\1\15\12\0\1\15\1\0"+ + "\1\15\1\0\1\15\1\160\1\15\4\0\23\15\2\0"+ + "\1\15\12\0\1\15\1\0\1\15\1\0\3\15\4\0"+ + "\15\15\1\161\5\15\2\0\1\15\12\0\1\15\1\0"+ + "\1\162\1\0\3\15\4\0\23\15\2\0\1\15\12\0"+ + "\1\15\1\0\1\15\1\0\1\15\1\163\1\15\4\0"+ + "\23\15\2\0\1\15\12\0\1\15\1\0\1\15\1\0"+ + "\3\15\4\0\3\15\1\164\17\15\2\0\1\15\12\0"+ + "\1\15\1\0\1\15\1\0\3\15\4\0\15\15\1\165"+ + "\5\15\2\0\1\15\12\0\1\15\1\0\1\166\1\0"+ + "\3\15\4\0\23\15\2\0\1\15\12\0\1\15\1\0"+ + "\1\15\1\0\3\15\4\0\10\15\1\167\12\15\2\0"+ + "\1\15\12\0\1\15\1\0\1\15\1\0\3\15\4\0"+ + "\11\15\1\170\11\15\2\0\1\15\12\0\1\15\1\0"+ + "\1\15\1\0\3\15\4\0\11\15\1\171\11\15\2\0"+ + "\1\15\12\0\1\15\1\0\1\15\1\0\3\15\4\0"+ + "\7\15\1\172\13\15\2\0\1\15\12\0\1\15\1\0"+ + "\1\15\1\0\3\15\4\0\21\15\1\173\1\15\2\0"+ + "\1\15\12\0\1\15\1\0\1\15\1\0\3\15\4\0"+ + "\3\15\1\174\17\15\2\0\1\15\12\0\1\15\1\0"+ + "\1\15\1\0\3\15\4\0\15\15\1\175\5\15\2\0"+ + "\1\15\12\0\1\15\1\0\1\15\1\0\3\15\4\0"+ + "\21\15\1\176\1\15\2\0\1\15\12\0\1\15\1\0"+ + "\1\15\1\0\3\15\4\0\10\15\1\177\12\15\2\0"+ + "\1\15\12\0\1\15\1\0\1\15\1\0\3\15\4\0"+ + "\6\15\1\200\14\15\2\0\1\15\12\0\1\15\1\0"+ + "\1\15\1\0\3\15\4\0\7\15\1\201\13\15\2\0"+ + "\1\15\12\0\1\15\1\0\1\15\1\0\3\15\4\0"+ + "\11\15\1\202\11\15\2\0\1\15\12\0\1\15\1\0"+ + "\1\15\1\0\3\15\4\0\3\15\1\203\17\15\2\0"+ + "\1\15\12\0\1\15\1\0\1\15\1\0\3\15\4\0"+ + "\21\15\1\204\1\15\2\0\1\15\12\0\1\15\1\0"+ + "\1\15\1\0\3\15\4\0\21\15\1\205\1\15\2\0"+ + "\1\15\12\0\1\15\1\0\1\206\1\0\3\15\4\0"+ + "\23\15\2\0\1\15\12\0\1\15\1\0\1\15\1\0"+ + "\3\15\4\0\6\15\1\207\14\15\2\0\1\15\12\0"+ + "\1\15\1\0\1\15\1\0\3\15\4\0\22\15\1\210"+ + "\2\0\1\15\12\0\1\15\1\0\1\15\1\0\3\15"+ + "\4\0\11\15\1\211\11\15\2\0\1\15\12\0\1\15"+ + "\1\0\1\15\1\0\3\15\4\0\16\15\1\212\4\15"+ + "\2\0\1\15\12\0\1\15\1\0\1\15\1\0\3\15"+ + "\4\0\21\15\1\213\1\15\2\0\1\15\12\0\1\15"+ + "\1\0\1\15\1\0\3\15\4\0\7\15\1\214\13\15"+ + "\2\0\1\15\12\0\1\15\1\0\1\215\1\0\3\15"+ + "\4\0\23\15\2\0\1\15\12\0\1\15\1\0\1\15"+ + "\1\0\1\15\1\216\1\15\4\0\23\15\2\0\1\15"+ + "\12\0\1\15\1\0\1\15\1\0\3\15\4\0\22\15"+ + "\1\217\2\0\1\15\12\0\1\15\1\0\1\15\1\0"+ + "\3\15\4\0\21\15\1\220\1\15\2\0\1\15\12\0"+ + "\1\15\1\0\1\15\1\0\3\15\4\0\16\15\1\221"+ + "\4\15\2\0\1\15\12\0\1\15\1\0\1\15\1\0"+ + "\3\15\4\0\15\15\1\222\5\15\2\0\1\15\12\0"+ + "\1\15\1\0\1\15\1\0\3\15\4\0\7\15\1\223"+ + "\13\15\2\0\1\15\12\0\1\15\1\0\1\15\1\0"+ + "\3\15\4\0\6\15\1\224\14\15\2\0\1\15\12\0"+ + "\1\15\1\0\1\15\1\0\1\15\1\225\1\15\4\0"+ + "\23\15\2\0\1\15\12\0\1\15\1\0\1\15\1\0"+ + "\3\15\4\0\21\15\1\226\1\15\2\0\1\15\12\0"+ + "\1\15\1\0\1\15\1\0\3\15\4\0\15\15\1\227"+ + "\5\15\2\0\1\15\12\0\1\15\1\0\1\15\1\0"+ + "\3\15\4\0\6\15\1\230\14\15\2\0\1\15\4\0"; private static int [] zzUnpackTrans() { - int [] result = new int[104]; + int [] result = new int[4902]; int offset = 0; offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); return result; @@ -273,11 +467,13 @@ private static int zzUnpackTrans(String packed, int offset, int [] result) { private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\0\1\11\1\1\2\11\2\1\3\11\2\0\1\11"+ - "\1\0\1\11"; + "\3\0\1\1\2\11\1\1\1\11\3\1\1\11\2\1"+ + "\3\11\15\1\2\11\1\1\4\11\1\1\1\11\1\0"+ + "\2\1\1\0\1\1\1\0\24\1\1\11\1\1\1\11"+ + "\1\0\1\1\1\0\121\1"; private static int [] zzUnpackAttribute() { - int [] result = new int[15]; + int [] result = new int[152]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; @@ -402,7 +598,7 @@ public Scanner(java.io.Reader in) { char [] map = new char[0x110000]; int i = 0; /* index in packed string */ int j = 0; /* index in unpacked array */ - while (i < 2570) { + while (i < 2864) { int count = packed.charAt(i++); char value = packed.charAt(i++); do map[j++] = value; while (--count > 0); @@ -767,38 +963,182 @@ else if (zzAtEOF) { else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { case 1: - { throw new RuntimeException("Illegal character \""+yytext()+ - "\" at line "+yyline+", column "+yycolumn); + { /*Ignore*/ } - case 9: break; + case 45: break; case 2: - { /* ignore */ + { return symbol(EOL); } - case 10: break; + case 46: break; case 3: - { return symbol(EOL); + { return symbol(DIV); } - case 11: break; + case 47: break; case 4: - { return symbol(LPAREN); + { return symbol(MULT); } - case 12: break; + case 48: break; case 5: - { return symbol(RPAREN); + { return symbol(NumLit, new Double(yytext())); } - case 13: break; + case 49: break; case 6: - { return symbol(IF); + { return symbol(DOT); } - case 14: break; + case 50: break; case 7: - { return symbol(END); + { return symbol(IDENTIFIER, yytext()); } - case 15: break; + case 51: break; case 8: + { return symbol(MINUS); + } + case 52: break; + case 9: + { return symbol(COMMA); + } + case 53: break; + case 10: + { yybegin(STRING); string.setLength(0); + } + case 54: break; + case 11: + { yybegin(CHARLITERAL); + } + case 55: break; + case 12: + { return symbol(LPAREN); + } + case 56: break; + case 13: + { return symbol(RPAREN); + } + case 57: break; + case 14: + { return symbol(ASSIGN); + } + case 58: break; + case 15: + { return symbol(PLUS); + } + case 59: break; + case 16: + { return symbol(PWR); + } + case 60: break; + case 17: + { throw new RuntimeException("Illegal character \""+yytext()+ + "\" at line "+yyline+", column "+yycolumn); + } + case 61: break; + case 18: + { string.append( yytext() ); + } + case 62: break; + case 19: + { yybegin(YYINITIAL); return symbol(STRING_LITERAL, string.toString()); + } + case 63: break; + case 20: + { /* ignore */ + } + case 64: break; + case 21: + { return symbol(IF); + } + case 65: break; + case 22: + { return symbol(IS); + } + case 66: break; + case 23: + { return symbol(OR); + } + case 67: break; + case 24: + { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, yytext().charAt(0)); + } + case 68: break; + case 25: + { return symbol(END); + } + case 69: break; + case 26: + { return symbol(NOT); + } + case 70: break; + case 27: + { return symbol(AND); + } + case 71: break; + case 28: + { return symbol(XOR); + } + case 72: break; + case 29: { return symbol(ELSE); } - case 16: break; + case 73: break; + case 30: + { return symbol(LOAD); + } + case 74: break; + case 31: + { return symbol(HEAR); + } + case 75: break; + case 32: + { return symbol(TRUE); + } + case 76: break; + case 33: + { return symbol(VOID); + } + case 77: break; + case 34: + { return symbol(FALSE); + } + case 78: break; + case 35: + { return symbol(BREAK); + } + case 79: break; + case 36: + { return symbol(UNTIL); + } + case 80: break; + case 37: + { return symbol(SIGNAL); + } + case 81: break; + case 38: + { return symbol(RETURN); + } + case 82: break; + case 39: + { return symbol(REPEAT); + } + case 83: break; + case 40: + { return symbol(FOREVER); + } + case 84: break; + case 41: + { return symbol(LT); + } + case 85: break; + case 42: + { return symbol(GT); + } + case 86: break; + case 43: + { return symbol(LTE); + } + case 87: break; + case 44: + { return symbol(GTE); + } + case 88: break; default: zzScanError(ZZ_NO_MATCH); } diff --git a/compiler/src/Scanner.java~ b/compiler/src/Scanner.java~ index 3ff8597..ea27df5 100644 --- a/compiler/src/Scanner.java~ +++ b/compiler/src/Scanner.java~ @@ -6,7 +6,7 @@ import java_cup.runtime.*; /** * This class is a scanner generated by * JFlex 1.6.1 - * from the specification file /home/esben/documents/P4 stuffs/P4 Scanner/P4/compiler/src/java.flex + * from the specification file C:/Users/Nete/Documents/GitHub/P4/Compiler/src/java.flex */ public class Scanner implements sym, java_cup.runtime.Scanner { @@ -18,8 +18,6 @@ public class Scanner implements sym, java_cup.runtime.Scanner { /** lexical states */ public static final int YYINITIAL = 0; - public static final int STRING = 2; - public static final int CHARLITERAL = 4; /** * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l @@ -28,142 +26,141 @@ public class Scanner implements sym, java_cup.runtime.Scanner { * l is of the form l = 2*k, k a non negative integer */ private static final int ZZ_LEXSTATE[] = { - 0, 0, 1, 1, 2, 2 + 0, 0 }; /** * Translates characters to character classes */ private static final String ZZ_CMAP_PACKED = - "\11\7\1\3\1\2\1\0\1\3\1\1\16\7\4\0\1\3\1\0"+ - "\1\14\1\0\1\6\2\0\1\15\1\43\1\44\1\5\1\51\1\45"+ - "\1\13\1\11\1\4\12\10\1\46\2\0\1\47\3\0\1\21\1\40"+ - "\1\41\1\31\1\30\1\24\1\37\1\35\1\23\2\6\1\34\1\27"+ - "\1\25\1\33\1\36\1\42\1\22\1\17\1\20\1\26\1\32\4\6"+ - "\1\0\1\16\1\0\1\52\1\50\1\0\4\6\1\12\25\6\4\0"+ - "\41\7\2\0\4\6\4\0\1\6\2\0\1\7\7\0\1\6\4\0"+ - "\1\6\5\0\27\6\1\0\37\6\1\0\u01ca\6\4\0\14\6\16\0"+ - "\5\6\7\0\1\6\1\0\1\6\21\0\160\7\5\6\1\0\2\6"+ - "\2\0\4\6\10\0\1\6\1\0\3\6\1\0\1\6\1\0\24\6"+ - "\1\0\123\6\1\0\213\6\1\0\5\7\2\0\236\6\11\0\46\6"+ - "\2\0\1\6\7\0\47\6\11\0\55\7\1\0\1\7\1\0\2\7"+ - "\1\0\2\7\1\0\1\7\10\0\33\6\5\0\3\6\15\0\4\7"+ - "\7\0\1\6\4\0\13\7\5\0\53\6\37\7\4\0\2\6\1\7"+ - "\143\6\1\0\1\6\10\7\1\0\6\7\2\6\2\7\1\0\4\7"+ - "\2\6\12\7\3\6\2\0\1\6\17\0\1\7\1\6\1\7\36\6"+ - "\33\7\2\0\131\6\13\7\1\6\16\0\12\7\41\6\11\7\2\6"+ - "\4\0\1\6\5\0\26\6\4\7\1\6\11\7\1\6\3\7\1\6"+ - "\5\7\22\0\31\6\3\7\244\0\4\7\66\6\3\7\1\6\22\7"+ - "\1\6\7\7\12\6\2\7\2\0\12\7\1\0\7\6\1\0\7\6"+ - "\1\0\3\7\1\0\10\6\2\0\2\6\2\0\26\6\1\0\7\6"+ - "\1\0\1\6\3\0\4\6\2\0\1\7\1\6\7\7\2\0\2\7"+ - "\2\0\3\7\1\6\10\0\1\7\4\0\2\6\1\0\3\6\2\7"+ - "\2\0\12\7\4\6\7\0\1\6\5\0\3\7\1\0\6\6\4\0"+ - "\2\6\2\0\26\6\1\0\7\6\1\0\2\6\1\0\2\6\1\0"+ - "\2\6\2\0\1\7\1\0\5\7\4\0\2\7\2\0\3\7\3\0"+ - "\1\7\7\0\4\6\1\0\1\6\7\0\14\7\3\6\1\7\13\0"+ - "\3\7\1\0\11\6\1\0\3\6\1\0\26\6\1\0\7\6\1\0"+ - "\2\6\1\0\5\6\2\0\1\7\1\6\10\7\1\0\3\7\1\0"+ - "\3\7\2\0\1\6\17\0\2\6\2\7\2\0\12\7\1\0\1\6"+ - "\17\0\3\7\1\0\10\6\2\0\2\6\2\0\26\6\1\0\7\6"+ - "\1\0\2\6\1\0\5\6\2\0\1\7\1\6\7\7\2\0\2\7"+ - "\2\0\3\7\10\0\2\7\4\0\2\6\1\0\3\6\2\7\2\0"+ - "\12\7\1\0\1\6\20\0\1\7\1\6\1\0\6\6\3\0\3\6"+ - "\1\0\4\6\3\0\2\6\1\0\1\6\1\0\2\6\3\0\2\6"+ - "\3\0\3\6\3\0\14\6\4\0\5\7\3\0\3\7\1\0\4\7"+ - "\2\0\1\6\6\0\1\7\16\0\12\7\11\0\1\6\7\0\3\7"+ - "\1\0\10\6\1\0\3\6\1\0\27\6\1\0\12\6\1\0\5\6"+ - "\3\0\1\6\7\7\1\0\3\7\1\0\4\7\7\0\2\7\1\0"+ - "\2\6\6\0\2\6\2\7\2\0\12\7\22\0\2\7\1\0\10\6"+ - "\1\0\3\6\1\0\27\6\1\0\12\6\1\0\5\6\2\0\1\7"+ - "\1\6\7\7\1\0\3\7\1\0\4\7\7\0\2\7\7\0\1\6"+ - "\1\0\2\6\2\7\2\0\12\7\1\0\2\6\17\0\2\7\1\0"+ - "\10\6\1\0\3\6\1\0\51\6\2\0\1\6\7\7\1\0\3\7"+ - "\1\0\4\7\1\6\10\0\1\7\10\0\2\6\2\7\2\0\12\7"+ - "\12\0\6\6\2\0\2\7\1\0\22\6\3\0\30\6\1\0\11\6"+ - "\1\0\1\6\2\0\7\6\3\0\1\7\4\0\6\7\1\0\1\7"+ - "\1\0\10\7\22\0\2\7\15\0\60\6\1\7\2\6\7\7\4\0"+ - "\10\6\10\7\1\0\12\7\47\0\2\6\1\0\1\6\2\0\2\6"+ - "\1\0\1\6\2\0\1\6\6\0\4\6\1\0\7\6\1\0\3\6"+ - "\1\0\1\6\1\0\1\6\2\0\2\6\1\0\4\6\1\7\2\6"+ - "\6\7\1\0\2\7\1\6\2\0\5\6\1\0\1\6\1\0\6\7"+ - "\2\0\12\7\2\0\2\6\42\0\1\6\27\0\2\7\6\0\12\7"+ - "\13\0\1\7\1\0\1\7\1\0\1\7\4\0\2\7\10\6\1\0"+ - "\44\6\4\0\24\7\1\0\2\7\5\6\13\7\1\0\44\7\11\0"+ - "\1\7\71\0\53\6\24\7\1\6\12\7\6\0\6\6\4\7\4\6"+ - "\3\7\1\6\3\7\2\6\7\7\3\6\4\7\15\6\14\7\1\6"+ - "\17\7\2\0\46\6\12\0\53\6\1\0\1\6\3\0\u0149\6\1\0"+ - "\4\6\2\0\7\6\1\0\1\6\1\0\4\6\2\0\51\6\1\0"+ - "\4\6\2\0\41\6\1\0\4\6\2\0\7\6\1\0\1\6\1\0"+ - "\4\6\2\0\17\6\1\0\71\6\1\0\4\6\2\0\103\6\2\0"+ - "\3\7\40\0\20\6\20\0\125\6\14\0\u026c\6\2\0\21\6\1\0"+ - "\32\6\5\0\113\6\3\0\3\6\17\0\15\6\1\0\4\6\3\7"+ - "\13\0\22\6\3\7\13\0\22\6\2\7\14\0\15\6\1\0\3\6"+ - "\1\0\2\7\14\0\64\6\40\7\3\0\1\6\3\0\2\6\1\7"+ - "\2\0\12\7\41\0\3\7\2\0\12\7\6\0\130\6\10\0\51\6"+ - "\1\7\1\6\5\0\106\6\12\0\35\6\3\0\14\7\4\0\14\7"+ - "\12\0\12\7\36\6\2\0\5\6\13\0\54\6\4\0\21\7\7\6"+ - "\2\7\6\0\12\7\46\0\27\6\5\7\4\0\65\6\12\7\1\0"+ - "\35\7\2\0\13\7\6\0\12\7\15\0\1\6\130\0\5\7\57\6"+ - "\21\7\7\6\4\0\12\7\21\0\11\7\14\0\3\7\36\6\12\7"+ - "\3\0\2\6\12\7\6\0\46\6\16\7\14\0\44\6\24\7\10\0"+ - "\12\7\3\0\3\6\12\7\44\6\122\0\3\7\1\0\25\7\4\6"+ - "\1\7\4\6\1\7\15\0\300\6\47\7\25\0\4\7\u0116\6\2\0"+ - "\6\6\2\0\46\6\2\0\6\6\2\0\10\6\1\0\1\6\1\0"+ - "\1\6\1\0\1\6\1\0\37\6\2\0\65\6\1\0\7\6\1\0"+ - "\1\6\3\0\3\6\1\0\7\6\3\0\4\6\2\0\6\6\4\0"+ - "\15\6\5\0\3\6\1\0\7\6\16\0\5\7\32\0\5\7\20\0"+ - "\2\6\23\0\1\6\13\0\5\7\5\0\6\7\1\0\1\6\15\0"+ - "\1\6\20\0\15\6\3\0\32\6\26\0\15\7\4\0\1\7\3\0"+ - "\14\7\21\0\1\6\4\0\1\6\2\0\12\6\1\0\1\6\3\0"+ - "\5\6\6\0\1\6\1\0\1\6\1\0\1\6\1\0\4\6\1\0"+ - "\13\6\2\0\4\6\5\0\5\6\4\0\1\6\21\0\51\6\u0a77\0"+ - "\57\6\1\0\57\6\1\0\205\6\6\0\4\6\3\7\16\0\46\6"+ - "\12\0\66\6\11\0\1\6\17\0\1\7\27\6\11\0\7\6\1\0"+ - "\7\6\1\0\7\6\1\0\7\6\1\0\7\6\1\0\7\6\1\0"+ - "\7\6\1\0\7\6\1\0\40\7\57\0\1\6\u01d5\0\3\6\31\0"+ - "\11\6\6\7\1\0\5\6\2\0\5\6\4\0\126\6\2\0\2\7"+ - "\2\0\3\6\1\0\132\6\1\0\4\6\5\0\51\6\3\0\136\6"+ - "\21\0\33\6\65\0\20\6\u0200\0\u19b6\6\112\0\u51cc\6\64\0\u048d\6"+ - "\103\0\56\6\2\0\u010d\6\3\0\20\6\12\7\2\6\24\0\57\6"+ - "\1\7\14\0\2\7\1\0\31\6\10\0\120\6\2\7\45\0\11\6"+ - "\2\0\147\6\2\0\4\6\1\0\2\6\16\0\12\6\120\0\10\6"+ - "\1\7\3\6\1\7\4\6\1\7\27\6\5\7\20\0\1\6\7\0"+ - "\64\6\14\0\2\7\62\6\21\7\13\0\12\7\6\0\22\7\6\6"+ - "\3\0\1\6\4\0\12\7\34\6\10\7\2\0\27\6\15\7\14\0"+ - "\35\6\3\0\4\7\57\6\16\7\16\0\1\6\12\7\46\0\51\6"+ - "\16\7\11\0\3\6\1\7\10\6\2\7\2\0\12\7\6\0\27\6"+ - "\3\0\1\6\1\7\4\0\60\6\1\7\1\6\3\7\2\6\2\7"+ - "\5\6\2\7\1\6\1\7\1\6\30\0\3\6\43\0\6\6\2\0"+ - "\6\6\2\0\6\6\11\0\7\6\1\0\7\6\221\0\43\6\10\7"+ - "\1\0\2\7\2\0\12\7\6\0\u2ba4\6\14\0\27\6\4\0\61\6"+ - "\u2104\0\u012e\6\2\0\76\6\2\0\152\6\46\0\7\6\14\0\5\6"+ - "\5\0\1\6\1\7\12\6\1\0\15\6\1\0\5\6\1\0\1\6"+ - "\1\0\2\6\1\0\2\6\1\0\154\6\41\0\u016b\6\22\0\100\6"+ - "\2\0\66\6\50\0\15\6\3\0\20\7\20\0\7\7\14\0\2\6"+ - "\30\0\3\6\31\0\1\6\6\0\5\6\1\0\207\6\2\0\1\7"+ - "\4\0\1\6\13\0\12\7\7\0\32\6\4\0\1\6\1\0\32\6"+ - "\13\0\131\6\3\0\6\6\2\0\6\6\2\0\6\6\2\0\3\6"+ - "\3\0\2\6\3\0\2\6\22\0\3\7\4\0\14\6\1\0\32\6"+ - "\1\0\23\6\1\0\2\6\1\0\17\6\2\0\16\6\42\0\173\6"+ - "\105\0\65\6\210\0\1\7\202\0\35\6\3\0\61\6\57\0\37\6"+ - "\21\0\33\6\65\0\36\6\2\0\44\6\4\0\10\6\1\0\5\6"+ - "\52\0\236\6\2\0\12\7\u0356\0\6\6\2\0\1\6\1\0\54\6"+ - "\1\0\2\6\3\0\1\6\2\0\27\6\252\0\26\6\12\0\32\6"+ - "\306\0\1\6\3\7\1\0\2\7\5\0\4\7\4\6\1\0\3\6"+ - "\1\0\33\6\4\0\3\7\4\0\1\7\40\0\35\6\203\0\66\6"+ - "\12\0\26\6\12\0\23\6\215\0\111\6\u03b7\0\3\7\65\6\17\7"+ - "\37\0\12\7\20\0\3\7\55\6\13\7\2\0\1\7\u0f42\0\u036f\6"+ - "\221\0\143\6\u0b9d\0\u042f\6\u33d1\0\u0239\6\u45c7\0\2\6\u2163\0\5\7"+ - "\3\0\26\7\2\0\7\7\36\0\4\7\224\0\3\7\u01bb\0\125\6"+ - "\1\0\107\6\1\0\2\6\2\0\1\6\2\0\2\6\2\0\4\6"+ - "\1\0\14\6\1\0\1\6\1\0\7\6\1\0\101\6\1\0\4\6"+ - "\2\0\10\6\1\0\7\6\1\0\34\6\1\0\4\6\1\0\5\6"+ - "\1\0\1\6\3\0\7\6\1\0\u0154\6\2\0\31\6\1\0\31\6"+ - "\1\0\37\6\1\0\31\6\1\0\37\6\1\0\31\6\1\0\37\6"+ - "\1\0\31\6\1\0\37\6\1\0\31\6\1\0\10\6\2\0\62\7"+ - "\u2800\0\ua6d7\6\51\0\u1035\6\13\0\336\6\u3fe2\0\u021e\6\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05ee\0"+ - "\1\7\36\0\140\7\200\0\360\7\uffff\0\uffff\0\ufe12\0"; + "\11\0\1\3\1\2\1\0\1\3\1\1\16\0\4\0\1\3\1\0"+ + "\1\0\1\0\1\0\2\0\1\0\1\13\1\14\1\0\1\0\1\0"+ + "\1\0\1\0\1\0\12\0\7\0\3\0\1\10\1\6\1\5\2\0"+ + "\1\4\2\0\1\11\1\0\1\7\4\0\1\12\7\0\1\0\1\0"+ + "\2\0\1\0\1\0\4\0\1\0\25\0\4\0\41\0\2\0\4\0"+ + "\4\0\1\0\2\0\1\0\7\0\1\0\4\0\1\0\5\0\27\0"+ + "\1\0\37\0\1\0\u01ca\0\4\0\14\0\16\0\5\0\7\0\1\0"+ + "\1\0\1\0\21\0\160\0\5\0\1\0\2\0\2\0\4\0\10\0"+ + "\1\0\1\0\3\0\1\0\1\0\1\0\24\0\1\0\123\0\1\0"+ + "\213\0\1\0\5\0\2\0\236\0\11\0\46\0\2\0\1\0\7\0"+ + "\47\0\11\0\55\0\1\0\1\0\1\0\2\0\1\0\2\0\1\0"+ + "\1\0\10\0\33\0\5\0\3\0\15\0\4\0\7\0\1\0\4\0"+ + "\13\0\5\0\53\0\37\0\4\0\2\0\1\0\143\0\1\0\1\0"+ + "\10\0\1\0\6\0\2\0\2\0\1\0\4\0\2\0\12\0\3\0"+ + "\2\0\1\0\17\0\1\0\1\0\1\0\36\0\33\0\2\0\131\0"+ + "\13\0\1\0\16\0\12\0\41\0\11\0\2\0\4\0\1\0\5\0"+ + "\26\0\4\0\1\0\11\0\1\0\3\0\1\0\5\0\22\0\31\0"+ + "\3\0\244\0\4\0\66\0\3\0\1\0\22\0\1\0\7\0\12\0"+ + "\2\0\2\0\12\0\1\0\7\0\1\0\7\0\1\0\3\0\1\0"+ + "\10\0\2\0\2\0\2\0\26\0\1\0\7\0\1\0\1\0\3\0"+ + "\4\0\2\0\1\0\1\0\7\0\2\0\2\0\2\0\3\0\1\0"+ + "\10\0\1\0\4\0\2\0\1\0\3\0\2\0\2\0\12\0\4\0"+ + "\7\0\1\0\5\0\3\0\1\0\6\0\4\0\2\0\2\0\26\0"+ + "\1\0\7\0\1\0\2\0\1\0\2\0\1\0\2\0\2\0\1\0"+ + "\1\0\5\0\4\0\2\0\2\0\3\0\3\0\1\0\7\0\4\0"+ + "\1\0\1\0\7\0\14\0\3\0\1\0\13\0\3\0\1\0\11\0"+ + "\1\0\3\0\1\0\26\0\1\0\7\0\1\0\2\0\1\0\5\0"+ + "\2\0\1\0\1\0\10\0\1\0\3\0\1\0\3\0\2\0\1\0"+ + "\17\0\2\0\2\0\2\0\12\0\1\0\1\0\17\0\3\0\1\0"+ + "\10\0\2\0\2\0\2\0\26\0\1\0\7\0\1\0\2\0\1\0"+ + "\5\0\2\0\1\0\1\0\7\0\2\0\2\0\2\0\3\0\10\0"+ + "\2\0\4\0\2\0\1\0\3\0\2\0\2\0\12\0\1\0\1\0"+ + "\20\0\1\0\1\0\1\0\6\0\3\0\3\0\1\0\4\0\3\0"+ + "\2\0\1\0\1\0\1\0\2\0\3\0\2\0\3\0\3\0\3\0"+ + "\14\0\4\0\5\0\3\0\3\0\1\0\4\0\2\0\1\0\6\0"+ + "\1\0\16\0\12\0\11\0\1\0\7\0\3\0\1\0\10\0\1\0"+ + "\3\0\1\0\27\0\1\0\12\0\1\0\5\0\3\0\1\0\7\0"+ + "\1\0\3\0\1\0\4\0\7\0\2\0\1\0\2\0\6\0\2\0"+ + "\2\0\2\0\12\0\22\0\2\0\1\0\10\0\1\0\3\0\1\0"+ + "\27\0\1\0\12\0\1\0\5\0\2\0\1\0\1\0\7\0\1\0"+ + "\3\0\1\0\4\0\7\0\2\0\7\0\1\0\1\0\2\0\2\0"+ + "\2\0\12\0\1\0\2\0\17\0\2\0\1\0\10\0\1\0\3\0"+ + "\1\0\51\0\2\0\1\0\7\0\1\0\3\0\1\0\4\0\1\0"+ + "\10\0\1\0\10\0\2\0\2\0\2\0\12\0\12\0\6\0\2\0"+ + "\2\0\1\0\22\0\3\0\30\0\1\0\11\0\1\0\1\0\2\0"+ + "\7\0\3\0\1\0\4\0\6\0\1\0\1\0\1\0\10\0\22\0"+ + "\2\0\15\0\60\0\1\0\2\0\7\0\4\0\10\0\10\0\1\0"+ + "\12\0\47\0\2\0\1\0\1\0\2\0\2\0\1\0\1\0\2\0"+ + "\1\0\6\0\4\0\1\0\7\0\1\0\3\0\1\0\1\0\1\0"+ + "\1\0\2\0\2\0\1\0\4\0\1\0\2\0\6\0\1\0\2\0"+ + "\1\0\2\0\5\0\1\0\1\0\1\0\6\0\2\0\12\0\2\0"+ + "\2\0\42\0\1\0\27\0\2\0\6\0\12\0\13\0\1\0\1\0"+ + "\1\0\1\0\1\0\4\0\2\0\10\0\1\0\44\0\4\0\24\0"+ + "\1\0\2\0\5\0\13\0\1\0\44\0\11\0\1\0\71\0\53\0"+ + "\24\0\1\0\12\0\6\0\6\0\4\0\4\0\3\0\1\0\3\0"+ + "\2\0\7\0\3\0\4\0\15\0\14\0\1\0\17\0\2\0\46\0"+ + "\12\0\53\0\1\0\1\0\3\0\u0149\0\1\0\4\0\2\0\7\0"+ + "\1\0\1\0\1\0\4\0\2\0\51\0\1\0\4\0\2\0\41\0"+ + "\1\0\4\0\2\0\7\0\1\0\1\0\1\0\4\0\2\0\17\0"+ + "\1\0\71\0\1\0\4\0\2\0\103\0\2\0\3\0\40\0\20\0"+ + "\20\0\125\0\14\0\u026c\0\2\0\21\0\1\0\32\0\5\0\113\0"+ + "\3\0\3\0\17\0\15\0\1\0\4\0\3\0\13\0\22\0\3\0"+ + "\13\0\22\0\2\0\14\0\15\0\1\0\3\0\1\0\2\0\14\0"+ + "\64\0\40\0\3\0\1\0\3\0\2\0\1\0\2\0\12\0\41\0"+ + "\3\0\2\0\12\0\6\0\130\0\10\0\51\0\1\0\1\0\5\0"+ + "\106\0\12\0\35\0\3\0\14\0\4\0\14\0\12\0\12\0\36\0"+ + "\2\0\5\0\13\0\54\0\4\0\21\0\7\0\2\0\6\0\12\0"+ + "\46\0\27\0\5\0\4\0\65\0\12\0\1\0\35\0\2\0\13\0"+ + "\6\0\12\0\15\0\1\0\130\0\5\0\57\0\21\0\7\0\4\0"+ + "\12\0\21\0\11\0\14\0\3\0\36\0\12\0\3\0\2\0\12\0"+ + "\6\0\46\0\16\0\14\0\44\0\24\0\10\0\12\0\3\0\3\0"+ + "\12\0\44\0\122\0\3\0\1\0\25\0\4\0\1\0\4\0\1\0"+ + "\15\0\300\0\47\0\25\0\4\0\u0116\0\2\0\6\0\2\0\46\0"+ + "\2\0\6\0\2\0\10\0\1\0\1\0\1\0\1\0\1\0\1\0"+ + "\1\0\37\0\2\0\65\0\1\0\7\0\1\0\1\0\3\0\3\0"+ + "\1\0\7\0\3\0\4\0\2\0\6\0\4\0\15\0\5\0\3\0"+ + "\1\0\7\0\16\0\5\0\32\0\5\0\20\0\2\0\23\0\1\0"+ + "\13\0\5\0\5\0\6\0\1\0\1\0\15\0\1\0\20\0\15\0"+ + "\3\0\32\0\26\0\15\0\4\0\1\0\3\0\14\0\21\0\1\0"+ + "\4\0\1\0\2\0\12\0\1\0\1\0\3\0\5\0\6\0\1\0"+ + "\1\0\1\0\1\0\1\0\1\0\4\0\1\0\13\0\2\0\4\0"+ + "\5\0\5\0\4\0\1\0\21\0\51\0\u0a77\0\57\0\1\0\57\0"+ + "\1\0\205\0\6\0\4\0\3\0\16\0\46\0\12\0\66\0\11\0"+ + "\1\0\17\0\1\0\27\0\11\0\7\0\1\0\7\0\1\0\7\0"+ + "\1\0\7\0\1\0\7\0\1\0\7\0\1\0\7\0\1\0\7\0"+ + "\1\0\40\0\57\0\1\0\u01d5\0\3\0\31\0\11\0\6\0\1\0"+ + "\5\0\2\0\5\0\4\0\126\0\2\0\2\0\2\0\3\0\1\0"+ + "\132\0\1\0\4\0\5\0\51\0\3\0\136\0\21\0\33\0\65\0"+ + "\20\0\u0200\0\u19b6\0\112\0\u51cc\0\64\0\u048d\0\103\0\56\0\2\0"+ + "\u010d\0\3\0\20\0\12\0\2\0\24\0\57\0\1\0\14\0\2\0"+ + "\1\0\31\0\10\0\120\0\2\0\45\0\11\0\2\0\147\0\2\0"+ + "\4\0\1\0\2\0\16\0\12\0\120\0\10\0\1\0\3\0\1\0"+ + "\4\0\1\0\27\0\5\0\20\0\1\0\7\0\64\0\14\0\2\0"+ + "\62\0\21\0\13\0\12\0\6\0\22\0\6\0\3\0\1\0\4\0"+ + "\12\0\34\0\10\0\2\0\27\0\15\0\14\0\35\0\3\0\4\0"+ + "\57\0\16\0\16\0\1\0\12\0\46\0\51\0\16\0\11\0\3\0"+ + "\1\0\10\0\2\0\2\0\12\0\6\0\27\0\3\0\1\0\1\0"+ + "\4\0\60\0\1\0\1\0\3\0\2\0\2\0\5\0\2\0\1\0"+ + "\1\0\1\0\30\0\3\0\43\0\6\0\2\0\6\0\2\0\6\0"+ + "\11\0\7\0\1\0\7\0\221\0\43\0\10\0\1\0\2\0\2\0"+ + "\12\0\6\0\u2ba4\0\14\0\27\0\4\0\61\0\u2104\0\u012e\0\2\0"+ + "\76\0\2\0\152\0\46\0\7\0\14\0\5\0\5\0\1\0\1\0"+ + "\12\0\1\0\15\0\1\0\5\0\1\0\1\0\1\0\2\0\1\0"+ + "\2\0\1\0\154\0\41\0\u016b\0\22\0\100\0\2\0\66\0\50\0"+ + "\15\0\3\0\20\0\20\0\7\0\14\0\2\0\30\0\3\0\31\0"+ + "\1\0\6\0\5\0\1\0\207\0\2\0\1\0\4\0\1\0\13\0"+ + "\12\0\7\0\32\0\4\0\1\0\1\0\32\0\13\0\131\0\3\0"+ + "\6\0\2\0\6\0\2\0\6\0\2\0\3\0\3\0\2\0\3\0"+ + "\2\0\22\0\3\0\4\0\14\0\1\0\32\0\1\0\23\0\1\0"+ + "\2\0\1\0\17\0\2\0\16\0\42\0\173\0\105\0\65\0\210\0"+ + "\1\0\202\0\35\0\3\0\61\0\57\0\37\0\21\0\33\0\65\0"+ + "\36\0\2\0\44\0\4\0\10\0\1\0\5\0\52\0\236\0\2\0"+ + "\12\0\u0356\0\6\0\2\0\1\0\1\0\54\0\1\0\2\0\3\0"+ + "\1\0\2\0\27\0\252\0\26\0\12\0\32\0\306\0\1\0\3\0"+ + "\1\0\2\0\5\0\4\0\4\0\1\0\3\0\1\0\33\0\4\0"+ + "\3\0\4\0\1\0\40\0\35\0\203\0\66\0\12\0\26\0\12\0"+ + "\23\0\215\0\111\0\u03b7\0\3\0\65\0\17\0\37\0\12\0\20\0"+ + "\3\0\55\0\13\0\2\0\1\0\u0f42\0\u036f\0\221\0\143\0\u0b9d\0"+ + "\u042f\0\u33d1\0\u0239\0\u45c7\0\2\0\u2163\0\5\0\3\0\26\0\2\0"+ + "\7\0\36\0\4\0\224\0\3\0\u01bb\0\125\0\1\0\107\0\1\0"+ + "\2\0\2\0\1\0\2\0\2\0\2\0\4\0\1\0\14\0\1\0"+ + "\1\0\1\0\7\0\1\0\101\0\1\0\4\0\2\0\10\0\1\0"+ + "\7\0\1\0\34\0\1\0\4\0\1\0\5\0\1\0\1\0\3\0"+ + "\7\0\1\0\u0154\0\2\0\31\0\1\0\31\0\1\0\37\0\1\0"+ + "\31\0\1\0\37\0\1\0\31\0\1\0\37\0\1\0\31\0\1\0"+ + "\37\0\1\0\31\0\1\0\10\0\2\0\62\0\u2800\0\ua6d7\0\51\0"+ + "\u1035\0\13\0\336\0\u3fe2\0\u021e\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05ee\0"+ + "\1\0\36\0\140\0\200\0\360\0\uffff\0\uffff\0\ufe12\0"; /** * Translates characters to character classes @@ -176,19 +173,11 @@ public class Scanner implements sym, java_cup.runtime.Scanner { private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\3\0\1\1\1\2\1\3\1\2\1\4\1\5\1\6"+ - "\1\7\1\10\1\11\1\12\1\13\20\6\1\14\1\15"+ - "\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\1"+ - "\1\2\1\0\1\7\1\0\5\6\1\25\1\26\10\6"+ - "\1\27\6\6\1\30\1\0\1\7\1\0\4\6\1\31"+ - "\3\6\1\32\1\33\1\6\1\34\12\6\1\35\1\36"+ - "\4\6\1\37\1\40\1\6\1\41\1\42\1\6\1\43"+ - "\1\6\1\44\2\6\1\45\1\6\1\46\2\6\1\47"+ - "\1\50\1\51\3\6\1\52\4\6\1\53\6\6\1\54"+ - "\20\6\1\55\3\6\1\56"; + "\1\0\1\1\1\2\1\3\1\2\2\1\1\4\1\5"+ + "\1\6\2\0\1\7\1\0\1\10"; private static int [] zzUnpackAction() { - int [] result = new int[155]; + int [] result = new int[15]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -213,29 +202,11 @@ public class Scanner implements sym, java_cup.runtime.Scanner { private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\53\0\126\0\201\0\254\0\201\0\201\0\327"+ - "\0\201\0\u0102\0\u012d\0\u0158\0\201\0\201\0\201\0\u0183"+ - "\0\u01ae\0\u01d9\0\u0204\0\u022f\0\u025a\0\u0285\0\u02b0\0\u02db"+ - "\0\u0306\0\u0331\0\u035c\0\u0387\0\u03b2\0\u03dd\0\u0408\0\201"+ - "\0\201\0\201\0\201\0\201\0\201\0\201\0\u0433\0\201"+ - "\0\u045e\0\u0489\0\u04b4\0\u04df\0\u050a\0\u0535\0\u0560\0\u058b"+ - "\0\u05b6\0\u05e1\0\u0102\0\u0102\0\u060c\0\u0637\0\u0662\0\u068d"+ - "\0\u06b8\0\u06e3\0\u070e\0\u0739\0\u0102\0\u0764\0\u078f\0\u07ba"+ - "\0\u07e5\0\u0810\0\u083b\0\201\0\u0866\0\u0891\0\u0891\0\u08bc"+ - "\0\u08e7\0\u0912\0\u093d\0\u0102\0\u0968\0\u0993\0\u09be\0\u0102"+ - "\0\u0102\0\u09e9\0\u0102\0\u0a14\0\u0a3f\0\u0a6a\0\u0a95\0\u0ac0"+ - "\0\u0aeb\0\u0b16\0\u0b41\0\u0b6c\0\u0b97\0\u0102\0\u0102\0\u0bc2"+ - "\0\u0bed\0\u0c18\0\u0c43\0\u0102\0\u0102\0\u0c6e\0\u0102\0\u0102"+ - "\0\u0c99\0\u0102\0\u0cc4\0\u0102\0\u0cef\0\u0d1a\0\u0102\0\u0d45"+ - "\0\u0102\0\u0d70\0\u0d9b\0\u0102\0\u0102\0\u0102\0\u0dc6\0\u0df1"+ - "\0\u0e1c\0\u0102\0\u0e47\0\u0e72\0\u0e9d\0\u0ec8\0\u0ef3\0\u0f1e"+ - "\0\u0f49\0\u0f74\0\u0f9f\0\u0fca\0\u0ff5\0\u1020\0\u104b\0\u1076"+ - "\0\u10a1\0\u10cc\0\u10f7\0\u1122\0\u114d\0\u1178\0\u11a3\0\u11ce"+ - "\0\u11f9\0\u1224\0\u124f\0\u127a\0\u12a5\0\u12d0\0\u0102\0\u12fb"+ - "\0\u1326\0\u1351\0\u0102"; + "\0\0\0\15\0\32\0\15\0\15\0\47\0\64\0\15"+ + "\0\15\0\15\0\101\0\116\0\15\0\133\0\15"; private static int [] zzUnpackRowMap() { - int [] result = new int[155]; + int [] result = new int[15]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -258,146 +229,13 @@ public class Scanner implements sym, java_cup.runtime.Scanner { private static final int [] ZZ_TRANS = zzUnpackTrans(); private static final String ZZ_TRANS_PACKED_0 = - "\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\4"+ - "\1\13\1\14\1\12\1\15\1\16\1\17\1\4\1\20"+ - "\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\12"+ - "\1\30\1\12\1\31\1\32\1\33\1\34\1\12\1\35"+ - "\1\36\1\37\1\12\1\40\1\41\1\42\1\43\1\44"+ - "\1\12\1\45\1\46\1\47\2\4\11\47\1\50\1\47"+ - "\1\4\34\47\1\51\2\4\12\51\2\4\34\51\55\0"+ - "\1\7\54\0\1\52\1\53\53\0\3\12\1\0\1\12"+ - "\4\0\24\12\5\0\1\12\12\0\1\13\1\54\1\55"+ - "\15\0\1\55\32\0\1\54\50\0\3\12\1\0\1\12"+ - "\4\0\1\12\1\56\21\12\1\57\5\0\1\12\10\0"+ - "\3\12\1\0\1\12\4\0\3\12\1\60\20\12\5\0"+ - "\1\12\10\0\3\12\1\0\1\12\4\0\6\12\1\61"+ - "\15\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ - "\11\12\1\62\12\12\5\0\1\12\10\0\3\12\1\0"+ - "\1\12\4\0\1\63\4\12\1\64\16\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\2\12\1\65\11\12"+ - "\1\66\7\12\5\0\1\12\10\0\3\12\1\0\1\12"+ - "\4\0\7\12\1\67\4\12\1\70\7\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\6\12\1\71\15\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\6\12"+ - "\1\72\6\12\1\73\6\12\5\0\1\12\10\0\3\12"+ - "\1\0\1\12\4\0\14\12\1\74\7\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\3\12\1\75\20\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\11\12"+ - "\1\76\2\12\1\77\7\12\5\0\1\12\10\0\3\12"+ - "\1\0\1\12\4\0\11\12\1\100\12\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\3\12\1\101\20\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\14\12"+ - "\1\102\7\12\5\0\1\12\10\0\3\12\1\0\1\12"+ - "\4\0\14\12\1\103\7\12\5\0\1\12\2\0\1\47"+ - "\2\0\11\47\1\0\1\47\1\0\34\47\15\0\1\104"+ - "\35\0\1\52\1\5\1\7\50\52\5\53\1\105\45\53"+ - "\10\0\1\54\1\0\1\55\15\0\1\55\32\0\1\106"+ - "\2\0\1\107\35\0\1\107\7\0\3\12\1\0\1\12"+ - "\4\0\2\12\1\110\1\111\20\12\5\0\1\12\10\0"+ - "\3\12\1\0\1\12\4\0\3\12\1\112\20\12\5\0"+ - "\1\12\10\0\3\12\1\0\1\12\4\0\7\12\1\113"+ - "\14\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ - "\12\12\1\114\11\12\5\0\1\12\10\0\3\12\1\0"+ - "\1\12\4\0\17\12\1\115\4\12\5\0\1\12\10\0"+ - "\3\12\1\0\1\12\4\0\15\12\1\116\6\12\5\0"+ - "\1\12\10\0\3\12\1\0\1\12\4\0\3\12\1\117"+ - "\20\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ - "\10\12\1\120\13\12\5\0\1\12\10\0\3\12\1\0"+ - "\1\12\4\0\1\12\1\121\22\12\5\0\1\12\10\0"+ - "\3\12\1\0\1\12\4\0\1\12\1\122\22\12\5\0"+ - "\1\12\10\0\3\12\1\0\1\12\4\0\12\12\1\123"+ - "\11\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ - "\1\124\23\12\5\0\1\12\10\0\3\12\1\0\1\12"+ - "\4\0\4\12\1\125\17\12\5\0\1\12\10\0\3\12"+ - "\1\0\1\12\4\0\1\126\23\12\5\0\1\12\10\0"+ - "\3\12\1\0\1\12\4\0\2\12\1\127\21\12\5\0"+ - "\1\12\10\0\3\12\1\0\1\12\4\0\2\12\1\130"+ - "\21\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ - "\11\12\1\131\12\12\5\0\1\12\10\0\3\12\1\0"+ - "\1\12\4\0\14\12\1\132\7\12\5\0\1\12\10\0"+ - "\3\12\1\0\1\12\4\0\14\12\1\133\7\12\5\0"+ - "\1\12\2\0\4\53\1\7\1\105\45\53\10\0\1\106"+ - "\50\0\3\12\1\0\1\12\4\0\3\12\1\134\20\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\4\12"+ - "\1\135\17\12\5\0\1\12\10\0\3\12\1\0\1\12"+ - "\4\0\1\12\1\136\22\12\5\0\1\12\10\0\3\12"+ - "\1\0\1\12\4\0\11\12\1\137\12\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\11\12\1\140\12\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\1\141"+ - "\23\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ - "\11\12\1\142\12\12\5\0\1\12\10\0\3\12\1\0"+ - "\1\12\4\0\4\12\1\143\17\12\5\0\1\12\10\0"+ - "\3\12\1\0\1\12\4\0\11\12\1\144\12\12\5\0"+ - "\1\12\10\0\3\12\1\0\1\12\4\0\12\12\1\145"+ - "\11\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ - "\1\146\23\12\5\0\1\12\10\0\3\12\1\0\1\12"+ - "\4\0\12\12\1\147\11\12\5\0\1\12\10\0\3\12"+ - "\1\0\1\12\4\0\3\12\1\150\20\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\2\12\1\151\21\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\15\12"+ - "\1\152\6\12\5\0\1\12\10\0\3\12\1\0\1\12"+ - "\4\0\3\12\1\153\20\12\5\0\1\12\10\0\3\12"+ - "\1\0\1\12\4\0\1\12\1\154\22\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\6\12\1\155\15\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\2\12"+ - "\1\156\21\12\5\0\1\12\10\0\3\12\1\0\1\12"+ - "\4\0\11\12\1\157\12\12\5\0\1\12\10\0\3\12"+ - "\1\0\1\12\4\0\13\12\1\160\10\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\15\12\1\161\6\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\24\12"+ - "\5\0\1\162\10\0\3\12\1\0\1\12\4\0\1\12"+ - "\1\163\22\12\5\0\1\12\10\0\3\12\1\0\1\12"+ - "\4\0\12\12\1\164\11\12\5\0\1\12\10\0\3\12"+ - "\1\0\1\12\4\0\20\12\1\165\3\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\1\12\1\166\22\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\11\12"+ - "\1\167\12\12\5\0\1\12\10\0\3\12\1\0\1\12"+ - "\4\0\1\12\1\170\22\12\5\0\1\12\10\0\3\12"+ - "\1\0\1\12\4\0\11\12\1\171\12\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\3\12\1\172\20\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\16\12"+ - "\1\173\5\12\5\0\1\12\10\0\3\12\1\0\1\12"+ - "\4\0\3\12\1\174\20\12\5\0\1\12\10\0\3\12"+ - "\1\0\1\12\4\0\2\12\1\175\21\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\24\12\5\0\1\176"+ - "\10\0\3\12\1\0\1\12\4\0\6\12\1\177\15\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\1\12"+ - "\1\200\22\12\5\0\1\12\10\0\3\12\1\0\1\12"+ - "\4\0\24\12\5\0\1\201\10\0\3\12\1\0\1\12"+ - "\4\0\16\12\1\202\5\12\5\0\1\12\10\0\3\12"+ - "\1\0\1\12\4\0\14\12\1\203\7\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\2\12\1\204\21\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\3\12"+ - "\1\205\20\12\5\0\1\12\10\0\3\12\1\0\1\12"+ - "\4\0\6\12\1\206\15\12\5\0\1\12\10\0\3\12"+ - "\1\0\1\12\4\0\24\12\5\0\1\207\10\0\3\12"+ - "\1\0\1\12\4\0\24\12\5\0\1\210\10\0\3\12"+ - "\1\0\1\12\4\0\11\12\1\211\12\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\14\12\1\212\7\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\23\12"+ - "\1\213\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ - "\3\12\1\214\20\12\5\0\1\12\10\0\3\12\1\0"+ - "\1\12\4\0\7\12\1\215\14\12\5\0\1\12\10\0"+ - "\3\12\1\0\1\12\4\0\24\12\5\0\1\216\10\0"+ - "\3\12\1\0\1\12\4\0\2\12\1\217\21\12\5\0"+ - "\1\12\10\0\3\12\1\0\1\12\4\0\11\12\1\220"+ - "\12\12\5\0\1\12\10\0\3\12\1\0\1\12\4\0"+ - "\15\12\1\221\6\12\5\0\1\12\10\0\3\12\1\0"+ - "\1\12\4\0\23\12\1\222\5\0\1\12\10\0\3\12"+ - "\1\0\1\12\4\0\24\12\5\0\1\223\10\0\3\12"+ - "\1\0\1\12\4\0\7\12\1\224\14\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\1\12\1\225\22\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\2\12"+ - "\1\226\21\12\5\0\1\12\10\0\3\12\1\0\1\12"+ - "\4\0\14\12\1\227\7\12\5\0\1\12\10\0\3\12"+ - "\1\0\1\12\4\0\15\12\1\230\6\12\5\0\1\12"+ - "\10\0\3\12\1\0\1\12\4\0\24\12\5\0\1\231"+ - "\10\0\3\12\1\0\1\12\4\0\1\12\1\232\22\12"+ - "\5\0\1\12\10\0\3\12\1\0\1\12\4\0\14\12"+ - "\1\233\7\12\5\0\1\12\2\0"; + "\1\2\1\3\1\4\1\5\1\6\1\2\1\7\4\2"+ + "\1\10\1\11\17\0\1\5\17\0\1\12\16\0\1\13"+ + "\1\0\1\14\13\0\1\15\16\0\1\16\10\0\1\17"+ + "\6\0"; private static int [] zzUnpackTrans() { - int [] result = new int[4988]; + int [] result = new int[104]; int offset = 0; offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); return result; @@ -435,12 +273,11 @@ public class Scanner implements sym, java_cup.runtime.Scanner { private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\3\0\1\11\1\1\2\11\1\1\1\11\3\1\3\11"+ - "\20\1\7\11\1\1\1\11\2\1\1\0\1\1\1\0"+ - "\26\1\1\11\1\0\1\1\1\0\124\1"; + "\1\0\1\11\1\1\2\11\2\1\3\11\2\0\1\11"+ + "\1\0\1\11"; private static int [] zzUnpackAttribute() { - int [] result = new int[155]; + int [] result = new int[15]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; @@ -565,7 +402,7 @@ public class Scanner implements sym, java_cup.runtime.Scanner { char [] map = new char[0x110000]; int i = 0; /* index in packed string */ int j = 0; /* index in unpacked array */ - while (i < 2596) { + while (i < 2570) { int count = packed.charAt(i++); char value = packed.charAt(i++); do map[j++] = value; while (--count > 0); @@ -933,187 +770,35 @@ public class Scanner implements sym, java_cup.runtime.Scanner { { throw new RuntimeException("Illegal character \""+yytext()+ "\" at line "+yyline+", column "+yycolumn); } - case 47: break; + case 9: break; case 2: { /* ignore */ } - case 48: break; + case 10: break; case 3: { return symbol(EOL); } - case 49: break; + case 11: break; case 4: - { return symbol(slash); + { return symbol(LPAREN); } - case 50: break; + case 12: break; case 5: - { return symbol(asterix); + { return symbol(RPAREN); } - case 51: break; + case 13: break; case 6: - { return symbol(IDENTIFIER, yytext()); - } - case 52: break; - case 7: - { return symbol(num_lit, new Integer(yytext())); - } - case 53: break; - case 8: - { return symbol(dot); - } - case 54: break; - case 9: - { return symbol(minus); - } - case 55: break; - case 10: - { yybegin(STRING); string.setLength(0); - } - case 56: break; - case 11: - { yybegin(CHARLITERAL); - } - case 57: break; - case 12: - { return symbol(lparen); - } - case 58: break; - case 13: - { return symbol(rparen); - } - case 59: break; - case 14: - { return symbol(comma); - } - case 60: break; - case 15: - { return symbol(COLON); - } - case 61: break; - case 16: - { return symbol(ASSIGN); - } - case 62: break; - case 17: - { return symbol(plus); - } - case 63: break; - case 18: - { return symbol(hat); - } - case 64: break; - case 19: - { string.append( yytext() ); - } - case 65: break; - case 20: - { yybegin(YYINITIAL); return symbol(STRING_LITERAL, string.toString()); - } - case 66: break; - case 21: - { return symbol(IS); - } - case 67: break; - case 22: { return symbol(IF); } - case 68: break; - case 23: - { return symbol(OR); - } - case 69: break; - case 24: - { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, yytext().charAt(0)); - } - case 70: break; - case 25: - { return symbol(AND); - } - case 71: break; - case 26: - { return symbol(NUM); - } - case 72: break; - case 27: - { return symbol(NOT); - } - case 73: break; - case 28: + case 14: break; + case 7: { return symbol(END); } - case 74: break; - case 29: - { return symbol(SQRT); - } - case 75: break; - case 30: - { return symbol(TRUE); - } - case 76: break; - case 31: + case 15: break; + case 8: { return symbol(ELSE); } - case 77: break; - case 32: - { return symbol(VOID); - } - case 78: break; - case 33: - { return symbol(LOAD); - } - case 79: break; - case 34: - { return symbol(HEAR); - } - case 80: break; - case 35: - { return symbol(BOOL); - } - case 81: break; - case 36: - { return symbol(START); - } - case 82: break; - case 37: - { return symbol(FALSE); - } - case 83: break; - case 38: - { return symbol(UNTIL); - } - case 84: break; - case 39: - { return symbol(COORD); - } - case 85: break; - case 40: - { return symbol(STRING); - } - case 86: break; - case 41: - { return symbol(REPEAT); - } - case 87: break; - case 42: - { return symbol(FOREVER); - } - case 88: break; - case 43: - { return symbol(LT); - } - case 89: break; - case 44: - { return symbol(GT); - } - case 90: break; - case 45: - { return symbol(LTE); - } - case 91: break; - case 46: - { return symbol(GTE); - } - case 92: break; + case 16: break; default: zzScanError(ZZ_NO_MATCH); } diff --git a/compiler/src/java.flex b/compiler/src/java.flex index 676431a..cef9a93 100644 --- a/compiler/src/java.flex +++ b/compiler/src/java.flex @@ -54,15 +54,26 @@ InputCharacter = [^\r\n] WhiteSpace = {LineTerminator} | [ \t\f] +/*Comments*/ +Comment = {TraditionalComment}|{EndOfLineComment}|{DocumentationComment} +TraditionalComment = "/*" [^*] ~"*/" | "/*" "*"+ "/" +EndOfLineComment = "//" {InputCharacter}* {LineTerminator}? +DocumentationComment = "/*" "*"+ [^/*] ~"*/" + +numLiteral = ({FLit1}|{FLit2}|{FLit3}) {Exponent}? + FLit1 = [0-9]+ \. [0-9]* FLit2 = \. [0-9]+ FLit3 = [0-9]+ Exponent = [eE] [+-]? [0-9]+ +coordLiteral = (numLiteral, numLiteral, numLiteral) + /* string and character literals */ StringCharacter = [^\r\n\"\\] SingleCharacter = [^\r\n\'\\] +%state STRING, CHARLITERAL Identifier = [:jletter:][:jletterdigit:]* @@ -73,22 +84,74 @@ Identifier = [:jletter:][:jletterdigit:]* "IF" { return symbol(IF); } "END" { return symbol(END); } "ELSE" { return symbol(ELSE); } + "LOAD" { return symbol(LOAD); } + "HEAR" { return symbol(HEAR); } + "SIGNAL" { return symbol(SIGNAL); } + "BREAK" { return symbol(BREAK); } + "RETURN" { return symbol(RETURN); } + "REPEAT" { return symbol(REPEAT); } + "FOREVER" { return symbol(FOREVER); } + "UNTIL" { return symbol(UNTIL); } + "AND" { return symbol(AND); } + "OR" { return symbol(OR); } + "IS" { return symbol(IS); } + "NOT" { return symbol(NOT); } + "LESS_THAN" { return symbol(LT); } + "GREATER_THAN" { return symbol(GT); } + "LESS_THAN_OR_EQUAL_TO" { return symbol(LTE); } + "GREATER_THAN_OR_EQUAL_TO" { return symbol(GTE); } + + /* Literals */ + "TRUE" { return symbol(TRUE); } + "FALSE" { return symbol(FALSE); } + "VOID" { return symbol(VOID); } - /* seperators */ "(" { return symbol(LPAREN); } ")" { return symbol(RPAREN); } + "." { return symbol(DOT); } + "," { return symbol(COMMA); } /* operators */ + "XOR" { return symbol(XOR); } + "=" { return symbol(ASSIGN); } "\n" { return symbol(EOL);} + "+" { return symbol(PLUS);} + "-" { return symbol(MINUS);} + "*" { return symbol(MULT);} + "/" { return symbol(DIV);} + "^" { return symbol(PWR);} - /* whitespace */ - {WhiteSpace} { /* ignore */ } + /* Identifier */ + {Identifier} { return symbol(IDENTIFIER, yytext()); } + + /* string literal */ + \" { yybegin(STRING); string.setLength(0); } + + /* character literal */ + \' { yybegin(CHARLITERAL); } + + /* numeric literals */ + {numLiteral} { return symbol(NumLit, new Double(yytext())); } + /* comments */ + {Comment} { /* ignore */ } + + /* whitespace */ + {WhiteSpace} { /*Ignore*/ } } + { + \" { yybegin(YYINITIAL); return symbol(STRING_LITERAL, string.toString()); } + {StringCharacter}+ { string.append( yytext() ); } + } + + { + {SingleCharacter}\' { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, yytext().charAt(0)); } + } + /* error fallback */ -[^] { throw new RuntimeException("Illegal character \""+yytext()+ +[~] { throw new RuntimeException("Illegal character \""+yytext()+ "\" at line "+yyline+", column "+yycolumn); } //<> { return symbol(EOF); } diff --git a/compiler/src/java12.cup b/compiler/src/java12.cup index 35ecebe..456c308 100644 --- a/compiler/src/java12.cup +++ b/compiler/src/java12.cup @@ -19,22 +19,295 @@ parser code {: } :}; -non terminal Statement, IfStmt, IfElseStmt; -terminal IF, ELSE, END, LPAREN, RPAREN, EOL, lambda, Expression; +non terminal Type, ReferenceType, PrimitiveType, TypeName, MethodName, Program, Load, RoboDecl, + MemberDcl, RoboBodyDcl, FieldDcl, MethodDcl, VariableDclList, VariableDcl, VariableInitializer, + ListInitializer, Expression, NumList, AssignmentExpression, ConditionalExpression, Assignment, + LeftHandSide, ListAccess, ConditionOrExpression, ConditionAndExpression, XORExpression, EqualityExpression, + EqualityExpressionEnd, RelationalExpression, RelationalExpressionEnd, AdditiveExpression, MultiExpr, + AdditiveExpressionEnd, UnaryExpr, MultiExprEnd, Primary, MethodInvocation, FormalArgs, ArgsList, FieldAccess + ParamsList, Param, MethodHeader, HearDecl, MethodBody, ReturnType, MethodDeclarator, FormalParams, Block + BlockStmtList, BlockStmt, LocalVariableDcl, Statement, VariableDclList, StmtNoSubstmt, IfStmt, LoopStmt, + EmptyStmt, SignalStmt, ExprStmt, BreakStmt, ReturnStmt, StmtExpr, ElseIfStmt, ElseStmt, RepeatStmt, + ForeverStmt; + +//Types and id's +terminal Identifier, NUM, BOOL, STRING, COORD, LIST, NumLit, VOID; + +//Symbols +terminal DOT, COMMA, LPAREN, RPAREN, EOL, EOF, lambda, XOR, PLUS, MINUS, MULT, DIV, ASSIGN; + +//Boolean Operators +terminal AND, OR, IS, NOT, LT, GT, LTE, GTE; + +//Keywords +terminal LOAD, END, HEAR, SIGNAL, BREAK, RETURN, REPEAT, FOREVER, UNTIL; + +Type +::= ReferenceType +| PrimitiveType +; +PrimitiveType +::= NUM +| BOOL +; +ReferenceType +::= STRING +| COORD +| LIST +; + +// Names +TypeName +::= Identifier +| TypeName DOT Identifier +; +MethodName +::= TypeName +; + +// Program start +Program + ::= RoboDecl Load RoboBodyDcl EOF + ; +Load +::= LOAD LPAREN Identifier RPAREN EOL +| Load LOAD LPAREN Identifier RPAREN EOL +; +RoboDecl +::= Identifier COLON EOL +; + +// Declarations +RoboBodyDcl +::= RoboBodyDcl MemberDcl +| MemberDcl +; +MemberDcl +::= FieldDcl +| MethodDcl +| EOL +; +FieldDcl +::= Type VariableDclList EOL + ; +VariableDclList +::= VariableDcl +| VariableDclList COMMA VariableDcl +; +VariableDcl +::= Identifier VariableInitializer +| Identifier ListInitializer +; +VariableInitializer +::= Expression +| lambda +; +ListInitializer +::= NumList END Identifier +| lambda +; +NumList +::= NumList COMMA NumLit +| NumLit +; + +// Expressions +Expression +::= AssignmentExpression +; +AssignmentExpression +::= ConditionalExpression +| Assignment +; +Assignment +::= LeftHandSide ASSIGN Expression +; +LeftHandSide +::= TypeName +| ListAcces +; +ListAcces +::= Identifier DOT id LPAREN Identifier RPAREN +; +ConditionalExpression +::= ConditionOrExpression +; +ConditionOrExpression +::= ConditionAndExpression +| ConditionOrExpression OR ConditionAndExpression +; +CondtionAndExpression +::= XORExpression +| ConditionalAndExpression AND XORExpression +; +XORExpression +::= EqualityExpression +| XORExpression XOR EqualityExpression +; +EqualityExpression +::= RelationExpression +| EqualityExpression EqualityExpressionEnd +; +EqualityExpressionEnd + ::= IS RelationExpression + | NOT RelationExpression + ; +RelationalExpression + ::= AdditiveExpression + | RelationalExpression RelationalExpressionEnd +; +RelationalExpressionEnd + ::= LT AdditiveExpression + | GT AdditiveExpression + | LTE AdditiveExpression + | GTE AdditiveExpression + ; +AdditiveExpression +::= MultiExpr + | AdditiveExpression AdditiveExpressionEnd +; +AdditiveExpressionEnd + ::= PLUS MultiExpr + | MINUS MultiExpr + ; +MultiExpr +::= UnaryExpr + | MultiExpr MultiExprEnd +; +MultiExprEnd + ::= MULT UnaryExpr + | DIV UnaryExpr + ; +UnaryExpr + ::= PLUS UnaryExpr + | MINUS UnaryExpr + | Primary + ; + +// Values and ID’s +Primary + ::= Literal + | LPAREN Expression RPAREN + | ListAccess + | MethodInvocation + | FieldAccess + ; +MethodInvocation + ::= MethodName LPAREN FormalArgs RPAREN + ; +FormalArgs +::= ArgsList +| lambda +; +FieldAccess + ::= TypeName + ; + +// Methods (params, args and declarations) +ArgsList + ::= ArgsList COMMA Expression +| Expression +; + +FormalParams + ::= ParamsList + | lambda + ; +ParamsList +::= ParamsList COMMA Param + | Param + ; +Param + ::= Type Identifier + ; + +MethodDcl + ::= MethodHeader MethodBody + | HearDecl + ; +MethodHeader + ::= ReturnType MethodDeclarator + ; +ReturnType + ::= Type + | VOID + ; +MethodDeclarator + ::= Identifier LPAREN FormalParams RPAREN + ; +MethodBody + ::= Block END id + ; +HearDecl + ::= HEAR id LPAREN Formal Params RPAREN Block END Hear + ; + +//If, loop and statements +Block + ::= BlockStmtList + | lambda + ; +BlockStmtList + ::= BlockStmtList BlockStmt + ; +BlockStmt + ::= LocalVariableDcl + | Statement + ; +LocalVariable + ::= Type VariableDclList EOL + ; Statement - ::= IfStmt - | IfElseStmt - | lambda - ; + ::= StmtNoSubstmt + | IfStmt + | LoopStmt + ; +StmtNoSubstmt + ::= Block + | EmptyStmt + | SignalStmt + | ExprStmt + | BreakStmt + | ReturnStmt + ; +EmptyStmt + ::= EOL + ; +SignalStmt + ::= SIGNAL id LPAREN ArgsList RPAREN EOL +ExprStmt + ::= StmtExpr EOL + ; +StmtExpr + ::= Assignment + | MethodInvocation + ; +BreakStmt + ::= BREAK EOL + ; +Return + ::= RETURN Expression EOL + ; + IfStmt - ::= IF LPAREN Expresstion RPAREN EOL - Statement - END IF - | IF LPAREN Expression RPAREN EOL - Statement - END IF - ELSE - Statement - END ELSE - ; \ No newline at end of file + ::= IF LPAREN Expression RPAREN EOL Block END IF ElseIfStmt ElseStmt + ; +ElseIfStmt +::= ElseIfStmt ELSE IF LPAREN Expression RPAREN EOL Block END ELSEIF +| lambda +; +ElseStmt +::= ELSE EOL Block END ELSE +| lambda +; +LoopStmt + ::= RepeatStmt + | ForeverStmt + ; +RepeatStmt + ::= REPEAT UNTIL LPAREN Expression RPAREN EOL Block END REPEAT + ; +Forever + ::= FOREVER EOL Block END FOREVER + ; \ No newline at end of file From 9eb5274b8f8b84b47288d3080144af3d58b38730 Mon Sep 17 00:00:00 2001 From: Lee Paludan Date: Tue, 15 Mar 2016 14:30:30 +0100 Subject: [PATCH 39/55] New Grammer and such --- compiler/src/Main.java | 1 - compiler/src/Scanner.java | 748 ++++++++++++++++--------------- compiler/src/Scanner.java~ | 676 +++++++++++++++++++++------- compiler/src/UnicodeEscapes.java | 2 +- compiler/src/cancer | 21 +- compiler/src/java.flex | 14 +- compiler/src/java12.cup | 88 ++-- 7 files changed, 956 insertions(+), 594 deletions(-) diff --git a/compiler/src/Main.java b/compiler/src/Main.java index 4d5f64a..8e3695c 100644 --- a/compiler/src/Main.java +++ b/compiler/src/Main.java @@ -3,7 +3,6 @@ */ import java_cup.*; - import java.io.FileReader; public class Main { diff --git a/compiler/src/Scanner.java b/compiler/src/Scanner.java index fb23ac3..d442327 100644 --- a/compiler/src/Scanner.java +++ b/compiler/src/Scanner.java @@ -6,7 +6,7 @@ /** * This class is a scanner generated by * JFlex 1.6.1 - * from the specification file C:/Users/Nete/Documents/GitHub/P4/Compiler/src/java.flex + * from the specification file /Users/Lee/Documents/P4/compiler/src/java.flex */ public class Scanner implements sym, java_cup.runtime.Scanner { @@ -35,149 +35,137 @@ public class Scanner implements sym, java_cup.runtime.Scanner { * Translates characters to character classes */ private static final String ZZ_CMAP_PACKED = - "\11\21\1\3\1\2\1\0\1\3\1\1\16\21\4\0\1\3\1\0"+ - "\1\16\1\0\1\12\2\0\1\17\1\44\1\45\1\5\1\50\1\15"+ - "\1\11\1\7\1\4\12\6\3\0\1\47\3\0\1\30\1\34\1\12"+ - "\1\25\1\10\1\23\1\33\1\31\1\22\1\12\1\35\1\13\1\12"+ - "\1\24\1\27\1\40\1\43\1\32\1\26\1\36\1\37\1\41\1\12"+ - "\1\46\2\12\1\0\1\20\1\0\1\51\1\42\1\0\1\12\3\12"+ - "\1\14\3\12\1\12\2\12\1\12\1\12\1\12\3\12\1\12\1\12"+ - "\1\12\1\12\5\12\3\0\1\52\41\21\2\0\4\12\4\0\1\12"+ - "\2\0\1\21\7\0\1\12\4\0\1\12\5\0\27\12\1\0\37\12"+ - "\1\0\u01ca\12\4\0\14\12\16\0\5\12\7\0\1\12\1\0\1\12"+ - "\21\0\160\21\5\12\1\0\2\12\2\0\4\12\10\0\1\12\1\0"+ - "\3\12\1\0\1\12\1\0\24\12\1\0\123\12\1\0\213\12\1\0"+ - "\5\21\2\0\236\12\11\0\46\12\2\0\1\12\7\0\47\12\7\0"+ - "\1\12\1\0\55\21\1\0\1\21\1\0\2\21\1\0\2\21\1\0"+ - "\1\21\10\0\33\12\5\0\3\12\15\0\5\21\6\0\1\12\4\0"+ - "\13\21\5\0\53\12\37\21\4\0\2\12\1\21\143\12\1\0\1\12"+ - "\10\21\1\0\6\21\2\12\2\21\1\0\4\21\2\12\12\21\3\12"+ - "\2\0\1\12\17\0\1\21\1\12\1\21\36\12\33\21\2\0\131\12"+ - "\13\21\1\12\16\0\12\21\41\12\11\21\2\12\4\0\1\12\5\0"+ - "\26\12\4\21\1\12\11\21\1\12\3\21\1\12\5\21\22\0\31\12"+ - "\3\21\104\0\1\12\1\0\13\12\67\0\33\21\1\0\4\21\66\12"+ - "\3\21\1\12\22\21\1\12\7\21\12\12\2\21\2\0\12\21\1\0"+ - "\7\12\1\0\7\12\1\0\3\21\1\0\10\12\2\0\2\12\2\0"+ - "\26\12\1\0\7\12\1\0\1\12\3\0\4\12\2\0\1\21\1\12"+ - "\7\21\2\0\2\21\2\0\3\21\1\12\10\0\1\21\4\0\2\12"+ - "\1\0\3\12\2\21\2\0\12\21\4\12\7\0\1\12\5\0\3\21"+ - "\1\0\6\12\4\0\2\12\2\0\26\12\1\0\7\12\1\0\2\12"+ - "\1\0\2\12\1\0\2\12\2\0\1\21\1\0\5\21\4\0\2\21"+ - "\2\0\3\21\3\0\1\21\7\0\4\12\1\0\1\12\7\0\14\21"+ - "\3\12\1\21\13\0\3\21\1\0\11\12\1\0\3\12\1\0\26\12"+ - "\1\0\7\12\1\0\2\12\1\0\5\12\2\0\1\21\1\12\10\21"+ - "\1\0\3\21\1\0\3\21\2\0\1\12\17\0\2\12\2\21\2\0"+ - "\12\21\1\0\1\12\17\0\3\21\1\0\10\12\2\0\2\12\2\0"+ - "\26\12\1\0\7\12\1\0\2\12\1\0\5\12\2\0\1\21\1\12"+ - "\7\21\2\0\2\21\2\0\3\21\10\0\2\21\4\0\2\12\1\0"+ - "\3\12\2\21\2\0\12\21\1\0\1\12\20\0\1\21\1\12\1\0"+ - "\6\12\3\0\3\12\1\0\4\12\3\0\2\12\1\0\1\12\1\0"+ - "\2\12\3\0\2\12\3\0\3\12\3\0\14\12\4\0\5\21\3\0"+ - "\3\21\1\0\4\21\2\0\1\12\6\0\1\21\16\0\12\21\11\0"+ - "\1\12\7\0\3\21\1\0\10\12\1\0\3\12\1\0\27\12\1\0"+ - "\12\12\1\0\5\12\3\0\1\12\7\21\1\0\3\21\1\0\4\21"+ - "\7\0\2\21\1\0\2\12\6\0\2\12\2\21\2\0\12\21\22\0"+ - "\2\21\1\0\10\12\1\0\3\12\1\0\27\12\1\0\12\12\1\0"+ - "\5\12\2\0\1\21\1\12\7\21\1\0\3\21\1\0\4\21\7\0"+ - "\2\21\7\0\1\12\1\0\2\12\2\21\2\0\12\21\1\0\2\12"+ - "\17\0\2\21\1\0\10\12\1\0\3\12\1\0\51\12\2\0\1\12"+ - "\7\21\1\0\3\21\1\0\4\21\1\12\10\0\1\21\10\0\2\12"+ - "\2\21\2\0\12\21\12\0\6\12\2\0\2\21\1\0\22\12\3\0"+ - "\30\12\1\0\11\12\1\0\1\12\2\0\7\12\3\0\1\21\4\0"+ - "\6\21\1\0\1\21\1\0\10\21\22\0\2\21\15\0\60\12\1\21"+ - "\2\12\7\21\4\0\10\12\10\21\1\0\12\21\47\0\2\12\1\0"+ - "\1\12\2\0\2\12\1\0\1\12\2\0\1\12\6\0\4\12\1\0"+ - "\7\12\1\0\3\12\1\0\1\12\1\0\1\12\2\0\2\12\1\0"+ - "\4\12\1\21\2\12\6\21\1\0\2\21\1\12\2\0\5\12\1\0"+ - "\1\12\1\0\6\21\2\0\12\21\2\0\4\12\40\0\1\12\27\0"+ - "\2\21\6\0\12\21\13\0\1\21\1\0\1\21\1\0\1\21\4\0"+ - "\2\21\10\12\1\0\44\12\4\0\24\21\1\0\2\21\5\12\13\21"+ - "\1\0\44\21\11\0\1\21\71\0\53\12\24\21\1\12\12\21\6\0"+ - "\6\12\4\21\4\12\3\21\1\12\3\21\2\12\7\21\3\12\4\21"+ - "\15\12\14\21\1\12\17\21\2\0\46\12\1\0\1\12\5\0\1\12"+ - "\2\0\53\12\1\0\u014d\12\1\0\4\12\2\0\7\12\1\0\1\12"+ - "\1\0\4\12\2\0\51\12\1\0\4\12\2\0\41\12\1\0\4\12"+ - "\2\0\7\12\1\0\1\12\1\0\4\12\2\0\17\12\1\0\71\12"+ - "\1\0\4\12\2\0\103\12\2\0\3\21\40\0\20\12\20\0\125\12"+ - "\14\0\u026c\12\2\0\21\12\1\0\32\12\5\0\113\12\3\0\3\12"+ - "\17\0\15\12\1\0\4\12\3\21\13\0\22\12\3\21\13\0\22\12"+ - "\2\21\14\0\15\12\1\0\3\12\1\0\2\21\14\0\64\12\40\21"+ - "\3\0\1\12\3\0\2\12\1\21\2\0\12\21\41\0\3\21\2\0"+ - "\12\21\6\0\130\12\10\0\51\12\1\21\1\12\5\0\106\12\12\0"+ - "\35\12\3\0\14\21\4\0\14\21\12\0\12\21\36\12\2\0\5\12"+ - "\13\0\54\12\4\0\21\21\7\12\2\21\6\0\12\21\46\0\27\12"+ - "\5\21\4\0\65\12\12\21\1\0\35\21\2\0\13\21\6\0\12\21"+ - "\15\0\1\12\130\0\5\21\57\12\21\21\7\12\4\0\12\21\21\0"+ - "\11\21\14\0\3\21\36\12\15\21\2\12\12\21\54\12\16\21\14\0"+ - "\44\12\24\21\10\0\12\21\3\0\3\12\12\21\44\12\122\0\3\21"+ - "\1\0\25\21\4\12\1\21\4\12\3\21\2\12\11\0\300\12\47\21"+ - "\25\0\4\21\u0116\12\2\0\6\12\2\0\46\12\2\0\6\12\2\0"+ - "\10\12\1\0\1\12\1\0\1\12\1\0\1\12\1\0\37\12\2\0"+ - "\65\12\1\0\7\12\1\0\1\12\3\0\3\12\1\0\7\12\3\0"+ - "\4\12\2\0\6\12\4\0\15\12\5\0\3\12\1\0\7\12\16\0"+ - "\5\21\32\0\5\21\20\0\2\12\23\0\1\12\13\0\5\21\5\0"+ - "\6\21\1\0\1\12\15\0\1\12\20\0\15\12\3\0\33\12\25\0"+ - "\15\21\4\0\1\21\3\0\14\21\21\0\1\12\4\0\1\12\2\0"+ - "\12\12\1\0\1\12\3\0\5\12\6\0\1\12\1\0\1\12\1\0"+ - "\1\12\1\0\4\12\1\0\13\12\2\0\4\12\5\0\5\12\4\0"+ - "\1\12\21\0\51\12\u0a77\0\57\12\1\0\57\12\1\0\205\12\6\0"+ - "\4\12\3\21\2\12\14\0\46\12\1\0\1\12\5\0\1\12\2\0"+ - "\70\12\7\0\1\12\17\0\1\21\27\12\11\0\7\12\1\0\7\12"+ - "\1\0\7\12\1\0\7\12\1\0\7\12\1\0\7\12\1\0\7\12"+ - "\1\0\7\12\1\0\40\21\57\0\1\12\u01d5\0\3\12\31\0\11\12"+ - "\6\21\1\0\5\12\2\0\5\12\4\0\126\12\2\0\2\21\2\0"+ - "\3\12\1\0\132\12\1\0\4\12\5\0\51\12\3\0\136\12\21\0"+ - "\33\12\65\0\20\12\u0200\0\u19b6\12\112\0\u51cd\12\63\0\u048d\12\103\0"+ - "\56\12\2\0\u010d\12\3\0\20\12\12\21\2\12\24\0\57\12\1\21"+ - "\4\0\12\21\1\0\31\12\7\0\1\21\120\12\2\21\45\0\11\12"+ - "\2\0\147\12\2\0\4\12\1\0\4\12\14\0\13\12\115\0\12\12"+ - "\1\21\3\12\1\21\4\12\1\21\27\12\5\21\20\0\1\12\7\0"+ - "\64\12\14\0\2\21\62\12\21\21\13\0\12\21\6\0\22\21\6\12"+ - "\3\0\1\12\4\0\12\21\34\12\10\21\2\0\27\12\15\21\14\0"+ - "\35\12\3\0\4\21\57\12\16\21\16\0\1\12\12\21\46\0\51\12"+ - "\16\21\11\0\3\12\1\21\10\12\2\21\2\0\12\21\6\0\27\12"+ - "\3\0\1\12\1\21\4\0\60\12\1\21\1\12\3\21\2\12\2\21"+ - "\5\12\2\21\1\12\1\21\1\12\30\0\3\12\2\0\13\12\5\21"+ - "\2\0\3\12\2\21\12\0\6\12\2\0\6\12\2\0\6\12\11\0"+ - "\7\12\1\0\7\12\221\0\43\12\10\21\1\0\2\21\2\0\12\21"+ - "\6\0\u2ba4\12\14\0\27\12\4\0\61\12\u2104\0\u016e\12\2\0\152\12"+ - "\46\0\7\12\14\0\5\12\5\0\1\12\1\21\12\12\1\0\15\12"+ - "\1\0\5\12\1\0\1\12\1\0\2\12\1\0\2\12\1\0\154\12"+ - "\41\0\u016b\12\22\0\100\12\2\0\66\12\50\0\15\12\3\0\20\21"+ - "\20\0\7\21\14\0\2\12\30\0\3\12\31\0\1\12\6\0\5\12"+ - "\1\0\207\12\2\0\1\21\4\0\1\12\13\0\12\21\7\0\32\12"+ - "\4\0\1\12\1\0\32\12\13\0\131\12\3\0\6\12\2\0\6\12"+ - "\2\0\6\12\2\0\3\12\3\0\2\12\3\0\2\12\22\0\3\21"+ - "\4\0\14\12\1\0\32\12\1\0\23\12\1\0\2\12\1\0\17\12"+ - "\2\0\16\12\42\0\173\12\105\0\65\12\210\0\1\21\202\0\35\12"+ - "\3\0\61\12\57\0\37\12\21\0\33\12\65\0\36\12\2\0\44\12"+ - "\4\0\10\12\1\0\5\12\52\0\236\12\2\0\12\21\u0356\0\6\12"+ - "\2\0\1\12\1\0\54\12\1\0\2\12\3\0\1\12\2\0\27\12"+ - "\252\0\26\12\12\0\32\12\106\0\70\12\6\0\2\12\100\0\1\12"+ - "\3\21\1\0\2\21\5\0\4\21\4\12\1\0\3\12\1\0\33\12"+ - "\4\0\3\21\4\0\1\21\40\0\35\12\203\0\66\12\12\0\26\12"+ - "\12\0\23\12\215\0\111\12\u03b7\0\3\21\65\12\17\21\37\0\12\21"+ - "\20\0\3\21\55\12\13\21\2\0\1\21\22\0\31\12\7\0\12\21"+ - "\6\0\3\21\44\12\16\21\1\0\12\21\100\0\3\21\60\12\16\21"+ - "\4\12\13\0\12\21\u04a6\0\53\12\15\21\10\0\12\21\u0936\0\u036f\12"+ - "\221\0\143\12\u0b9d\0\u042f\12\u33d1\0\u0239\12\u04c7\0\105\12\13\0\1\12"+ - "\56\21\20\0\4\21\15\12\u4060\0\2\12\u2163\0\5\21\3\0\26\21"+ - "\2\0\7\21\36\0\4\21\224\0\3\21\u01bb\0\125\12\1\0\107\12"+ - "\1\0\2\12\2\0\1\12\2\0\2\12\2\0\4\12\1\0\14\12"+ - "\1\0\1\12\1\0\7\12\1\0\101\12\1\0\4\12\2\0\10\12"+ - "\1\0\7\12\1\0\34\12\1\0\4\12\1\0\5\12\1\0\1\12"+ - "\3\0\7\12\1\0\u0154\12\2\0\31\12\1\0\31\12\1\0\37\12"+ - "\1\0\31\12\1\0\37\12\1\0\31\12\1\0\37\12\1\0\31\12"+ - "\1\0\37\12\1\0\31\12\1\0\10\12\2\0\62\21\u1600\0\4\12"+ - "\1\0\33\12\1\0\2\12\1\0\1\12\2\0\1\12\1\0\12\12"+ - "\1\0\4\12\1\0\1\12\1\0\1\12\6\0\1\12\4\0\1\12"+ - "\1\0\1\12\1\0\1\12\1\0\3\12\1\0\2\12\1\0\1\12"+ - "\2\0\1\12\1\0\1\12\1\0\1\12\1\0\1\12\1\0\1\12"+ - "\1\0\2\12\1\0\1\12\2\0\4\12\1\0\7\12\1\0\4\12"+ - "\1\0\4\12\1\0\1\12\1\0\12\12\1\0\21\12\5\0\3\12"+ - "\1\0\5\12\1\0\21\12\u1144\0\ua6d7\12\51\0\u1035\12\13\0\336\12"+ - "\u3fe2\0\u021e\12\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05ee\0"+ - "\1\21\36\0\140\21\200\0\360\21\uffff\0\uffff\0\ufe12\0"; + "\11\31\1\3\1\2\1\0\1\3\1\1\16\31\4\0\1\3\1\0"+ + "\1\12\1\0\1\30\2\0\1\13\1\54\1\55\1\5\1\61\1\27"+ + "\1\11\1\7\1\4\12\6\1\56\2\0\1\60\3\0\1\40\1\44"+ + "\1\30\1\35\1\10\1\33\1\43\1\41\1\32\1\30\1\45\1\20"+ + "\1\30\1\34\1\37\1\50\1\53\1\42\1\36\1\46\1\47\1\51"+ + "\1\30\1\57\2\30\1\0\1\14\2\0\1\52\1\0\1\25\3\30"+ + "\1\23\3\30\1\21\2\30\1\26\1\17\1\15\3\30\1\24\1\30"+ + "\1\22\1\16\5\30\3\0\1\62\41\31\2\0\4\30\4\0\1\30"+ + "\2\0\1\31\7\0\1\30\4\0\1\30\5\0\27\30\1\0\37\30"+ + "\1\0\u01ca\30\4\0\14\30\16\0\5\30\7\0\1\30\1\0\1\30"+ + "\21\0\160\31\5\30\1\0\2\30\2\0\4\30\10\0\1\30\1\0"+ + "\3\30\1\0\1\30\1\0\24\30\1\0\123\30\1\0\213\30\1\0"+ + "\5\31\2\0\236\30\11\0\46\30\2\0\1\30\7\0\47\30\11\0"+ + "\55\31\1\0\1\31\1\0\2\31\1\0\2\31\1\0\1\31\10\0"+ + "\33\30\5\0\3\30\15\0\4\31\7\0\1\30\4\0\13\31\5\0"+ + "\53\30\37\31\4\0\2\30\1\31\143\30\1\0\1\30\10\31\1\0"+ + "\6\31\2\30\2\31\1\0\4\31\2\30\12\31\3\30\2\0\1\30"+ + "\17\0\1\31\1\30\1\31\36\30\33\31\2\0\131\30\13\31\1\30"+ + "\16\0\12\31\41\30\11\31\2\30\4\0\1\30\5\0\26\30\4\31"+ + "\1\30\11\31\1\30\3\31\1\30\5\31\22\0\31\30\3\31\244\0"+ + "\4\31\66\30\3\31\1\30\22\31\1\30\7\31\12\30\2\31\2\0"+ + "\12\31\1\0\7\30\1\0\7\30\1\0\3\31\1\0\10\30\2\0"+ + "\2\30\2\0\26\30\1\0\7\30\1\0\1\30\3\0\4\30\2\0"+ + "\1\31\1\30\7\31\2\0\2\31\2\0\3\31\1\30\10\0\1\31"+ + "\4\0\2\30\1\0\3\30\2\31\2\0\12\31\4\30\7\0\1\30"+ + "\5\0\3\31\1\0\6\30\4\0\2\30\2\0\26\30\1\0\7\30"+ + "\1\0\2\30\1\0\2\30\1\0\2\30\2\0\1\31\1\0\5\31"+ + "\4\0\2\31\2\0\3\31\3\0\1\31\7\0\4\30\1\0\1\30"+ + "\7\0\14\31\3\30\1\31\13\0\3\31\1\0\11\30\1\0\3\30"+ + "\1\0\26\30\1\0\7\30\1\0\2\30\1\0\5\30\2\0\1\31"+ + "\1\30\10\31\1\0\3\31\1\0\3\31\2\0\1\30\17\0\2\30"+ + "\2\31\2\0\12\31\1\0\1\30\17\0\3\31\1\0\10\30\2\0"+ + "\2\30\2\0\26\30\1\0\7\30\1\0\2\30\1\0\5\30\2\0"+ + "\1\31\1\30\7\31\2\0\2\31\2\0\3\31\10\0\2\31\4\0"+ + "\2\30\1\0\3\30\2\31\2\0\12\31\1\0\1\30\20\0\1\31"+ + "\1\30\1\0\6\30\3\0\3\30\1\0\4\30\3\0\2\30\1\0"+ + "\1\30\1\0\2\30\3\0\2\30\3\0\3\30\3\0\14\30\4\0"+ + "\5\31\3\0\3\31\1\0\4\31\2\0\1\30\6\0\1\31\16\0"+ + "\12\31\11\0\1\30\7\0\3\31\1\0\10\30\1\0\3\30\1\0"+ + "\27\30\1\0\12\30\1\0\5\30\3\0\1\30\7\31\1\0\3\31"+ + "\1\0\4\31\7\0\2\31\1\0\2\30\6\0\2\30\2\31\2\0"+ + "\12\31\22\0\2\31\1\0\10\30\1\0\3\30\1\0\27\30\1\0"+ + "\12\30\1\0\5\30\2\0\1\31\1\30\7\31\1\0\3\31\1\0"+ + "\4\31\7\0\2\31\7\0\1\30\1\0\2\30\2\31\2\0\12\31"+ + "\1\0\2\30\17\0\2\31\1\0\10\30\1\0\3\30\1\0\51\30"+ + "\2\0\1\30\7\31\1\0\3\31\1\0\4\31\1\30\10\0\1\31"+ + "\10\0\2\30\2\31\2\0\12\31\12\0\6\30\2\0\2\31\1\0"+ + "\22\30\3\0\30\30\1\0\11\30\1\0\1\30\2\0\7\30\3\0"+ + "\1\31\4\0\6\31\1\0\1\31\1\0\10\31\22\0\2\31\15\0"+ + "\60\30\1\31\2\30\7\31\4\0\10\30\10\31\1\0\12\31\47\0"+ + "\2\30\1\0\1\30\2\0\2\30\1\0\1\30\2\0\1\30\6\0"+ + "\4\30\1\0\7\30\1\0\3\30\1\0\1\30\1\0\1\30\2\0"+ + "\2\30\1\0\4\30\1\31\2\30\6\31\1\0\2\31\1\30\2\0"+ + "\5\30\1\0\1\30\1\0\6\31\2\0\12\31\2\0\2\30\42\0"+ + "\1\30\27\0\2\31\6\0\12\31\13\0\1\31\1\0\1\31\1\0"+ + "\1\31\4\0\2\31\10\30\1\0\44\30\4\0\24\31\1\0\2\31"+ + "\5\30\13\31\1\0\44\31\11\0\1\31\71\0\53\30\24\31\1\30"+ + "\12\31\6\0\6\30\4\31\4\30\3\31\1\30\3\31\2\30\7\31"+ + "\3\30\4\31\15\30\14\31\1\30\17\31\2\0\46\30\12\0\53\30"+ + "\1\0\1\30\3\0\u0149\30\1\0\4\30\2\0\7\30\1\0\1\30"+ + "\1\0\4\30\2\0\51\30\1\0\4\30\2\0\41\30\1\0\4\30"+ + "\2\0\7\30\1\0\1\30\1\0\4\30\2\0\17\30\1\0\71\30"+ + "\1\0\4\30\2\0\103\30\2\0\3\31\40\0\20\30\20\0\125\30"+ + "\14\0\u026c\30\2\0\21\30\1\0\32\30\5\0\113\30\3\0\3\30"+ + "\17\0\15\30\1\0\4\30\3\31\13\0\22\30\3\31\13\0\22\30"+ + "\2\31\14\0\15\30\1\0\3\30\1\0\2\31\14\0\64\30\40\31"+ + "\3\0\1\30\3\0\2\30\1\31\2\0\12\31\41\0\3\31\2\0"+ + "\12\31\6\0\130\30\10\0\51\30\1\31\1\30\5\0\106\30\12\0"+ + "\35\30\3\0\14\31\4\0\14\31\12\0\12\31\36\30\2\0\5\30"+ + "\13\0\54\30\4\0\21\31\7\30\2\31\6\0\12\31\46\0\27\30"+ + "\5\31\4\0\65\30\12\31\1\0\35\31\2\0\13\31\6\0\12\31"+ + "\15\0\1\30\130\0\5\31\57\30\21\31\7\30\4\0\12\31\21\0"+ + "\11\31\14\0\3\31\36\30\12\31\3\0\2\30\12\31\6\0\46\30"+ + "\16\31\14\0\44\30\24\31\10\0\12\31\3\0\3\30\12\31\44\30"+ + "\122\0\3\31\1\0\25\31\4\30\1\31\4\30\1\31\15\0\300\30"+ + "\47\31\25\0\4\31\u0116\30\2\0\6\30\2\0\46\30\2\0\6\30"+ + "\2\0\10\30\1\0\1\30\1\0\1\30\1\0\1\30\1\0\37\30"+ + "\2\0\65\30\1\0\7\30\1\0\1\30\3\0\3\30\1\0\7\30"+ + "\3\0\4\30\2\0\6\30\4\0\15\30\5\0\3\30\1\0\7\30"+ + "\16\0\5\31\32\0\5\31\20\0\2\30\23\0\1\30\13\0\5\31"+ + "\5\0\6\31\1\0\1\30\15\0\1\30\20\0\15\30\3\0\32\30"+ + "\26\0\15\31\4\0\1\31\3\0\14\31\21\0\1\30\4\0\1\30"+ + "\2\0\12\30\1\0\1\30\3\0\5\30\6\0\1\30\1\0\1\30"+ + "\1\0\1\30\1\0\4\30\1\0\13\30\2\0\4\30\5\0\5\30"+ + "\4\0\1\30\21\0\51\30\u0a77\0\57\30\1\0\57\30\1\0\205\30"+ + "\6\0\4\30\3\31\16\0\46\30\12\0\66\30\11\0\1\30\17\0"+ + "\1\31\27\30\11\0\7\30\1\0\7\30\1\0\7\30\1\0\7\30"+ + "\1\0\7\30\1\0\7\30\1\0\7\30\1\0\7\30\1\0\40\31"+ + "\57\0\1\30\u01d5\0\3\30\31\0\11\30\6\31\1\0\5\30\2\0"+ + "\5\30\4\0\126\30\2\0\2\31\2\0\3\30\1\0\132\30\1\0"+ + "\4\30\5\0\51\30\3\0\136\30\21\0\33\30\65\0\20\30\u0200\0"+ + "\u19b6\30\112\0\u51cc\30\64\0\u048d\30\103\0\56\30\2\0\u010d\30\3\0"+ + "\20\30\12\31\2\30\24\0\57\30\1\31\14\0\2\31\1\0\31\30"+ + "\10\0\120\30\2\31\45\0\11\30\2\0\147\30\2\0\4\30\1\0"+ + "\2\30\16\0\12\30\120\0\10\30\1\31\3\30\1\31\4\30\1\31"+ + "\27\30\5\31\20\0\1\30\7\0\64\30\14\0\2\31\62\30\21\31"+ + "\13\0\12\31\6\0\22\31\6\30\3\0\1\30\4\0\12\31\34\30"+ + "\10\31\2\0\27\30\15\31\14\0\35\30\3\0\4\31\57\30\16\31"+ + "\16\0\1\30\12\31\46\0\51\30\16\31\11\0\3\30\1\31\10\30"+ + "\2\31\2\0\12\31\6\0\27\30\3\0\1\30\1\31\4\0\60\30"+ + "\1\31\1\30\3\31\2\30\2\31\5\30\2\31\1\30\1\31\1\30"+ + "\30\0\3\30\43\0\6\30\2\0\6\30\2\0\6\30\11\0\7\30"+ + "\1\0\7\30\221\0\43\30\10\31\1\0\2\31\2\0\12\31\6\0"+ + "\u2ba4\30\14\0\27\30\4\0\61\30\u2104\0\u012e\30\2\0\76\30\2\0"+ + "\152\30\46\0\7\30\14\0\5\30\5\0\1\30\1\31\12\30\1\0"+ + "\15\30\1\0\5\30\1\0\1\30\1\0\2\30\1\0\2\30\1\0"+ + "\154\30\41\0\u016b\30\22\0\100\30\2\0\66\30\50\0\15\30\3\0"+ + "\20\31\20\0\7\31\14\0\2\30\30\0\3\30\31\0\1\30\6\0"+ + "\5\30\1\0\207\30\2\0\1\31\4\0\1\30\13\0\12\31\7\0"+ + "\32\30\4\0\1\30\1\0\32\30\13\0\131\30\3\0\6\30\2\0"+ + "\6\30\2\0\6\30\2\0\3\30\3\0\2\30\3\0\2\30\22\0"+ + "\3\31\4\0\14\30\1\0\32\30\1\0\23\30\1\0\2\30\1\0"+ + "\17\30\2\0\16\30\42\0\173\30\105\0\65\30\210\0\1\31\202\0"+ + "\35\30\3\0\61\30\57\0\37\30\21\0\33\30\65\0\36\30\2\0"+ + "\44\30\4\0\10\30\1\0\5\30\52\0\236\30\2\0\12\31\u0356\0"+ + "\6\30\2\0\1\30\1\0\54\30\1\0\2\30\3\0\1\30\2\0"+ + "\27\30\252\0\26\30\12\0\32\30\306\0\1\30\3\31\1\0\2\31"+ + "\5\0\4\31\4\30\1\0\3\30\1\0\33\30\4\0\3\31\4\0"+ + "\1\31\40\0\35\30\203\0\66\30\12\0\26\30\12\0\23\30\215\0"+ + "\111\30\u03b7\0\3\31\65\30\17\31\37\0\12\31\20\0\3\31\55\30"+ + "\13\31\2\0\1\31\u0f42\0\u036f\30\221\0\143\30\u0b9d\0\u042f\30\u33d1\0"+ + "\u0239\30\u45c7\0\2\30\u2163\0\5\31\3\0\26\31\2\0\7\31\36\0"+ + "\4\31\224\0\3\31\u01bb\0\125\30\1\0\107\30\1\0\2\30\2\0"+ + "\1\30\2\0\2\30\2\0\4\30\1\0\14\30\1\0\1\30\1\0"+ + "\7\30\1\0\101\30\1\0\4\30\2\0\10\30\1\0\7\30\1\0"+ + "\34\30\1\0\4\30\1\0\5\30\1\0\1\30\3\0\7\30\1\0"+ + "\u0154\30\2\0\31\30\1\0\31\30\1\0\37\30\1\0\31\30\1\0"+ + "\37\30\1\0\31\30\1\0\37\30\1\0\31\30\1\0\37\30\1\0"+ + "\31\30\1\0\10\30\2\0\62\31\u2800\0\ua6d7\30\51\0\u1035\30\13\0"+ + "\336\30\u3fe2\0\u021e\30\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05ee\0"+ + "\1\31\36\0\140\31\200\0\360\31\uffff\0\uffff\0\ufe12\0"; /** * Translates characters to character classes @@ -191,18 +179,21 @@ public class Scanner implements sym, java_cup.runtime.Scanner { private static final String ZZ_ACTION_PACKED_0 = "\3\0\1\1\1\2\1\1\1\3\1\4\1\5\1\6"+ - "\1\7\1\10\2\7\1\11\1\12\1\13\15\7\1\14"+ - "\1\15\1\7\1\16\1\17\1\20\1\21\1\22\1\23"+ - "\1\0\1\21\1\24\1\0\1\5\1\0\4\7\1\25"+ - "\1\26\4\7\1\27\11\7\1\30\2\24\1\0\1\5"+ - "\1\0\1\7\1\31\4\7\1\32\1\7\1\33\10\7"+ - "\1\34\1\35\1\7\1\36\3\7\1\37\4\7\1\40"+ - "\1\7\1\41\2\7\1\42\4\7\1\43\1\44\2\7"+ - "\1\45\1\46\1\47\2\7\1\50\3\7\1\51\6\7"+ - "\1\52\20\7\1\53\3\7\1\54"; + "\1\7\1\10\1\11\1\12\3\7\1\13\15\7\1\14"+ + "\1\15\1\16\1\7\1\17\1\20\1\21\1\22\1\23"+ + "\1\24\1\0\1\5\1\0\5\7\1\25\1\26\4\7"+ + "\1\27\11\7\2\24\1\0\1\5\1\0\1\7\1\30"+ + "\5\7\1\31\1\7\1\32\10\7\1\33\1\34\2\7"+ + "\1\35\3\7\1\36\4\7\1\37\1\7\1\40\3\7"+ + "\1\41\4\7\1\42\1\43\3\7\1\44\1\45\1\46"+ + "\3\7\1\47\5\7\1\50\4\7\1\0\2\7\1\0"+ + "\1\7\1\51\1\0\2\7\1\0\2\7\1\0\2\7"+ + "\1\0\2\7\1\0\2\7\1\0\2\7\1\0\2\7"+ + "\1\0\2\7\1\0\1\52\1\7\1\0\1\7\1\0"+ + "\1\7\1\0\1\53\7\0\1\54"; private static int [] zzUnpackAction() { - int [] result = new int[152]; + int [] result = new int[181]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -227,28 +218,32 @@ private static int zzUnpackAction(String packed, int offset, int [] result) { private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\53\0\126\0\201\0\254\0\254\0\327\0\254"+ - "\0\u0102\0\u012d\0\u0158\0\254\0\u0183\0\u01ae\0\254\0\254"+ - "\0\254\0\u01d9\0\u0204\0\u022f\0\u025a\0\u0285\0\u02b0\0\u02db"+ - "\0\u0306\0\u0331\0\u035c\0\u0387\0\u03b2\0\u03dd\0\254\0\254"+ - "\0\u0408\0\254\0\254\0\254\0\254\0\u0433\0\254\0\u045e"+ - "\0\u045e\0\u0489\0\u04b4\0\u04df\0\u050a\0\u0535\0\u0560\0\u058b"+ - "\0\u05b6\0\u0183\0\u0183\0\u05e1\0\u060c\0\u0637\0\u0662\0\u0183"+ - "\0\u068d\0\u06b8\0\u06e3\0\u070e\0\u0739\0\u0764\0\u078f\0\u07ba"+ - "\0\u07e5\0\254\0\u0810\0\254\0\u083b\0\u0866\0\u0866\0\u0891"+ - "\0\u0183\0\u08bc\0\u08e7\0\u0912\0\u093d\0\u0183\0\u0968\0\u0183"+ - "\0\u0993\0\u09be\0\u09e9\0\u0a14\0\u0a3f\0\u0a6a\0\u0a95\0\u0ac0"+ - "\0\u0183\0\u0183\0\u0aeb\0\u0183\0\u0b16\0\u0b41\0\u0b6c\0\u0183"+ - "\0\u0b97\0\u0bc2\0\u0bed\0\u0c18\0\u0183\0\u0c43\0\u0183\0\u0c6e"+ - "\0\u0c99\0\u0183\0\u0cc4\0\u0cef\0\u0d1a\0\u0d45\0\u0183\0\u0183"+ - "\0\u0d70\0\u0d9b\0\u0183\0\u0183\0\u0183\0\u0dc6\0\u0df1\0\u0183"+ - "\0\u0e1c\0\u0e47\0\u0e72\0\u0e9d\0\u0ec8\0\u0ef3\0\u0f1e\0\u0f49"+ - "\0\u0f74\0\u0f9f\0\u0fca\0\u0ff5\0\u1020\0\u104b\0\u1076\0\u10a1"+ - "\0\u10cc\0\u10f7\0\u1122\0\u114d\0\u1178\0\u11a3\0\u11ce\0\u11f9"+ - "\0\u1224\0\u124f\0\u127a\0\u0183\0\u12a5\0\u12d0\0\u12fb\0\u0183"; + "\0\0\0\63\0\146\0\231\0\314\0\314\0\377\0\314"+ + "\0\u0132\0\u0165\0\u0198\0\314\0\314\0\314\0\u01cb\0\u01fe"+ + "\0\u0231\0\314\0\u0264\0\u0297\0\u02ca\0\u02fd\0\u0330\0\u0363"+ + "\0\u0396\0\u03c9\0\u03fc\0\u042f\0\u0462\0\u0495\0\u04c8\0\314"+ + "\0\314\0\314\0\u04fb\0\314\0\314\0\314\0\u052e\0\314"+ + "\0\u0561\0\u0594\0\u05c7\0\u05fa\0\u062d\0\u0660\0\u0693\0\u06c6"+ + "\0\u06f9\0\u01fe\0\u01fe\0\u072c\0\u075f\0\u0792\0\u07c5\0\u01fe"+ + "\0\u07f8\0\u082b\0\u085e\0\u0891\0\u08c4\0\u08f7\0\u092a\0\u095d"+ + "\0\u0990\0\u09c3\0\314\0\u09f6\0\u0a29\0\u0a29\0\u0a5c\0\u01fe"+ + "\0\u0a8f\0\u0ac2\0\u0af5\0\u0b28\0\u0b5b\0\u01fe\0\u0b8e\0\u01fe"+ + "\0\u0bc1\0\u0bf4\0\u0c27\0\u0c5a\0\u0c8d\0\u0cc0\0\u0cf3\0\u0d26"+ + "\0\u01fe\0\u01fe\0\u0d59\0\u0d8c\0\u01fe\0\u0dbf\0\u0df2\0\u0e25"+ + "\0\u01fe\0\u0e58\0\u0e8b\0\u0ebe\0\u0ef1\0\u01fe\0\u0f24\0\u01fe"+ + "\0\u0f57\0\u0f8a\0\u0fbd\0\u01fe\0\u0ff0\0\u1023\0\u1056\0\u1089"+ + "\0\u01fe\0\u01fe\0\u10bc\0\u10ef\0\u1122\0\u01fe\0\u01fe\0\u01fe"+ + "\0\u1155\0\u1188\0\u11bb\0\u01fe\0\u11ee\0\u1221\0\u1254\0\u1287"+ + "\0\u12ba\0\u12ed\0\u1320\0\u1353\0\u1386\0\u13b9\0\u13ec\0\u141f"+ + "\0\u1452\0\u1485\0\u14b8\0\u14eb\0\u151e\0\u1551\0\u1584\0\u15b7"+ + "\0\u15ea\0\u161d\0\u1650\0\u1683\0\u16b6\0\u16e9\0\u171c\0\u174f"+ + "\0\u1782\0\u17b5\0\u17e8\0\u181b\0\u184e\0\u1881\0\u18b4\0\u18e7"+ + "\0\u191a\0\u194d\0\u1980\0\u19b3\0\u19e6\0\u01fe\0\u1a19\0\u1a4c"+ + "\0\u1a7f\0\u1ab2\0\u1ae5\0\u1b18\0\u01fe\0\u1b4b\0\u1b7e\0\u1bb1"+ + "\0\u1be4\0\u1c17\0\u1c4a\0\u1c7d\0\314"; private static int [] zzUnpackRowMap() { - int [] result = new int[152]; + int [] result = new int[181]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -272,164 +267,184 @@ private static int zzUnpackRowMap(String packed, int offset, int [] result) { private static final String ZZ_TRANS_PACKED_0 = "\1\0\1\4\1\5\1\6\1\7\1\10\1\11\1\12"+ - "\1\13\1\14\1\15\1\16\1\15\1\17\1\20\1\21"+ - "\2\0\1\22\1\23\1\24\1\15\1\25\1\26\1\27"+ - "\1\30\1\31\1\32\1\33\1\15\1\34\1\35\1\15"+ - "\1\36\2\15\1\37\1\40\1\41\1\42\1\43\1\44"+ - "\1\45\1\46\2\0\13\46\1\47\1\46\1\0\32\46"+ - "\1\50\2\0\14\50\2\0\31\50\1\51\2\0\1\6"+ - "\127\0\1\52\1\53\53\0\1\11\1\54\1\55\3\0"+ - "\1\55\44\0\1\54\52\0\1\15\1\0\1\15\1\0"+ - "\1\15\1\56\1\15\4\0\3\15\1\57\17\15\2\0"+ - "\1\15\12\0\1\15\1\0\1\15\1\0\3\15\4\0"+ - "\23\15\2\0\1\15\12\0\1\15\1\0\1\60\1\0"+ - "\3\15\4\0\6\15\1\61\14\15\2\0\1\15\12\0"+ - "\1\15\1\0\1\15\1\0\3\15\4\0\2\15\1\62"+ - "\2\15\1\63\15\15\2\0\1\15\12\0\1\15\1\0"+ - "\1\15\1\0\3\15\4\0\6\15\1\64\1\65\13\15"+ - "\2\0\1\15\12\0\1\15\1\0\1\15\1\0\3\15"+ - "\4\0\6\15\1\66\14\15\2\0\1\15\12\0\1\15"+ - "\1\0\1\15\1\0\3\15\4\0\1\15\1\67\21\15"+ - "\2\0\1\15\12\0\1\15\1\0\1\15\1\0\3\15"+ - "\4\0\11\15\1\70\11\15\2\0\1\15\12\0\1\15"+ - "\1\0\1\15\1\0\3\15\4\0\3\15\1\71\17\15"+ - "\2\0\1\15\12\0\1\15\1\0\1\72\1\0\3\15"+ - "\4\0\23\15\2\0\1\15\12\0\1\15\1\0\1\73"+ - "\1\0\3\15\4\0\23\15\2\0\1\15\12\0\1\15"+ - "\1\0\1\15\1\0\3\15\4\0\11\15\1\74\11\15"+ - "\2\0\1\15\12\0\1\15\1\0\1\15\1\0\3\15"+ - "\4\0\11\15\1\75\11\15\2\0\1\15\12\0\1\15"+ - "\1\0\1\15\1\0\3\15\4\0\11\15\1\76\11\15"+ - "\2\0\1\15\12\0\1\15\1\0\1\15\1\0\3\15"+ - "\4\0\3\15\1\77\17\15\2\0\1\15\12\0\1\15"+ - "\1\0\1\15\1\0\3\15\4\0\6\15\1\100\14\15"+ - "\2\0\1\15\12\0\1\15\1\0\1\15\1\0\3\15"+ - "\4\0\6\15\1\101\14\15\2\0\1\15\4\0\1\46"+ - "\2\0\13\46\1\0\1\46\1\0\32\46\17\0\1\102"+ - "\33\0\1\52\1\103\1\104\50\52\5\53\1\105\45\53"+ - "\6\0\1\54\1\0\1\55\3\0\1\55\44\0\1\106"+ - "\2\0\1\107\36\0\1\107\10\0\1\15\1\0\1\15"+ - "\1\0\3\15\4\0\5\15\1\110\15\15\2\0\1\15"+ - "\12\0\1\15\1\0\1\15\1\0\3\15\4\0\4\15"+ - "\1\111\16\15\2\0\1\15\12\0\1\15\1\0\1\15"+ - "\1\0\3\15\4\0\5\15\1\112\15\15\2\0\1\15"+ - "\12\0\1\15\1\0\1\15\1\0\3\15\4\0\7\15"+ - "\1\113\13\15\2\0\1\15\12\0\1\15\1\0\1\15"+ - "\1\0\3\15\4\0\11\15\1\114\11\15\2\0\1\15"+ - "\12\0\1\15\1\0\1\15\1\0\1\15\1\115\1\15"+ - "\4\0\23\15\2\0\1\15\12\0\1\15\1\0\1\15"+ - "\1\0\3\15\4\0\15\15\1\116\5\15\2\0\1\15"+ - "\12\0\1\15\1\0\1\15\1\0\3\15\4\0\12\15"+ - "\1\117\10\15\2\0\1\15\12\0\1\15\1\0\1\15"+ - "\1\0\3\15\4\0\4\15\1\120\16\15\2\0\1\15"+ - "\12\0\1\15\1\0\1\15\1\0\3\15\4\0\7\15"+ - "\1\121\13\15\2\0\1\15\12\0\1\15\1\0\1\15"+ - "\1\0\3\15\4\0\15\15\1\122\1\15\1\123\3\15"+ - "\2\0\1\15\12\0\1\15\1\0\1\124\1\0\3\15"+ - "\4\0\23\15\2\0\1\15\12\0\1\15\1\0\1\125"+ - "\1\0\3\15\4\0\23\15\2\0\1\15\12\0\1\15"+ - "\1\0\1\15\1\0\3\15\4\0\16\15\1\126\4\15"+ - "\2\0\1\15\12\0\1\15\1\0\1\15\1\0\3\15"+ - "\4\0\15\15\1\127\5\15\2\0\1\15\12\0\1\15"+ - "\1\0\1\15\1\0\3\15\4\0\1\15\1\130\21\15"+ - "\2\0\1\15\12\0\1\15\1\0\1\15\1\0\3\15"+ - "\4\0\11\15\1\131\11\15\2\0\1\15\6\0\1\104"+ - "\50\0\4\53\1\104\1\105\45\53\6\0\1\106\52\0"+ - "\1\15\1\0\1\132\1\0\3\15\4\0\23\15\2\0"+ - "\1\15\12\0\1\15\1\0\1\15\1\0\3\15\4\0"+ - "\5\15\1\133\15\15\2\0\1\15\12\0\1\15\1\0"+ - "\1\15\1\0\3\15\4\0\4\15\1\134\16\15\2\0"+ - "\1\15\12\0\1\15\1\0\1\135\1\0\3\15\4\0"+ - "\23\15\2\0\1\15\12\0\1\15\1\0\1\15\1\0"+ - "\3\15\4\0\5\15\1\136\15\15\2\0\1\15\12\0"+ - "\1\15\1\0\1\15\1\0\3\15\4\0\3\15\1\137"+ - "\17\15\2\0\1\15\12\0\1\15\1\0\1\15\1\0"+ - "\3\15\4\0\11\15\1\140\11\15\2\0\1\15\12\0"+ - "\1\15\1\0\1\15\1\0\3\15\4\0\16\15\1\141"+ - "\4\15\2\0\1\15\12\0\1\15\1\0\1\142\1\0"+ - "\3\15\4\0\23\15\2\0\1\15\12\0\1\15\1\0"+ - "\1\15\1\0\3\15\4\0\7\15\1\143\13\15\2\0"+ - "\1\15\12\0\1\15\1\0\1\15\1\0\3\15\4\0"+ - "\7\15\1\144\13\15\2\0\1\15\12\0\1\15\1\0"+ - "\1\145\1\0\3\15\4\0\23\15\2\0\1\15\12\0"+ - "\1\15\1\0\1\15\1\0\3\15\4\0\1\15\1\146"+ - "\21\15\2\0\1\15\12\0\1\15\1\0\1\15\1\0"+ - "\3\15\4\0\4\15\1\147\16\15\2\0\1\15\12\0"+ - "\1\15\1\0\1\15\1\0\3\15\4\0\21\15\1\150"+ - "\1\15\2\0\1\15\12\0\1\15\1\0\1\15\1\0"+ - "\3\15\4\0\20\15\1\151\2\15\2\0\1\15\12\0"+ - "\1\15\1\0\1\152\1\0\3\15\4\0\23\15\2\0"+ - "\1\15\12\0\1\15\1\0\1\15\1\0\3\15\4\0"+ - "\7\15\1\153\13\15\2\0\1\15\12\0\1\15\1\0"+ - "\1\15\1\0\3\15\4\0\11\15\1\154\11\15\2\0"+ - "\1\15\12\0\1\15\1\0\1\15\1\0\3\15\4\0"+ - "\7\15\1\155\13\15\2\0\1\15\12\0\1\15\1\0"+ - "\1\15\1\0\3\15\4\0\15\15\1\156\5\15\2\0"+ - "\1\15\12\0\1\15\1\0\1\15\1\0\3\15\4\0"+ - "\14\15\1\157\6\15\2\0\1\15\12\0\1\15\1\0"+ - "\1\15\1\0\1\15\1\160\1\15\4\0\23\15\2\0"+ - "\1\15\12\0\1\15\1\0\1\15\1\0\3\15\4\0"+ - "\15\15\1\161\5\15\2\0\1\15\12\0\1\15\1\0"+ - "\1\162\1\0\3\15\4\0\23\15\2\0\1\15\12\0"+ - "\1\15\1\0\1\15\1\0\1\15\1\163\1\15\4\0"+ - "\23\15\2\0\1\15\12\0\1\15\1\0\1\15\1\0"+ - "\3\15\4\0\3\15\1\164\17\15\2\0\1\15\12\0"+ - "\1\15\1\0\1\15\1\0\3\15\4\0\15\15\1\165"+ - "\5\15\2\0\1\15\12\0\1\15\1\0\1\166\1\0"+ - "\3\15\4\0\23\15\2\0\1\15\12\0\1\15\1\0"+ - "\1\15\1\0\3\15\4\0\10\15\1\167\12\15\2\0"+ - "\1\15\12\0\1\15\1\0\1\15\1\0\3\15\4\0"+ - "\11\15\1\170\11\15\2\0\1\15\12\0\1\15\1\0"+ - "\1\15\1\0\3\15\4\0\11\15\1\171\11\15\2\0"+ - "\1\15\12\0\1\15\1\0\1\15\1\0\3\15\4\0"+ - "\7\15\1\172\13\15\2\0\1\15\12\0\1\15\1\0"+ - "\1\15\1\0\3\15\4\0\21\15\1\173\1\15\2\0"+ - "\1\15\12\0\1\15\1\0\1\15\1\0\3\15\4\0"+ - "\3\15\1\174\17\15\2\0\1\15\12\0\1\15\1\0"+ - "\1\15\1\0\3\15\4\0\15\15\1\175\5\15\2\0"+ - "\1\15\12\0\1\15\1\0\1\15\1\0\3\15\4\0"+ - "\21\15\1\176\1\15\2\0\1\15\12\0\1\15\1\0"+ - "\1\15\1\0\3\15\4\0\10\15\1\177\12\15\2\0"+ - "\1\15\12\0\1\15\1\0\1\15\1\0\3\15\4\0"+ - "\6\15\1\200\14\15\2\0\1\15\12\0\1\15\1\0"+ - "\1\15\1\0\3\15\4\0\7\15\1\201\13\15\2\0"+ - "\1\15\12\0\1\15\1\0\1\15\1\0\3\15\4\0"+ - "\11\15\1\202\11\15\2\0\1\15\12\0\1\15\1\0"+ - "\1\15\1\0\3\15\4\0\3\15\1\203\17\15\2\0"+ - "\1\15\12\0\1\15\1\0\1\15\1\0\3\15\4\0"+ - "\21\15\1\204\1\15\2\0\1\15\12\0\1\15\1\0"+ - "\1\15\1\0\3\15\4\0\21\15\1\205\1\15\2\0"+ - "\1\15\12\0\1\15\1\0\1\206\1\0\3\15\4\0"+ - "\23\15\2\0\1\15\12\0\1\15\1\0\1\15\1\0"+ - "\3\15\4\0\6\15\1\207\14\15\2\0\1\15\12\0"+ - "\1\15\1\0\1\15\1\0\3\15\4\0\22\15\1\210"+ - "\2\0\1\15\12\0\1\15\1\0\1\15\1\0\3\15"+ - "\4\0\11\15\1\211\11\15\2\0\1\15\12\0\1\15"+ - "\1\0\1\15\1\0\3\15\4\0\16\15\1\212\4\15"+ - "\2\0\1\15\12\0\1\15\1\0\1\15\1\0\3\15"+ - "\4\0\21\15\1\213\1\15\2\0\1\15\12\0\1\15"+ - "\1\0\1\15\1\0\3\15\4\0\7\15\1\214\13\15"+ - "\2\0\1\15\12\0\1\15\1\0\1\215\1\0\3\15"+ - "\4\0\23\15\2\0\1\15\12\0\1\15\1\0\1\15"+ - "\1\0\1\15\1\216\1\15\4\0\23\15\2\0\1\15"+ - "\12\0\1\15\1\0\1\15\1\0\3\15\4\0\22\15"+ - "\1\217\2\0\1\15\12\0\1\15\1\0\1\15\1\0"+ - "\3\15\4\0\21\15\1\220\1\15\2\0\1\15\12\0"+ - "\1\15\1\0\1\15\1\0\3\15\4\0\16\15\1\221"+ - "\4\15\2\0\1\15\12\0\1\15\1\0\1\15\1\0"+ - "\3\15\4\0\15\15\1\222\5\15\2\0\1\15\12\0"+ - "\1\15\1\0\1\15\1\0\3\15\4\0\7\15\1\223"+ - "\13\15\2\0\1\15\12\0\1\15\1\0\1\15\1\0"+ - "\3\15\4\0\6\15\1\224\14\15\2\0\1\15\12\0"+ - "\1\15\1\0\1\15\1\0\1\15\1\225\1\15\4\0"+ - "\23\15\2\0\1\15\12\0\1\15\1\0\1\15\1\0"+ - "\3\15\4\0\21\15\1\226\1\15\2\0\1\15\12\0"+ - "\1\15\1\0\1\15\1\0\3\15\4\0\15\15\1\227"+ - "\5\15\2\0\1\15\12\0\1\15\1\0\1\15\1\0"+ - "\3\15\4\0\6\15\1\230\14\15\2\0\1\15\4\0"; + "\1\13\1\14\1\15\1\16\1\0\1\17\2\20\1\21"+ + "\6\20\1\22\1\20\1\0\1\23\1\24\1\25\1\20"+ + "\1\26\1\27\1\30\1\31\1\32\1\33\1\34\1\20"+ + "\1\35\1\36\1\20\1\37\2\20\1\40\1\41\1\42"+ + "\1\43\1\44\1\45\1\46\1\47\2\0\7\47\1\50"+ + "\1\47\1\0\46\47\62\0\1\46\2\0\1\6\147\0"+ + "\1\51\1\52\63\0\1\11\1\53\1\54\12\0\1\54"+ + "\45\0\1\53\62\0\1\20\1\0\1\20\4\0\3\20"+ + "\1\55\6\20\1\0\4\20\1\56\17\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\1\20\1\57\10\20"+ + "\1\0\24\20\3\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\24\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\60\4\0\12\20\1\0\7\20\1\61\14\20"+ + "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\3\20\1\62\2\20\1\63\15\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\7\20"+ + "\1\64\1\65\13\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\7\20\1\66\14\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\2\20\1\67\21\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\12\20\1\70\11\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\4\20\1\71\17\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\72\4\0\12\20\1\0\24\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\73\4\0\12\20\1\0\24\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\12\20\1\74\11\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\12\20\1\75\11\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\12\20\1\76\11\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\4\20\1\77\17\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\7\20\1\100\14\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\7\20\1\101\14\20\3\0"+ + "\1\20\3\0\1\47\2\0\7\47\1\0\1\47\1\0"+ + "\46\47\1\51\1\102\1\103\60\51\5\52\1\104\55\52"+ + "\6\0\1\53\1\0\1\54\12\0\1\54\45\0\1\105"+ + "\2\0\1\106\47\0\1\106\7\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\6\20\1\107\15\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\5\20"+ + "\1\110\16\20\3\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\2\20\1\111\7\20\1\0\24\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\6\20"+ + "\1\112\15\20\3\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\10\20\1\113\13\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\12\20"+ + "\1\114\11\20\3\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\3\20\1\115\6\20\1\0\24\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\16\20"+ + "\1\116\5\20\3\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\13\20\1\117\10\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\5\20"+ + "\1\120\16\20\3\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\10\20\1\121\13\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\16\20"+ + "\1\122\1\20\1\123\3\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\124\4\0\12\20\1\0\24\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\125\4\0\12\20\1\0\24\20"+ + "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\17\20\1\126\4\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\16\20\1\127\5\20"+ + "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\2\20\1\130\21\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\12\20\1\131\11\20"+ + "\3\0\1\20\5\0\1\103\60\0\4\52\1\103\1\104"+ + "\55\52\6\0\1\105\62\0\1\20\1\0\1\132\4\0"+ + "\12\20\1\0\24\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\3\20\1\133\6\20\1\0\24\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\6\20\1\134\15\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\5\20\1\135\16\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\136\4\0\12\20\1\0"+ + "\24\20\3\0\1\20\11\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\6\20\1\137\15\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\4\20\1\140"+ + "\17\20\3\0\1\20\11\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\12\20\1\141\11\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\17\20\1\142"+ + "\4\20\3\0\1\20\11\0\1\20\1\0\1\143\4\0"+ + "\12\20\1\0\24\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\10\20\1\144\13\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\10\20\1\145\13\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\146\4\0\12\20\1\0\24\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\2\20\1\147"+ + "\21\20\3\0\1\20\11\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\5\20\1\150\16\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\4\20\1\151\5\20\1\0"+ + "\24\20\3\0\1\20\11\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\22\20\1\152\1\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\21\20\1\153"+ + "\2\20\3\0\1\20\11\0\1\20\1\0\1\154\4\0"+ + "\12\20\1\0\24\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\10\20\1\155\13\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\12\20\1\156\11\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\10\20\1\157\13\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\16\20\1\160\5\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\15\20\1\161\6\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\3\20\1\162"+ + "\6\20\1\0\24\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\5\20\1\163\4\20\1\0\24\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\16\20\1\164\5\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\165\4\0\12\20\1\0\24\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\3\20\1\166\6\20\1\0"+ + "\24\20\3\0\1\20\11\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\4\20\1\167\17\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\16\20\1\170"+ + "\5\20\3\0\1\20\11\0\1\20\1\0\1\171\4\0"+ + "\12\20\1\0\24\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\6\20\1\172\3\20\1\0\24\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\11\20\1\173\12\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\12\20\1\174\11\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\12\20\1\175\11\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\7\20\1\176\2\20\1\0\24\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\10\20\1\177\13\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\22\20\1\200\1\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\10\20\1\201"+ + "\1\20\1\0\24\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\4\20\1\202\17\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\16\20\1\203\5\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\11\20\1\204\1\0\24\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\22\20"+ + "\1\205\1\20\3\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\11\20\1\206\12\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\207\24\20"+ + "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\7\20\1\210\14\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\10\20\1\211\13\20"+ + "\3\0\1\20\20\0\1\212\53\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\12\20\1\213\11\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\4\20"+ + "\1\214\17\20\3\0\1\20\21\0\1\215\52\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\22\20\1\216\1\20"+ + "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\22\20\1\217\1\20\3\0\1\20\22\0\1\220"+ + "\51\0\1\20\1\0\1\221\4\0\12\20\1\0\24\20"+ + "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\7\20\1\222\14\20\3\0\1\20\23\0\1\223"+ + "\50\0\1\20\1\0\1\20\4\0\12\20\1\0\23\20"+ + "\1\224\3\0\1\20\11\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\12\20\1\225\11\20\3\0\1\20\24\0"+ + "\1\226\47\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\17\20\1\227\4\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\22\20\1\230\1\20\3\0"+ + "\1\20\25\0\1\231\46\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\10\20\1\232\13\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\233\4\0\12\20\1\0\24\20\3\0"+ + "\1\20\26\0\1\234\45\0\1\20\1\0\1\20\4\0"+ + "\3\20\1\235\6\20\1\0\24\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\23\20\1\236"+ + "\3\0\1\20\27\0\1\237\44\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\22\20\1\240\1\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\17\20"+ + "\1\241\4\20\3\0\1\20\30\0\1\242\43\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\16\20\1\243\5\20"+ + "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\10\20\1\244\13\20\3\0\1\20\31\0\1\245"+ + "\42\0\1\20\1\0\1\20\4\0\12\20\1\0\7\20"+ + "\1\246\14\20\3\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\3\20\1\247\6\20\1\0\24\20\3\0\1\20"+ + "\32\0\1\250\41\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\22\20\1\251\1\20\3\0\1\20\20\0\1\252"+ + "\53\0\1\20\1\0\1\20\4\0\12\20\1\0\16\20"+ + "\1\253\5\20\3\0\1\20\21\0\1\254\52\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\7\20\1\255\14\20"+ + "\3\0\1\20\22\0\1\256\63\0\1\257\63\0\1\260"+ + "\63\0\1\261\63\0\1\262\63\0\1\263\63\0\1\264"+ + "\63\0\1\265\34\0"; private static int [] zzUnpackTrans() { - int [] result = new int[4902]; + int [] result = new int[7344]; int offset = 0; offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); return result; @@ -467,13 +482,16 @@ private static int zzUnpackTrans(String packed, int offset, int [] result) { private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\3\0\1\1\2\11\1\1\1\11\3\1\1\11\2\1"+ - "\3\11\15\1\2\11\1\1\4\11\1\1\1\11\1\0"+ - "\2\1\1\0\1\1\1\0\24\1\1\11\1\1\1\11"+ - "\1\0\1\1\1\0\121\1"; + "\3\0\1\1\2\11\1\1\1\11\3\1\3\11\3\1"+ + "\1\11\15\1\3\11\1\1\3\11\1\1\1\11\1\1"+ + "\1\0\1\1\1\0\26\1\1\11\1\0\1\1\1\0"+ + "\100\1\1\0\2\1\1\0\2\1\1\0\2\1\1\0"+ + "\2\1\1\0\2\1\1\0\2\1\1\0\2\1\1\0"+ + "\2\1\1\0\2\1\1\0\2\1\1\0\2\1\1\0"+ + "\1\1\1\0\1\1\1\0\1\1\7\0\1\11"; private static int [] zzUnpackAttribute() { - int [] result = new int[152]; + int [] result = new int[181]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; @@ -598,7 +616,7 @@ public Scanner(java.io.Reader in) { char [] map = new char[0x110000]; int i = 0; /* index in packed string */ int j = 0; /* index in unpacked array */ - while (i < 2864) { + while (i < 2626) { int count = packed.charAt(i++); char value = packed.charAt(i++); do map[j++] = value; while (--count > 0); @@ -987,7 +1005,7 @@ else if (zzAtEOF) { } case 50: break; case 7: - { return symbol(IDENTIFIER, yytext()); + { return symbol(Identifier, yytext()); } case 51: break; case 8: @@ -995,15 +1013,15 @@ else if (zzAtEOF) { } case 52: break; case 9: - { return symbol(COMMA); + { yybegin(STRING); string.setLength(0); } case 53: break; case 10: - { yybegin(STRING); string.setLength(0); + { yybegin(CHARLITERAL); } case 54: break; case 11: - { yybegin(CHARLITERAL); + { return symbol(COMMA); } case 55: break; case 12: @@ -1015,15 +1033,15 @@ else if (zzAtEOF) { } case 57: break; case 14: - { return symbol(ASSIGN); + { return symbol(COLON); } case 58: break; case 15: - { return symbol(PLUS); + { return symbol(ASSIGN); } case 59: break; case 16: - { return symbol(PWR); + { return symbol(PLUS); } case 60: break; case 17: @@ -1036,7 +1054,7 @@ else if (zzAtEOF) { } case 62: break; case 19: - { yybegin(YYINITIAL); return symbol(STRING_LITERAL, string.toString()); + { yybegin(YYINITIAL); return symbol(StringLit, string.toString()); } case 63: break; case 20: @@ -1056,87 +1074,87 @@ else if (zzAtEOF) { } case 67: break; case 24: - { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, yytext().charAt(0)); + { return symbol(END); } case 68: break; case 25: - { return symbol(END); + { return symbol(NOT); } case 69: break; case 26: - { return symbol(NOT); + { return symbol(AND); } case 70: break; case 27: - { return symbol(AND); + { return symbol(XOR); } case 71: break; case 28: - { return symbol(XOR); + { return symbol(ELSE); } case 72: break; case 29: - { return symbol(ELSE); + { return symbol(LOAD); } case 73: break; case 30: - { return symbol(LOAD); + { return symbol(HEAR); } case 74: break; case 31: - { return symbol(HEAR); + { return symbol(TRUE); } case 75: break; case 32: - { return symbol(TRUE); + { return symbol(VOID); } case 76: break; case 33: - { return symbol(VOID); + { return symbol(FALSE); } case 77: break; case 34: - { return symbol(FALSE); + { return symbol(BREAK); } case 78: break; case 35: - { return symbol(BREAK); + { return symbol(UNTIL); } case 79: break; case 36: - { return symbol(UNTIL); + { return symbol(SIGNAL); } case 80: break; case 37: - { return symbol(SIGNAL); + { return symbol(RETURN); } case 81: break; case 38: - { return symbol(RETURN); + { return symbol(REPEAT); } case 82: break; case 39: - { return symbol(REPEAT); + { return symbol(FOREVER); } case 83: break; case 40: - { return symbol(FOREVER); + { return symbol(LT); } case 84: break; case 41: - { return symbol(LT); + { return symbol(GT); } case 85: break; case 42: - { return symbol(GT); + { return symbol(LTE); } case 86: break; case 43: - { return symbol(LTE); + { return symbol(GTE); } case 87: break; case 44: - { return symbol(GTE); + { return symbol(CoordLit); } case 88: break; default: diff --git a/compiler/src/Scanner.java~ b/compiler/src/Scanner.java~ index ea27df5..74aeed3 100644 --- a/compiler/src/Scanner.java~ +++ b/compiler/src/Scanner.java~ @@ -6,7 +6,7 @@ import java_cup.runtime.*; /** * This class is a scanner generated by * JFlex 1.6.1 - * from the specification file C:/Users/Nete/Documents/GitHub/P4/Compiler/src/java.flex + * from the specification file /Users/Lee/Documents/P4/compiler/src/java.flex */ public class Scanner implements sym, java_cup.runtime.Scanner { @@ -18,6 +18,8 @@ public class Scanner implements sym, java_cup.runtime.Scanner { /** lexical states */ public static final int YYINITIAL = 0; + public static final int STRING = 2; + public static final int CHARLITERAL = 4; /** * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l @@ -26,141 +28,144 @@ public class Scanner implements sym, java_cup.runtime.Scanner { * l is of the form l = 2*k, k a non negative integer */ private static final int ZZ_LEXSTATE[] = { - 0, 0 + 0, 0, 1, 1, 2, 2 }; /** * Translates characters to character classes */ private static final String ZZ_CMAP_PACKED = - "\11\0\1\3\1\2\1\0\1\3\1\1\16\0\4\0\1\3\1\0"+ - "\1\0\1\0\1\0\2\0\1\0\1\13\1\14\1\0\1\0\1\0"+ - "\1\0\1\0\1\0\12\0\7\0\3\0\1\10\1\6\1\5\2\0"+ - "\1\4\2\0\1\11\1\0\1\7\4\0\1\12\7\0\1\0\1\0"+ - "\2\0\1\0\1\0\4\0\1\0\25\0\4\0\41\0\2\0\4\0"+ - "\4\0\1\0\2\0\1\0\7\0\1\0\4\0\1\0\5\0\27\0"+ - "\1\0\37\0\1\0\u01ca\0\4\0\14\0\16\0\5\0\7\0\1\0"+ - "\1\0\1\0\21\0\160\0\5\0\1\0\2\0\2\0\4\0\10\0"+ - "\1\0\1\0\3\0\1\0\1\0\1\0\24\0\1\0\123\0\1\0"+ - "\213\0\1\0\5\0\2\0\236\0\11\0\46\0\2\0\1\0\7\0"+ - "\47\0\11\0\55\0\1\0\1\0\1\0\2\0\1\0\2\0\1\0"+ - "\1\0\10\0\33\0\5\0\3\0\15\0\4\0\7\0\1\0\4\0"+ - "\13\0\5\0\53\0\37\0\4\0\2\0\1\0\143\0\1\0\1\0"+ - "\10\0\1\0\6\0\2\0\2\0\1\0\4\0\2\0\12\0\3\0"+ - "\2\0\1\0\17\0\1\0\1\0\1\0\36\0\33\0\2\0\131\0"+ - "\13\0\1\0\16\0\12\0\41\0\11\0\2\0\4\0\1\0\5\0"+ - "\26\0\4\0\1\0\11\0\1\0\3\0\1\0\5\0\22\0\31\0"+ - "\3\0\244\0\4\0\66\0\3\0\1\0\22\0\1\0\7\0\12\0"+ - "\2\0\2\0\12\0\1\0\7\0\1\0\7\0\1\0\3\0\1\0"+ - "\10\0\2\0\2\0\2\0\26\0\1\0\7\0\1\0\1\0\3\0"+ - "\4\0\2\0\1\0\1\0\7\0\2\0\2\0\2\0\3\0\1\0"+ - "\10\0\1\0\4\0\2\0\1\0\3\0\2\0\2\0\12\0\4\0"+ - "\7\0\1\0\5\0\3\0\1\0\6\0\4\0\2\0\2\0\26\0"+ - "\1\0\7\0\1\0\2\0\1\0\2\0\1\0\2\0\2\0\1\0"+ - "\1\0\5\0\4\0\2\0\2\0\3\0\3\0\1\0\7\0\4\0"+ - "\1\0\1\0\7\0\14\0\3\0\1\0\13\0\3\0\1\0\11\0"+ - "\1\0\3\0\1\0\26\0\1\0\7\0\1\0\2\0\1\0\5\0"+ - "\2\0\1\0\1\0\10\0\1\0\3\0\1\0\3\0\2\0\1\0"+ - "\17\0\2\0\2\0\2\0\12\0\1\0\1\0\17\0\3\0\1\0"+ - "\10\0\2\0\2\0\2\0\26\0\1\0\7\0\1\0\2\0\1\0"+ - "\5\0\2\0\1\0\1\0\7\0\2\0\2\0\2\0\3\0\10\0"+ - "\2\0\4\0\2\0\1\0\3\0\2\0\2\0\12\0\1\0\1\0"+ - "\20\0\1\0\1\0\1\0\6\0\3\0\3\0\1\0\4\0\3\0"+ - "\2\0\1\0\1\0\1\0\2\0\3\0\2\0\3\0\3\0\3\0"+ - "\14\0\4\0\5\0\3\0\3\0\1\0\4\0\2\0\1\0\6\0"+ - "\1\0\16\0\12\0\11\0\1\0\7\0\3\0\1\0\10\0\1\0"+ - "\3\0\1\0\27\0\1\0\12\0\1\0\5\0\3\0\1\0\7\0"+ - "\1\0\3\0\1\0\4\0\7\0\2\0\1\0\2\0\6\0\2\0"+ - "\2\0\2\0\12\0\22\0\2\0\1\0\10\0\1\0\3\0\1\0"+ - "\27\0\1\0\12\0\1\0\5\0\2\0\1\0\1\0\7\0\1\0"+ - "\3\0\1\0\4\0\7\0\2\0\7\0\1\0\1\0\2\0\2\0"+ - "\2\0\12\0\1\0\2\0\17\0\2\0\1\0\10\0\1\0\3\0"+ - "\1\0\51\0\2\0\1\0\7\0\1\0\3\0\1\0\4\0\1\0"+ - "\10\0\1\0\10\0\2\0\2\0\2\0\12\0\12\0\6\0\2\0"+ - "\2\0\1\0\22\0\3\0\30\0\1\0\11\0\1\0\1\0\2\0"+ - "\7\0\3\0\1\0\4\0\6\0\1\0\1\0\1\0\10\0\22\0"+ - "\2\0\15\0\60\0\1\0\2\0\7\0\4\0\10\0\10\0\1\0"+ - "\12\0\47\0\2\0\1\0\1\0\2\0\2\0\1\0\1\0\2\0"+ - "\1\0\6\0\4\0\1\0\7\0\1\0\3\0\1\0\1\0\1\0"+ - "\1\0\2\0\2\0\1\0\4\0\1\0\2\0\6\0\1\0\2\0"+ - "\1\0\2\0\5\0\1\0\1\0\1\0\6\0\2\0\12\0\2\0"+ - "\2\0\42\0\1\0\27\0\2\0\6\0\12\0\13\0\1\0\1\0"+ - "\1\0\1\0\1\0\4\0\2\0\10\0\1\0\44\0\4\0\24\0"+ - "\1\0\2\0\5\0\13\0\1\0\44\0\11\0\1\0\71\0\53\0"+ - "\24\0\1\0\12\0\6\0\6\0\4\0\4\0\3\0\1\0\3\0"+ - "\2\0\7\0\3\0\4\0\15\0\14\0\1\0\17\0\2\0\46\0"+ - "\12\0\53\0\1\0\1\0\3\0\u0149\0\1\0\4\0\2\0\7\0"+ - "\1\0\1\0\1\0\4\0\2\0\51\0\1\0\4\0\2\0\41\0"+ - "\1\0\4\0\2\0\7\0\1\0\1\0\1\0\4\0\2\0\17\0"+ - "\1\0\71\0\1\0\4\0\2\0\103\0\2\0\3\0\40\0\20\0"+ - "\20\0\125\0\14\0\u026c\0\2\0\21\0\1\0\32\0\5\0\113\0"+ - "\3\0\3\0\17\0\15\0\1\0\4\0\3\0\13\0\22\0\3\0"+ - "\13\0\22\0\2\0\14\0\15\0\1\0\3\0\1\0\2\0\14\0"+ - "\64\0\40\0\3\0\1\0\3\0\2\0\1\0\2\0\12\0\41\0"+ - "\3\0\2\0\12\0\6\0\130\0\10\0\51\0\1\0\1\0\5\0"+ - "\106\0\12\0\35\0\3\0\14\0\4\0\14\0\12\0\12\0\36\0"+ - "\2\0\5\0\13\0\54\0\4\0\21\0\7\0\2\0\6\0\12\0"+ - "\46\0\27\0\5\0\4\0\65\0\12\0\1\0\35\0\2\0\13\0"+ - "\6\0\12\0\15\0\1\0\130\0\5\0\57\0\21\0\7\0\4\0"+ - "\12\0\21\0\11\0\14\0\3\0\36\0\12\0\3\0\2\0\12\0"+ - "\6\0\46\0\16\0\14\0\44\0\24\0\10\0\12\0\3\0\3\0"+ - "\12\0\44\0\122\0\3\0\1\0\25\0\4\0\1\0\4\0\1\0"+ - "\15\0\300\0\47\0\25\0\4\0\u0116\0\2\0\6\0\2\0\46\0"+ - "\2\0\6\0\2\0\10\0\1\0\1\0\1\0\1\0\1\0\1\0"+ - "\1\0\37\0\2\0\65\0\1\0\7\0\1\0\1\0\3\0\3\0"+ - "\1\0\7\0\3\0\4\0\2\0\6\0\4\0\15\0\5\0\3\0"+ - "\1\0\7\0\16\0\5\0\32\0\5\0\20\0\2\0\23\0\1\0"+ - "\13\0\5\0\5\0\6\0\1\0\1\0\15\0\1\0\20\0\15\0"+ - "\3\0\32\0\26\0\15\0\4\0\1\0\3\0\14\0\21\0\1\0"+ - "\4\0\1\0\2\0\12\0\1\0\1\0\3\0\5\0\6\0\1\0"+ - "\1\0\1\0\1\0\1\0\1\0\4\0\1\0\13\0\2\0\4\0"+ - "\5\0\5\0\4\0\1\0\21\0\51\0\u0a77\0\57\0\1\0\57\0"+ - "\1\0\205\0\6\0\4\0\3\0\16\0\46\0\12\0\66\0\11\0"+ - "\1\0\17\0\1\0\27\0\11\0\7\0\1\0\7\0\1\0\7\0"+ - "\1\0\7\0\1\0\7\0\1\0\7\0\1\0\7\0\1\0\7\0"+ - "\1\0\40\0\57\0\1\0\u01d5\0\3\0\31\0\11\0\6\0\1\0"+ - "\5\0\2\0\5\0\4\0\126\0\2\0\2\0\2\0\3\0\1\0"+ - "\132\0\1\0\4\0\5\0\51\0\3\0\136\0\21\0\33\0\65\0"+ - "\20\0\u0200\0\u19b6\0\112\0\u51cc\0\64\0\u048d\0\103\0\56\0\2\0"+ - "\u010d\0\3\0\20\0\12\0\2\0\24\0\57\0\1\0\14\0\2\0"+ - "\1\0\31\0\10\0\120\0\2\0\45\0\11\0\2\0\147\0\2\0"+ - "\4\0\1\0\2\0\16\0\12\0\120\0\10\0\1\0\3\0\1\0"+ - "\4\0\1\0\27\0\5\0\20\0\1\0\7\0\64\0\14\0\2\0"+ - "\62\0\21\0\13\0\12\0\6\0\22\0\6\0\3\0\1\0\4\0"+ - "\12\0\34\0\10\0\2\0\27\0\15\0\14\0\35\0\3\0\4\0"+ - "\57\0\16\0\16\0\1\0\12\0\46\0\51\0\16\0\11\0\3\0"+ - "\1\0\10\0\2\0\2\0\12\0\6\0\27\0\3\0\1\0\1\0"+ - "\4\0\60\0\1\0\1\0\3\0\2\0\2\0\5\0\2\0\1\0"+ - "\1\0\1\0\30\0\3\0\43\0\6\0\2\0\6\0\2\0\6\0"+ - "\11\0\7\0\1\0\7\0\221\0\43\0\10\0\1\0\2\0\2\0"+ - "\12\0\6\0\u2ba4\0\14\0\27\0\4\0\61\0\u2104\0\u012e\0\2\0"+ - "\76\0\2\0\152\0\46\0\7\0\14\0\5\0\5\0\1\0\1\0"+ - "\12\0\1\0\15\0\1\0\5\0\1\0\1\0\1\0\2\0\1\0"+ - "\2\0\1\0\154\0\41\0\u016b\0\22\0\100\0\2\0\66\0\50\0"+ - "\15\0\3\0\20\0\20\0\7\0\14\0\2\0\30\0\3\0\31\0"+ - "\1\0\6\0\5\0\1\0\207\0\2\0\1\0\4\0\1\0\13\0"+ - "\12\0\7\0\32\0\4\0\1\0\1\0\32\0\13\0\131\0\3\0"+ - "\6\0\2\0\6\0\2\0\6\0\2\0\3\0\3\0\2\0\3\0"+ - "\2\0\22\0\3\0\4\0\14\0\1\0\32\0\1\0\23\0\1\0"+ - "\2\0\1\0\17\0\2\0\16\0\42\0\173\0\105\0\65\0\210\0"+ - "\1\0\202\0\35\0\3\0\61\0\57\0\37\0\21\0\33\0\65\0"+ - "\36\0\2\0\44\0\4\0\10\0\1\0\5\0\52\0\236\0\2\0"+ - "\12\0\u0356\0\6\0\2\0\1\0\1\0\54\0\1\0\2\0\3\0"+ - "\1\0\2\0\27\0\252\0\26\0\12\0\32\0\306\0\1\0\3\0"+ - "\1\0\2\0\5\0\4\0\4\0\1\0\3\0\1\0\33\0\4\0"+ - "\3\0\4\0\1\0\40\0\35\0\203\0\66\0\12\0\26\0\12\0"+ - "\23\0\215\0\111\0\u03b7\0\3\0\65\0\17\0\37\0\12\0\20\0"+ - "\3\0\55\0\13\0\2\0\1\0\u0f42\0\u036f\0\221\0\143\0\u0b9d\0"+ - "\u042f\0\u33d1\0\u0239\0\u45c7\0\2\0\u2163\0\5\0\3\0\26\0\2\0"+ - "\7\0\36\0\4\0\224\0\3\0\u01bb\0\125\0\1\0\107\0\1\0"+ - "\2\0\2\0\1\0\2\0\2\0\2\0\4\0\1\0\14\0\1\0"+ - "\1\0\1\0\7\0\1\0\101\0\1\0\4\0\2\0\10\0\1\0"+ - "\7\0\1\0\34\0\1\0\4\0\1\0\5\0\1\0\1\0\3\0"+ - "\7\0\1\0\u0154\0\2\0\31\0\1\0\31\0\1\0\37\0\1\0"+ - "\31\0\1\0\37\0\1\0\31\0\1\0\37\0\1\0\31\0\1\0"+ - "\37\0\1\0\31\0\1\0\10\0\2\0\62\0\u2800\0\ua6d7\0\51\0"+ - "\u1035\0\13\0\336\0\u3fe2\0\u021e\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05ee\0"+ - "\1\0\36\0\140\0\200\0\360\0\uffff\0\uffff\0\ufe12\0"; + "\11\31\1\3\1\2\1\0\1\3\1\1\16\31\4\0\1\3\1\0"+ + "\1\12\1\0\1\30\2\0\1\13\1\54\1\55\1\5\1\60\1\27"+ + "\1\11\1\7\1\4\12\6\3\0\1\57\3\0\1\40\1\44\1\30"+ + "\1\35\1\10\1\33\1\43\1\41\1\32\1\30\1\45\1\20\1\30"+ + "\1\34\1\37\1\50\1\53\1\42\1\36\1\46\1\47\1\51\1\30"+ + "\1\56\2\30\1\0\1\14\2\0\1\52\1\0\1\25\3\30\1\23"+ + "\3\30\1\21\2\30\1\26\1\17\1\15\3\30\1\24\1\30\1\22"+ + "\1\16\5\30\3\0\1\61\41\31\2\0\4\30\4\0\1\30\2\0"+ + "\1\31\7\0\1\30\4\0\1\30\5\0\27\30\1\0\37\30\1\0"+ + "\u01ca\30\4\0\14\30\16\0\5\30\7\0\1\30\1\0\1\30\21\0"+ + "\160\31\5\30\1\0\2\30\2\0\4\30\10\0\1\30\1\0\3\30"+ + "\1\0\1\30\1\0\24\30\1\0\123\30\1\0\213\30\1\0\5\31"+ + "\2\0\236\30\11\0\46\30\2\0\1\30\7\0\47\30\11\0\55\31"+ + "\1\0\1\31\1\0\2\31\1\0\2\31\1\0\1\31\10\0\33\30"+ + "\5\0\3\30\15\0\4\31\7\0\1\30\4\0\13\31\5\0\53\30"+ + "\37\31\4\0\2\30\1\31\143\30\1\0\1\30\10\31\1\0\6\31"+ + "\2\30\2\31\1\0\4\31\2\30\12\31\3\30\2\0\1\30\17\0"+ + "\1\31\1\30\1\31\36\30\33\31\2\0\131\30\13\31\1\30\16\0"+ + "\12\31\41\30\11\31\2\30\4\0\1\30\5\0\26\30\4\31\1\30"+ + "\11\31\1\30\3\31\1\30\5\31\22\0\31\30\3\31\244\0\4\31"+ + "\66\30\3\31\1\30\22\31\1\30\7\31\12\30\2\31\2\0\12\31"+ + "\1\0\7\30\1\0\7\30\1\0\3\31\1\0\10\30\2\0\2\30"+ + "\2\0\26\30\1\0\7\30\1\0\1\30\3\0\4\30\2\0\1\31"+ + "\1\30\7\31\2\0\2\31\2\0\3\31\1\30\10\0\1\31\4\0"+ + "\2\30\1\0\3\30\2\31\2\0\12\31\4\30\7\0\1\30\5\0"+ + "\3\31\1\0\6\30\4\0\2\30\2\0\26\30\1\0\7\30\1\0"+ + "\2\30\1\0\2\30\1\0\2\30\2\0\1\31\1\0\5\31\4\0"+ + "\2\31\2\0\3\31\3\0\1\31\7\0\4\30\1\0\1\30\7\0"+ + "\14\31\3\30\1\31\13\0\3\31\1\0\11\30\1\0\3\30\1\0"+ + "\26\30\1\0\7\30\1\0\2\30\1\0\5\30\2\0\1\31\1\30"+ + "\10\31\1\0\3\31\1\0\3\31\2\0\1\30\17\0\2\30\2\31"+ + "\2\0\12\31\1\0\1\30\17\0\3\31\1\0\10\30\2\0\2\30"+ + "\2\0\26\30\1\0\7\30\1\0\2\30\1\0\5\30\2\0\1\31"+ + "\1\30\7\31\2\0\2\31\2\0\3\31\10\0\2\31\4\0\2\30"+ + "\1\0\3\30\2\31\2\0\12\31\1\0\1\30\20\0\1\31\1\30"+ + "\1\0\6\30\3\0\3\30\1\0\4\30\3\0\2\30\1\0\1\30"+ + "\1\0\2\30\3\0\2\30\3\0\3\30\3\0\14\30\4\0\5\31"+ + "\3\0\3\31\1\0\4\31\2\0\1\30\6\0\1\31\16\0\12\31"+ + "\11\0\1\30\7\0\3\31\1\0\10\30\1\0\3\30\1\0\27\30"+ + "\1\0\12\30\1\0\5\30\3\0\1\30\7\31\1\0\3\31\1\0"+ + "\4\31\7\0\2\31\1\0\2\30\6\0\2\30\2\31\2\0\12\31"+ + "\22\0\2\31\1\0\10\30\1\0\3\30\1\0\27\30\1\0\12\30"+ + "\1\0\5\30\2\0\1\31\1\30\7\31\1\0\3\31\1\0\4\31"+ + "\7\0\2\31\7\0\1\30\1\0\2\30\2\31\2\0\12\31\1\0"+ + "\2\30\17\0\2\31\1\0\10\30\1\0\3\30\1\0\51\30\2\0"+ + "\1\30\7\31\1\0\3\31\1\0\4\31\1\30\10\0\1\31\10\0"+ + "\2\30\2\31\2\0\12\31\12\0\6\30\2\0\2\31\1\0\22\30"+ + "\3\0\30\30\1\0\11\30\1\0\1\30\2\0\7\30\3\0\1\31"+ + "\4\0\6\31\1\0\1\31\1\0\10\31\22\0\2\31\15\0\60\30"+ + "\1\31\2\30\7\31\4\0\10\30\10\31\1\0\12\31\47\0\2\30"+ + "\1\0\1\30\2\0\2\30\1\0\1\30\2\0\1\30\6\0\4\30"+ + "\1\0\7\30\1\0\3\30\1\0\1\30\1\0\1\30\2\0\2\30"+ + "\1\0\4\30\1\31\2\30\6\31\1\0\2\31\1\30\2\0\5\30"+ + "\1\0\1\30\1\0\6\31\2\0\12\31\2\0\2\30\42\0\1\30"+ + "\27\0\2\31\6\0\12\31\13\0\1\31\1\0\1\31\1\0\1\31"+ + "\4\0\2\31\10\30\1\0\44\30\4\0\24\31\1\0\2\31\5\30"+ + "\13\31\1\0\44\31\11\0\1\31\71\0\53\30\24\31\1\30\12\31"+ + "\6\0\6\30\4\31\4\30\3\31\1\30\3\31\2\30\7\31\3\30"+ + "\4\31\15\30\14\31\1\30\17\31\2\0\46\30\12\0\53\30\1\0"+ + "\1\30\3\0\u0149\30\1\0\4\30\2\0\7\30\1\0\1\30\1\0"+ + "\4\30\2\0\51\30\1\0\4\30\2\0\41\30\1\0\4\30\2\0"+ + "\7\30\1\0\1\30\1\0\4\30\2\0\17\30\1\0\71\30\1\0"+ + "\4\30\2\0\103\30\2\0\3\31\40\0\20\30\20\0\125\30\14\0"+ + "\u026c\30\2\0\21\30\1\0\32\30\5\0\113\30\3\0\3\30\17\0"+ + "\15\30\1\0\4\30\3\31\13\0\22\30\3\31\13\0\22\30\2\31"+ + "\14\0\15\30\1\0\3\30\1\0\2\31\14\0\64\30\40\31\3\0"+ + "\1\30\3\0\2\30\1\31\2\0\12\31\41\0\3\31\2\0\12\31"+ + "\6\0\130\30\10\0\51\30\1\31\1\30\5\0\106\30\12\0\35\30"+ + "\3\0\14\31\4\0\14\31\12\0\12\31\36\30\2\0\5\30\13\0"+ + "\54\30\4\0\21\31\7\30\2\31\6\0\12\31\46\0\27\30\5\31"+ + "\4\0\65\30\12\31\1\0\35\31\2\0\13\31\6\0\12\31\15\0"+ + "\1\30\130\0\5\31\57\30\21\31\7\30\4\0\12\31\21\0\11\31"+ + "\14\0\3\31\36\30\12\31\3\0\2\30\12\31\6\0\46\30\16\31"+ + "\14\0\44\30\24\31\10\0\12\31\3\0\3\30\12\31\44\30\122\0"+ + "\3\31\1\0\25\31\4\30\1\31\4\30\1\31\15\0\300\30\47\31"+ + "\25\0\4\31\u0116\30\2\0\6\30\2\0\46\30\2\0\6\30\2\0"+ + "\10\30\1\0\1\30\1\0\1\30\1\0\1\30\1\0\37\30\2\0"+ + "\65\30\1\0\7\30\1\0\1\30\3\0\3\30\1\0\7\30\3\0"+ + "\4\30\2\0\6\30\4\0\15\30\5\0\3\30\1\0\7\30\16\0"+ + "\5\31\32\0\5\31\20\0\2\30\23\0\1\30\13\0\5\31\5\0"+ + "\6\31\1\0\1\30\15\0\1\30\20\0\15\30\3\0\32\30\26\0"+ + "\15\31\4\0\1\31\3\0\14\31\21\0\1\30\4\0\1\30\2\0"+ + "\12\30\1\0\1\30\3\0\5\30\6\0\1\30\1\0\1\30\1\0"+ + "\1\30\1\0\4\30\1\0\13\30\2\0\4\30\5\0\5\30\4\0"+ + "\1\30\21\0\51\30\u0a77\0\57\30\1\0\57\30\1\0\205\30\6\0"+ + "\4\30\3\31\16\0\46\30\12\0\66\30\11\0\1\30\17\0\1\31"+ + "\27\30\11\0\7\30\1\0\7\30\1\0\7\30\1\0\7\30\1\0"+ + "\7\30\1\0\7\30\1\0\7\30\1\0\7\30\1\0\40\31\57\0"+ + "\1\30\u01d5\0\3\30\31\0\11\30\6\31\1\0\5\30\2\0\5\30"+ + "\4\0\126\30\2\0\2\31\2\0\3\30\1\0\132\30\1\0\4\30"+ + "\5\0\51\30\3\0\136\30\21\0\33\30\65\0\20\30\u0200\0\u19b6\30"+ + "\112\0\u51cc\30\64\0\u048d\30\103\0\56\30\2\0\u010d\30\3\0\20\30"+ + "\12\31\2\30\24\0\57\30\1\31\14\0\2\31\1\0\31\30\10\0"+ + "\120\30\2\31\45\0\11\30\2\0\147\30\2\0\4\30\1\0\2\30"+ + "\16\0\12\30\120\0\10\30\1\31\3\30\1\31\4\30\1\31\27\30"+ + "\5\31\20\0\1\30\7\0\64\30\14\0\2\31\62\30\21\31\13\0"+ + "\12\31\6\0\22\31\6\30\3\0\1\30\4\0\12\31\34\30\10\31"+ + "\2\0\27\30\15\31\14\0\35\30\3\0\4\31\57\30\16\31\16\0"+ + "\1\30\12\31\46\0\51\30\16\31\11\0\3\30\1\31\10\30\2\31"+ + "\2\0\12\31\6\0\27\30\3\0\1\30\1\31\4\0\60\30\1\31"+ + "\1\30\3\31\2\30\2\31\5\30\2\31\1\30\1\31\1\30\30\0"+ + "\3\30\43\0\6\30\2\0\6\30\2\0\6\30\11\0\7\30\1\0"+ + "\7\30\221\0\43\30\10\31\1\0\2\31\2\0\12\31\6\0\u2ba4\30"+ + "\14\0\27\30\4\0\61\30\u2104\0\u012e\30\2\0\76\30\2\0\152\30"+ + "\46\0\7\30\14\0\5\30\5\0\1\30\1\31\12\30\1\0\15\30"+ + "\1\0\5\30\1\0\1\30\1\0\2\30\1\0\2\30\1\0\154\30"+ + "\41\0\u016b\30\22\0\100\30\2\0\66\30\50\0\15\30\3\0\20\31"+ + "\20\0\7\31\14\0\2\30\30\0\3\30\31\0\1\30\6\0\5\30"+ + "\1\0\207\30\2\0\1\31\4\0\1\30\13\0\12\31\7\0\32\30"+ + "\4\0\1\30\1\0\32\30\13\0\131\30\3\0\6\30\2\0\6\30"+ + "\2\0\6\30\2\0\3\30\3\0\2\30\3\0\2\30\22\0\3\31"+ + "\4\0\14\30\1\0\32\30\1\0\23\30\1\0\2\30\1\0\17\30"+ + "\2\0\16\30\42\0\173\30\105\0\65\30\210\0\1\31\202\0\35\30"+ + "\3\0\61\30\57\0\37\30\21\0\33\30\65\0\36\30\2\0\44\30"+ + "\4\0\10\30\1\0\5\30\52\0\236\30\2\0\12\31\u0356\0\6\30"+ + "\2\0\1\30\1\0\54\30\1\0\2\30\3\0\1\30\2\0\27\30"+ + "\252\0\26\30\12\0\32\30\306\0\1\30\3\31\1\0\2\31\5\0"+ + "\4\31\4\30\1\0\3\30\1\0\33\30\4\0\3\31\4\0\1\31"+ + "\40\0\35\30\203\0\66\30\12\0\26\30\12\0\23\30\215\0\111\30"+ + "\u03b7\0\3\31\65\30\17\31\37\0\12\31\20\0\3\31\55\30\13\31"+ + "\2\0\1\31\u0f42\0\u036f\30\221\0\143\30\u0b9d\0\u042f\30\u33d1\0\u0239\30"+ + "\u45c7\0\2\30\u2163\0\5\31\3\0\26\31\2\0\7\31\36\0\4\31"+ + "\224\0\3\31\u01bb\0\125\30\1\0\107\30\1\0\2\30\2\0\1\30"+ + "\2\0\2\30\2\0\4\30\1\0\14\30\1\0\1\30\1\0\7\30"+ + "\1\0\101\30\1\0\4\30\2\0\10\30\1\0\7\30\1\0\34\30"+ + "\1\0\4\30\1\0\5\30\1\0\1\30\3\0\7\30\1\0\u0154\30"+ + "\2\0\31\30\1\0\31\30\1\0\37\30\1\0\31\30\1\0\37\30"+ + "\1\0\31\30\1\0\37\30\1\0\31\30\1\0\37\30\1\0\31\30"+ + "\1\0\10\30\2\0\62\31\u2800\0\ua6d7\30\51\0\u1035\30\13\0\336\30"+ + "\u3fe2\0\u021e\30\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05ee\0"+ + "\1\31\36\0\140\31\200\0\360\31\uffff\0\uffff\0\ufe12\0"; /** * Translates characters to character classes @@ -173,11 +178,22 @@ public class Scanner implements sym, java_cup.runtime.Scanner { private static final int [] ZZ_ACTION = zzUnpackAction(); private static final String ZZ_ACTION_PACKED_0 = - "\1\0\1\1\1\2\1\3\1\2\2\1\1\4\1\5"+ - "\1\6\2\0\1\7\1\0\1\10"; + "\3\0\1\1\1\2\1\1\1\3\1\4\1\5\1\6"+ + "\1\7\1\10\1\11\1\12\3\7\1\13\15\7\1\14"+ + "\1\15\1\7\1\16\1\17\1\20\1\21\1\22\1\23"+ + "\1\0\1\5\1\0\5\7\1\24\1\25\4\7\1\26"+ + "\11\7\2\23\1\0\1\5\1\0\1\7\1\27\5\7"+ + "\1\30\1\7\1\31\10\7\1\32\1\33\2\7\1\34"+ + "\3\7\1\35\4\7\1\36\1\7\1\37\3\7\1\40"+ + "\4\7\1\41\1\42\3\7\1\43\1\44\1\45\3\7"+ + "\1\46\5\7\1\47\4\7\1\0\2\7\1\0\1\7"+ + "\1\50\1\0\2\7\1\0\2\7\1\0\2\7\1\0"+ + "\2\7\1\0\2\7\1\0\2\7\1\0\2\7\1\0"+ + "\2\7\1\0\1\51\1\7\1\0\1\7\1\0\1\7"+ + "\1\0\1\52\7\0\1\53"; private static int [] zzUnpackAction() { - int [] result = new int[15]; + int [] result = new int[180]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -202,11 +218,32 @@ public class Scanner implements sym, java_cup.runtime.Scanner { private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\15\0\32\0\15\0\15\0\47\0\64\0\15"+ - "\0\15\0\15\0\101\0\116\0\15\0\133\0\15"; + "\0\0\0\62\0\144\0\226\0\310\0\310\0\372\0\310"+ + "\0\u012c\0\u015e\0\u0190\0\310\0\310\0\310\0\u01c2\0\u01f4"+ + "\0\u0226\0\310\0\u0258\0\u028a\0\u02bc\0\u02ee\0\u0320\0\u0352"+ + "\0\u0384\0\u03b6\0\u03e8\0\u041a\0\u044c\0\u047e\0\u04b0\0\310"+ + "\0\310\0\u04e2\0\310\0\310\0\310\0\u0514\0\310\0\u0546"+ + "\0\u0578\0\u05aa\0\u05dc\0\u060e\0\u0640\0\u0672\0\u06a4\0\u06d6"+ + "\0\u01f4\0\u01f4\0\u0708\0\u073a\0\u076c\0\u079e\0\u01f4\0\u07d0"+ + "\0\u0802\0\u0834\0\u0866\0\u0898\0\u08ca\0\u08fc\0\u092e\0\u0960"+ + "\0\u0992\0\310\0\u09c4\0\u09f6\0\u09f6\0\u0a28\0\u01f4\0\u0a5a"+ + "\0\u0a8c\0\u0abe\0\u0af0\0\u0b22\0\u01f4\0\u0b54\0\u01f4\0\u0b86"+ + "\0\u0bb8\0\u0bea\0\u0c1c\0\u0c4e\0\u0c80\0\u0cb2\0\u0ce4\0\u01f4"+ + "\0\u01f4\0\u0d16\0\u0d48\0\u01f4\0\u0d7a\0\u0dac\0\u0dde\0\u01f4"+ + "\0\u0e10\0\u0e42\0\u0e74\0\u0ea6\0\u01f4\0\u0ed8\0\u01f4\0\u0f0a"+ + "\0\u0f3c\0\u0f6e\0\u01f4\0\u0fa0\0\u0fd2\0\u1004\0\u1036\0\u01f4"+ + "\0\u01f4\0\u1068\0\u109a\0\u10cc\0\u01f4\0\u01f4\0\u01f4\0\u10fe"+ + "\0\u1130\0\u1162\0\u01f4\0\u1194\0\u11c6\0\u11f8\0\u122a\0\u125c"+ + "\0\u128e\0\u12c0\0\u12f2\0\u1324\0\u1356\0\u1388\0\u13ba\0\u13ec"+ + "\0\u141e\0\u1450\0\u1482\0\u14b4\0\u14e6\0\u1518\0\u154a\0\u157c"+ + "\0\u15ae\0\u15e0\0\u1612\0\u1644\0\u1676\0\u16a8\0\u16da\0\u170c"+ + "\0\u173e\0\u1770\0\u17a2\0\u17d4\0\u1806\0\u1838\0\u186a\0\u189c"+ + "\0\u18ce\0\u1900\0\u1932\0\u1964\0\u01f4\0\u1996\0\u19c8\0\u19fa"+ + "\0\u1a2c\0\u1a5e\0\u1a90\0\u01f4\0\u1ac2\0\u1af4\0\u1b26\0\u1b58"+ + "\0\u1b8a\0\u1bbc\0\u1bee\0\310"; private static int [] zzUnpackRowMap() { - int [] result = new int[15]; + int [] result = new int[180]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -229,13 +266,185 @@ public class Scanner implements sym, java_cup.runtime.Scanner { private static final int [] ZZ_TRANS = zzUnpackTrans(); private static final String ZZ_TRANS_PACKED_0 = - "\1\2\1\3\1\4\1\5\1\6\1\2\1\7\4\2"+ - "\1\10\1\11\17\0\1\5\17\0\1\12\16\0\1\13"+ - "\1\0\1\14\13\0\1\15\16\0\1\16\10\0\1\17"+ - "\6\0"; + "\1\0\1\4\1\5\1\6\1\7\1\10\1\11\1\12"+ + "\1\13\1\14\1\15\1\16\1\0\1\17\2\20\1\21"+ + "\6\20\1\22\1\20\1\0\1\23\1\24\1\25\1\20"+ + "\1\26\1\27\1\30\1\31\1\32\1\33\1\34\1\20"+ + "\1\35\1\36\1\20\1\37\2\20\1\40\1\41\1\42"+ + "\1\43\1\44\1\45\1\46\2\0\7\46\1\47\1\46"+ + "\1\0\45\46\61\0\1\45\2\0\1\6\145\0\1\50"+ + "\1\51\62\0\1\11\1\52\1\53\12\0\1\53\44\0"+ + "\1\52\61\0\1\20\1\0\1\20\4\0\3\20\1\54"+ + "\6\20\1\0\4\20\1\55\17\20\2\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\1\20\1\56\10\20\1\0"+ + "\24\20\2\0\1\20\11\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\24\20\2\0\1\20\11\0\1\20\1\0"+ + "\1\57\4\0\12\20\1\0\7\20\1\60\14\20\2\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\3\20\1\61\2\20\1\62\15\20\2\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\7\20\1\63"+ + "\1\64\13\20\2\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\7\20\1\65\14\20\2\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\2\20"+ + "\1\66\21\20\2\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\12\20\1\67\11\20\2\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\4\20"+ + "\1\70\17\20\2\0\1\20\11\0\1\20\1\0\1\71"+ + "\4\0\12\20\1\0\24\20\2\0\1\20\11\0\1\20"+ + "\1\0\1\72\4\0\12\20\1\0\24\20\2\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\12\20"+ + "\1\73\11\20\2\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\12\20\1\74\11\20\2\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\12\20"+ + "\1\75\11\20\2\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\4\20\1\76\17\20\2\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\7\20"+ + "\1\77\14\20\2\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\7\20\1\100\14\20\2\0\1\20"+ + "\3\0\1\46\2\0\7\46\1\0\1\46\1\0\45\46"+ + "\1\50\1\101\1\102\57\50\5\51\1\103\54\51\6\0"+ + "\1\52\1\0\1\53\12\0\1\53\44\0\1\104\2\0"+ + "\1\105\46\0\1\105\7\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\6\20\1\106\15\20\2\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\5\20\1\107"+ + "\16\20\2\0\1\20\11\0\1\20\1\0\1\20\4\0"+ + "\2\20\1\110\7\20\1\0\24\20\2\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\6\20\1\111"+ + "\15\20\2\0\1\20\11\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\10\20\1\112\13\20\2\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\12\20\1\113"+ + "\11\20\2\0\1\20\11\0\1\20\1\0\1\20\4\0"+ + "\3\20\1\114\6\20\1\0\24\20\2\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\16\20\1\115"+ + "\5\20\2\0\1\20\11\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\13\20\1\116\10\20\2\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\5\20\1\117"+ + "\16\20\2\0\1\20\11\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\10\20\1\120\13\20\2\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\16\20\1\121"+ + "\1\20\1\122\3\20\2\0\1\20\11\0\1\20\1\0"+ + "\1\123\4\0\12\20\1\0\24\20\2\0\1\20\11\0"+ + "\1\20\1\0\1\124\4\0\12\20\1\0\24\20\2\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\17\20\1\125\4\20\2\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\16\20\1\126\5\20\2\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\2\20\1\127\21\20\2\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\12\20\1\130\11\20\2\0"+ + "\1\20\5\0\1\102\57\0\4\51\1\102\1\103\54\51"+ + "\6\0\1\104\61\0\1\20\1\0\1\131\4\0\12\20"+ + "\1\0\24\20\2\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\3\20\1\132\6\20\1\0\24\20\2\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\6\20"+ + "\1\133\15\20\2\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\5\20\1\134\16\20\2\0\1\20"+ + "\11\0\1\20\1\0\1\135\4\0\12\20\1\0\24\20"+ + "\2\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\6\20\1\136\15\20\2\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\4\20\1\137\17\20"+ + "\2\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\12\20\1\140\11\20\2\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\17\20\1\141\4\20"+ + "\2\0\1\20\11\0\1\20\1\0\1\142\4\0\12\20"+ + "\1\0\24\20\2\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\10\20\1\143\13\20\2\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\10\20"+ + "\1\144\13\20\2\0\1\20\11\0\1\20\1\0\1\145"+ + "\4\0\12\20\1\0\24\20\2\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\2\20\1\146\21\20"+ + "\2\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\5\20\1\147\16\20\2\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\4\20\1\150\5\20\1\0\24\20"+ + "\2\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\22\20\1\151\1\20\2\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\21\20\1\152\2\20"+ + "\2\0\1\20\11\0\1\20\1\0\1\153\4\0\12\20"+ + "\1\0\24\20\2\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\10\20\1\154\13\20\2\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\12\20"+ + "\1\155\11\20\2\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\10\20\1\156\13\20\2\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\16\20"+ + "\1\157\5\20\2\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\15\20\1\160\6\20\2\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\3\20\1\161\6\20"+ + "\1\0\24\20\2\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\5\20\1\162\4\20\1\0\24\20\2\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\16\20"+ + "\1\163\5\20\2\0\1\20\11\0\1\20\1\0\1\164"+ + "\4\0\12\20\1\0\24\20\2\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\3\20\1\165\6\20\1\0\24\20"+ + "\2\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\4\20\1\166\17\20\2\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\16\20\1\167\5\20"+ + "\2\0\1\20\11\0\1\20\1\0\1\170\4\0\12\20"+ + "\1\0\24\20\2\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\6\20\1\171\3\20\1\0\24\20\2\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\11\20"+ + "\1\172\12\20\2\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\12\20\1\173\11\20\2\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\12\20"+ + "\1\174\11\20\2\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\7\20\1\175\2\20\1\0\24\20\2\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\10\20"+ + "\1\176\13\20\2\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\22\20\1\177\1\20\2\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\10\20\1\200\1\20"+ + "\1\0\24\20\2\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\4\20\1\201\17\20\2\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\16\20"+ + "\1\202\5\20\2\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\11\20\1\203\1\0\24\20\2\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\22\20\1\204"+ + "\1\20\2\0\1\20\11\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\11\20\1\205\12\20\2\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\206\24\20\2\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\7\20\1\207\14\20\2\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\10\20\1\210\13\20\2\0"+ + "\1\20\20\0\1\211\52\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\12\20\1\212\11\20\2\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\4\20\1\213"+ + "\17\20\2\0\1\20\21\0\1\214\51\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\22\20\1\215\1\20\2\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\22\20\1\216\1\20\2\0\1\20\22\0\1\217\50\0"+ + "\1\20\1\0\1\220\4\0\12\20\1\0\24\20\2\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\7\20\1\221\14\20\2\0\1\20\23\0\1\222\47\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\23\20\1\223"+ + "\2\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\12\20\1\224\11\20\2\0\1\20\24\0\1\225"+ + "\46\0\1\20\1\0\1\20\4\0\12\20\1\0\17\20"+ + "\1\226\4\20\2\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\22\20\1\227\1\20\2\0\1\20"+ + "\25\0\1\230\45\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\10\20\1\231\13\20\2\0\1\20\11\0\1\20"+ + "\1\0\1\232\4\0\12\20\1\0\24\20\2\0\1\20"+ + "\26\0\1\233\44\0\1\20\1\0\1\20\4\0\3\20"+ + "\1\234\6\20\1\0\24\20\2\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\23\20\1\235\2\0"+ + "\1\20\27\0\1\236\43\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\22\20\1\237\1\20\2\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\17\20\1\240"+ + "\4\20\2\0\1\20\30\0\1\241\42\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\16\20\1\242\5\20\2\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\10\20\1\243\13\20\2\0\1\20\31\0\1\244\41\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\7\20\1\245"+ + "\14\20\2\0\1\20\11\0\1\20\1\0\1\20\4\0"+ + "\3\20\1\246\6\20\1\0\24\20\2\0\1\20\32\0"+ + "\1\247\40\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\22\20\1\250\1\20\2\0\1\20\20\0\1\251\52\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\16\20\1\252"+ + "\5\20\2\0\1\20\21\0\1\253\51\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\7\20\1\254\14\20\2\0"+ + "\1\20\22\0\1\255\62\0\1\256\62\0\1\257\62\0"+ + "\1\260\62\0\1\261\62\0\1\262\62\0\1\263\62\0"+ + "\1\264\33\0"; private static int [] zzUnpackTrans() { - int [] result = new int[104]; + int [] result = new int[7200]; int offset = 0; offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); return result; @@ -273,11 +482,16 @@ public class Scanner implements sym, java_cup.runtime.Scanner { private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\0\1\11\1\1\2\11\2\1\3\11\2\0\1\11"+ - "\1\0\1\11"; + "\3\0\1\1\2\11\1\1\1\11\3\1\3\11\3\1"+ + "\1\11\15\1\2\11\1\1\3\11\1\1\1\11\1\1"+ + "\1\0\1\1\1\0\26\1\1\11\1\0\1\1\1\0"+ + "\100\1\1\0\2\1\1\0\2\1\1\0\2\1\1\0"+ + "\2\1\1\0\2\1\1\0\2\1\1\0\2\1\1\0"+ + "\2\1\1\0\2\1\1\0\2\1\1\0\2\1\1\0"+ + "\1\1\1\0\1\1\1\0\1\1\7\0\1\11"; private static int [] zzUnpackAttribute() { - int [] result = new int[15]; + int [] result = new int[180]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; @@ -402,7 +616,7 @@ public class Scanner implements sym, java_cup.runtime.Scanner { char [] map = new char[0x110000]; int i = 0; /* index in packed string */ int j = 0; /* index in unpacked array */ - while (i < 2570) { + while (i < 2624) { int count = packed.charAt(i++); char value = packed.charAt(i++); do map[j++] = value; while (--count > 0); @@ -767,38 +981,178 @@ public class Scanner implements sym, java_cup.runtime.Scanner { else { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { case 1: - { throw new RuntimeException("Illegal character \""+yytext()+ - "\" at line "+yyline+", column "+yycolumn); + { /*Ignore*/ } - case 9: break; + case 44: break; case 2: - { /* ignore */ + { return symbol(EOL); } - case 10: break; + case 45: break; case 3: - { return symbol(EOL); + { return symbol(DIV); } - case 11: break; + case 46: break; case 4: - { return symbol(LPAREN); + { return symbol(MULT); } - case 12: break; + case 47: break; case 5: - { return symbol(RPAREN); + { return symbol(NumLit, new Double(yytext())); } - case 13: break; + case 48: break; case 6: - { return symbol(IF); + { return symbol(DOT); } - case 14: break; + case 49: break; case 7: - { return symbol(END); + { return symbol(Identifier, yytext()); } - case 15: break; + case 50: break; case 8: + { return symbol(MINUS); + } + case 51: break; + case 9: + { yybegin(STRING); string.setLength(0); + } + case 52: break; + case 10: + { yybegin(CHARLITERAL); + } + case 53: break; + case 11: + { return symbol(COMMA); + } + case 54: break; + case 12: + { return symbol(LPAREN); + } + case 55: break; + case 13: + { return symbol(RPAREN); + } + case 56: break; + case 14: + { return symbol(ASSIGN); + } + case 57: break; + case 15: + { return symbol(PLUS); + } + case 58: break; + case 16: + { throw new RuntimeException("Illegal character \""+yytext()+ + "\" at line "+yyline+", column "+yycolumn); + } + case 59: break; + case 17: + { string.append( yytext() ); + } + case 60: break; + case 18: + { yybegin(YYINITIAL); return symbol(StringLit, string.toString()); + } + case 61: break; + case 19: + { /* ignore */ + } + case 62: break; + case 20: + { return symbol(IF); + } + case 63: break; + case 21: + { return symbol(IS); + } + case 64: break; + case 22: + { return symbol(OR); + } + case 65: break; + case 23: + { return symbol(END); + } + case 66: break; + case 24: + { return symbol(NOT); + } + case 67: break; + case 25: + { return symbol(AND); + } + case 68: break; + case 26: + { return symbol(XOR); + } + case 69: break; + case 27: { return symbol(ELSE); } - case 16: break; + case 70: break; + case 28: + { return symbol(LOAD); + } + case 71: break; + case 29: + { return symbol(HEAR); + } + case 72: break; + case 30: + { return symbol(TRUE); + } + case 73: break; + case 31: + { return symbol(VOID); + } + case 74: break; + case 32: + { return symbol(FALSE); + } + case 75: break; + case 33: + { return symbol(BREAK); + } + case 76: break; + case 34: + { return symbol(UNTIL); + } + case 77: break; + case 35: + { return symbol(SIGNAL); + } + case 78: break; + case 36: + { return symbol(RETURN); + } + case 79: break; + case 37: + { return symbol(REPEAT); + } + case 80: break; + case 38: + { return symbol(FOREVER); + } + case 81: break; + case 39: + { return symbol(LT); + } + case 82: break; + case 40: + { return symbol(GT); + } + case 83: break; + case 41: + { return symbol(LTE); + } + case 84: break; + case 42: + { return symbol(GTE); + } + case 85: break; + case 43: + { return symbol(CoordLit); + } + case 86: break; default: zzScanError(ZZ_NO_MATCH); } diff --git a/compiler/src/UnicodeEscapes.java b/compiler/src/UnicodeEscapes.java index 07cb827..5f90c54 100644 --- a/compiler/src/UnicodeEscapes.java +++ b/compiler/src/UnicodeEscapes.java @@ -45,7 +45,7 @@ /** * This class is a scanner generated by * JFlex 1.6.1 - * from the specification file C:/Users/Nete/Documents/GitHub/P4/Compiler/src/unicode.flex + * from the specification file /Users/Lee/Documents/P4/compiler/src/unicode.flex */ public final class UnicodeEscapes extends FilterReader { diff --git a/compiler/src/cancer b/compiler/src/cancer index 2fd1217..cea349e 100644 --- a/compiler/src/cancer +++ b/compiler/src/cancer @@ -1,21 +1,6 @@ Robot: +LOAD(kage) +VOID START() - - -NUM a - - - - - - - - - -VOID START () - - - - -END START +END START \ No newline at end of file diff --git a/compiler/src/java.flex b/compiler/src/java.flex index cef9a93..61098e5 100644 --- a/compiler/src/java.flex +++ b/compiler/src/java.flex @@ -67,14 +67,13 @@ FLit2 = \. [0-9]+ FLit3 = [0-9]+ Exponent = [eE] [+-]? [0-9]+ -coordLiteral = (numLiteral, numLiteral, numLiteral) - /* string and character literals */ StringCharacter = [^\r\n\"\\] SingleCharacter = [^\r\n\'\\] %state STRING, CHARLITERAL +coordLiteral = (numLiteral, numLiteral, numLiteral) Identifier = [:jletter:][:jletterdigit:]* %% @@ -104,11 +103,13 @@ Identifier = [:jletter:][:jletterdigit:]* /* Literals */ "TRUE" { return symbol(TRUE); } "FALSE" { return symbol(FALSE); } + {coordLiteral} { return symbol(CoordLit); } "VOID" { return symbol(VOID); } /* seperators */ "(" { return symbol(LPAREN); } ")" { return symbol(RPAREN); } + ":" { return symbol(COLON); } "." { return symbol(DOT); } "," { return symbol(COMMA); } @@ -120,10 +121,9 @@ Identifier = [:jletter:][:jletterdigit:]* "-" { return symbol(MINUS);} "*" { return symbol(MULT);} "/" { return symbol(DIV);} - "^" { return symbol(PWR);} /* Identifier */ - {Identifier} { return symbol(IDENTIFIER, yytext()); } + {Identifier} { return symbol(Identifier, yytext()); } /* string literal */ \" { yybegin(STRING); string.setLength(0); } @@ -142,14 +142,10 @@ Identifier = [:jletter:][:jletterdigit:]* } { - \" { yybegin(YYINITIAL); return symbol(STRING_LITERAL, string.toString()); } + \" { yybegin(YYINITIAL); return symbol(StringLit, string.toString()); } {StringCharacter}+ { string.append( yytext() ); } } - { - {SingleCharacter}\' { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, yytext().charAt(0)); } - } - /* error fallback */ [~] { throw new RuntimeException("Illegal character \""+yytext()+ "\" at line "+yyline+", column "+yycolumn); } diff --git a/compiler/src/java12.cup b/compiler/src/java12.cup index 456c308..88cf4ef 100644 --- a/compiler/src/java12.cup +++ b/compiler/src/java12.cup @@ -19,28 +19,45 @@ parser code {: } :}; -non terminal Type, ReferenceType, PrimitiveType, TypeName, MethodName, Program, Load, RoboDecl, +non terminal Type, ReferenceType, PrimitiveType, TypeName, Program, Load, RoboDecl, MemberDcl, RoboBodyDcl, FieldDcl, MethodDcl, VariableDclList, VariableDcl, VariableInitializer, - ListInitializer, Expression, NumList, AssignmentExpression, ConditionalExpression, Assignment, + ListInitializer, Expression, Literal, LitList, AssignmentExpression, ConditionalExpression, Assignment, LeftHandSide, ListAccess, ConditionOrExpression, ConditionAndExpression, XORExpression, EqualityExpression, EqualityExpressionEnd, RelationalExpression, RelationalExpressionEnd, AdditiveExpression, MultiExpr, - AdditiveExpressionEnd, UnaryExpr, MultiExprEnd, Primary, MethodInvocation, FormalArgs, ArgsList, FieldAccess - ParamsList, Param, MethodHeader, HearDecl, MethodBody, ReturnType, MethodDeclarator, FormalParams, Block - BlockStmtList, BlockStmt, LocalVariableDcl, Statement, VariableDclList, StmtNoSubstmt, IfStmt, LoopStmt, + AdditiveExpressionEnd, UnaryExpr, MultiExprEnd, Primary, MethodInvocation, FormalArgs, ArgsList, FieldAccess, + ParamsList, Param, MethodHeader, HearDecl, MethodBody, ReturnType, MethodDeclarator, FormalParams, Block, + BlockStmtList, BlockStmt, LocalVariableDcl, Statement, StmtNoSubstmt, IfStmt, LoopStmt, EmptyStmt, SignalStmt, ExprStmt, BreakStmt, ReturnStmt, StmtExpr, ElseIfStmt, ElseStmt, RepeatStmt, - ForeverStmt; + ForeverStmt, BoolLit; //Types and id's terminal Identifier, NUM, BOOL, STRING, COORD, LIST, NumLit, VOID; //Symbols -terminal DOT, COMMA, LPAREN, RPAREN, EOL, EOF, lambda, XOR, PLUS, MINUS, MULT, DIV, ASSIGN; +terminal DOT, COMMA, LPAREN, RPAREN, EOL, COLON, lambda, XOR, PLUS, MINUS, MULT, DIV, ASSIGN; //Boolean Operators -terminal AND, OR, IS, NOT, LT, GT, LTE, GTE; +terminal AND, OR, IS, NOT, LT, GT, LTE, GTE, TRUE, FALSE, StringLit, CoordLit; //Keywords -terminal LOAD, END, HEAR, SIGNAL, BREAK, RETURN, REPEAT, FOREVER, UNTIL; +terminal LOAD, END, HEAR, SIGNAL, BREAK, RETURN, IF, ELSE, ELSEIF, REPEAT, FOREVER, UNTIL; + +// Program start +Program +::= RoboDecl Load RoboBodyDcl +; + +Literal +::= NumLit +| BoolLit +| StringLit +| CoordLit +; + +BoolLit +::= TRUE +| FALSE +; Type ::= ReferenceType @@ -61,14 +78,7 @@ TypeName ::= Identifier | TypeName DOT Identifier ; -MethodName -::= TypeName -; -// Program start -Program - ::= RoboDecl Load RoboBodyDcl EOF - ; Load ::= LOAD LPAREN Identifier RPAREN EOL | Load LOAD LPAREN Identifier RPAREN EOL @@ -95,7 +105,7 @@ VariableDclList | VariableDclList COMMA VariableDcl ; VariableDcl -::= Identifier VariableInitializer +::= VariableInitializer | Identifier ListInitializer ; VariableInitializer @@ -103,12 +113,12 @@ VariableInitializer | lambda ; ListInitializer -::= NumList END Identifier +::= LitList END Identifier | lambda ; -NumList -::= NumList COMMA NumLit -| NumLit +LitList +::= LitList COMMA Primary +| Primary ; // Expressions @@ -124,10 +134,10 @@ Assignment ; LeftHandSide ::= TypeName -| ListAcces +| ListAccess ; -ListAcces -::= Identifier DOT id LPAREN Identifier RPAREN +ListAccess +::= TypeName LPAREN NumLit RPAREN ; ConditionalExpression ::= ConditionOrExpression @@ -136,21 +146,21 @@ ConditionOrExpression ::= ConditionAndExpression | ConditionOrExpression OR ConditionAndExpression ; -CondtionAndExpression +ConditionAndExpression ::= XORExpression -| ConditionalAndExpression AND XORExpression +| ConditionAndExpression AND XORExpression ; XORExpression ::= EqualityExpression | XORExpression XOR EqualityExpression ; EqualityExpression -::= RelationExpression +::= RelationalExpression | EqualityExpression EqualityExpressionEnd ; EqualityExpressionEnd - ::= IS RelationExpression - | NOT RelationExpression + ::= IS RelationalExpression + | NOT RelationalExpression ; RelationalExpression ::= AdditiveExpression @@ -193,7 +203,7 @@ Primary | FieldAccess ; MethodInvocation - ::= MethodName LPAREN FormalArgs RPAREN + ::= TypeName LPAREN FormalArgs RPAREN ; FormalArgs ::= ArgsList @@ -236,10 +246,10 @@ MethodDeclarator ::= Identifier LPAREN FormalParams RPAREN ; MethodBody - ::= Block END id + ::= Block END Identifier ; HearDecl - ::= HEAR id LPAREN Formal Params RPAREN Block END Hear + ::= HEAR Identifier LPAREN FormalParams RPAREN Block END HEAR ; //If, loop and statements @@ -254,7 +264,7 @@ BlockStmt ::= LocalVariableDcl | Statement ; -LocalVariable +LocalVariableDcl ::= Type VariableDclList EOL ; @@ -264,8 +274,7 @@ Statement | LoopStmt ; StmtNoSubstmt - ::= Block - | EmptyStmt + ::= EmptyStmt | SignalStmt | ExprStmt | BreakStmt @@ -275,7 +284,8 @@ EmptyStmt ::= EOL ; SignalStmt - ::= SIGNAL id LPAREN ArgsList RPAREN EOL + ::= SIGNAL Identifier LPAREN ArgsList RPAREN EOL + ; ExprStmt ::= StmtExpr EOL ; @@ -286,7 +296,7 @@ StmtExpr BreakStmt ::= BREAK EOL ; -Return +ReturnStmt ::= RETURN Expression EOL ; @@ -308,6 +318,6 @@ LoopStmt RepeatStmt ::= REPEAT UNTIL LPAREN Expression RPAREN EOL Block END REPEAT ; -Forever +ForeverStmt ::= FOREVER EOL Block END FOREVER - ; \ No newline at end of file + ; From 0e62c0113429f568ff9bf38e014f379c0457ace0 Mon Sep 17 00:00:00 2001 From: TobiasMorell Date: Wed, 16 Mar 2016 08:34:28 +0100 Subject: [PATCH 40/55] compiler/ : Made some changes to the grammar, now able to parse header and loads. Still having trouble with newline separation --- compiler/src/Scanner.java | 228 ++++++++++++++++--------------- compiler/src/UnicodeEscapes.java | 2 +- compiler/src/cancer | 4 +- compiler/src/java12.cup | 49 ++++--- 4 files changed, 147 insertions(+), 136 deletions(-) diff --git a/compiler/src/Scanner.java b/compiler/src/Scanner.java index d442327..f2aa991 100644 --- a/compiler/src/Scanner.java +++ b/compiler/src/Scanner.java @@ -6,7 +6,7 @@ /** * This class is a scanner generated by * JFlex 1.6.1 - * from the specification file /Users/Lee/Documents/P4/compiler/src/java.flex + * from the specification file C:/Users/Nete/Documents/GitHub/P4/Compiler/src/java.flex */ public class Scanner implements sym, java_cup.runtime.Scanner { @@ -47,54 +47,55 @@ public class Scanner implements sym, java_cup.runtime.Scanner { "\1\0\u01ca\30\4\0\14\30\16\0\5\30\7\0\1\30\1\0\1\30"+ "\21\0\160\31\5\30\1\0\2\30\2\0\4\30\10\0\1\30\1\0"+ "\3\30\1\0\1\30\1\0\24\30\1\0\123\30\1\0\213\30\1\0"+ - "\5\31\2\0\236\30\11\0\46\30\2\0\1\30\7\0\47\30\11\0"+ - "\55\31\1\0\1\31\1\0\2\31\1\0\2\31\1\0\1\31\10\0"+ - "\33\30\5\0\3\30\15\0\4\31\7\0\1\30\4\0\13\31\5\0"+ - "\53\30\37\31\4\0\2\30\1\31\143\30\1\0\1\30\10\31\1\0"+ - "\6\31\2\30\2\31\1\0\4\31\2\30\12\31\3\30\2\0\1\30"+ - "\17\0\1\31\1\30\1\31\36\30\33\31\2\0\131\30\13\31\1\30"+ - "\16\0\12\31\41\30\11\31\2\30\4\0\1\30\5\0\26\30\4\31"+ - "\1\30\11\31\1\30\3\31\1\30\5\31\22\0\31\30\3\31\244\0"+ - "\4\31\66\30\3\31\1\30\22\31\1\30\7\31\12\30\2\31\2\0"+ - "\12\31\1\0\7\30\1\0\7\30\1\0\3\31\1\0\10\30\2\0"+ - "\2\30\2\0\26\30\1\0\7\30\1\0\1\30\3\0\4\30\2\0"+ - "\1\31\1\30\7\31\2\0\2\31\2\0\3\31\1\30\10\0\1\31"+ - "\4\0\2\30\1\0\3\30\2\31\2\0\12\31\4\30\7\0\1\30"+ - "\5\0\3\31\1\0\6\30\4\0\2\30\2\0\26\30\1\0\7\30"+ - "\1\0\2\30\1\0\2\30\1\0\2\30\2\0\1\31\1\0\5\31"+ - "\4\0\2\31\2\0\3\31\3\0\1\31\7\0\4\30\1\0\1\30"+ - "\7\0\14\31\3\30\1\31\13\0\3\31\1\0\11\30\1\0\3\30"+ - "\1\0\26\30\1\0\7\30\1\0\2\30\1\0\5\30\2\0\1\31"+ - "\1\30\10\31\1\0\3\31\1\0\3\31\2\0\1\30\17\0\2\30"+ - "\2\31\2\0\12\31\1\0\1\30\17\0\3\31\1\0\10\30\2\0"+ - "\2\30\2\0\26\30\1\0\7\30\1\0\2\30\1\0\5\30\2\0"+ - "\1\31\1\30\7\31\2\0\2\31\2\0\3\31\10\0\2\31\4\0"+ - "\2\30\1\0\3\30\2\31\2\0\12\31\1\0\1\30\20\0\1\31"+ - "\1\30\1\0\6\30\3\0\3\30\1\0\4\30\3\0\2\30\1\0"+ - "\1\30\1\0\2\30\3\0\2\30\3\0\3\30\3\0\14\30\4\0"+ - "\5\31\3\0\3\31\1\0\4\31\2\0\1\30\6\0\1\31\16\0"+ - "\12\31\11\0\1\30\7\0\3\31\1\0\10\30\1\0\3\30\1\0"+ - "\27\30\1\0\12\30\1\0\5\30\3\0\1\30\7\31\1\0\3\31"+ - "\1\0\4\31\7\0\2\31\1\0\2\30\6\0\2\30\2\31\2\0"+ - "\12\31\22\0\2\31\1\0\10\30\1\0\3\30\1\0\27\30\1\0"+ - "\12\30\1\0\5\30\2\0\1\31\1\30\7\31\1\0\3\31\1\0"+ - "\4\31\7\0\2\31\7\0\1\30\1\0\2\30\2\31\2\0\12\31"+ - "\1\0\2\30\17\0\2\31\1\0\10\30\1\0\3\30\1\0\51\30"+ - "\2\0\1\30\7\31\1\0\3\31\1\0\4\31\1\30\10\0\1\31"+ - "\10\0\2\30\2\31\2\0\12\31\12\0\6\30\2\0\2\31\1\0"+ - "\22\30\3\0\30\30\1\0\11\30\1\0\1\30\2\0\7\30\3\0"+ - "\1\31\4\0\6\31\1\0\1\31\1\0\10\31\22\0\2\31\15\0"+ - "\60\30\1\31\2\30\7\31\4\0\10\30\10\31\1\0\12\31\47\0"+ - "\2\30\1\0\1\30\2\0\2\30\1\0\1\30\2\0\1\30\6\0"+ - "\4\30\1\0\7\30\1\0\3\30\1\0\1\30\1\0\1\30\2\0"+ - "\2\30\1\0\4\30\1\31\2\30\6\31\1\0\2\31\1\30\2\0"+ - "\5\30\1\0\1\30\1\0\6\31\2\0\12\31\2\0\2\30\42\0"+ - "\1\30\27\0\2\31\6\0\12\31\13\0\1\31\1\0\1\31\1\0"+ - "\1\31\4\0\2\31\10\30\1\0\44\30\4\0\24\31\1\0\2\31"+ - "\5\30\13\31\1\0\44\31\11\0\1\31\71\0\53\30\24\31\1\30"+ - "\12\31\6\0\6\30\4\31\4\30\3\31\1\30\3\31\2\30\7\31"+ - "\3\30\4\31\15\30\14\31\1\30\17\31\2\0\46\30\12\0\53\30"+ - "\1\0\1\30\3\0\u0149\30\1\0\4\30\2\0\7\30\1\0\1\30"+ + "\5\31\2\0\236\30\11\0\46\30\2\0\1\30\7\0\47\30\7\0"+ + "\1\30\1\0\55\31\1\0\1\31\1\0\2\31\1\0\2\31\1\0"+ + "\1\31\10\0\33\30\5\0\3\30\15\0\5\31\6\0\1\30\4\0"+ + "\13\31\5\0\53\30\37\31\4\0\2\30\1\31\143\30\1\0\1\30"+ + "\10\31\1\0\6\31\2\30\2\31\1\0\4\31\2\30\12\31\3\30"+ + "\2\0\1\30\17\0\1\31\1\30\1\31\36\30\33\31\2\0\131\30"+ + "\13\31\1\30\16\0\12\31\41\30\11\31\2\30\4\0\1\30\5\0"+ + "\26\30\4\31\1\30\11\31\1\30\3\31\1\30\5\31\22\0\31\30"+ + "\3\31\104\0\1\30\1\0\13\30\67\0\33\31\1\0\4\31\66\30"+ + "\3\31\1\30\22\31\1\30\7\31\12\30\2\31\2\0\12\31\1\0"+ + "\7\30\1\0\7\30\1\0\3\31\1\0\10\30\2\0\2\30\2\0"+ + "\26\30\1\0\7\30\1\0\1\30\3\0\4\30\2\0\1\31\1\30"+ + "\7\31\2\0\2\31\2\0\3\31\1\30\10\0\1\31\4\0\2\30"+ + "\1\0\3\30\2\31\2\0\12\31\4\30\7\0\1\30\5\0\3\31"+ + "\1\0\6\30\4\0\2\30\2\0\26\30\1\0\7\30\1\0\2\30"+ + "\1\0\2\30\1\0\2\30\2\0\1\31\1\0\5\31\4\0\2\31"+ + "\2\0\3\31\3\0\1\31\7\0\4\30\1\0\1\30\7\0\14\31"+ + "\3\30\1\31\13\0\3\31\1\0\11\30\1\0\3\30\1\0\26\30"+ + "\1\0\7\30\1\0\2\30\1\0\5\30\2\0\1\31\1\30\10\31"+ + "\1\0\3\31\1\0\3\31\2\0\1\30\17\0\2\30\2\31\2\0"+ + "\12\31\1\0\1\30\17\0\3\31\1\0\10\30\2\0\2\30\2\0"+ + "\26\30\1\0\7\30\1\0\2\30\1\0\5\30\2\0\1\31\1\30"+ + "\7\31\2\0\2\31\2\0\3\31\10\0\2\31\4\0\2\30\1\0"+ + "\3\30\2\31\2\0\12\31\1\0\1\30\20\0\1\31\1\30\1\0"+ + "\6\30\3\0\3\30\1\0\4\30\3\0\2\30\1\0\1\30\1\0"+ + "\2\30\3\0\2\30\3\0\3\30\3\0\14\30\4\0\5\31\3\0"+ + "\3\31\1\0\4\31\2\0\1\30\6\0\1\31\16\0\12\31\11\0"+ + "\1\30\7\0\3\31\1\0\10\30\1\0\3\30\1\0\27\30\1\0"+ + "\12\30\1\0\5\30\3\0\1\30\7\31\1\0\3\31\1\0\4\31"+ + "\7\0\2\31\1\0\2\30\6\0\2\30\2\31\2\0\12\31\22\0"+ + "\2\31\1\0\10\30\1\0\3\30\1\0\27\30\1\0\12\30\1\0"+ + "\5\30\2\0\1\31\1\30\7\31\1\0\3\31\1\0\4\31\7\0"+ + "\2\31\7\0\1\30\1\0\2\30\2\31\2\0\12\31\1\0\2\30"+ + "\17\0\2\31\1\0\10\30\1\0\3\30\1\0\51\30\2\0\1\30"+ + "\7\31\1\0\3\31\1\0\4\31\1\30\10\0\1\31\10\0\2\30"+ + "\2\31\2\0\12\31\12\0\6\30\2\0\2\31\1\0\22\30\3\0"+ + "\30\30\1\0\11\30\1\0\1\30\2\0\7\30\3\0\1\31\4\0"+ + "\6\31\1\0\1\31\1\0\10\31\22\0\2\31\15\0\60\30\1\31"+ + "\2\30\7\31\4\0\10\30\10\31\1\0\12\31\47\0\2\30\1\0"+ + "\1\30\2\0\2\30\1\0\1\30\2\0\1\30\6\0\4\30\1\0"+ + "\7\30\1\0\3\30\1\0\1\30\1\0\1\30\2\0\2\30\1\0"+ + "\4\30\1\31\2\30\6\31\1\0\2\31\1\30\2\0\5\30\1\0"+ + "\1\30\1\0\6\31\2\0\12\31\2\0\4\30\40\0\1\30\27\0"+ + "\2\31\6\0\12\31\13\0\1\31\1\0\1\31\1\0\1\31\4\0"+ + "\2\31\10\30\1\0\44\30\4\0\24\31\1\0\2\31\5\30\13\31"+ + "\1\0\44\31\11\0\1\31\71\0\53\30\24\31\1\30\12\31\6\0"+ + "\6\30\4\31\4\30\3\31\1\30\3\31\2\30\7\31\3\30\4\31"+ + "\15\30\14\31\1\30\17\31\2\0\46\30\1\0\1\30\5\0\1\30"+ + "\2\0\53\30\1\0\u014d\30\1\0\4\30\2\0\7\30\1\0\1\30"+ "\1\0\4\30\2\0\51\30\1\0\4\30\2\0\41\30\1\0\4\30"+ "\2\0\7\30\1\0\1\30\1\0\4\30\2\0\17\30\1\0\71\30"+ "\1\0\4\30\2\0\103\30\2\0\3\31\40\0\20\30\20\0\125\30"+ @@ -107,64 +108,75 @@ public class Scanner implements sym, java_cup.runtime.Scanner { "\13\0\54\30\4\0\21\31\7\30\2\31\6\0\12\31\46\0\27\30"+ "\5\31\4\0\65\30\12\31\1\0\35\31\2\0\13\31\6\0\12\31"+ "\15\0\1\30\130\0\5\31\57\30\21\31\7\30\4\0\12\31\21\0"+ - "\11\31\14\0\3\31\36\30\12\31\3\0\2\30\12\31\6\0\46\30"+ - "\16\31\14\0\44\30\24\31\10\0\12\31\3\0\3\30\12\31\44\30"+ - "\122\0\3\31\1\0\25\31\4\30\1\31\4\30\1\31\15\0\300\30"+ - "\47\31\25\0\4\31\u0116\30\2\0\6\30\2\0\46\30\2\0\6\30"+ - "\2\0\10\30\1\0\1\30\1\0\1\30\1\0\1\30\1\0\37\30"+ - "\2\0\65\30\1\0\7\30\1\0\1\30\3\0\3\30\1\0\7\30"+ - "\3\0\4\30\2\0\6\30\4\0\15\30\5\0\3\30\1\0\7\30"+ - "\16\0\5\31\32\0\5\31\20\0\2\30\23\0\1\30\13\0\5\31"+ - "\5\0\6\31\1\0\1\30\15\0\1\30\20\0\15\30\3\0\32\30"+ - "\26\0\15\31\4\0\1\31\3\0\14\31\21\0\1\30\4\0\1\30"+ - "\2\0\12\30\1\0\1\30\3\0\5\30\6\0\1\30\1\0\1\30"+ - "\1\0\1\30\1\0\4\30\1\0\13\30\2\0\4\30\5\0\5\30"+ - "\4\0\1\30\21\0\51\30\u0a77\0\57\30\1\0\57\30\1\0\205\30"+ - "\6\0\4\30\3\31\16\0\46\30\12\0\66\30\11\0\1\30\17\0"+ - "\1\31\27\30\11\0\7\30\1\0\7\30\1\0\7\30\1\0\7\30"+ - "\1\0\7\30\1\0\7\30\1\0\7\30\1\0\7\30\1\0\40\31"+ - "\57\0\1\30\u01d5\0\3\30\31\0\11\30\6\31\1\0\5\30\2\0"+ - "\5\30\4\0\126\30\2\0\2\31\2\0\3\30\1\0\132\30\1\0"+ - "\4\30\5\0\51\30\3\0\136\30\21\0\33\30\65\0\20\30\u0200\0"+ - "\u19b6\30\112\0\u51cc\30\64\0\u048d\30\103\0\56\30\2\0\u010d\30\3\0"+ - "\20\30\12\31\2\30\24\0\57\30\1\31\14\0\2\31\1\0\31\30"+ - "\10\0\120\30\2\31\45\0\11\30\2\0\147\30\2\0\4\30\1\0"+ - "\2\30\16\0\12\30\120\0\10\30\1\31\3\30\1\31\4\30\1\31"+ - "\27\30\5\31\20\0\1\30\7\0\64\30\14\0\2\31\62\30\21\31"+ - "\13\0\12\31\6\0\22\31\6\30\3\0\1\30\4\0\12\31\34\30"+ - "\10\31\2\0\27\30\15\31\14\0\35\30\3\0\4\31\57\30\16\31"+ - "\16\0\1\30\12\31\46\0\51\30\16\31\11\0\3\30\1\31\10\30"+ - "\2\31\2\0\12\31\6\0\27\30\3\0\1\30\1\31\4\0\60\30"+ - "\1\31\1\30\3\31\2\30\2\31\5\30\2\31\1\30\1\31\1\30"+ - "\30\0\3\30\43\0\6\30\2\0\6\30\2\0\6\30\11\0\7\30"+ - "\1\0\7\30\221\0\43\30\10\31\1\0\2\31\2\0\12\31\6\0"+ - "\u2ba4\30\14\0\27\30\4\0\61\30\u2104\0\u012e\30\2\0\76\30\2\0"+ - "\152\30\46\0\7\30\14\0\5\30\5\0\1\30\1\31\12\30\1\0"+ - "\15\30\1\0\5\30\1\0\1\30\1\0\2\30\1\0\2\30\1\0"+ - "\154\30\41\0\u016b\30\22\0\100\30\2\0\66\30\50\0\15\30\3\0"+ - "\20\31\20\0\7\31\14\0\2\30\30\0\3\30\31\0\1\30\6\0"+ - "\5\30\1\0\207\30\2\0\1\31\4\0\1\30\13\0\12\31\7\0"+ - "\32\30\4\0\1\30\1\0\32\30\13\0\131\30\3\0\6\30\2\0"+ - "\6\30\2\0\6\30\2\0\3\30\3\0\2\30\3\0\2\30\22\0"+ - "\3\31\4\0\14\30\1\0\32\30\1\0\23\30\1\0\2\30\1\0"+ - "\17\30\2\0\16\30\42\0\173\30\105\0\65\30\210\0\1\31\202\0"+ - "\35\30\3\0\61\30\57\0\37\30\21\0\33\30\65\0\36\30\2\0"+ - "\44\30\4\0\10\30\1\0\5\30\52\0\236\30\2\0\12\31\u0356\0"+ - "\6\30\2\0\1\30\1\0\54\30\1\0\2\30\3\0\1\30\2\0"+ - "\27\30\252\0\26\30\12\0\32\30\306\0\1\30\3\31\1\0\2\31"+ - "\5\0\4\31\4\30\1\0\3\30\1\0\33\30\4\0\3\31\4\0"+ - "\1\31\40\0\35\30\203\0\66\30\12\0\26\30\12\0\23\30\215\0"+ - "\111\30\u03b7\0\3\31\65\30\17\31\37\0\12\31\20\0\3\31\55\30"+ - "\13\31\2\0\1\31\u0f42\0\u036f\30\221\0\143\30\u0b9d\0\u042f\30\u33d1\0"+ - "\u0239\30\u45c7\0\2\30\u2163\0\5\31\3\0\26\31\2\0\7\31\36\0"+ - "\4\31\224\0\3\31\u01bb\0\125\30\1\0\107\30\1\0\2\30\2\0"+ - "\1\30\2\0\2\30\2\0\4\30\1\0\14\30\1\0\1\30\1\0"+ - "\7\30\1\0\101\30\1\0\4\30\2\0\10\30\1\0\7\30\1\0"+ - "\34\30\1\0\4\30\1\0\5\30\1\0\1\30\3\0\7\30\1\0"+ - "\u0154\30\2\0\31\30\1\0\31\30\1\0\37\30\1\0\31\30\1\0"+ - "\37\30\1\0\31\30\1\0\37\30\1\0\31\30\1\0\37\30\1\0"+ - "\31\30\1\0\10\30\2\0\62\31\u2800\0\ua6d7\30\51\0\u1035\30\13\0"+ - "\336\30\u3fe2\0\u021e\30\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05ee\0"+ + "\11\31\14\0\3\31\36\30\15\31\2\30\12\31\54\30\16\31\14\0"+ + "\44\30\24\31\10\0\12\31\3\0\3\30\12\31\44\30\122\0\3\31"+ + "\1\0\25\31\4\30\1\31\4\30\3\31\2\30\11\0\300\30\47\31"+ + "\25\0\4\31\u0116\30\2\0\6\30\2\0\46\30\2\0\6\30\2\0"+ + "\10\30\1\0\1\30\1\0\1\30\1\0\1\30\1\0\37\30\2\0"+ + "\65\30\1\0\7\30\1\0\1\30\3\0\3\30\1\0\7\30\3\0"+ + "\4\30\2\0\6\30\4\0\15\30\5\0\3\30\1\0\7\30\16\0"+ + "\5\31\32\0\5\31\20\0\2\30\23\0\1\30\13\0\5\31\5\0"+ + "\6\31\1\0\1\30\15\0\1\30\20\0\15\30\3\0\33\30\25\0"+ + "\15\31\4\0\1\31\3\0\14\31\21\0\1\30\4\0\1\30\2\0"+ + "\12\30\1\0\1\30\3\0\5\30\6\0\1\30\1\0\1\30\1\0"+ + "\1\30\1\0\4\30\1\0\13\30\2\0\4\30\5\0\5\30\4\0"+ + "\1\30\21\0\51\30\u0a77\0\57\30\1\0\57\30\1\0\205\30\6\0"+ + "\4\30\3\31\2\30\14\0\46\30\1\0\1\30\5\0\1\30\2\0"+ + "\70\30\7\0\1\30\17\0\1\31\27\30\11\0\7\30\1\0\7\30"+ + "\1\0\7\30\1\0\7\30\1\0\7\30\1\0\7\30\1\0\7\30"+ + "\1\0\7\30\1\0\40\31\57\0\1\30\u01d5\0\3\30\31\0\11\30"+ + "\6\31\1\0\5\30\2\0\5\30\4\0\126\30\2\0\2\31\2\0"+ + "\3\30\1\0\132\30\1\0\4\30\5\0\51\30\3\0\136\30\21\0"+ + "\33\30\65\0\20\30\u0200\0\u19b6\30\112\0\u51cd\30\63\0\u048d\30\103\0"+ + "\56\30\2\0\u010d\30\3\0\20\30\12\31\2\30\24\0\57\30\1\31"+ + "\4\0\12\31\1\0\31\30\7\0\1\31\120\30\2\31\45\0\11\30"+ + "\2\0\147\30\2\0\4\30\1\0\4\30\14\0\13\30\115\0\12\30"+ + "\1\31\3\30\1\31\4\30\1\31\27\30\5\31\20\0\1\30\7\0"+ + "\64\30\14\0\2\31\62\30\21\31\13\0\12\31\6\0\22\31\6\30"+ + "\3\0\1\30\4\0\12\31\34\30\10\31\2\0\27\30\15\31\14\0"+ + "\35\30\3\0\4\31\57\30\16\31\16\0\1\30\12\31\46\0\51\30"+ + "\16\31\11\0\3\30\1\31\10\30\2\31\2\0\12\31\6\0\27\30"+ + "\3\0\1\30\1\31\4\0\60\30\1\31\1\30\3\31\2\30\2\31"+ + "\5\30\2\31\1\30\1\31\1\30\30\0\3\30\2\0\13\30\5\31"+ + "\2\0\3\30\2\31\12\0\6\30\2\0\6\30\2\0\6\30\11\0"+ + "\7\30\1\0\7\30\221\0\43\30\10\31\1\0\2\31\2\0\12\31"+ + "\6\0\u2ba4\30\14\0\27\30\4\0\61\30\u2104\0\u016e\30\2\0\152\30"+ + "\46\0\7\30\14\0\5\30\5\0\1\30\1\31\12\30\1\0\15\30"+ + "\1\0\5\30\1\0\1\30\1\0\2\30\1\0\2\30\1\0\154\30"+ + "\41\0\u016b\30\22\0\100\30\2\0\66\30\50\0\15\30\3\0\20\31"+ + "\20\0\7\31\14\0\2\30\30\0\3\30\31\0\1\30\6\0\5\30"+ + "\1\0\207\30\2\0\1\31\4\0\1\30\13\0\12\31\7\0\32\30"+ + "\4\0\1\30\1\0\32\30\13\0\131\30\3\0\6\30\2\0\6\30"+ + "\2\0\6\30\2\0\3\30\3\0\2\30\3\0\2\30\22\0\3\31"+ + "\4\0\14\30\1\0\32\30\1\0\23\30\1\0\2\30\1\0\17\30"+ + "\2\0\16\30\42\0\173\30\105\0\65\30\210\0\1\31\202\0\35\30"+ + "\3\0\61\30\57\0\37\30\21\0\33\30\65\0\36\30\2\0\44\30"+ + "\4\0\10\30\1\0\5\30\52\0\236\30\2\0\12\31\u0356\0\6\30"+ + "\2\0\1\30\1\0\54\30\1\0\2\30\3\0\1\30\2\0\27\30"+ + "\252\0\26\30\12\0\32\30\106\0\70\30\6\0\2\30\100\0\1\30"+ + "\3\31\1\0\2\31\5\0\4\31\4\30\1\0\3\30\1\0\33\30"+ + "\4\0\3\31\4\0\1\31\40\0\35\30\203\0\66\30\12\0\26\30"+ + "\12\0\23\30\215\0\111\30\u03b7\0\3\31\65\30\17\31\37\0\12\31"+ + "\20\0\3\31\55\30\13\31\2\0\1\31\22\0\31\30\7\0\12\31"+ + "\6\0\3\31\44\30\16\31\1\0\12\31\100\0\3\31\60\30\16\31"+ + "\4\30\13\0\12\31\u04a6\0\53\30\15\31\10\0\12\31\u0936\0\u036f\30"+ + "\221\0\143\30\u0b9d\0\u042f\30\u33d1\0\u0239\30\u04c7\0\105\30\13\0\1\30"+ + "\56\31\20\0\4\31\15\30\u4060\0\2\30\u2163\0\5\31\3\0\26\31"+ + "\2\0\7\31\36\0\4\31\224\0\3\31\u01bb\0\125\30\1\0\107\30"+ + "\1\0\2\30\2\0\1\30\2\0\2\30\2\0\4\30\1\0\14\30"+ + "\1\0\1\30\1\0\7\30\1\0\101\30\1\0\4\30\2\0\10\30"+ + "\1\0\7\30\1\0\34\30\1\0\4\30\1\0\5\30\1\0\1\30"+ + "\3\0\7\30\1\0\u0154\30\2\0\31\30\1\0\31\30\1\0\37\30"+ + "\1\0\31\30\1\0\37\30\1\0\31\30\1\0\37\30\1\0\31\30"+ + "\1\0\37\30\1\0\31\30\1\0\10\30\2\0\62\31\u1600\0\4\30"+ + "\1\0\33\30\1\0\2\30\1\0\1\30\2\0\1\30\1\0\12\30"+ + "\1\0\4\30\1\0\1\30\1\0\1\30\6\0\1\30\4\0\1\30"+ + "\1\0\1\30\1\0\1\30\1\0\3\30\1\0\2\30\1\0\1\30"+ + "\2\0\1\30\1\0\1\30\1\0\1\30\1\0\1\30\1\0\1\30"+ + "\1\0\2\30\1\0\1\30\2\0\4\30\1\0\7\30\1\0\4\30"+ + "\1\0\4\30\1\0\1\30\1\0\12\30\1\0\21\30\5\0\3\30"+ + "\1\0\5\30\1\0\21\30\u1144\0\ua6d7\30\51\0\u1035\30\13\0\336\30"+ + "\u3fe2\0\u021e\30\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05ee\0"+ "\1\31\36\0\140\31\200\0\360\31\uffff\0\uffff\0\ufe12\0"; /** @@ -616,7 +628,7 @@ public Scanner(java.io.Reader in) { char [] map = new char[0x110000]; int i = 0; /* index in packed string */ int j = 0; /* index in unpacked array */ - while (i < 2626) { + while (i < 2864) { int count = packed.charAt(i++); char value = packed.charAt(i++); do map[j++] = value; while (--count > 0); diff --git a/compiler/src/UnicodeEscapes.java b/compiler/src/UnicodeEscapes.java index 5f90c54..07cb827 100644 --- a/compiler/src/UnicodeEscapes.java +++ b/compiler/src/UnicodeEscapes.java @@ -45,7 +45,7 @@ /** * This class is a scanner generated by * JFlex 1.6.1 - * from the specification file /Users/Lee/Documents/P4/compiler/src/unicode.flex + * from the specification file C:/Users/Nete/Documents/GitHub/P4/Compiler/src/unicode.flex */ public final class UnicodeEscapes extends FilterReader { diff --git a/compiler/src/cancer b/compiler/src/cancer index cea349e..0300fd8 100644 --- a/compiler/src/cancer +++ b/compiler/src/cancer @@ -1,5 +1,7 @@ Robot: -LOAD(kage) +LOAD("kage") + +NUM a = 5 VOID START() diff --git a/compiler/src/java12.cup b/compiler/src/java12.cup index 88cf4ef..455c8f1 100644 --- a/compiler/src/java12.cup +++ b/compiler/src/java12.cup @@ -1,6 +1,9 @@ // Test CUP for P4 import java_cup.*; +//Den er ikke glad for EOL på nuværende tidspunkt +//TypeName produktionen virker ikke + parser code {: public void report_error(String message, Object info) { StringBuilder m = new StringBuilder("Error "); @@ -22,10 +25,10 @@ parser code {: non terminal Type, ReferenceType, PrimitiveType, TypeName, Program, Load, RoboDecl, MemberDcl, RoboBodyDcl, FieldDcl, MethodDcl, VariableDclList, VariableDcl, VariableInitializer, ListInitializer, Expression, Literal, LitList, AssignmentExpression, ConditionalExpression, Assignment, - LeftHandSide, ListAccess, ConditionOrExpression, ConditionAndExpression, XORExpression, EqualityExpression, + LeftHandSide, ListOpt, ConditionOrExpression, ConditionAndExpression, XORExpression, EqualityExpression, EqualityExpressionEnd, RelationalExpression, RelationalExpressionEnd, AdditiveExpression, MultiExpr, - AdditiveExpressionEnd, UnaryExpr, MultiExprEnd, Primary, MethodInvocation, FormalArgs, ArgsList, FieldAccess, - ParamsList, Param, MethodHeader, HearDecl, MethodBody, ReturnType, MethodDeclarator, FormalParams, Block, + AdditiveExpressionEnd, UnaryExpr, MultiExprEnd, Primary, MethodInvocation, FormalArgs, ArgsList, + ParamsList, Param, MethodHeader, HearDecl, MethodBody, MethodDeclarator, FormalParams, Block, BlockStmtList, BlockStmt, LocalVariableDcl, Statement, StmtNoSubstmt, IfStmt, LoopStmt, EmptyStmt, SignalStmt, ExprStmt, BreakStmt, ReturnStmt, StmtExpr, ElseIfStmt, ElseStmt, RepeatStmt, ForeverStmt, BoolLit; @@ -34,7 +37,8 @@ non terminal Type, ReferenceType, PrimitiveType, TypeName, Program, Load terminal Identifier, NUM, BOOL, STRING, COORD, LIST, NumLit, VOID; //Symbols -terminal DOT, COMMA, LPAREN, RPAREN, EOL, COLON, lambda, XOR, PLUS, MINUS, MULT, DIV, ASSIGN; +terminal DOT, COMMA, LPAREN, RPAREN, EOL, COLON, lambda, XOR, PLUS, MINUS, MULT, DIV, ASSIGN, + SQUARE_LEFT, SQUARE_RIGHT; //Boolean Operators terminal AND, OR, IS, NOT, LT, GT, LTE, GTE, TRUE, FALSE, StringLit, CoordLit; @@ -73,18 +77,18 @@ ReferenceType | LIST ; -// Names -TypeName -::= Identifier -| TypeName DOT Identifier -; +// Name +//TypeName +//::= Identifier +//| TypeName DOT Identifier +//; Load -::= LOAD LPAREN Identifier RPAREN EOL -| Load LOAD LPAREN Identifier RPAREN EOL +::= LOAD LPAREN StringLit RPAREN EOL +| Load LOAD LPAREN StringLit RPAREN EOL ; RoboDecl -::= Identifier COLON EOL +::= Identifier COLON ; // Declarations @@ -133,11 +137,11 @@ Assignment ::= LeftHandSide ASSIGN Expression ; LeftHandSide -::= TypeName -| ListAccess +::= TypeName ListOpt ; -ListAccess -::= TypeName LPAREN NumLit RPAREN +ListOpt +::= SQUARE_LEFT Expression SQUARE_RIGHT +| lambda ; ConditionalExpression ::= ConditionOrExpression @@ -198,9 +202,8 @@ UnaryExpr Primary ::= Literal | LPAREN Expression RPAREN - | ListAccess | MethodInvocation - | FieldAccess + | TypeName ListOpt ; MethodInvocation ::= TypeName LPAREN FormalArgs RPAREN @@ -209,9 +212,6 @@ FormalArgs ::= ArgsList | lambda ; -FieldAccess - ::= TypeName - ; // Methods (params, args and declarations) ArgsList @@ -236,11 +236,8 @@ MethodDcl | HearDecl ; MethodHeader - ::= ReturnType MethodDeclarator - ; -ReturnType - ::= Type - | VOID + ::= Type MethodDeclarator + | VOID MethodDeclarator ; MethodDeclarator ::= Identifier LPAREN FormalParams RPAREN From cc875b5ac34514f4f29f71041f1f297ce1b8f1fa Mon Sep 17 00:00:00 2001 From: Lee Paludan Date: Fri, 18 Mar 2016 11:57:17 +0100 Subject: [PATCH 41/55] Added literals --- compiler/src/Scanner.java | 800 +++++++++++++++--------------- compiler/src/Scanner.java~ | 806 ++++++++++++++++--------------- compiler/src/UnicodeEscapes.java | 2 +- compiler/src/java.flex | 7 + compiler/src/java12.cup | 38 +- 5 files changed, 848 insertions(+), 805 deletions(-) diff --git a/compiler/src/Scanner.java b/compiler/src/Scanner.java index f2aa991..f9ba83e 100644 --- a/compiler/src/Scanner.java +++ b/compiler/src/Scanner.java @@ -6,7 +6,7 @@ /** * This class is a scanner generated by * JFlex 1.6.1 - * from the specification file C:/Users/Nete/Documents/GitHub/P4/Compiler/src/java.flex + * from the specification file /Users/Lee/Documents/P4/compiler/src/java.flex */ public class Scanner implements sym, java_cup.runtime.Scanner { @@ -36,66 +36,65 @@ public class Scanner implements sym, java_cup.runtime.Scanner { */ private static final String ZZ_CMAP_PACKED = "\11\31\1\3\1\2\1\0\1\3\1\1\16\31\4\0\1\3\1\0"+ - "\1\12\1\0\1\30\2\0\1\13\1\54\1\55\1\5\1\61\1\27"+ - "\1\11\1\7\1\4\12\6\1\56\2\0\1\60\3\0\1\40\1\44"+ - "\1\30\1\35\1\10\1\33\1\43\1\41\1\32\1\30\1\45\1\20"+ - "\1\30\1\34\1\37\1\50\1\53\1\42\1\36\1\46\1\47\1\51"+ - "\1\30\1\57\2\30\1\0\1\14\2\0\1\52\1\0\1\25\3\30"+ + "\1\12\1\0\1\30\2\0\1\13\1\56\1\57\1\5\1\63\1\27"+ + "\1\11\1\7\1\4\12\6\1\60\2\0\1\62\3\0\1\40\1\44"+ + "\1\55\1\35\1\10\1\33\1\43\1\41\1\32\1\30\1\45\1\20"+ + "\1\54\1\34\1\37\1\50\1\53\1\42\1\36\1\46\1\47\1\51"+ + "\1\30\1\61\2\30\1\0\1\14\2\0\1\52\1\0\1\25\3\30"+ "\1\23\3\30\1\21\2\30\1\26\1\17\1\15\3\30\1\24\1\30"+ - "\1\22\1\16\5\30\3\0\1\62\41\31\2\0\4\30\4\0\1\30"+ + "\1\22\1\16\5\30\3\0\1\64\41\31\2\0\4\30\4\0\1\30"+ "\2\0\1\31\7\0\1\30\4\0\1\30\5\0\27\30\1\0\37\30"+ "\1\0\u01ca\30\4\0\14\30\16\0\5\30\7\0\1\30\1\0\1\30"+ "\21\0\160\31\5\30\1\0\2\30\2\0\4\30\10\0\1\30\1\0"+ "\3\30\1\0\1\30\1\0\24\30\1\0\123\30\1\0\213\30\1\0"+ - "\5\31\2\0\236\30\11\0\46\30\2\0\1\30\7\0\47\30\7\0"+ - "\1\30\1\0\55\31\1\0\1\31\1\0\2\31\1\0\2\31\1\0"+ - "\1\31\10\0\33\30\5\0\3\30\15\0\5\31\6\0\1\30\4\0"+ - "\13\31\5\0\53\30\37\31\4\0\2\30\1\31\143\30\1\0\1\30"+ - "\10\31\1\0\6\31\2\30\2\31\1\0\4\31\2\30\12\31\3\30"+ - "\2\0\1\30\17\0\1\31\1\30\1\31\36\30\33\31\2\0\131\30"+ - "\13\31\1\30\16\0\12\31\41\30\11\31\2\30\4\0\1\30\5\0"+ - "\26\30\4\31\1\30\11\31\1\30\3\31\1\30\5\31\22\0\31\30"+ - "\3\31\104\0\1\30\1\0\13\30\67\0\33\31\1\0\4\31\66\30"+ - "\3\31\1\30\22\31\1\30\7\31\12\30\2\31\2\0\12\31\1\0"+ - "\7\30\1\0\7\30\1\0\3\31\1\0\10\30\2\0\2\30\2\0"+ - "\26\30\1\0\7\30\1\0\1\30\3\0\4\30\2\0\1\31\1\30"+ - "\7\31\2\0\2\31\2\0\3\31\1\30\10\0\1\31\4\0\2\30"+ - "\1\0\3\30\2\31\2\0\12\31\4\30\7\0\1\30\5\0\3\31"+ - "\1\0\6\30\4\0\2\30\2\0\26\30\1\0\7\30\1\0\2\30"+ - "\1\0\2\30\1\0\2\30\2\0\1\31\1\0\5\31\4\0\2\31"+ - "\2\0\3\31\3\0\1\31\7\0\4\30\1\0\1\30\7\0\14\31"+ - "\3\30\1\31\13\0\3\31\1\0\11\30\1\0\3\30\1\0\26\30"+ - "\1\0\7\30\1\0\2\30\1\0\5\30\2\0\1\31\1\30\10\31"+ - "\1\0\3\31\1\0\3\31\2\0\1\30\17\0\2\30\2\31\2\0"+ - "\12\31\1\0\1\30\17\0\3\31\1\0\10\30\2\0\2\30\2\0"+ - "\26\30\1\0\7\30\1\0\2\30\1\0\5\30\2\0\1\31\1\30"+ - "\7\31\2\0\2\31\2\0\3\31\10\0\2\31\4\0\2\30\1\0"+ - "\3\30\2\31\2\0\12\31\1\0\1\30\20\0\1\31\1\30\1\0"+ - "\6\30\3\0\3\30\1\0\4\30\3\0\2\30\1\0\1\30\1\0"+ - "\2\30\3\0\2\30\3\0\3\30\3\0\14\30\4\0\5\31\3\0"+ - "\3\31\1\0\4\31\2\0\1\30\6\0\1\31\16\0\12\31\11\0"+ - "\1\30\7\0\3\31\1\0\10\30\1\0\3\30\1\0\27\30\1\0"+ - "\12\30\1\0\5\30\3\0\1\30\7\31\1\0\3\31\1\0\4\31"+ - "\7\0\2\31\1\0\2\30\6\0\2\30\2\31\2\0\12\31\22\0"+ - "\2\31\1\0\10\30\1\0\3\30\1\0\27\30\1\0\12\30\1\0"+ - "\5\30\2\0\1\31\1\30\7\31\1\0\3\31\1\0\4\31\7\0"+ - "\2\31\7\0\1\30\1\0\2\30\2\31\2\0\12\31\1\0\2\30"+ - "\17\0\2\31\1\0\10\30\1\0\3\30\1\0\51\30\2\0\1\30"+ - "\7\31\1\0\3\31\1\0\4\31\1\30\10\0\1\31\10\0\2\30"+ - "\2\31\2\0\12\31\12\0\6\30\2\0\2\31\1\0\22\30\3\0"+ - "\30\30\1\0\11\30\1\0\1\30\2\0\7\30\3\0\1\31\4\0"+ - "\6\31\1\0\1\31\1\0\10\31\22\0\2\31\15\0\60\30\1\31"+ - "\2\30\7\31\4\0\10\30\10\31\1\0\12\31\47\0\2\30\1\0"+ - "\1\30\2\0\2\30\1\0\1\30\2\0\1\30\6\0\4\30\1\0"+ - "\7\30\1\0\3\30\1\0\1\30\1\0\1\30\2\0\2\30\1\0"+ - "\4\30\1\31\2\30\6\31\1\0\2\31\1\30\2\0\5\30\1\0"+ - "\1\30\1\0\6\31\2\0\12\31\2\0\4\30\40\0\1\30\27\0"+ - "\2\31\6\0\12\31\13\0\1\31\1\0\1\31\1\0\1\31\4\0"+ - "\2\31\10\30\1\0\44\30\4\0\24\31\1\0\2\31\5\30\13\31"+ - "\1\0\44\31\11\0\1\31\71\0\53\30\24\31\1\30\12\31\6\0"+ - "\6\30\4\31\4\30\3\31\1\30\3\31\2\30\7\31\3\30\4\31"+ - "\15\30\14\31\1\30\17\31\2\0\46\30\1\0\1\30\5\0\1\30"+ - "\2\0\53\30\1\0\u014d\30\1\0\4\30\2\0\7\30\1\0\1\30"+ + "\5\31\2\0\236\30\11\0\46\30\2\0\1\30\7\0\47\30\11\0"+ + "\55\31\1\0\1\31\1\0\2\31\1\0\2\31\1\0\1\31\10\0"+ + "\33\30\5\0\3\30\15\0\4\31\7\0\1\30\4\0\13\31\5\0"+ + "\53\30\37\31\4\0\2\30\1\31\143\30\1\0\1\30\10\31\1\0"+ + "\6\31\2\30\2\31\1\0\4\31\2\30\12\31\3\30\2\0\1\30"+ + "\17\0\1\31\1\30\1\31\36\30\33\31\2\0\131\30\13\31\1\30"+ + "\16\0\12\31\41\30\11\31\2\30\4\0\1\30\5\0\26\30\4\31"+ + "\1\30\11\31\1\30\3\31\1\30\5\31\22\0\31\30\3\31\244\0"+ + "\4\31\66\30\3\31\1\30\22\31\1\30\7\31\12\30\2\31\2\0"+ + "\12\31\1\0\7\30\1\0\7\30\1\0\3\31\1\0\10\30\2\0"+ + "\2\30\2\0\26\30\1\0\7\30\1\0\1\30\3\0\4\30\2\0"+ + "\1\31\1\30\7\31\2\0\2\31\2\0\3\31\1\30\10\0\1\31"+ + "\4\0\2\30\1\0\3\30\2\31\2\0\12\31\4\30\7\0\1\30"+ + "\5\0\3\31\1\0\6\30\4\0\2\30\2\0\26\30\1\0\7\30"+ + "\1\0\2\30\1\0\2\30\1\0\2\30\2\0\1\31\1\0\5\31"+ + "\4\0\2\31\2\0\3\31\3\0\1\31\7\0\4\30\1\0\1\30"+ + "\7\0\14\31\3\30\1\31\13\0\3\31\1\0\11\30\1\0\3\30"+ + "\1\0\26\30\1\0\7\30\1\0\2\30\1\0\5\30\2\0\1\31"+ + "\1\30\10\31\1\0\3\31\1\0\3\31\2\0\1\30\17\0\2\30"+ + "\2\31\2\0\12\31\1\0\1\30\17\0\3\31\1\0\10\30\2\0"+ + "\2\30\2\0\26\30\1\0\7\30\1\0\2\30\1\0\5\30\2\0"+ + "\1\31\1\30\7\31\2\0\2\31\2\0\3\31\10\0\2\31\4\0"+ + "\2\30\1\0\3\30\2\31\2\0\12\31\1\0\1\30\20\0\1\31"+ + "\1\30\1\0\6\30\3\0\3\30\1\0\4\30\3\0\2\30\1\0"+ + "\1\30\1\0\2\30\3\0\2\30\3\0\3\30\3\0\14\30\4\0"+ + "\5\31\3\0\3\31\1\0\4\31\2\0\1\30\6\0\1\31\16\0"+ + "\12\31\11\0\1\30\7\0\3\31\1\0\10\30\1\0\3\30\1\0"+ + "\27\30\1\0\12\30\1\0\5\30\3\0\1\30\7\31\1\0\3\31"+ + "\1\0\4\31\7\0\2\31\1\0\2\30\6\0\2\30\2\31\2\0"+ + "\12\31\22\0\2\31\1\0\10\30\1\0\3\30\1\0\27\30\1\0"+ + "\12\30\1\0\5\30\2\0\1\31\1\30\7\31\1\0\3\31\1\0"+ + "\4\31\7\0\2\31\7\0\1\30\1\0\2\30\2\31\2\0\12\31"+ + "\1\0\2\30\17\0\2\31\1\0\10\30\1\0\3\30\1\0\51\30"+ + "\2\0\1\30\7\31\1\0\3\31\1\0\4\31\1\30\10\0\1\31"+ + "\10\0\2\30\2\31\2\0\12\31\12\0\6\30\2\0\2\31\1\0"+ + "\22\30\3\0\30\30\1\0\11\30\1\0\1\30\2\0\7\30\3\0"+ + "\1\31\4\0\6\31\1\0\1\31\1\0\10\31\22\0\2\31\15\0"+ + "\60\30\1\31\2\30\7\31\4\0\10\30\10\31\1\0\12\31\47\0"+ + "\2\30\1\0\1\30\2\0\2\30\1\0\1\30\2\0\1\30\6\0"+ + "\4\30\1\0\7\30\1\0\3\30\1\0\1\30\1\0\1\30\2\0"+ + "\2\30\1\0\4\30\1\31\2\30\6\31\1\0\2\31\1\30\2\0"+ + "\5\30\1\0\1\30\1\0\6\31\2\0\12\31\2\0\2\30\42\0"+ + "\1\30\27\0\2\31\6\0\12\31\13\0\1\31\1\0\1\31\1\0"+ + "\1\31\4\0\2\31\10\30\1\0\44\30\4\0\24\31\1\0\2\31"+ + "\5\30\13\31\1\0\44\31\11\0\1\31\71\0\53\30\24\31\1\30"+ + "\12\31\6\0\6\30\4\31\4\30\3\31\1\30\3\31\2\30\7\31"+ + "\3\30\4\31\15\30\14\31\1\30\17\31\2\0\46\30\12\0\53\30"+ + "\1\0\1\30\3\0\u0149\30\1\0\4\30\2\0\7\30\1\0\1\30"+ "\1\0\4\30\2\0\51\30\1\0\4\30\2\0\41\30\1\0\4\30"+ "\2\0\7\30\1\0\1\30\1\0\4\30\2\0\17\30\1\0\71\30"+ "\1\0\4\30\2\0\103\30\2\0\3\31\40\0\20\30\20\0\125\30"+ @@ -108,75 +107,64 @@ public class Scanner implements sym, java_cup.runtime.Scanner { "\13\0\54\30\4\0\21\31\7\30\2\31\6\0\12\31\46\0\27\30"+ "\5\31\4\0\65\30\12\31\1\0\35\31\2\0\13\31\6\0\12\31"+ "\15\0\1\30\130\0\5\31\57\30\21\31\7\30\4\0\12\31\21\0"+ - "\11\31\14\0\3\31\36\30\15\31\2\30\12\31\54\30\16\31\14\0"+ - "\44\30\24\31\10\0\12\31\3\0\3\30\12\31\44\30\122\0\3\31"+ - "\1\0\25\31\4\30\1\31\4\30\3\31\2\30\11\0\300\30\47\31"+ - "\25\0\4\31\u0116\30\2\0\6\30\2\0\46\30\2\0\6\30\2\0"+ - "\10\30\1\0\1\30\1\0\1\30\1\0\1\30\1\0\37\30\2\0"+ - "\65\30\1\0\7\30\1\0\1\30\3\0\3\30\1\0\7\30\3\0"+ - "\4\30\2\0\6\30\4\0\15\30\5\0\3\30\1\0\7\30\16\0"+ - "\5\31\32\0\5\31\20\0\2\30\23\0\1\30\13\0\5\31\5\0"+ - "\6\31\1\0\1\30\15\0\1\30\20\0\15\30\3\0\33\30\25\0"+ - "\15\31\4\0\1\31\3\0\14\31\21\0\1\30\4\0\1\30\2\0"+ - "\12\30\1\0\1\30\3\0\5\30\6\0\1\30\1\0\1\30\1\0"+ - "\1\30\1\0\4\30\1\0\13\30\2\0\4\30\5\0\5\30\4\0"+ - "\1\30\21\0\51\30\u0a77\0\57\30\1\0\57\30\1\0\205\30\6\0"+ - "\4\30\3\31\2\30\14\0\46\30\1\0\1\30\5\0\1\30\2\0"+ - "\70\30\7\0\1\30\17\0\1\31\27\30\11\0\7\30\1\0\7\30"+ - "\1\0\7\30\1\0\7\30\1\0\7\30\1\0\7\30\1\0\7\30"+ - "\1\0\7\30\1\0\40\31\57\0\1\30\u01d5\0\3\30\31\0\11\30"+ - "\6\31\1\0\5\30\2\0\5\30\4\0\126\30\2\0\2\31\2\0"+ - "\3\30\1\0\132\30\1\0\4\30\5\0\51\30\3\0\136\30\21\0"+ - "\33\30\65\0\20\30\u0200\0\u19b6\30\112\0\u51cd\30\63\0\u048d\30\103\0"+ - "\56\30\2\0\u010d\30\3\0\20\30\12\31\2\30\24\0\57\30\1\31"+ - "\4\0\12\31\1\0\31\30\7\0\1\31\120\30\2\31\45\0\11\30"+ - "\2\0\147\30\2\0\4\30\1\0\4\30\14\0\13\30\115\0\12\30"+ - "\1\31\3\30\1\31\4\30\1\31\27\30\5\31\20\0\1\30\7\0"+ - "\64\30\14\0\2\31\62\30\21\31\13\0\12\31\6\0\22\31\6\30"+ - "\3\0\1\30\4\0\12\31\34\30\10\31\2\0\27\30\15\31\14\0"+ - "\35\30\3\0\4\31\57\30\16\31\16\0\1\30\12\31\46\0\51\30"+ - "\16\31\11\0\3\30\1\31\10\30\2\31\2\0\12\31\6\0\27\30"+ - "\3\0\1\30\1\31\4\0\60\30\1\31\1\30\3\31\2\30\2\31"+ - "\5\30\2\31\1\30\1\31\1\30\30\0\3\30\2\0\13\30\5\31"+ - "\2\0\3\30\2\31\12\0\6\30\2\0\6\30\2\0\6\30\11\0"+ - "\7\30\1\0\7\30\221\0\43\30\10\31\1\0\2\31\2\0\12\31"+ - "\6\0\u2ba4\30\14\0\27\30\4\0\61\30\u2104\0\u016e\30\2\0\152\30"+ - "\46\0\7\30\14\0\5\30\5\0\1\30\1\31\12\30\1\0\15\30"+ - "\1\0\5\30\1\0\1\30\1\0\2\30\1\0\2\30\1\0\154\30"+ - "\41\0\u016b\30\22\0\100\30\2\0\66\30\50\0\15\30\3\0\20\31"+ - "\20\0\7\31\14\0\2\30\30\0\3\30\31\0\1\30\6\0\5\30"+ - "\1\0\207\30\2\0\1\31\4\0\1\30\13\0\12\31\7\0\32\30"+ - "\4\0\1\30\1\0\32\30\13\0\131\30\3\0\6\30\2\0\6\30"+ - "\2\0\6\30\2\0\3\30\3\0\2\30\3\0\2\30\22\0\3\31"+ - "\4\0\14\30\1\0\32\30\1\0\23\30\1\0\2\30\1\0\17\30"+ - "\2\0\16\30\42\0\173\30\105\0\65\30\210\0\1\31\202\0\35\30"+ - "\3\0\61\30\57\0\37\30\21\0\33\30\65\0\36\30\2\0\44\30"+ - "\4\0\10\30\1\0\5\30\52\0\236\30\2\0\12\31\u0356\0\6\30"+ - "\2\0\1\30\1\0\54\30\1\0\2\30\3\0\1\30\2\0\27\30"+ - "\252\0\26\30\12\0\32\30\106\0\70\30\6\0\2\30\100\0\1\30"+ - "\3\31\1\0\2\31\5\0\4\31\4\30\1\0\3\30\1\0\33\30"+ - "\4\0\3\31\4\0\1\31\40\0\35\30\203\0\66\30\12\0\26\30"+ - "\12\0\23\30\215\0\111\30\u03b7\0\3\31\65\30\17\31\37\0\12\31"+ - "\20\0\3\31\55\30\13\31\2\0\1\31\22\0\31\30\7\0\12\31"+ - "\6\0\3\31\44\30\16\31\1\0\12\31\100\0\3\31\60\30\16\31"+ - "\4\30\13\0\12\31\u04a6\0\53\30\15\31\10\0\12\31\u0936\0\u036f\30"+ - "\221\0\143\30\u0b9d\0\u042f\30\u33d1\0\u0239\30\u04c7\0\105\30\13\0\1\30"+ - "\56\31\20\0\4\31\15\30\u4060\0\2\30\u2163\0\5\31\3\0\26\31"+ - "\2\0\7\31\36\0\4\31\224\0\3\31\u01bb\0\125\30\1\0\107\30"+ - "\1\0\2\30\2\0\1\30\2\0\2\30\2\0\4\30\1\0\14\30"+ - "\1\0\1\30\1\0\7\30\1\0\101\30\1\0\4\30\2\0\10\30"+ - "\1\0\7\30\1\0\34\30\1\0\4\30\1\0\5\30\1\0\1\30"+ - "\3\0\7\30\1\0\u0154\30\2\0\31\30\1\0\31\30\1\0\37\30"+ - "\1\0\31\30\1\0\37\30\1\0\31\30\1\0\37\30\1\0\31\30"+ - "\1\0\37\30\1\0\31\30\1\0\10\30\2\0\62\31\u1600\0\4\30"+ - "\1\0\33\30\1\0\2\30\1\0\1\30\2\0\1\30\1\0\12\30"+ - "\1\0\4\30\1\0\1\30\1\0\1\30\6\0\1\30\4\0\1\30"+ - "\1\0\1\30\1\0\1\30\1\0\3\30\1\0\2\30\1\0\1\30"+ - "\2\0\1\30\1\0\1\30\1\0\1\30\1\0\1\30\1\0\1\30"+ - "\1\0\2\30\1\0\1\30\2\0\4\30\1\0\7\30\1\0\4\30"+ - "\1\0\4\30\1\0\1\30\1\0\12\30\1\0\21\30\5\0\3\30"+ - "\1\0\5\30\1\0\21\30\u1144\0\ua6d7\30\51\0\u1035\30\13\0\336\30"+ - "\u3fe2\0\u021e\30\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05ee\0"+ + "\11\31\14\0\3\31\36\30\12\31\3\0\2\30\12\31\6\0\46\30"+ + "\16\31\14\0\44\30\24\31\10\0\12\31\3\0\3\30\12\31\44\30"+ + "\122\0\3\31\1\0\25\31\4\30\1\31\4\30\1\31\15\0\300\30"+ + "\47\31\25\0\4\31\u0116\30\2\0\6\30\2\0\46\30\2\0\6\30"+ + "\2\0\10\30\1\0\1\30\1\0\1\30\1\0\1\30\1\0\37\30"+ + "\2\0\65\30\1\0\7\30\1\0\1\30\3\0\3\30\1\0\7\30"+ + "\3\0\4\30\2\0\6\30\4\0\15\30\5\0\3\30\1\0\7\30"+ + "\16\0\5\31\32\0\5\31\20\0\2\30\23\0\1\30\13\0\5\31"+ + "\5\0\6\31\1\0\1\30\15\0\1\30\20\0\15\30\3\0\32\30"+ + "\26\0\15\31\4\0\1\31\3\0\14\31\21\0\1\30\4\0\1\30"+ + "\2\0\12\30\1\0\1\30\3\0\5\30\6\0\1\30\1\0\1\30"+ + "\1\0\1\30\1\0\4\30\1\0\13\30\2\0\4\30\5\0\5\30"+ + "\4\0\1\30\21\0\51\30\u0a77\0\57\30\1\0\57\30\1\0\205\30"+ + "\6\0\4\30\3\31\16\0\46\30\12\0\66\30\11\0\1\30\17\0"+ + "\1\31\27\30\11\0\7\30\1\0\7\30\1\0\7\30\1\0\7\30"+ + "\1\0\7\30\1\0\7\30\1\0\7\30\1\0\7\30\1\0\40\31"+ + "\57\0\1\30\u01d5\0\3\30\31\0\11\30\6\31\1\0\5\30\2\0"+ + "\5\30\4\0\126\30\2\0\2\31\2\0\3\30\1\0\132\30\1\0"+ + "\4\30\5\0\51\30\3\0\136\30\21\0\33\30\65\0\20\30\u0200\0"+ + "\u19b6\30\112\0\u51cc\30\64\0\u048d\30\103\0\56\30\2\0\u010d\30\3\0"+ + "\20\30\12\31\2\30\24\0\57\30\1\31\14\0\2\31\1\0\31\30"+ + "\10\0\120\30\2\31\45\0\11\30\2\0\147\30\2\0\4\30\1\0"+ + "\2\30\16\0\12\30\120\0\10\30\1\31\3\30\1\31\4\30\1\31"+ + "\27\30\5\31\20\0\1\30\7\0\64\30\14\0\2\31\62\30\21\31"+ + "\13\0\12\31\6\0\22\31\6\30\3\0\1\30\4\0\12\31\34\30"+ + "\10\31\2\0\27\30\15\31\14\0\35\30\3\0\4\31\57\30\16\31"+ + "\16\0\1\30\12\31\46\0\51\30\16\31\11\0\3\30\1\31\10\30"+ + "\2\31\2\0\12\31\6\0\27\30\3\0\1\30\1\31\4\0\60\30"+ + "\1\31\1\30\3\31\2\30\2\31\5\30\2\31\1\30\1\31\1\30"+ + "\30\0\3\30\43\0\6\30\2\0\6\30\2\0\6\30\11\0\7\30"+ + "\1\0\7\30\221\0\43\30\10\31\1\0\2\31\2\0\12\31\6\0"+ + "\u2ba4\30\14\0\27\30\4\0\61\30\u2104\0\u012e\30\2\0\76\30\2\0"+ + "\152\30\46\0\7\30\14\0\5\30\5\0\1\30\1\31\12\30\1\0"+ + "\15\30\1\0\5\30\1\0\1\30\1\0\2\30\1\0\2\30\1\0"+ + "\154\30\41\0\u016b\30\22\0\100\30\2\0\66\30\50\0\15\30\3\0"+ + "\20\31\20\0\7\31\14\0\2\30\30\0\3\30\31\0\1\30\6\0"+ + "\5\30\1\0\207\30\2\0\1\31\4\0\1\30\13\0\12\31\7\0"+ + "\32\30\4\0\1\30\1\0\32\30\13\0\131\30\3\0\6\30\2\0"+ + "\6\30\2\0\6\30\2\0\3\30\3\0\2\30\3\0\2\30\22\0"+ + "\3\31\4\0\14\30\1\0\32\30\1\0\23\30\1\0\2\30\1\0"+ + "\17\30\2\0\16\30\42\0\173\30\105\0\65\30\210\0\1\31\202\0"+ + "\35\30\3\0\61\30\57\0\37\30\21\0\33\30\65\0\36\30\2\0"+ + "\44\30\4\0\10\30\1\0\5\30\52\0\236\30\2\0\12\31\u0356\0"+ + "\6\30\2\0\1\30\1\0\54\30\1\0\2\30\3\0\1\30\2\0"+ + "\27\30\252\0\26\30\12\0\32\30\306\0\1\30\3\31\1\0\2\31"+ + "\5\0\4\31\4\30\1\0\3\30\1\0\33\30\4\0\3\31\4\0"+ + "\1\31\40\0\35\30\203\0\66\30\12\0\26\30\12\0\23\30\215\0"+ + "\111\30\u03b7\0\3\31\65\30\17\31\37\0\12\31\20\0\3\31\55\30"+ + "\13\31\2\0\1\31\u0f42\0\u036f\30\221\0\143\30\u0b9d\0\u042f\30\u33d1\0"+ + "\u0239\30\u45c7\0\2\30\u2163\0\5\31\3\0\26\31\2\0\7\31\36\0"+ + "\4\31\224\0\3\31\u01bb\0\125\30\1\0\107\30\1\0\2\30\2\0"+ + "\1\30\2\0\2\30\2\0\4\30\1\0\14\30\1\0\1\30\1\0"+ + "\7\30\1\0\101\30\1\0\4\30\2\0\10\30\1\0\7\30\1\0"+ + "\34\30\1\0\4\30\1\0\5\30\1\0\1\30\3\0\7\30\1\0"+ + "\u0154\30\2\0\31\30\1\0\31\30\1\0\37\30\1\0\31\30\1\0"+ + "\37\30\1\0\31\30\1\0\37\30\1\0\31\30\1\0\37\30\1\0"+ + "\31\30\1\0\10\30\2\0\62\31\u2800\0\ua6d7\30\51\0\u1035\30\13\0"+ + "\336\30\u3fe2\0\u021e\30\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05ee\0"+ "\1\31\36\0\140\31\200\0\360\31\uffff\0\uffff\0\ufe12\0"; /** @@ -191,21 +179,22 @@ public class Scanner implements sym, java_cup.runtime.Scanner { private static final String ZZ_ACTION_PACKED_0 = "\3\0\1\1\1\2\1\1\1\3\1\4\1\5\1\6"+ - "\1\7\1\10\1\11\1\12\3\7\1\13\15\7\1\14"+ + "\1\7\1\10\1\11\1\12\3\7\1\13\16\7\1\14"+ "\1\15\1\16\1\7\1\17\1\20\1\21\1\22\1\23"+ - "\1\24\1\0\1\5\1\0\5\7\1\25\1\26\4\7"+ - "\1\27\11\7\2\24\1\0\1\5\1\0\1\7\1\30"+ - "\5\7\1\31\1\7\1\32\10\7\1\33\1\34\2\7"+ - "\1\35\3\7\1\36\4\7\1\37\1\7\1\40\3\7"+ - "\1\41\4\7\1\42\1\43\3\7\1\44\1\45\1\46"+ - "\3\7\1\47\5\7\1\50\4\7\1\0\2\7\1\0"+ - "\1\7\1\51\1\0\2\7\1\0\2\7\1\0\2\7"+ + "\1\24\1\0\1\5\1\0\6\7\1\25\1\26\6\7"+ + "\1\27\13\7\2\24\1\0\1\5\1\0\1\7\1\30"+ + "\6\7\1\31\1\32\2\7\1\33\12\7\1\34\1\35"+ + "\2\7\1\36\1\37\4\7\1\40\3\7\1\41\1\7"+ + "\1\42\1\7\1\43\4\7\1\44\5\7\1\45\1\46"+ + "\1\47\3\7\1\50\1\51\1\52\1\53\3\7\1\54"+ + "\5\7\1\55\4\7\1\0\2\7\1\0\1\7\1\56"+ "\1\0\2\7\1\0\2\7\1\0\2\7\1\0\2\7"+ - "\1\0\2\7\1\0\1\52\1\7\1\0\1\7\1\0"+ - "\1\7\1\0\1\53\7\0\1\54"; + "\1\0\2\7\1\0\2\7\1\0\2\7\1\0\2\7"+ + "\1\0\1\57\1\7\1\0\1\7\1\0\1\7\1\0"+ + "\1\60\7\0\1\61"; private static int [] zzUnpackAction() { - int [] result = new int[181]; + int [] result = new int[199]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -230,32 +219,34 @@ private static int zzUnpackAction(String packed, int offset, int [] result) { private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\63\0\146\0\231\0\314\0\314\0\377\0\314"+ - "\0\u0132\0\u0165\0\u0198\0\314\0\314\0\314\0\u01cb\0\u01fe"+ - "\0\u0231\0\314\0\u0264\0\u0297\0\u02ca\0\u02fd\0\u0330\0\u0363"+ - "\0\u0396\0\u03c9\0\u03fc\0\u042f\0\u0462\0\u0495\0\u04c8\0\314"+ - "\0\314\0\314\0\u04fb\0\314\0\314\0\314\0\u052e\0\314"+ - "\0\u0561\0\u0594\0\u05c7\0\u05fa\0\u062d\0\u0660\0\u0693\0\u06c6"+ - "\0\u06f9\0\u01fe\0\u01fe\0\u072c\0\u075f\0\u0792\0\u07c5\0\u01fe"+ - "\0\u07f8\0\u082b\0\u085e\0\u0891\0\u08c4\0\u08f7\0\u092a\0\u095d"+ - "\0\u0990\0\u09c3\0\314\0\u09f6\0\u0a29\0\u0a29\0\u0a5c\0\u01fe"+ - "\0\u0a8f\0\u0ac2\0\u0af5\0\u0b28\0\u0b5b\0\u01fe\0\u0b8e\0\u01fe"+ - "\0\u0bc1\0\u0bf4\0\u0c27\0\u0c5a\0\u0c8d\0\u0cc0\0\u0cf3\0\u0d26"+ - "\0\u01fe\0\u01fe\0\u0d59\0\u0d8c\0\u01fe\0\u0dbf\0\u0df2\0\u0e25"+ - "\0\u01fe\0\u0e58\0\u0e8b\0\u0ebe\0\u0ef1\0\u01fe\0\u0f24\0\u01fe"+ - "\0\u0f57\0\u0f8a\0\u0fbd\0\u01fe\0\u0ff0\0\u1023\0\u1056\0\u1089"+ - "\0\u01fe\0\u01fe\0\u10bc\0\u10ef\0\u1122\0\u01fe\0\u01fe\0\u01fe"+ - "\0\u1155\0\u1188\0\u11bb\0\u01fe\0\u11ee\0\u1221\0\u1254\0\u1287"+ - "\0\u12ba\0\u12ed\0\u1320\0\u1353\0\u1386\0\u13b9\0\u13ec\0\u141f"+ - "\0\u1452\0\u1485\0\u14b8\0\u14eb\0\u151e\0\u1551\0\u1584\0\u15b7"+ - "\0\u15ea\0\u161d\0\u1650\0\u1683\0\u16b6\0\u16e9\0\u171c\0\u174f"+ - "\0\u1782\0\u17b5\0\u17e8\0\u181b\0\u184e\0\u1881\0\u18b4\0\u18e7"+ - "\0\u191a\0\u194d\0\u1980\0\u19b3\0\u19e6\0\u01fe\0\u1a19\0\u1a4c"+ - "\0\u1a7f\0\u1ab2\0\u1ae5\0\u1b18\0\u01fe\0\u1b4b\0\u1b7e\0\u1bb1"+ - "\0\u1be4\0\u1c17\0\u1c4a\0\u1c7d\0\314"; + "\0\0\0\65\0\152\0\237\0\324\0\324\0\u0109\0\324"+ + "\0\u013e\0\u0173\0\u01a8\0\324\0\324\0\324\0\u01dd\0\u0212"+ + "\0\u0247\0\324\0\u027c\0\u02b1\0\u02e6\0\u031b\0\u0350\0\u0385"+ + "\0\u03ba\0\u03ef\0\u0424\0\u0459\0\u048e\0\u04c3\0\u04f8\0\u052d"+ + "\0\324\0\324\0\324\0\u0562\0\324\0\324\0\324\0\u0597"+ + "\0\324\0\u05cc\0\u0601\0\u0636\0\u066b\0\u06a0\0\u06d5\0\u070a"+ + "\0\u073f\0\u0774\0\u07a9\0\u0212\0\u0212\0\u07de\0\u0813\0\u0848"+ + "\0\u087d\0\u08b2\0\u08e7\0\u0212\0\u091c\0\u0951\0\u0986\0\u09bb"+ + "\0\u09f0\0\u0a25\0\u0a5a\0\u0a8f\0\u0ac4\0\u0af9\0\u0b2e\0\u0b63"+ + "\0\324\0\u0b98\0\u0bcd\0\u0bcd\0\u0c02\0\u0212\0\u0c37\0\u0c6c"+ + "\0\u0ca1\0\u0cd6\0\u0d0b\0\u0d40\0\u0212\0\u0212\0\u0d75\0\u0daa"+ + "\0\u0212\0\u0ddf\0\u0e14\0\u0e49\0\u0e7e\0\u0eb3\0\u0ee8\0\u0f1d"+ + "\0\u0f52\0\u0f87\0\u0fbc\0\u0212\0\u0212\0\u0ff1\0\u1026\0\u0212"+ + "\0\u0212\0\u105b\0\u1090\0\u10c5\0\u10fa\0\u0212\0\u112f\0\u1164"+ + "\0\u1199\0\u0212\0\u11ce\0\u0212\0\u1203\0\u0212\0\u1238\0\u126d"+ + "\0\u12a2\0\u12d7\0\u0212\0\u130c\0\u1341\0\u1376\0\u13ab\0\u13e0"+ + "\0\u0212\0\u0212\0\u0212\0\u1415\0\u144a\0\u147f\0\u0212\0\u0212"+ + "\0\u0212\0\u0212\0\u14b4\0\u14e9\0\u151e\0\u0212\0\u1553\0\u1588"+ + "\0\u15bd\0\u15f2\0\u1627\0\u165c\0\u1691\0\u16c6\0\u16fb\0\u1730"+ + "\0\u1765\0\u179a\0\u17cf\0\u1804\0\u1839\0\u186e\0\u18a3\0\u18d8"+ + "\0\u190d\0\u1942\0\u1977\0\u19ac\0\u19e1\0\u1a16\0\u1a4b\0\u1a80"+ + "\0\u1ab5\0\u1aea\0\u1b1f\0\u1b54\0\u1b89\0\u1bbe\0\u1bf3\0\u1c28"+ + "\0\u1c5d\0\u1c92\0\u1cc7\0\u1cfc\0\u1d31\0\u1d66\0\u1d9b\0\u0212"+ + "\0\u1dd0\0\u1e05\0\u1e3a\0\u1e6f\0\u1ea4\0\u1ed9\0\u0212\0\u1f0e"+ + "\0\u1f43\0\u1f78\0\u1fad\0\u1fe2\0\u2017\0\u204c\0\324"; private static int [] zzUnpackRowMap() { - int [] result = new int[181]; + int [] result = new int[199]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -282,181 +273,202 @@ private static int zzUnpackRowMap(String packed, int offset, int [] result) { "\1\13\1\14\1\15\1\16\1\0\1\17\2\20\1\21"+ "\6\20\1\22\1\20\1\0\1\23\1\24\1\25\1\20"+ "\1\26\1\27\1\30\1\31\1\32\1\33\1\34\1\20"+ - "\1\35\1\36\1\20\1\37\2\20\1\40\1\41\1\42"+ - "\1\43\1\44\1\45\1\46\1\47\2\0\7\47\1\50"+ - "\1\47\1\0\46\47\62\0\1\46\2\0\1\6\147\0"+ - "\1\51\1\52\63\0\1\11\1\53\1\54\12\0\1\54"+ - "\45\0\1\53\62\0\1\20\1\0\1\20\4\0\3\20"+ - "\1\55\6\20\1\0\4\20\1\56\17\20\3\0\1\20"+ - "\11\0\1\20\1\0\1\20\4\0\1\20\1\57\10\20"+ - "\1\0\24\20\3\0\1\20\11\0\1\20\1\0\1\20"+ - "\4\0\12\20\1\0\24\20\3\0\1\20\11\0\1\20"+ - "\1\0\1\60\4\0\12\20\1\0\7\20\1\61\14\20"+ - "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ - "\1\0\3\20\1\62\2\20\1\63\15\20\3\0\1\20"+ + "\1\35\1\36\1\20\1\37\3\20\1\40\1\41\1\42"+ + "\1\43\1\44\1\45\1\46\1\47\1\50\2\0\7\50"+ + "\1\51\1\50\1\0\50\50\64\0\1\47\2\0\1\6"+ + "\153\0\1\52\1\53\65\0\1\11\1\54\1\55\12\0"+ + "\1\55\47\0\1\54\64\0\1\20\1\0\1\20\4\0"+ + "\3\20\1\56\6\20\1\0\4\20\1\57\21\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\1\20\1\60"+ + "\10\20\1\0\26\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\26\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\61\4\0\12\20\1\0\2\20\1\62"+ + "\4\20\1\63\16\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\3\20\1\64\2\20\1\65"+ + "\17\20\3\0\1\20\11\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\7\20\1\66\1\67\15\20\3\0\1\20"+ "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\7\20"+ - "\1\64\1\65\13\20\3\0\1\20\11\0\1\20\1\0"+ - "\1\20\4\0\12\20\1\0\7\20\1\66\14\20\3\0"+ - "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ - "\2\20\1\67\21\20\3\0\1\20\11\0\1\20\1\0"+ - "\1\20\4\0\12\20\1\0\12\20\1\70\11\20\3\0"+ - "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ - "\4\20\1\71\17\20\3\0\1\20\11\0\1\20\1\0"+ - "\1\72\4\0\12\20\1\0\24\20\3\0\1\20\11\0"+ - "\1\20\1\0\1\73\4\0\12\20\1\0\24\20\3\0"+ - "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ - "\12\20\1\74\11\20\3\0\1\20\11\0\1\20\1\0"+ - "\1\20\4\0\12\20\1\0\12\20\1\75\11\20\3\0"+ - "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ - "\12\20\1\76\11\20\3\0\1\20\11\0\1\20\1\0"+ - "\1\20\4\0\12\20\1\0\4\20\1\77\17\20\3\0"+ - "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ - "\7\20\1\100\14\20\3\0\1\20\11\0\1\20\1\0"+ - "\1\20\4\0\12\20\1\0\7\20\1\101\14\20\3\0"+ - "\1\20\3\0\1\47\2\0\7\47\1\0\1\47\1\0"+ - "\46\47\1\51\1\102\1\103\60\51\5\52\1\104\55\52"+ - "\6\0\1\53\1\0\1\54\12\0\1\54\45\0\1\105"+ - "\2\0\1\106\47\0\1\106\7\0\1\20\1\0\1\20"+ - "\4\0\12\20\1\0\6\20\1\107\15\20\3\0\1\20"+ - "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\5\20"+ - "\1\110\16\20\3\0\1\20\11\0\1\20\1\0\1\20"+ - "\4\0\2\20\1\111\7\20\1\0\24\20\3\0\1\20"+ - "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\6\20"+ - "\1\112\15\20\3\0\1\20\11\0\1\20\1\0\1\20"+ - "\4\0\12\20\1\0\10\20\1\113\13\20\3\0\1\20"+ + "\1\70\7\20\1\71\6\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\2\20\1\72\13\20"+ + "\1\73\7\20\3\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\12\20\1\74\13\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\4\20"+ + "\1\75\21\20\3\0\1\20\11\0\1\20\1\0\1\76"+ + "\4\0\12\20\1\0\26\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\77\4\0\12\20\1\0\26\20\3\0\1\20"+ "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\12\20"+ - "\1\114\11\20\3\0\1\20\11\0\1\20\1\0\1\20"+ - "\4\0\3\20\1\115\6\20\1\0\24\20\3\0\1\20"+ - "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\16\20"+ - "\1\116\5\20\3\0\1\20\11\0\1\20\1\0\1\20"+ - "\4\0\12\20\1\0\13\20\1\117\10\20\3\0\1\20"+ - "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\5\20"+ - "\1\120\16\20\3\0\1\20\11\0\1\20\1\0\1\20"+ - "\4\0\12\20\1\0\10\20\1\121\13\20\3\0\1\20"+ - "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\16\20"+ - "\1\122\1\20\1\123\3\20\3\0\1\20\11\0\1\20"+ - "\1\0\1\124\4\0\12\20\1\0\24\20\3\0\1\20"+ - "\11\0\1\20\1\0\1\125\4\0\12\20\1\0\24\20"+ + "\1\100\13\20\3\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\7\20\1\101\2\20\1\102\13\20"+ "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ - "\1\0\17\20\1\126\4\20\3\0\1\20\11\0\1\20"+ - "\1\0\1\20\4\0\12\20\1\0\16\20\1\127\5\20"+ + "\1\0\12\20\1\103\13\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\4\20\1\104\21\20"+ "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ - "\1\0\2\20\1\130\21\20\3\0\1\20\11\0\1\20"+ - "\1\0\1\20\4\0\12\20\1\0\12\20\1\131\11\20"+ - "\3\0\1\20\5\0\1\103\60\0\4\52\1\103\1\104"+ - "\55\52\6\0\1\105\62\0\1\20\1\0\1\132\4\0"+ - "\12\20\1\0\24\20\3\0\1\20\11\0\1\20\1\0"+ - "\1\20\4\0\3\20\1\133\6\20\1\0\24\20\3\0"+ - "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ - "\6\20\1\134\15\20\3\0\1\20\11\0\1\20\1\0"+ - "\1\20\4\0\12\20\1\0\5\20\1\135\16\20\3\0"+ - "\1\20\11\0\1\20\1\0\1\136\4\0\12\20\1\0"+ - "\24\20\3\0\1\20\11\0\1\20\1\0\1\20\4\0"+ - "\12\20\1\0\6\20\1\137\15\20\3\0\1\20\11\0"+ - "\1\20\1\0\1\20\4\0\12\20\1\0\4\20\1\140"+ - "\17\20\3\0\1\20\11\0\1\20\1\0\1\20\4\0"+ - "\12\20\1\0\12\20\1\141\11\20\3\0\1\20\11\0"+ - "\1\20\1\0\1\20\4\0\12\20\1\0\17\20\1\142"+ - "\4\20\3\0\1\20\11\0\1\20\1\0\1\143\4\0"+ - "\12\20\1\0\24\20\3\0\1\20\11\0\1\20\1\0"+ - "\1\20\4\0\12\20\1\0\10\20\1\144\13\20\3\0"+ - "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ - "\10\20\1\145\13\20\3\0\1\20\11\0\1\20\1\0"+ - "\1\146\4\0\12\20\1\0\24\20\3\0\1\20\11\0"+ - "\1\20\1\0\1\20\4\0\12\20\1\0\2\20\1\147"+ - "\21\20\3\0\1\20\11\0\1\20\1\0\1\20\4\0"+ - "\12\20\1\0\5\20\1\150\16\20\3\0\1\20\11\0"+ - "\1\20\1\0\1\20\4\0\4\20\1\151\5\20\1\0"+ - "\24\20\3\0\1\20\11\0\1\20\1\0\1\20\4\0"+ - "\12\20\1\0\22\20\1\152\1\20\3\0\1\20\11\0"+ - "\1\20\1\0\1\20\4\0\12\20\1\0\21\20\1\153"+ - "\2\20\3\0\1\20\11\0\1\20\1\0\1\154\4\0"+ - "\12\20\1\0\24\20\3\0\1\20\11\0\1\20\1\0"+ - "\1\20\4\0\12\20\1\0\10\20\1\155\13\20\3\0"+ + "\1\0\7\20\1\105\16\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\7\20\1\106\16\20"+ + "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\7\20\1\107\16\20\3\0\1\20\3\0\1\50"+ + "\2\0\7\50\1\0\1\50\1\0\50\50\1\52\1\110"+ + "\1\111\62\52\5\53\1\112\57\53\6\0\1\54\1\0"+ + "\1\55\12\0\1\55\47\0\1\113\2\0\1\114\51\0"+ + "\1\114\7\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\6\20\1\115\17\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\5\20\1\116\20\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\2\20\1\117"+ + "\7\20\1\0\26\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\6\20\1\120\17\20\3\0"+ "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ - "\12\20\1\156\11\20\3\0\1\20\11\0\1\20\1\0"+ - "\1\20\4\0\12\20\1\0\10\20\1\157\13\20\3\0"+ + "\6\20\1\121\17\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\10\20\1\122\15\20\3\0"+ "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ - "\16\20\1\160\5\20\3\0\1\20\11\0\1\20\1\0"+ - "\1\20\4\0\12\20\1\0\15\20\1\161\6\20\3\0"+ - "\1\20\11\0\1\20\1\0\1\20\4\0\3\20\1\162"+ - "\6\20\1\0\24\20\3\0\1\20\11\0\1\20\1\0"+ - "\1\20\4\0\5\20\1\163\4\20\1\0\24\20\3\0"+ + "\12\20\1\123\13\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\3\20\1\124\6\20\1\0\26\20\3\0"+ "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ - "\16\20\1\164\5\20\3\0\1\20\11\0\1\20\1\0"+ - "\1\165\4\0\12\20\1\0\24\20\3\0\1\20\11\0"+ - "\1\20\1\0\1\20\4\0\3\20\1\166\6\20\1\0"+ - "\24\20\3\0\1\20\11\0\1\20\1\0\1\20\4\0"+ - "\12\20\1\0\4\20\1\167\17\20\3\0\1\20\11\0"+ - "\1\20\1\0\1\20\4\0\12\20\1\0\16\20\1\170"+ - "\5\20\3\0\1\20\11\0\1\20\1\0\1\171\4\0"+ - "\12\20\1\0\24\20\3\0\1\20\11\0\1\20\1\0"+ - "\1\20\4\0\6\20\1\172\3\20\1\0\24\20\3\0"+ + "\16\20\1\125\7\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\24\20\1\126\1\20\3\0"+ "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ - "\11\20\1\173\12\20\3\0\1\20\11\0\1\20\1\0"+ - "\1\20\4\0\12\20\1\0\12\20\1\174\11\20\3\0"+ + "\13\20\1\127\12\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\12\20\1\130\13\20\3\0"+ "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ - "\12\20\1\175\11\20\3\0\1\20\11\0\1\20\1\0"+ - "\1\20\4\0\7\20\1\176\2\20\1\0\24\20\3\0"+ + "\5\20\1\131\20\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\10\20\1\132\15\20\3\0"+ "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ - "\10\20\1\177\13\20\3\0\1\20\11\0\1\20\1\0"+ - "\1\20\4\0\12\20\1\0\22\20\1\200\1\20\3\0"+ - "\1\20\11\0\1\20\1\0\1\20\4\0\10\20\1\201"+ - "\1\20\1\0\24\20\3\0\1\20\11\0\1\20\1\0"+ - "\1\20\4\0\12\20\1\0\4\20\1\202\17\20\3\0"+ + "\16\20\1\133\1\20\1\134\5\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\135\4\0\12\20\1\0\26\20\3\0"+ "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ - "\16\20\1\203\5\20\3\0\1\20\11\0\1\20\1\0"+ - "\1\20\4\0\11\20\1\204\1\0\24\20\3\0\1\20"+ - "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\22\20"+ - "\1\205\1\20\3\0\1\20\11\0\1\20\1\0\1\20"+ - "\4\0\12\20\1\0\11\20\1\206\12\20\3\0\1\20"+ - "\11\0\1\20\1\0\1\20\4\0\12\20\1\207\24\20"+ + "\7\20\1\136\16\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\137\4\0\12\20\1\0\26\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\17\20\1\140"+ + "\6\20\3\0\1\20\11\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\16\20\1\141\7\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\2\20\1\142"+ + "\23\20\3\0\1\20\11\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\7\20\1\143\16\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\12\20\1\144"+ + "\13\20\3\0\1\20\5\0\1\111\62\0\4\53\1\111"+ + "\1\112\57\53\6\0\1\113\64\0\1\20\1\0\1\145"+ + "\4\0\12\20\1\0\26\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\3\20\1\146\6\20\1\0\26\20"+ + "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\6\20\1\147\17\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\16\20\1\150\7\20"+ "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ - "\1\0\7\20\1\210\14\20\3\0\1\20\11\0\1\20"+ - "\1\0\1\20\4\0\12\20\1\0\10\20\1\211\13\20"+ - "\3\0\1\20\20\0\1\212\53\0\1\20\1\0\1\20"+ - "\4\0\12\20\1\0\12\20\1\213\11\20\3\0\1\20"+ + "\1\0\5\20\1\151\20\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\152\4\0\12\20\1\0\26\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\6\20"+ + "\1\153\17\20\3\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\4\20\1\154\21\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\2\20"+ + "\1\155\23\20\3\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\12\20\1\156\13\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\17\20"+ + "\1\157\6\20\3\0\1\20\11\0\1\20\1\0\1\160"+ + "\4\0\12\20\1\0\26\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\10\20\1\161\15\20"+ + "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\3\20"+ + "\1\162\6\20\1\0\26\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\10\20\1\163\15\20"+ + "\3\0\1\20\11\0\1\20\1\0\1\164\4\0\12\20"+ + "\1\0\26\20\3\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\2\20\1\165\23\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\5\20"+ + "\1\166\20\20\3\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\12\20\1\167\13\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\4\20\1\170\5\20"+ + "\1\0\26\20\3\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\22\20\1\171\3\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\21\20"+ + "\1\172\4\20\3\0\1\20\11\0\1\20\1\0\1\173"+ + "\4\0\12\20\1\0\26\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\10\20\1\174\15\20"+ + "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\4\20\1\175\21\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\12\20\1\176\13\20"+ + "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\10\20\1\177\15\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\16\20\1\200\7\20"+ + "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\15\20\1\201\10\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\3\20\1\202\6\20\1\0\26\20"+ + "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\5\20\1\203\20\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\5\20\1\204\4\20\1\0\26\20"+ + "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\16\20\1\205\7\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\206\4\0\12\20\1\0\26\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\3\20\1\207\6\20"+ + "\1\0\26\20\3\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\13\20\1\210\12\20\3\0\1\20"+ "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\4\20"+ - "\1\214\17\20\3\0\1\20\21\0\1\215\52\0\1\20"+ - "\1\0\1\20\4\0\12\20\1\0\22\20\1\216\1\20"+ + "\1\211\21\20\3\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\16\20\1\212\7\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\213\4\0\12\20\1\0\26\20"+ + "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\6\20"+ + "\1\214\3\20\1\0\26\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\11\20\1\215\14\20"+ "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ - "\1\0\22\20\1\217\1\20\3\0\1\20\22\0\1\220"+ - "\51\0\1\20\1\0\1\221\4\0\12\20\1\0\24\20"+ + "\1\0\12\20\1\216\13\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\12\20\1\217\13\20"+ + "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\7\20"+ + "\1\220\2\20\1\0\26\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\10\20\1\221\15\20"+ "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ - "\1\0\7\20\1\222\14\20\3\0\1\20\23\0\1\223"+ - "\50\0\1\20\1\0\1\20\4\0\12\20\1\0\23\20"+ - "\1\224\3\0\1\20\11\0\1\20\1\0\1\20\4\0"+ - "\12\20\1\0\12\20\1\225\11\20\3\0\1\20\24\0"+ - "\1\226\47\0\1\20\1\0\1\20\4\0\12\20\1\0"+ - "\17\20\1\227\4\20\3\0\1\20\11\0\1\20\1\0"+ - "\1\20\4\0\12\20\1\0\22\20\1\230\1\20\3\0"+ - "\1\20\25\0\1\231\46\0\1\20\1\0\1\20\4\0"+ - "\12\20\1\0\10\20\1\232\13\20\3\0\1\20\11\0"+ - "\1\20\1\0\1\233\4\0\12\20\1\0\24\20\3\0"+ - "\1\20\26\0\1\234\45\0\1\20\1\0\1\20\4\0"+ - "\3\20\1\235\6\20\1\0\24\20\3\0\1\20\11\0"+ - "\1\20\1\0\1\20\4\0\12\20\1\0\23\20\1\236"+ - "\3\0\1\20\27\0\1\237\44\0\1\20\1\0\1\20"+ - "\4\0\12\20\1\0\22\20\1\240\1\20\3\0\1\20"+ - "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\17\20"+ - "\1\241\4\20\3\0\1\20\30\0\1\242\43\0\1\20"+ - "\1\0\1\20\4\0\12\20\1\0\16\20\1\243\5\20"+ + "\1\0\22\20\1\222\3\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\10\20\1\223\1\20\1\0\26\20"+ "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ - "\1\0\10\20\1\244\13\20\3\0\1\20\31\0\1\245"+ - "\42\0\1\20\1\0\1\20\4\0\12\20\1\0\7\20"+ - "\1\246\14\20\3\0\1\20\11\0\1\20\1\0\1\20"+ - "\4\0\3\20\1\247\6\20\1\0\24\20\3\0\1\20"+ - "\32\0\1\250\41\0\1\20\1\0\1\20\4\0\12\20"+ - "\1\0\22\20\1\251\1\20\3\0\1\20\20\0\1\252"+ - "\53\0\1\20\1\0\1\20\4\0\12\20\1\0\16\20"+ - "\1\253\5\20\3\0\1\20\21\0\1\254\52\0\1\20"+ - "\1\0\1\20\4\0\12\20\1\0\7\20\1\255\14\20"+ - "\3\0\1\20\22\0\1\256\63\0\1\257\63\0\1\260"+ - "\63\0\1\261\63\0\1\262\63\0\1\263\63\0\1\264"+ - "\63\0\1\265\34\0"; + "\1\0\4\20\1\224\21\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\16\20\1\225\7\20"+ + "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\11\20"+ + "\1\226\1\0\26\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\22\20\1\227\3\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\11\20\1\230\14\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\231\26\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\7\20\1\232"+ + "\16\20\3\0\1\20\11\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\10\20\1\233\15\20\3\0\1\20\20\0"+ + "\1\234\55\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\12\20\1\235\13\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\4\20\1\236\21\20\3\0"+ + "\1\20\21\0\1\237\54\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\22\20\1\240\3\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\22\20\1\241"+ + "\3\20\3\0\1\20\22\0\1\242\53\0\1\20\1\0"+ + "\1\243\4\0\12\20\1\0\26\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\7\20\1\244"+ + "\16\20\3\0\1\20\23\0\1\245\52\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\23\20\1\246\2\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\12\20\1\247\13\20\3\0\1\20\24\0\1\250\51\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\17\20\1\251"+ + "\6\20\3\0\1\20\11\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\22\20\1\252\3\20\3\0\1\20\25\0"+ + "\1\253\50\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\10\20\1\254\15\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\255\4\0\12\20\1\0\26\20\3\0\1\20\26\0"+ + "\1\256\47\0\1\20\1\0\1\20\4\0\3\20\1\257"+ + "\6\20\1\0\26\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\23\20\1\260\2\20\3\0"+ + "\1\20\27\0\1\261\46\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\22\20\1\262\3\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\17\20\1\263"+ + "\6\20\3\0\1\20\30\0\1\264\45\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\16\20\1\265\7\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\10\20\1\266\15\20\3\0\1\20\31\0\1\267\44\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\7\20\1\270"+ + "\16\20\3\0\1\20\11\0\1\20\1\0\1\20\4\0"+ + "\3\20\1\271\6\20\1\0\26\20\3\0\1\20\32\0"+ + "\1\272\43\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\22\20\1\273\3\20\3\0\1\20\20\0\1\274\55\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\16\20\1\275"+ + "\7\20\3\0\1\20\21\0\1\276\54\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\7\20\1\277\16\20\3\0"+ + "\1\20\22\0\1\300\65\0\1\301\65\0\1\302\65\0"+ + "\1\303\65\0\1\304\65\0\1\305\65\0\1\306\65\0"+ + "\1\307\36\0"; private static int [] zzUnpackTrans() { - int [] result = new int[7344]; + int [] result = new int[8321]; int offset = 0; offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); return result; @@ -495,15 +507,15 @@ private static int zzUnpackTrans(String packed, int offset, int [] result) { private static final String ZZ_ATTRIBUTE_PACKED_0 = "\3\0\1\1\2\11\1\1\1\11\3\1\3\11\3\1"+ - "\1\11\15\1\3\11\1\1\3\11\1\1\1\11\1\1"+ - "\1\0\1\1\1\0\26\1\1\11\1\0\1\1\1\0"+ - "\100\1\1\0\2\1\1\0\2\1\1\0\2\1\1\0"+ + "\1\11\16\1\3\11\1\1\3\11\1\1\1\11\1\1"+ + "\1\0\1\1\1\0\33\1\1\11\1\0\1\1\1\0"+ + "\114\1\1\0\2\1\1\0\2\1\1\0\2\1\1\0"+ "\2\1\1\0\2\1\1\0\2\1\1\0\2\1\1\0"+ "\2\1\1\0\2\1\1\0\2\1\1\0\2\1\1\0"+ "\1\1\1\0\1\1\1\0\1\1\7\0\1\11"; private static int [] zzUnpackAttribute() { - int [] result = new int[181]; + int [] result = new int[199]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; @@ -628,7 +640,7 @@ public Scanner(java.io.Reader in) { char [] map = new char[0x110000]; int i = 0; /* index in packed string */ int j = 0; /* index in unpacked array */ - while (i < 2864) { + while (i < 2626) { int count = packed.charAt(i++); char value = packed.charAt(i++); do map[j++] = value; while (--count > 0); @@ -995,180 +1007,200 @@ else if (zzAtEOF) { case 1: { /*Ignore*/ } - case 45: break; + case 50: break; case 2: { return symbol(EOL); } - case 46: break; + case 51: break; case 3: { return symbol(DIV); } - case 47: break; + case 52: break; case 4: { return symbol(MULT); } - case 48: break; + case 53: break; case 5: { return symbol(NumLit, new Double(yytext())); } - case 49: break; + case 54: break; case 6: { return symbol(DOT); } - case 50: break; + case 55: break; case 7: { return symbol(Identifier, yytext()); } - case 51: break; + case 56: break; case 8: { return symbol(MINUS); } - case 52: break; + case 57: break; case 9: { yybegin(STRING); string.setLength(0); } - case 53: break; + case 58: break; case 10: { yybegin(CHARLITERAL); } - case 54: break; + case 59: break; case 11: { return symbol(COMMA); } - case 55: break; + case 60: break; case 12: { return symbol(LPAREN); } - case 56: break; + case 61: break; case 13: { return symbol(RPAREN); } - case 57: break; + case 62: break; case 14: { return symbol(COLON); } - case 58: break; + case 63: break; case 15: { return symbol(ASSIGN); } - case 59: break; + case 64: break; case 16: { return symbol(PLUS); } - case 60: break; + case 65: break; case 17: { throw new RuntimeException("Illegal character \""+yytext()+ "\" at line "+yyline+", column "+yycolumn); } - case 61: break; + case 66: break; case 18: { string.append( yytext() ); } - case 62: break; + case 67: break; case 19: { yybegin(YYINITIAL); return symbol(StringLit, string.toString()); } - case 63: break; + case 68: break; case 20: { /* ignore */ } - case 64: break; + case 69: break; case 21: { return symbol(IF); } - case 65: break; + case 70: break; case 22: { return symbol(IS); } - case 66: break; + case 71: break; case 23: { return symbol(OR); } - case 67: break; + case 72: break; case 24: { return symbol(END); } - case 68: break; + case 73: break; case 25: { return symbol(NOT); } - case 69: break; + case 74: break; case 26: - { return symbol(AND); + { return symbol(NUM); } - case 70: break; + case 75: break; case 27: - { return symbol(XOR); + { return symbol(AND); } - case 71: break; + case 76: break; case 28: - { return symbol(ELSE); + { return symbol(XOR); } - case 72: break; + case 77: break; case 29: - { return symbol(LOAD); + { return symbol(ELSE); } - case 73: break; + case 78: break; case 30: - { return symbol(HEAR); + { return symbol(LIST); } - case 74: break; + case 79: break; case 31: - { return symbol(TRUE); + { return symbol(LOAD); } - case 75: break; + case 80: break; case 32: - { return symbol(VOID); + { return symbol(HEAR); } - case 76: break; + case 81: break; case 33: - { return symbol(FALSE); + { return symbol(BOOL); } - case 77: break; + case 82: break; case 34: - { return symbol(BREAK); + { return symbol(TRUE); } - case 78: break; + case 83: break; case 35: - { return symbol(UNTIL); + { return symbol(VOID); } - case 79: break; + case 84: break; case 36: - { return symbol(SIGNAL); + { return symbol(FALSE); } - case 80: break; + case 85: break; case 37: - { return symbol(RETURN); + { return symbol(BREAK); } - case 81: break; + case 86: break; case 38: - { return symbol(REPEAT); + { return symbol(UNTIL); } - case 82: break; + case 87: break; case 39: - { return symbol(FOREVER); + { return symbol(COORD); } - case 83: break; + case 88: break; case 40: - { return symbol(LT); + { return symbol(SIGNAL); } - case 84: break; + case 89: break; case 41: - { return symbol(GT); + { return symbol(STRING); } - case 85: break; + case 90: break; case 42: - { return symbol(LTE); + { return symbol(RETURN); } - case 86: break; + case 91: break; case 43: - { return symbol(GTE); + { return symbol(REPEAT); } - case 87: break; + case 92: break; case 44: + { return symbol(FOREVER); + } + case 93: break; + case 45: + { return symbol(LT); + } + case 94: break; + case 46: + { return symbol(GT); + } + case 95: break; + case 47: + { return symbol(LTE); + } + case 96: break; + case 48: + { return symbol(GTE); + } + case 97: break; + case 49: { return symbol(CoordLit); } - case 88: break; + case 98: break; default: zzScanError(ZZ_NO_MATCH); } diff --git a/compiler/src/Scanner.java~ b/compiler/src/Scanner.java~ index 74aeed3..d442327 100644 --- a/compiler/src/Scanner.java~ +++ b/compiler/src/Scanner.java~ @@ -36,135 +36,135 @@ public class Scanner implements sym, java_cup.runtime.Scanner { */ private static final String ZZ_CMAP_PACKED = "\11\31\1\3\1\2\1\0\1\3\1\1\16\31\4\0\1\3\1\0"+ - "\1\12\1\0\1\30\2\0\1\13\1\54\1\55\1\5\1\60\1\27"+ - "\1\11\1\7\1\4\12\6\3\0\1\57\3\0\1\40\1\44\1\30"+ - "\1\35\1\10\1\33\1\43\1\41\1\32\1\30\1\45\1\20\1\30"+ - "\1\34\1\37\1\50\1\53\1\42\1\36\1\46\1\47\1\51\1\30"+ - "\1\56\2\30\1\0\1\14\2\0\1\52\1\0\1\25\3\30\1\23"+ - "\3\30\1\21\2\30\1\26\1\17\1\15\3\30\1\24\1\30\1\22"+ - "\1\16\5\30\3\0\1\61\41\31\2\0\4\30\4\0\1\30\2\0"+ - "\1\31\7\0\1\30\4\0\1\30\5\0\27\30\1\0\37\30\1\0"+ - "\u01ca\30\4\0\14\30\16\0\5\30\7\0\1\30\1\0\1\30\21\0"+ - "\160\31\5\30\1\0\2\30\2\0\4\30\10\0\1\30\1\0\3\30"+ - "\1\0\1\30\1\0\24\30\1\0\123\30\1\0\213\30\1\0\5\31"+ - "\2\0\236\30\11\0\46\30\2\0\1\30\7\0\47\30\11\0\55\31"+ - "\1\0\1\31\1\0\2\31\1\0\2\31\1\0\1\31\10\0\33\30"+ - "\5\0\3\30\15\0\4\31\7\0\1\30\4\0\13\31\5\0\53\30"+ - "\37\31\4\0\2\30\1\31\143\30\1\0\1\30\10\31\1\0\6\31"+ - "\2\30\2\31\1\0\4\31\2\30\12\31\3\30\2\0\1\30\17\0"+ - "\1\31\1\30\1\31\36\30\33\31\2\0\131\30\13\31\1\30\16\0"+ - "\12\31\41\30\11\31\2\30\4\0\1\30\5\0\26\30\4\31\1\30"+ - "\11\31\1\30\3\31\1\30\5\31\22\0\31\30\3\31\244\0\4\31"+ - "\66\30\3\31\1\30\22\31\1\30\7\31\12\30\2\31\2\0\12\31"+ - "\1\0\7\30\1\0\7\30\1\0\3\31\1\0\10\30\2\0\2\30"+ - "\2\0\26\30\1\0\7\30\1\0\1\30\3\0\4\30\2\0\1\31"+ - "\1\30\7\31\2\0\2\31\2\0\3\31\1\30\10\0\1\31\4\0"+ - "\2\30\1\0\3\30\2\31\2\0\12\31\4\30\7\0\1\30\5\0"+ - "\3\31\1\0\6\30\4\0\2\30\2\0\26\30\1\0\7\30\1\0"+ - "\2\30\1\0\2\30\1\0\2\30\2\0\1\31\1\0\5\31\4\0"+ - "\2\31\2\0\3\31\3\0\1\31\7\0\4\30\1\0\1\30\7\0"+ - "\14\31\3\30\1\31\13\0\3\31\1\0\11\30\1\0\3\30\1\0"+ - "\26\30\1\0\7\30\1\0\2\30\1\0\5\30\2\0\1\31\1\30"+ - "\10\31\1\0\3\31\1\0\3\31\2\0\1\30\17\0\2\30\2\31"+ - "\2\0\12\31\1\0\1\30\17\0\3\31\1\0\10\30\2\0\2\30"+ - "\2\0\26\30\1\0\7\30\1\0\2\30\1\0\5\30\2\0\1\31"+ - "\1\30\7\31\2\0\2\31\2\0\3\31\10\0\2\31\4\0\2\30"+ - "\1\0\3\30\2\31\2\0\12\31\1\0\1\30\20\0\1\31\1\30"+ - "\1\0\6\30\3\0\3\30\1\0\4\30\3\0\2\30\1\0\1\30"+ - "\1\0\2\30\3\0\2\30\3\0\3\30\3\0\14\30\4\0\5\31"+ - "\3\0\3\31\1\0\4\31\2\0\1\30\6\0\1\31\16\0\12\31"+ - "\11\0\1\30\7\0\3\31\1\0\10\30\1\0\3\30\1\0\27\30"+ - "\1\0\12\30\1\0\5\30\3\0\1\30\7\31\1\0\3\31\1\0"+ - "\4\31\7\0\2\31\1\0\2\30\6\0\2\30\2\31\2\0\12\31"+ - "\22\0\2\31\1\0\10\30\1\0\3\30\1\0\27\30\1\0\12\30"+ - "\1\0\5\30\2\0\1\31\1\30\7\31\1\0\3\31\1\0\4\31"+ - "\7\0\2\31\7\0\1\30\1\0\2\30\2\31\2\0\12\31\1\0"+ - "\2\30\17\0\2\31\1\0\10\30\1\0\3\30\1\0\51\30\2\0"+ - "\1\30\7\31\1\0\3\31\1\0\4\31\1\30\10\0\1\31\10\0"+ - "\2\30\2\31\2\0\12\31\12\0\6\30\2\0\2\31\1\0\22\30"+ - "\3\0\30\30\1\0\11\30\1\0\1\30\2\0\7\30\3\0\1\31"+ - "\4\0\6\31\1\0\1\31\1\0\10\31\22\0\2\31\15\0\60\30"+ - "\1\31\2\30\7\31\4\0\10\30\10\31\1\0\12\31\47\0\2\30"+ - "\1\0\1\30\2\0\2\30\1\0\1\30\2\0\1\30\6\0\4\30"+ - "\1\0\7\30\1\0\3\30\1\0\1\30\1\0\1\30\2\0\2\30"+ - "\1\0\4\30\1\31\2\30\6\31\1\0\2\31\1\30\2\0\5\30"+ - "\1\0\1\30\1\0\6\31\2\0\12\31\2\0\2\30\42\0\1\30"+ - "\27\0\2\31\6\0\12\31\13\0\1\31\1\0\1\31\1\0\1\31"+ - "\4\0\2\31\10\30\1\0\44\30\4\0\24\31\1\0\2\31\5\30"+ - "\13\31\1\0\44\31\11\0\1\31\71\0\53\30\24\31\1\30\12\31"+ - "\6\0\6\30\4\31\4\30\3\31\1\30\3\31\2\30\7\31\3\30"+ - "\4\31\15\30\14\31\1\30\17\31\2\0\46\30\12\0\53\30\1\0"+ - "\1\30\3\0\u0149\30\1\0\4\30\2\0\7\30\1\0\1\30\1\0"+ - "\4\30\2\0\51\30\1\0\4\30\2\0\41\30\1\0\4\30\2\0"+ - "\7\30\1\0\1\30\1\0\4\30\2\0\17\30\1\0\71\30\1\0"+ - "\4\30\2\0\103\30\2\0\3\31\40\0\20\30\20\0\125\30\14\0"+ - "\u026c\30\2\0\21\30\1\0\32\30\5\0\113\30\3\0\3\30\17\0"+ - "\15\30\1\0\4\30\3\31\13\0\22\30\3\31\13\0\22\30\2\31"+ - "\14\0\15\30\1\0\3\30\1\0\2\31\14\0\64\30\40\31\3\0"+ - "\1\30\3\0\2\30\1\31\2\0\12\31\41\0\3\31\2\0\12\31"+ - "\6\0\130\30\10\0\51\30\1\31\1\30\5\0\106\30\12\0\35\30"+ - "\3\0\14\31\4\0\14\31\12\0\12\31\36\30\2\0\5\30\13\0"+ - "\54\30\4\0\21\31\7\30\2\31\6\0\12\31\46\0\27\30\5\31"+ - "\4\0\65\30\12\31\1\0\35\31\2\0\13\31\6\0\12\31\15\0"+ - "\1\30\130\0\5\31\57\30\21\31\7\30\4\0\12\31\21\0\11\31"+ - "\14\0\3\31\36\30\12\31\3\0\2\30\12\31\6\0\46\30\16\31"+ - "\14\0\44\30\24\31\10\0\12\31\3\0\3\30\12\31\44\30\122\0"+ - "\3\31\1\0\25\31\4\30\1\31\4\30\1\31\15\0\300\30\47\31"+ - "\25\0\4\31\u0116\30\2\0\6\30\2\0\46\30\2\0\6\30\2\0"+ - "\10\30\1\0\1\30\1\0\1\30\1\0\1\30\1\0\37\30\2\0"+ - "\65\30\1\0\7\30\1\0\1\30\3\0\3\30\1\0\7\30\3\0"+ - "\4\30\2\0\6\30\4\0\15\30\5\0\3\30\1\0\7\30\16\0"+ - "\5\31\32\0\5\31\20\0\2\30\23\0\1\30\13\0\5\31\5\0"+ - "\6\31\1\0\1\30\15\0\1\30\20\0\15\30\3\0\32\30\26\0"+ - "\15\31\4\0\1\31\3\0\14\31\21\0\1\30\4\0\1\30\2\0"+ - "\12\30\1\0\1\30\3\0\5\30\6\0\1\30\1\0\1\30\1\0"+ - "\1\30\1\0\4\30\1\0\13\30\2\0\4\30\5\0\5\30\4\0"+ - "\1\30\21\0\51\30\u0a77\0\57\30\1\0\57\30\1\0\205\30\6\0"+ - "\4\30\3\31\16\0\46\30\12\0\66\30\11\0\1\30\17\0\1\31"+ - "\27\30\11\0\7\30\1\0\7\30\1\0\7\30\1\0\7\30\1\0"+ - "\7\30\1\0\7\30\1\0\7\30\1\0\7\30\1\0\40\31\57\0"+ - "\1\30\u01d5\0\3\30\31\0\11\30\6\31\1\0\5\30\2\0\5\30"+ - "\4\0\126\30\2\0\2\31\2\0\3\30\1\0\132\30\1\0\4\30"+ - "\5\0\51\30\3\0\136\30\21\0\33\30\65\0\20\30\u0200\0\u19b6\30"+ - "\112\0\u51cc\30\64\0\u048d\30\103\0\56\30\2\0\u010d\30\3\0\20\30"+ - "\12\31\2\30\24\0\57\30\1\31\14\0\2\31\1\0\31\30\10\0"+ - "\120\30\2\31\45\0\11\30\2\0\147\30\2\0\4\30\1\0\2\30"+ - "\16\0\12\30\120\0\10\30\1\31\3\30\1\31\4\30\1\31\27\30"+ - "\5\31\20\0\1\30\7\0\64\30\14\0\2\31\62\30\21\31\13\0"+ - "\12\31\6\0\22\31\6\30\3\0\1\30\4\0\12\31\34\30\10\31"+ - "\2\0\27\30\15\31\14\0\35\30\3\0\4\31\57\30\16\31\16\0"+ - "\1\30\12\31\46\0\51\30\16\31\11\0\3\30\1\31\10\30\2\31"+ - "\2\0\12\31\6\0\27\30\3\0\1\30\1\31\4\0\60\30\1\31"+ - "\1\30\3\31\2\30\2\31\5\30\2\31\1\30\1\31\1\30\30\0"+ - "\3\30\43\0\6\30\2\0\6\30\2\0\6\30\11\0\7\30\1\0"+ - "\7\30\221\0\43\30\10\31\1\0\2\31\2\0\12\31\6\0\u2ba4\30"+ - "\14\0\27\30\4\0\61\30\u2104\0\u012e\30\2\0\76\30\2\0\152\30"+ - "\46\0\7\30\14\0\5\30\5\0\1\30\1\31\12\30\1\0\15\30"+ - "\1\0\5\30\1\0\1\30\1\0\2\30\1\0\2\30\1\0\154\30"+ - "\41\0\u016b\30\22\0\100\30\2\0\66\30\50\0\15\30\3\0\20\31"+ - "\20\0\7\31\14\0\2\30\30\0\3\30\31\0\1\30\6\0\5\30"+ - "\1\0\207\30\2\0\1\31\4\0\1\30\13\0\12\31\7\0\32\30"+ - "\4\0\1\30\1\0\32\30\13\0\131\30\3\0\6\30\2\0\6\30"+ - "\2\0\6\30\2\0\3\30\3\0\2\30\3\0\2\30\22\0\3\31"+ - "\4\0\14\30\1\0\32\30\1\0\23\30\1\0\2\30\1\0\17\30"+ - "\2\0\16\30\42\0\173\30\105\0\65\30\210\0\1\31\202\0\35\30"+ - "\3\0\61\30\57\0\37\30\21\0\33\30\65\0\36\30\2\0\44\30"+ - "\4\0\10\30\1\0\5\30\52\0\236\30\2\0\12\31\u0356\0\6\30"+ - "\2\0\1\30\1\0\54\30\1\0\2\30\3\0\1\30\2\0\27\30"+ - "\252\0\26\30\12\0\32\30\306\0\1\30\3\31\1\0\2\31\5\0"+ - "\4\31\4\30\1\0\3\30\1\0\33\30\4\0\3\31\4\0\1\31"+ - "\40\0\35\30\203\0\66\30\12\0\26\30\12\0\23\30\215\0\111\30"+ - "\u03b7\0\3\31\65\30\17\31\37\0\12\31\20\0\3\31\55\30\13\31"+ - "\2\0\1\31\u0f42\0\u036f\30\221\0\143\30\u0b9d\0\u042f\30\u33d1\0\u0239\30"+ - "\u45c7\0\2\30\u2163\0\5\31\3\0\26\31\2\0\7\31\36\0\4\31"+ - "\224\0\3\31\u01bb\0\125\30\1\0\107\30\1\0\2\30\2\0\1\30"+ - "\2\0\2\30\2\0\4\30\1\0\14\30\1\0\1\30\1\0\7\30"+ - "\1\0\101\30\1\0\4\30\2\0\10\30\1\0\7\30\1\0\34\30"+ - "\1\0\4\30\1\0\5\30\1\0\1\30\3\0\7\30\1\0\u0154\30"+ - "\2\0\31\30\1\0\31\30\1\0\37\30\1\0\31\30\1\0\37\30"+ - "\1\0\31\30\1\0\37\30\1\0\31\30\1\0\37\30\1\0\31\30"+ - "\1\0\10\30\2\0\62\31\u2800\0\ua6d7\30\51\0\u1035\30\13\0\336\30"+ - "\u3fe2\0\u021e\30\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05ee\0"+ + "\1\12\1\0\1\30\2\0\1\13\1\54\1\55\1\5\1\61\1\27"+ + "\1\11\1\7\1\4\12\6\1\56\2\0\1\60\3\0\1\40\1\44"+ + "\1\30\1\35\1\10\1\33\1\43\1\41\1\32\1\30\1\45\1\20"+ + "\1\30\1\34\1\37\1\50\1\53\1\42\1\36\1\46\1\47\1\51"+ + "\1\30\1\57\2\30\1\0\1\14\2\0\1\52\1\0\1\25\3\30"+ + "\1\23\3\30\1\21\2\30\1\26\1\17\1\15\3\30\1\24\1\30"+ + "\1\22\1\16\5\30\3\0\1\62\41\31\2\0\4\30\4\0\1\30"+ + "\2\0\1\31\7\0\1\30\4\0\1\30\5\0\27\30\1\0\37\30"+ + "\1\0\u01ca\30\4\0\14\30\16\0\5\30\7\0\1\30\1\0\1\30"+ + "\21\0\160\31\5\30\1\0\2\30\2\0\4\30\10\0\1\30\1\0"+ + "\3\30\1\0\1\30\1\0\24\30\1\0\123\30\1\0\213\30\1\0"+ + "\5\31\2\0\236\30\11\0\46\30\2\0\1\30\7\0\47\30\11\0"+ + "\55\31\1\0\1\31\1\0\2\31\1\0\2\31\1\0\1\31\10\0"+ + "\33\30\5\0\3\30\15\0\4\31\7\0\1\30\4\0\13\31\5\0"+ + "\53\30\37\31\4\0\2\30\1\31\143\30\1\0\1\30\10\31\1\0"+ + "\6\31\2\30\2\31\1\0\4\31\2\30\12\31\3\30\2\0\1\30"+ + "\17\0\1\31\1\30\1\31\36\30\33\31\2\0\131\30\13\31\1\30"+ + "\16\0\12\31\41\30\11\31\2\30\4\0\1\30\5\0\26\30\4\31"+ + "\1\30\11\31\1\30\3\31\1\30\5\31\22\0\31\30\3\31\244\0"+ + "\4\31\66\30\3\31\1\30\22\31\1\30\7\31\12\30\2\31\2\0"+ + "\12\31\1\0\7\30\1\0\7\30\1\0\3\31\1\0\10\30\2\0"+ + "\2\30\2\0\26\30\1\0\7\30\1\0\1\30\3\0\4\30\2\0"+ + "\1\31\1\30\7\31\2\0\2\31\2\0\3\31\1\30\10\0\1\31"+ + "\4\0\2\30\1\0\3\30\2\31\2\0\12\31\4\30\7\0\1\30"+ + "\5\0\3\31\1\0\6\30\4\0\2\30\2\0\26\30\1\0\7\30"+ + "\1\0\2\30\1\0\2\30\1\0\2\30\2\0\1\31\1\0\5\31"+ + "\4\0\2\31\2\0\3\31\3\0\1\31\7\0\4\30\1\0\1\30"+ + "\7\0\14\31\3\30\1\31\13\0\3\31\1\0\11\30\1\0\3\30"+ + "\1\0\26\30\1\0\7\30\1\0\2\30\1\0\5\30\2\0\1\31"+ + "\1\30\10\31\1\0\3\31\1\0\3\31\2\0\1\30\17\0\2\30"+ + "\2\31\2\0\12\31\1\0\1\30\17\0\3\31\1\0\10\30\2\0"+ + "\2\30\2\0\26\30\1\0\7\30\1\0\2\30\1\0\5\30\2\0"+ + "\1\31\1\30\7\31\2\0\2\31\2\0\3\31\10\0\2\31\4\0"+ + "\2\30\1\0\3\30\2\31\2\0\12\31\1\0\1\30\20\0\1\31"+ + "\1\30\1\0\6\30\3\0\3\30\1\0\4\30\3\0\2\30\1\0"+ + "\1\30\1\0\2\30\3\0\2\30\3\0\3\30\3\0\14\30\4\0"+ + "\5\31\3\0\3\31\1\0\4\31\2\0\1\30\6\0\1\31\16\0"+ + "\12\31\11\0\1\30\7\0\3\31\1\0\10\30\1\0\3\30\1\0"+ + "\27\30\1\0\12\30\1\0\5\30\3\0\1\30\7\31\1\0\3\31"+ + "\1\0\4\31\7\0\2\31\1\0\2\30\6\0\2\30\2\31\2\0"+ + "\12\31\22\0\2\31\1\0\10\30\1\0\3\30\1\0\27\30\1\0"+ + "\12\30\1\0\5\30\2\0\1\31\1\30\7\31\1\0\3\31\1\0"+ + "\4\31\7\0\2\31\7\0\1\30\1\0\2\30\2\31\2\0\12\31"+ + "\1\0\2\30\17\0\2\31\1\0\10\30\1\0\3\30\1\0\51\30"+ + "\2\0\1\30\7\31\1\0\3\31\1\0\4\31\1\30\10\0\1\31"+ + "\10\0\2\30\2\31\2\0\12\31\12\0\6\30\2\0\2\31\1\0"+ + "\22\30\3\0\30\30\1\0\11\30\1\0\1\30\2\0\7\30\3\0"+ + "\1\31\4\0\6\31\1\0\1\31\1\0\10\31\22\0\2\31\15\0"+ + "\60\30\1\31\2\30\7\31\4\0\10\30\10\31\1\0\12\31\47\0"+ + "\2\30\1\0\1\30\2\0\2\30\1\0\1\30\2\0\1\30\6\0"+ + "\4\30\1\0\7\30\1\0\3\30\1\0\1\30\1\0\1\30\2\0"+ + "\2\30\1\0\4\30\1\31\2\30\6\31\1\0\2\31\1\30\2\0"+ + "\5\30\1\0\1\30\1\0\6\31\2\0\12\31\2\0\2\30\42\0"+ + "\1\30\27\0\2\31\6\0\12\31\13\0\1\31\1\0\1\31\1\0"+ + "\1\31\4\0\2\31\10\30\1\0\44\30\4\0\24\31\1\0\2\31"+ + "\5\30\13\31\1\0\44\31\11\0\1\31\71\0\53\30\24\31\1\30"+ + "\12\31\6\0\6\30\4\31\4\30\3\31\1\30\3\31\2\30\7\31"+ + "\3\30\4\31\15\30\14\31\1\30\17\31\2\0\46\30\12\0\53\30"+ + "\1\0\1\30\3\0\u0149\30\1\0\4\30\2\0\7\30\1\0\1\30"+ + "\1\0\4\30\2\0\51\30\1\0\4\30\2\0\41\30\1\0\4\30"+ + "\2\0\7\30\1\0\1\30\1\0\4\30\2\0\17\30\1\0\71\30"+ + "\1\0\4\30\2\0\103\30\2\0\3\31\40\0\20\30\20\0\125\30"+ + "\14\0\u026c\30\2\0\21\30\1\0\32\30\5\0\113\30\3\0\3\30"+ + "\17\0\15\30\1\0\4\30\3\31\13\0\22\30\3\31\13\0\22\30"+ + "\2\31\14\0\15\30\1\0\3\30\1\0\2\31\14\0\64\30\40\31"+ + "\3\0\1\30\3\0\2\30\1\31\2\0\12\31\41\0\3\31\2\0"+ + "\12\31\6\0\130\30\10\0\51\30\1\31\1\30\5\0\106\30\12\0"+ + "\35\30\3\0\14\31\4\0\14\31\12\0\12\31\36\30\2\0\5\30"+ + "\13\0\54\30\4\0\21\31\7\30\2\31\6\0\12\31\46\0\27\30"+ + "\5\31\4\0\65\30\12\31\1\0\35\31\2\0\13\31\6\0\12\31"+ + "\15\0\1\30\130\0\5\31\57\30\21\31\7\30\4\0\12\31\21\0"+ + "\11\31\14\0\3\31\36\30\12\31\3\0\2\30\12\31\6\0\46\30"+ + "\16\31\14\0\44\30\24\31\10\0\12\31\3\0\3\30\12\31\44\30"+ + "\122\0\3\31\1\0\25\31\4\30\1\31\4\30\1\31\15\0\300\30"+ + "\47\31\25\0\4\31\u0116\30\2\0\6\30\2\0\46\30\2\0\6\30"+ + "\2\0\10\30\1\0\1\30\1\0\1\30\1\0\1\30\1\0\37\30"+ + "\2\0\65\30\1\0\7\30\1\0\1\30\3\0\3\30\1\0\7\30"+ + "\3\0\4\30\2\0\6\30\4\0\15\30\5\0\3\30\1\0\7\30"+ + "\16\0\5\31\32\0\5\31\20\0\2\30\23\0\1\30\13\0\5\31"+ + "\5\0\6\31\1\0\1\30\15\0\1\30\20\0\15\30\3\0\32\30"+ + "\26\0\15\31\4\0\1\31\3\0\14\31\21\0\1\30\4\0\1\30"+ + "\2\0\12\30\1\0\1\30\3\0\5\30\6\0\1\30\1\0\1\30"+ + "\1\0\1\30\1\0\4\30\1\0\13\30\2\0\4\30\5\0\5\30"+ + "\4\0\1\30\21\0\51\30\u0a77\0\57\30\1\0\57\30\1\0\205\30"+ + "\6\0\4\30\3\31\16\0\46\30\12\0\66\30\11\0\1\30\17\0"+ + "\1\31\27\30\11\0\7\30\1\0\7\30\1\0\7\30\1\0\7\30"+ + "\1\0\7\30\1\0\7\30\1\0\7\30\1\0\7\30\1\0\40\31"+ + "\57\0\1\30\u01d5\0\3\30\31\0\11\30\6\31\1\0\5\30\2\0"+ + "\5\30\4\0\126\30\2\0\2\31\2\0\3\30\1\0\132\30\1\0"+ + "\4\30\5\0\51\30\3\0\136\30\21\0\33\30\65\0\20\30\u0200\0"+ + "\u19b6\30\112\0\u51cc\30\64\0\u048d\30\103\0\56\30\2\0\u010d\30\3\0"+ + "\20\30\12\31\2\30\24\0\57\30\1\31\14\0\2\31\1\0\31\30"+ + "\10\0\120\30\2\31\45\0\11\30\2\0\147\30\2\0\4\30\1\0"+ + "\2\30\16\0\12\30\120\0\10\30\1\31\3\30\1\31\4\30\1\31"+ + "\27\30\5\31\20\0\1\30\7\0\64\30\14\0\2\31\62\30\21\31"+ + "\13\0\12\31\6\0\22\31\6\30\3\0\1\30\4\0\12\31\34\30"+ + "\10\31\2\0\27\30\15\31\14\0\35\30\3\0\4\31\57\30\16\31"+ + "\16\0\1\30\12\31\46\0\51\30\16\31\11\0\3\30\1\31\10\30"+ + "\2\31\2\0\12\31\6\0\27\30\3\0\1\30\1\31\4\0\60\30"+ + "\1\31\1\30\3\31\2\30\2\31\5\30\2\31\1\30\1\31\1\30"+ + "\30\0\3\30\43\0\6\30\2\0\6\30\2\0\6\30\11\0\7\30"+ + "\1\0\7\30\221\0\43\30\10\31\1\0\2\31\2\0\12\31\6\0"+ + "\u2ba4\30\14\0\27\30\4\0\61\30\u2104\0\u012e\30\2\0\76\30\2\0"+ + "\152\30\46\0\7\30\14\0\5\30\5\0\1\30\1\31\12\30\1\0"+ + "\15\30\1\0\5\30\1\0\1\30\1\0\2\30\1\0\2\30\1\0"+ + "\154\30\41\0\u016b\30\22\0\100\30\2\0\66\30\50\0\15\30\3\0"+ + "\20\31\20\0\7\31\14\0\2\30\30\0\3\30\31\0\1\30\6\0"+ + "\5\30\1\0\207\30\2\0\1\31\4\0\1\30\13\0\12\31\7\0"+ + "\32\30\4\0\1\30\1\0\32\30\13\0\131\30\3\0\6\30\2\0"+ + "\6\30\2\0\6\30\2\0\3\30\3\0\2\30\3\0\2\30\22\0"+ + "\3\31\4\0\14\30\1\0\32\30\1\0\23\30\1\0\2\30\1\0"+ + "\17\30\2\0\16\30\42\0\173\30\105\0\65\30\210\0\1\31\202\0"+ + "\35\30\3\0\61\30\57\0\37\30\21\0\33\30\65\0\36\30\2\0"+ + "\44\30\4\0\10\30\1\0\5\30\52\0\236\30\2\0\12\31\u0356\0"+ + "\6\30\2\0\1\30\1\0\54\30\1\0\2\30\3\0\1\30\2\0"+ + "\27\30\252\0\26\30\12\0\32\30\306\0\1\30\3\31\1\0\2\31"+ + "\5\0\4\31\4\30\1\0\3\30\1\0\33\30\4\0\3\31\4\0"+ + "\1\31\40\0\35\30\203\0\66\30\12\0\26\30\12\0\23\30\215\0"+ + "\111\30\u03b7\0\3\31\65\30\17\31\37\0\12\31\20\0\3\31\55\30"+ + "\13\31\2\0\1\31\u0f42\0\u036f\30\221\0\143\30\u0b9d\0\u042f\30\u33d1\0"+ + "\u0239\30\u45c7\0\2\30\u2163\0\5\31\3\0\26\31\2\0\7\31\36\0"+ + "\4\31\224\0\3\31\u01bb\0\125\30\1\0\107\30\1\0\2\30\2\0"+ + "\1\30\2\0\2\30\2\0\4\30\1\0\14\30\1\0\1\30\1\0"+ + "\7\30\1\0\101\30\1\0\4\30\2\0\10\30\1\0\7\30\1\0"+ + "\34\30\1\0\4\30\1\0\5\30\1\0\1\30\3\0\7\30\1\0"+ + "\u0154\30\2\0\31\30\1\0\31\30\1\0\37\30\1\0\31\30\1\0"+ + "\37\30\1\0\31\30\1\0\37\30\1\0\31\30\1\0\37\30\1\0"+ + "\31\30\1\0\10\30\2\0\62\31\u2800\0\ua6d7\30\51\0\u1035\30\13\0"+ + "\336\30\u3fe2\0\u021e\30\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05ee\0"+ "\1\31\36\0\140\31\200\0\360\31\uffff\0\uffff\0\ufe12\0"; /** @@ -180,20 +180,20 @@ public class Scanner implements sym, java_cup.runtime.Scanner { private static final String ZZ_ACTION_PACKED_0 = "\3\0\1\1\1\2\1\1\1\3\1\4\1\5\1\6"+ "\1\7\1\10\1\11\1\12\3\7\1\13\15\7\1\14"+ - "\1\15\1\7\1\16\1\17\1\20\1\21\1\22\1\23"+ - "\1\0\1\5\1\0\5\7\1\24\1\25\4\7\1\26"+ - "\11\7\2\23\1\0\1\5\1\0\1\7\1\27\5\7"+ - "\1\30\1\7\1\31\10\7\1\32\1\33\2\7\1\34"+ - "\3\7\1\35\4\7\1\36\1\7\1\37\3\7\1\40"+ - "\4\7\1\41\1\42\3\7\1\43\1\44\1\45\3\7"+ - "\1\46\5\7\1\47\4\7\1\0\2\7\1\0\1\7"+ - "\1\50\1\0\2\7\1\0\2\7\1\0\2\7\1\0"+ - "\2\7\1\0\2\7\1\0\2\7\1\0\2\7\1\0"+ - "\2\7\1\0\1\51\1\7\1\0\1\7\1\0\1\7"+ - "\1\0\1\52\7\0\1\53"; + "\1\15\1\16\1\7\1\17\1\20\1\21\1\22\1\23"+ + "\1\24\1\0\1\5\1\0\5\7\1\25\1\26\4\7"+ + "\1\27\11\7\2\24\1\0\1\5\1\0\1\7\1\30"+ + "\5\7\1\31\1\7\1\32\10\7\1\33\1\34\2\7"+ + "\1\35\3\7\1\36\4\7\1\37\1\7\1\40\3\7"+ + "\1\41\4\7\1\42\1\43\3\7\1\44\1\45\1\46"+ + "\3\7\1\47\5\7\1\50\4\7\1\0\2\7\1\0"+ + "\1\7\1\51\1\0\2\7\1\0\2\7\1\0\2\7"+ + "\1\0\2\7\1\0\2\7\1\0\2\7\1\0\2\7"+ + "\1\0\2\7\1\0\1\52\1\7\1\0\1\7\1\0"+ + "\1\7\1\0\1\53\7\0\1\54"; private static int [] zzUnpackAction() { - int [] result = new int[180]; + int [] result = new int[181]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -218,32 +218,32 @@ public class Scanner implements sym, java_cup.runtime.Scanner { private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\62\0\144\0\226\0\310\0\310\0\372\0\310"+ - "\0\u012c\0\u015e\0\u0190\0\310\0\310\0\310\0\u01c2\0\u01f4"+ - "\0\u0226\0\310\0\u0258\0\u028a\0\u02bc\0\u02ee\0\u0320\0\u0352"+ - "\0\u0384\0\u03b6\0\u03e8\0\u041a\0\u044c\0\u047e\0\u04b0\0\310"+ - "\0\310\0\u04e2\0\310\0\310\0\310\0\u0514\0\310\0\u0546"+ - "\0\u0578\0\u05aa\0\u05dc\0\u060e\0\u0640\0\u0672\0\u06a4\0\u06d6"+ - "\0\u01f4\0\u01f4\0\u0708\0\u073a\0\u076c\0\u079e\0\u01f4\0\u07d0"+ - "\0\u0802\0\u0834\0\u0866\0\u0898\0\u08ca\0\u08fc\0\u092e\0\u0960"+ - "\0\u0992\0\310\0\u09c4\0\u09f6\0\u09f6\0\u0a28\0\u01f4\0\u0a5a"+ - "\0\u0a8c\0\u0abe\0\u0af0\0\u0b22\0\u01f4\0\u0b54\0\u01f4\0\u0b86"+ - "\0\u0bb8\0\u0bea\0\u0c1c\0\u0c4e\0\u0c80\0\u0cb2\0\u0ce4\0\u01f4"+ - "\0\u01f4\0\u0d16\0\u0d48\0\u01f4\0\u0d7a\0\u0dac\0\u0dde\0\u01f4"+ - "\0\u0e10\0\u0e42\0\u0e74\0\u0ea6\0\u01f4\0\u0ed8\0\u01f4\0\u0f0a"+ - "\0\u0f3c\0\u0f6e\0\u01f4\0\u0fa0\0\u0fd2\0\u1004\0\u1036\0\u01f4"+ - "\0\u01f4\0\u1068\0\u109a\0\u10cc\0\u01f4\0\u01f4\0\u01f4\0\u10fe"+ - "\0\u1130\0\u1162\0\u01f4\0\u1194\0\u11c6\0\u11f8\0\u122a\0\u125c"+ - "\0\u128e\0\u12c0\0\u12f2\0\u1324\0\u1356\0\u1388\0\u13ba\0\u13ec"+ - "\0\u141e\0\u1450\0\u1482\0\u14b4\0\u14e6\0\u1518\0\u154a\0\u157c"+ - "\0\u15ae\0\u15e0\0\u1612\0\u1644\0\u1676\0\u16a8\0\u16da\0\u170c"+ - "\0\u173e\0\u1770\0\u17a2\0\u17d4\0\u1806\0\u1838\0\u186a\0\u189c"+ - "\0\u18ce\0\u1900\0\u1932\0\u1964\0\u01f4\0\u1996\0\u19c8\0\u19fa"+ - "\0\u1a2c\0\u1a5e\0\u1a90\0\u01f4\0\u1ac2\0\u1af4\0\u1b26\0\u1b58"+ - "\0\u1b8a\0\u1bbc\0\u1bee\0\310"; + "\0\0\0\63\0\146\0\231\0\314\0\314\0\377\0\314"+ + "\0\u0132\0\u0165\0\u0198\0\314\0\314\0\314\0\u01cb\0\u01fe"+ + "\0\u0231\0\314\0\u0264\0\u0297\0\u02ca\0\u02fd\0\u0330\0\u0363"+ + "\0\u0396\0\u03c9\0\u03fc\0\u042f\0\u0462\0\u0495\0\u04c8\0\314"+ + "\0\314\0\314\0\u04fb\0\314\0\314\0\314\0\u052e\0\314"+ + "\0\u0561\0\u0594\0\u05c7\0\u05fa\0\u062d\0\u0660\0\u0693\0\u06c6"+ + "\0\u06f9\0\u01fe\0\u01fe\0\u072c\0\u075f\0\u0792\0\u07c5\0\u01fe"+ + "\0\u07f8\0\u082b\0\u085e\0\u0891\0\u08c4\0\u08f7\0\u092a\0\u095d"+ + "\0\u0990\0\u09c3\0\314\0\u09f6\0\u0a29\0\u0a29\0\u0a5c\0\u01fe"+ + "\0\u0a8f\0\u0ac2\0\u0af5\0\u0b28\0\u0b5b\0\u01fe\0\u0b8e\0\u01fe"+ + "\0\u0bc1\0\u0bf4\0\u0c27\0\u0c5a\0\u0c8d\0\u0cc0\0\u0cf3\0\u0d26"+ + "\0\u01fe\0\u01fe\0\u0d59\0\u0d8c\0\u01fe\0\u0dbf\0\u0df2\0\u0e25"+ + "\0\u01fe\0\u0e58\0\u0e8b\0\u0ebe\0\u0ef1\0\u01fe\0\u0f24\0\u01fe"+ + "\0\u0f57\0\u0f8a\0\u0fbd\0\u01fe\0\u0ff0\0\u1023\0\u1056\0\u1089"+ + "\0\u01fe\0\u01fe\0\u10bc\0\u10ef\0\u1122\0\u01fe\0\u01fe\0\u01fe"+ + "\0\u1155\0\u1188\0\u11bb\0\u01fe\0\u11ee\0\u1221\0\u1254\0\u1287"+ + "\0\u12ba\0\u12ed\0\u1320\0\u1353\0\u1386\0\u13b9\0\u13ec\0\u141f"+ + "\0\u1452\0\u1485\0\u14b8\0\u14eb\0\u151e\0\u1551\0\u1584\0\u15b7"+ + "\0\u15ea\0\u161d\0\u1650\0\u1683\0\u16b6\0\u16e9\0\u171c\0\u174f"+ + "\0\u1782\0\u17b5\0\u17e8\0\u181b\0\u184e\0\u1881\0\u18b4\0\u18e7"+ + "\0\u191a\0\u194d\0\u1980\0\u19b3\0\u19e6\0\u01fe\0\u1a19\0\u1a4c"+ + "\0\u1a7f\0\u1ab2\0\u1ae5\0\u1b18\0\u01fe\0\u1b4b\0\u1b7e\0\u1bb1"+ + "\0\u1be4\0\u1c17\0\u1c4a\0\u1c7d\0\314"; private static int [] zzUnpackRowMap() { - int [] result = new int[180]; + int [] result = new int[181]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -271,180 +271,180 @@ public class Scanner implements sym, java_cup.runtime.Scanner { "\6\20\1\22\1\20\1\0\1\23\1\24\1\25\1\20"+ "\1\26\1\27\1\30\1\31\1\32\1\33\1\34\1\20"+ "\1\35\1\36\1\20\1\37\2\20\1\40\1\41\1\42"+ - "\1\43\1\44\1\45\1\46\2\0\7\46\1\47\1\46"+ - "\1\0\45\46\61\0\1\45\2\0\1\6\145\0\1\50"+ - "\1\51\62\0\1\11\1\52\1\53\12\0\1\53\44\0"+ - "\1\52\61\0\1\20\1\0\1\20\4\0\3\20\1\54"+ - "\6\20\1\0\4\20\1\55\17\20\2\0\1\20\11\0"+ - "\1\20\1\0\1\20\4\0\1\20\1\56\10\20\1\0"+ - "\24\20\2\0\1\20\11\0\1\20\1\0\1\20\4\0"+ - "\12\20\1\0\24\20\2\0\1\20\11\0\1\20\1\0"+ - "\1\57\4\0\12\20\1\0\7\20\1\60\14\20\2\0"+ - "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ - "\3\20\1\61\2\20\1\62\15\20\2\0\1\20\11\0"+ - "\1\20\1\0\1\20\4\0\12\20\1\0\7\20\1\63"+ - "\1\64\13\20\2\0\1\20\11\0\1\20\1\0\1\20"+ - "\4\0\12\20\1\0\7\20\1\65\14\20\2\0\1\20"+ - "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\2\20"+ - "\1\66\21\20\2\0\1\20\11\0\1\20\1\0\1\20"+ - "\4\0\12\20\1\0\12\20\1\67\11\20\2\0\1\20"+ - "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\4\20"+ - "\1\70\17\20\2\0\1\20\11\0\1\20\1\0\1\71"+ - "\4\0\12\20\1\0\24\20\2\0\1\20\11\0\1\20"+ - "\1\0\1\72\4\0\12\20\1\0\24\20\2\0\1\20"+ - "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\12\20"+ - "\1\73\11\20\2\0\1\20\11\0\1\20\1\0\1\20"+ - "\4\0\12\20\1\0\12\20\1\74\11\20\2\0\1\20"+ - "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\12\20"+ - "\1\75\11\20\2\0\1\20\11\0\1\20\1\0\1\20"+ - "\4\0\12\20\1\0\4\20\1\76\17\20\2\0\1\20"+ + "\1\43\1\44\1\45\1\46\1\47\2\0\7\47\1\50"+ + "\1\47\1\0\46\47\62\0\1\46\2\0\1\6\147\0"+ + "\1\51\1\52\63\0\1\11\1\53\1\54\12\0\1\54"+ + "\45\0\1\53\62\0\1\20\1\0\1\20\4\0\3\20"+ + "\1\55\6\20\1\0\4\20\1\56\17\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\1\20\1\57\10\20"+ + "\1\0\24\20\3\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\24\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\60\4\0\12\20\1\0\7\20\1\61\14\20"+ + "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\3\20\1\62\2\20\1\63\15\20\3\0\1\20"+ "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\7\20"+ - "\1\77\14\20\2\0\1\20\11\0\1\20\1\0\1\20"+ - "\4\0\12\20\1\0\7\20\1\100\14\20\2\0\1\20"+ - "\3\0\1\46\2\0\7\46\1\0\1\46\1\0\45\46"+ - "\1\50\1\101\1\102\57\50\5\51\1\103\54\51\6\0"+ - "\1\52\1\0\1\53\12\0\1\53\44\0\1\104\2\0"+ - "\1\105\46\0\1\105\7\0\1\20\1\0\1\20\4\0"+ - "\12\20\1\0\6\20\1\106\15\20\2\0\1\20\11\0"+ - "\1\20\1\0\1\20\4\0\12\20\1\0\5\20\1\107"+ - "\16\20\2\0\1\20\11\0\1\20\1\0\1\20\4\0"+ - "\2\20\1\110\7\20\1\0\24\20\2\0\1\20\11\0"+ - "\1\20\1\0\1\20\4\0\12\20\1\0\6\20\1\111"+ - "\15\20\2\0\1\20\11\0\1\20\1\0\1\20\4\0"+ - "\12\20\1\0\10\20\1\112\13\20\2\0\1\20\11\0"+ - "\1\20\1\0\1\20\4\0\12\20\1\0\12\20\1\113"+ - "\11\20\2\0\1\20\11\0\1\20\1\0\1\20\4\0"+ - "\3\20\1\114\6\20\1\0\24\20\2\0\1\20\11\0"+ - "\1\20\1\0\1\20\4\0\12\20\1\0\16\20\1\115"+ - "\5\20\2\0\1\20\11\0\1\20\1\0\1\20\4\0"+ - "\12\20\1\0\13\20\1\116\10\20\2\0\1\20\11\0"+ - "\1\20\1\0\1\20\4\0\12\20\1\0\5\20\1\117"+ - "\16\20\2\0\1\20\11\0\1\20\1\0\1\20\4\0"+ - "\12\20\1\0\10\20\1\120\13\20\2\0\1\20\11\0"+ - "\1\20\1\0\1\20\4\0\12\20\1\0\16\20\1\121"+ - "\1\20\1\122\3\20\2\0\1\20\11\0\1\20\1\0"+ - "\1\123\4\0\12\20\1\0\24\20\2\0\1\20\11\0"+ - "\1\20\1\0\1\124\4\0\12\20\1\0\24\20\2\0"+ + "\1\64\1\65\13\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\7\20\1\66\14\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\2\20\1\67\21\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\12\20\1\70\11\20\3\0"+ "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ - "\17\20\1\125\4\20\2\0\1\20\11\0\1\20\1\0"+ - "\1\20\4\0\12\20\1\0\16\20\1\126\5\20\2\0"+ + "\4\20\1\71\17\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\72\4\0\12\20\1\0\24\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\73\4\0\12\20\1\0\24\20\3\0"+ "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ - "\2\20\1\127\21\20\2\0\1\20\11\0\1\20\1\0"+ - "\1\20\4\0\12\20\1\0\12\20\1\130\11\20\2\0"+ - "\1\20\5\0\1\102\57\0\4\51\1\102\1\103\54\51"+ - "\6\0\1\104\61\0\1\20\1\0\1\131\4\0\12\20"+ - "\1\0\24\20\2\0\1\20\11\0\1\20\1\0\1\20"+ - "\4\0\3\20\1\132\6\20\1\0\24\20\2\0\1\20"+ + "\12\20\1\74\11\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\12\20\1\75\11\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\12\20\1\76\11\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\4\20\1\77\17\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\7\20\1\100\14\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\7\20\1\101\14\20\3\0"+ + "\1\20\3\0\1\47\2\0\7\47\1\0\1\47\1\0"+ + "\46\47\1\51\1\102\1\103\60\51\5\52\1\104\55\52"+ + "\6\0\1\53\1\0\1\54\12\0\1\54\45\0\1\105"+ + "\2\0\1\106\47\0\1\106\7\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\6\20\1\107\15\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\5\20"+ + "\1\110\16\20\3\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\2\20\1\111\7\20\1\0\24\20\3\0\1\20"+ "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\6\20"+ - "\1\133\15\20\2\0\1\20\11\0\1\20\1\0\1\20"+ - "\4\0\12\20\1\0\5\20\1\134\16\20\2\0\1\20"+ - "\11\0\1\20\1\0\1\135\4\0\12\20\1\0\24\20"+ - "\2\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ - "\1\0\6\20\1\136\15\20\2\0\1\20\11\0\1\20"+ - "\1\0\1\20\4\0\12\20\1\0\4\20\1\137\17\20"+ - "\2\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ - "\1\0\12\20\1\140\11\20\2\0\1\20\11\0\1\20"+ - "\1\0\1\20\4\0\12\20\1\0\17\20\1\141\4\20"+ - "\2\0\1\20\11\0\1\20\1\0\1\142\4\0\12\20"+ - "\1\0\24\20\2\0\1\20\11\0\1\20\1\0\1\20"+ - "\4\0\12\20\1\0\10\20\1\143\13\20\2\0\1\20"+ - "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\10\20"+ - "\1\144\13\20\2\0\1\20\11\0\1\20\1\0\1\145"+ - "\4\0\12\20\1\0\24\20\2\0\1\20\11\0\1\20"+ - "\1\0\1\20\4\0\12\20\1\0\2\20\1\146\21\20"+ - "\2\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ - "\1\0\5\20\1\147\16\20\2\0\1\20\11\0\1\20"+ - "\1\0\1\20\4\0\4\20\1\150\5\20\1\0\24\20"+ - "\2\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ - "\1\0\22\20\1\151\1\20\2\0\1\20\11\0\1\20"+ - "\1\0\1\20\4\0\12\20\1\0\21\20\1\152\2\20"+ - "\2\0\1\20\11\0\1\20\1\0\1\153\4\0\12\20"+ - "\1\0\24\20\2\0\1\20\11\0\1\20\1\0\1\20"+ - "\4\0\12\20\1\0\10\20\1\154\13\20\2\0\1\20"+ + "\1\112\15\20\3\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\10\20\1\113\13\20\3\0\1\20"+ "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\12\20"+ - "\1\155\11\20\2\0\1\20\11\0\1\20\1\0\1\20"+ - "\4\0\12\20\1\0\10\20\1\156\13\20\2\0\1\20"+ + "\1\114\11\20\3\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\3\20\1\115\6\20\1\0\24\20\3\0\1\20"+ "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\16\20"+ - "\1\157\5\20\2\0\1\20\11\0\1\20\1\0\1\20"+ - "\4\0\12\20\1\0\15\20\1\160\6\20\2\0\1\20"+ - "\11\0\1\20\1\0\1\20\4\0\3\20\1\161\6\20"+ - "\1\0\24\20\2\0\1\20\11\0\1\20\1\0\1\20"+ - "\4\0\5\20\1\162\4\20\1\0\24\20\2\0\1\20"+ + "\1\116\5\20\3\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\13\20\1\117\10\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\5\20"+ + "\1\120\16\20\3\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\10\20\1\121\13\20\3\0\1\20"+ "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\16\20"+ - "\1\163\5\20\2\0\1\20\11\0\1\20\1\0\1\164"+ - "\4\0\12\20\1\0\24\20\2\0\1\20\11\0\1\20"+ - "\1\0\1\20\4\0\3\20\1\165\6\20\1\0\24\20"+ - "\2\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ - "\1\0\4\20\1\166\17\20\2\0\1\20\11\0\1\20"+ - "\1\0\1\20\4\0\12\20\1\0\16\20\1\167\5\20"+ - "\2\0\1\20\11\0\1\20\1\0\1\170\4\0\12\20"+ - "\1\0\24\20\2\0\1\20\11\0\1\20\1\0\1\20"+ - "\4\0\6\20\1\171\3\20\1\0\24\20\2\0\1\20"+ - "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\11\20"+ - "\1\172\12\20\2\0\1\20\11\0\1\20\1\0\1\20"+ - "\4\0\12\20\1\0\12\20\1\173\11\20\2\0\1\20"+ - "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\12\20"+ - "\1\174\11\20\2\0\1\20\11\0\1\20\1\0\1\20"+ - "\4\0\7\20\1\175\2\20\1\0\24\20\2\0\1\20"+ - "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\10\20"+ - "\1\176\13\20\2\0\1\20\11\0\1\20\1\0\1\20"+ - "\4\0\12\20\1\0\22\20\1\177\1\20\2\0\1\20"+ - "\11\0\1\20\1\0\1\20\4\0\10\20\1\200\1\20"+ - "\1\0\24\20\2\0\1\20\11\0\1\20\1\0\1\20"+ - "\4\0\12\20\1\0\4\20\1\201\17\20\2\0\1\20"+ - "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\16\20"+ - "\1\202\5\20\2\0\1\20\11\0\1\20\1\0\1\20"+ - "\4\0\11\20\1\203\1\0\24\20\2\0\1\20\11\0"+ - "\1\20\1\0\1\20\4\0\12\20\1\0\22\20\1\204"+ - "\1\20\2\0\1\20\11\0\1\20\1\0\1\20\4\0"+ - "\12\20\1\0\11\20\1\205\12\20\2\0\1\20\11\0"+ - "\1\20\1\0\1\20\4\0\12\20\1\206\24\20\2\0"+ + "\1\122\1\20\1\123\3\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\124\4\0\12\20\1\0\24\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\125\4\0\12\20\1\0\24\20"+ + "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\17\20\1\126\4\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\16\20\1\127\5\20"+ + "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\2\20\1\130\21\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\12\20\1\131\11\20"+ + "\3\0\1\20\5\0\1\103\60\0\4\52\1\103\1\104"+ + "\55\52\6\0\1\105\62\0\1\20\1\0\1\132\4\0"+ + "\12\20\1\0\24\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\3\20\1\133\6\20\1\0\24\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\6\20\1\134\15\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\5\20\1\135\16\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\136\4\0\12\20\1\0"+ + "\24\20\3\0\1\20\11\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\6\20\1\137\15\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\4\20\1\140"+ + "\17\20\3\0\1\20\11\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\12\20\1\141\11\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\17\20\1\142"+ + "\4\20\3\0\1\20\11\0\1\20\1\0\1\143\4\0"+ + "\12\20\1\0\24\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\10\20\1\144\13\20\3\0"+ "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ - "\7\20\1\207\14\20\2\0\1\20\11\0\1\20\1\0"+ - "\1\20\4\0\12\20\1\0\10\20\1\210\13\20\2\0"+ - "\1\20\20\0\1\211\52\0\1\20\1\0\1\20\4\0"+ - "\12\20\1\0\12\20\1\212\11\20\2\0\1\20\11\0"+ - "\1\20\1\0\1\20\4\0\12\20\1\0\4\20\1\213"+ - "\17\20\2\0\1\20\21\0\1\214\51\0\1\20\1\0"+ - "\1\20\4\0\12\20\1\0\22\20\1\215\1\20\2\0"+ + "\10\20\1\145\13\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\146\4\0\12\20\1\0\24\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\2\20\1\147"+ + "\21\20\3\0\1\20\11\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\5\20\1\150\16\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\4\20\1\151\5\20\1\0"+ + "\24\20\3\0\1\20\11\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\22\20\1\152\1\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\21\20\1\153"+ + "\2\20\3\0\1\20\11\0\1\20\1\0\1\154\4\0"+ + "\12\20\1\0\24\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\10\20\1\155\13\20\3\0"+ "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ - "\22\20\1\216\1\20\2\0\1\20\22\0\1\217\50\0"+ - "\1\20\1\0\1\220\4\0\12\20\1\0\24\20\2\0"+ + "\12\20\1\156\11\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\10\20\1\157\13\20\3\0"+ "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ - "\7\20\1\221\14\20\2\0\1\20\23\0\1\222\47\0"+ - "\1\20\1\0\1\20\4\0\12\20\1\0\23\20\1\223"+ - "\2\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ - "\1\0\12\20\1\224\11\20\2\0\1\20\24\0\1\225"+ - "\46\0\1\20\1\0\1\20\4\0\12\20\1\0\17\20"+ - "\1\226\4\20\2\0\1\20\11\0\1\20\1\0\1\20"+ - "\4\0\12\20\1\0\22\20\1\227\1\20\2\0\1\20"+ - "\25\0\1\230\45\0\1\20\1\0\1\20\4\0\12\20"+ - "\1\0\10\20\1\231\13\20\2\0\1\20\11\0\1\20"+ - "\1\0\1\232\4\0\12\20\1\0\24\20\2\0\1\20"+ - "\26\0\1\233\44\0\1\20\1\0\1\20\4\0\3\20"+ - "\1\234\6\20\1\0\24\20\2\0\1\20\11\0\1\20"+ - "\1\0\1\20\4\0\12\20\1\0\23\20\1\235\2\0"+ - "\1\20\27\0\1\236\43\0\1\20\1\0\1\20\4\0"+ - "\12\20\1\0\22\20\1\237\1\20\2\0\1\20\11\0"+ - "\1\20\1\0\1\20\4\0\12\20\1\0\17\20\1\240"+ - "\4\20\2\0\1\20\30\0\1\241\42\0\1\20\1\0"+ - "\1\20\4\0\12\20\1\0\16\20\1\242\5\20\2\0"+ + "\16\20\1\160\5\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\15\20\1\161\6\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\3\20\1\162"+ + "\6\20\1\0\24\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\5\20\1\163\4\20\1\0\24\20\3\0"+ "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ - "\10\20\1\243\13\20\2\0\1\20\31\0\1\244\41\0"+ - "\1\20\1\0\1\20\4\0\12\20\1\0\7\20\1\245"+ - "\14\20\2\0\1\20\11\0\1\20\1\0\1\20\4\0"+ - "\3\20\1\246\6\20\1\0\24\20\2\0\1\20\32\0"+ - "\1\247\40\0\1\20\1\0\1\20\4\0\12\20\1\0"+ - "\22\20\1\250\1\20\2\0\1\20\20\0\1\251\52\0"+ - "\1\20\1\0\1\20\4\0\12\20\1\0\16\20\1\252"+ - "\5\20\2\0\1\20\21\0\1\253\51\0\1\20\1\0"+ - "\1\20\4\0\12\20\1\0\7\20\1\254\14\20\2\0"+ - "\1\20\22\0\1\255\62\0\1\256\62\0\1\257\62\0"+ - "\1\260\62\0\1\261\62\0\1\262\62\0\1\263\62\0"+ - "\1\264\33\0"; + "\16\20\1\164\5\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\165\4\0\12\20\1\0\24\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\3\20\1\166\6\20\1\0"+ + "\24\20\3\0\1\20\11\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\4\20\1\167\17\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\16\20\1\170"+ + "\5\20\3\0\1\20\11\0\1\20\1\0\1\171\4\0"+ + "\12\20\1\0\24\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\6\20\1\172\3\20\1\0\24\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\11\20\1\173\12\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\12\20\1\174\11\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\12\20\1\175\11\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\7\20\1\176\2\20\1\0\24\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\10\20\1\177\13\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\22\20\1\200\1\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\10\20\1\201"+ + "\1\20\1\0\24\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\4\20\1\202\17\20\3\0"+ + "\1\20\11\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\16\20\1\203\5\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\11\20\1\204\1\0\24\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\22\20"+ + "\1\205\1\20\3\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\11\20\1\206\12\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\207\24\20"+ + "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\7\20\1\210\14\20\3\0\1\20\11\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\10\20\1\211\13\20"+ + "\3\0\1\20\20\0\1\212\53\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\12\20\1\213\11\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\4\20"+ + "\1\214\17\20\3\0\1\20\21\0\1\215\52\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\22\20\1\216\1\20"+ + "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\22\20\1\217\1\20\3\0\1\20\22\0\1\220"+ + "\51\0\1\20\1\0\1\221\4\0\12\20\1\0\24\20"+ + "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\7\20\1\222\14\20\3\0\1\20\23\0\1\223"+ + "\50\0\1\20\1\0\1\20\4\0\12\20\1\0\23\20"+ + "\1\224\3\0\1\20\11\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\12\20\1\225\11\20\3\0\1\20\24\0"+ + "\1\226\47\0\1\20\1\0\1\20\4\0\12\20\1\0"+ + "\17\20\1\227\4\20\3\0\1\20\11\0\1\20\1\0"+ + "\1\20\4\0\12\20\1\0\22\20\1\230\1\20\3\0"+ + "\1\20\25\0\1\231\46\0\1\20\1\0\1\20\4\0"+ + "\12\20\1\0\10\20\1\232\13\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\233\4\0\12\20\1\0\24\20\3\0"+ + "\1\20\26\0\1\234\45\0\1\20\1\0\1\20\4\0"+ + "\3\20\1\235\6\20\1\0\24\20\3\0\1\20\11\0"+ + "\1\20\1\0\1\20\4\0\12\20\1\0\23\20\1\236"+ + "\3\0\1\20\27\0\1\237\44\0\1\20\1\0\1\20"+ + "\4\0\12\20\1\0\22\20\1\240\1\20\3\0\1\20"+ + "\11\0\1\20\1\0\1\20\4\0\12\20\1\0\17\20"+ + "\1\241\4\20\3\0\1\20\30\0\1\242\43\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\16\20\1\243\5\20"+ + "\3\0\1\20\11\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\10\20\1\244\13\20\3\0\1\20\31\0\1\245"+ + "\42\0\1\20\1\0\1\20\4\0\12\20\1\0\7\20"+ + "\1\246\14\20\3\0\1\20\11\0\1\20\1\0\1\20"+ + "\4\0\3\20\1\247\6\20\1\0\24\20\3\0\1\20"+ + "\32\0\1\250\41\0\1\20\1\0\1\20\4\0\12\20"+ + "\1\0\22\20\1\251\1\20\3\0\1\20\20\0\1\252"+ + "\53\0\1\20\1\0\1\20\4\0\12\20\1\0\16\20"+ + "\1\253\5\20\3\0\1\20\21\0\1\254\52\0\1\20"+ + "\1\0\1\20\4\0\12\20\1\0\7\20\1\255\14\20"+ + "\3\0\1\20\22\0\1\256\63\0\1\257\63\0\1\260"+ + "\63\0\1\261\63\0\1\262\63\0\1\263\63\0\1\264"+ + "\63\0\1\265\34\0"; private static int [] zzUnpackTrans() { - int [] result = new int[7200]; + int [] result = new int[7344]; int offset = 0; offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); return result; @@ -483,7 +483,7 @@ public class Scanner implements sym, java_cup.runtime.Scanner { private static final String ZZ_ATTRIBUTE_PACKED_0 = "\3\0\1\1\2\11\1\1\1\11\3\1\3\11\3\1"+ - "\1\11\15\1\2\11\1\1\3\11\1\1\1\11\1\1"+ + "\1\11\15\1\3\11\1\1\3\11\1\1\1\11\1\1"+ "\1\0\1\1\1\0\26\1\1\11\1\0\1\1\1\0"+ "\100\1\1\0\2\1\1\0\2\1\1\0\2\1\1\0"+ "\2\1\1\0\2\1\1\0\2\1\1\0\2\1\1\0"+ @@ -491,7 +491,7 @@ public class Scanner implements sym, java_cup.runtime.Scanner { "\1\1\1\0\1\1\1\0\1\1\7\0\1\11"; private static int [] zzUnpackAttribute() { - int [] result = new int[180]; + int [] result = new int[181]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; @@ -616,7 +616,7 @@ public class Scanner implements sym, java_cup.runtime.Scanner { char [] map = new char[0x110000]; int i = 0; /* index in packed string */ int j = 0; /* index in unpacked array */ - while (i < 2624) { + while (i < 2626) { int count = packed.charAt(i++); char value = packed.charAt(i++); do map[j++] = value; while (--count > 0); @@ -983,176 +983,180 @@ public class Scanner implements sym, java_cup.runtime.Scanner { case 1: { /*Ignore*/ } - case 44: break; + case 45: break; case 2: { return symbol(EOL); } - case 45: break; + case 46: break; case 3: { return symbol(DIV); } - case 46: break; + case 47: break; case 4: { return symbol(MULT); } - case 47: break; + case 48: break; case 5: { return symbol(NumLit, new Double(yytext())); } - case 48: break; + case 49: break; case 6: { return symbol(DOT); } - case 49: break; + case 50: break; case 7: { return symbol(Identifier, yytext()); } - case 50: break; + case 51: break; case 8: { return symbol(MINUS); } - case 51: break; + case 52: break; case 9: { yybegin(STRING); string.setLength(0); } - case 52: break; + case 53: break; case 10: { yybegin(CHARLITERAL); } - case 53: break; + case 54: break; case 11: { return symbol(COMMA); } - case 54: break; + case 55: break; case 12: { return symbol(LPAREN); } - case 55: break; + case 56: break; case 13: { return symbol(RPAREN); } - case 56: break; + case 57: break; case 14: - { return symbol(ASSIGN); + { return symbol(COLON); } - case 57: break; + case 58: break; case 15: - { return symbol(PLUS); + { return symbol(ASSIGN); } - case 58: break; + case 59: break; case 16: + { return symbol(PLUS); + } + case 60: break; + case 17: { throw new RuntimeException("Illegal character \""+yytext()+ "\" at line "+yyline+", column "+yycolumn); } - case 59: break; - case 17: + case 61: break; + case 18: { string.append( yytext() ); } - case 60: break; - case 18: + case 62: break; + case 19: { yybegin(YYINITIAL); return symbol(StringLit, string.toString()); } - case 61: break; - case 19: + case 63: break; + case 20: { /* ignore */ } - case 62: break; - case 20: + case 64: break; + case 21: { return symbol(IF); } - case 63: break; - case 21: + case 65: break; + case 22: { return symbol(IS); } - case 64: break; - case 22: + case 66: break; + case 23: { return symbol(OR); } - case 65: break; - case 23: + case 67: break; + case 24: { return symbol(END); } - case 66: break; - case 24: + case 68: break; + case 25: { return symbol(NOT); } - case 67: break; - case 25: + case 69: break; + case 26: { return symbol(AND); } - case 68: break; - case 26: + case 70: break; + case 27: { return symbol(XOR); } - case 69: break; - case 27: + case 71: break; + case 28: { return symbol(ELSE); } - case 70: break; - case 28: + case 72: break; + case 29: { return symbol(LOAD); } - case 71: break; - case 29: + case 73: break; + case 30: { return symbol(HEAR); } - case 72: break; - case 30: + case 74: break; + case 31: { return symbol(TRUE); } - case 73: break; - case 31: + case 75: break; + case 32: { return symbol(VOID); } - case 74: break; - case 32: + case 76: break; + case 33: { return symbol(FALSE); } - case 75: break; - case 33: + case 77: break; + case 34: { return symbol(BREAK); } - case 76: break; - case 34: + case 78: break; + case 35: { return symbol(UNTIL); } - case 77: break; - case 35: + case 79: break; + case 36: { return symbol(SIGNAL); } - case 78: break; - case 36: + case 80: break; + case 37: { return symbol(RETURN); } - case 79: break; - case 37: + case 81: break; + case 38: { return symbol(REPEAT); } - case 80: break; - case 38: + case 82: break; + case 39: { return symbol(FOREVER); } - case 81: break; - case 39: + case 83: break; + case 40: { return symbol(LT); } - case 82: break; - case 40: + case 84: break; + case 41: { return symbol(GT); } - case 83: break; - case 41: + case 85: break; + case 42: { return symbol(LTE); } - case 84: break; - case 42: + case 86: break; + case 43: { return symbol(GTE); } - case 85: break; - case 43: + case 87: break; + case 44: { return symbol(CoordLit); } - case 86: break; + case 88: break; default: zzScanError(ZZ_NO_MATCH); } diff --git a/compiler/src/UnicodeEscapes.java b/compiler/src/UnicodeEscapes.java index 07cb827..5f90c54 100644 --- a/compiler/src/UnicodeEscapes.java +++ b/compiler/src/UnicodeEscapes.java @@ -45,7 +45,7 @@ /** * This class is a scanner generated by * JFlex 1.6.1 - * from the specification file C:/Users/Nete/Documents/GitHub/P4/Compiler/src/unicode.flex + * from the specification file /Users/Lee/Documents/P4/compiler/src/unicode.flex */ public final class UnicodeEscapes extends FilterReader { diff --git a/compiler/src/java.flex b/compiler/src/java.flex index 61098e5..c151a32 100644 --- a/compiler/src/java.flex +++ b/compiler/src/java.flex @@ -106,6 +106,13 @@ Identifier = [:jletter:][:jletterdigit:]* {coordLiteral} { return symbol(CoordLit); } "VOID" { return symbol(VOID); } + /* types and ID's */ + "NUM" { return symbol(NUM); } + "BOOL" { return symbol(BOOL); } + "STRING" { return symbol(STRING); } + "COORD" { return symbol(COORD); } + "LIST" { return symbol(LIST); } + /* seperators */ "(" { return symbol(LPAREN); } ")" { return symbol(RPAREN); } diff --git a/compiler/src/java12.cup b/compiler/src/java12.cup index 455c8f1..78fff51 100644 --- a/compiler/src/java12.cup +++ b/compiler/src/java12.cup @@ -22,7 +22,7 @@ parser code {: } :}; -non terminal Type, ReferenceType, PrimitiveType, TypeName, Program, Load, RoboDecl, +non terminal Type, ReferenceType, PrimitiveType, TypeName, Program, Load, RoboDcl, MemberDcl, RoboBodyDcl, FieldDcl, MethodDcl, VariableDclList, VariableDcl, VariableInitializer, ListInitializer, Expression, Literal, LitList, AssignmentExpression, ConditionalExpression, Assignment, LeftHandSide, ListOpt, ConditionOrExpression, ConditionAndExpression, XORExpression, EqualityExpression, @@ -37,7 +37,7 @@ non terminal Type, ReferenceType, PrimitiveType, TypeName, Program, Load terminal Identifier, NUM, BOOL, STRING, COORD, LIST, NumLit, VOID; //Symbols -terminal DOT, COMMA, LPAREN, RPAREN, EOL, COLON, lambda, XOR, PLUS, MINUS, MULT, DIV, ASSIGN, +terminal DOT, COMMA, LPAREN, RPAREN, EOL, COLON, XOR, PLUS, MINUS, MULT, DIV, ASSIGN, SQUARE_LEFT, SQUARE_RIGHT; //Boolean Operators @@ -48,7 +48,7 @@ terminal LOAD, END, HEAR, SIGNAL, BREAK, RETURN, IF, ELSE, ELSEIF, RE // Program start Program -::= RoboDecl Load RoboBodyDcl +::= RoboDcl Load RoboBodyDcl ; Literal @@ -77,18 +77,18 @@ ReferenceType | LIST ; -// Name -//TypeName -//::= Identifier -//| TypeName DOT Identifier -//; +//Name +TypeName +::= Identifier +| TypeName DOT Identifier +; Load ::= LOAD LPAREN StringLit RPAREN EOL | Load LOAD LPAREN StringLit RPAREN EOL ; -RoboDecl -::= Identifier COLON +RoboDcl +::= Identifier COLON EOL ; // Declarations @@ -109,16 +109,16 @@ VariableDclList | VariableDclList COMMA VariableDcl ; VariableDcl -::= VariableInitializer +::= VariableInitializer | Identifier ListInitializer +| TypeName ; VariableInitializer ::= Expression -| lambda ; ListInitializer ::= LitList END Identifier -| lambda +//| // lambda ; LitList ::= LitList COMMA Primary @@ -141,7 +141,7 @@ LeftHandSide ; ListOpt ::= SQUARE_LEFT Expression SQUARE_RIGHT -| lambda +| //lambda ; ConditionalExpression ::= ConditionOrExpression @@ -210,7 +210,7 @@ MethodInvocation ; FormalArgs ::= ArgsList -| lambda +| //lambda ; // Methods (params, args and declarations) @@ -221,7 +221,7 @@ ArgsList FormalParams ::= ParamsList - | lambda + | // lambda ; ParamsList ::= ParamsList COMMA Param @@ -252,7 +252,7 @@ HearDecl //If, loop and statements Block ::= BlockStmtList - | lambda + | // lambda ; BlockStmtList ::= BlockStmtList BlockStmt @@ -302,11 +302,11 @@ IfStmt ; ElseIfStmt ::= ElseIfStmt ELSE IF LPAREN Expression RPAREN EOL Block END ELSEIF -| lambda +| // lambda ; ElseStmt ::= ELSE EOL Block END ELSE -| lambda +| // lambda ; LoopStmt ::= RepeatStmt From a7c8de5a8d1571966a57bcf8fe286ce497884642 Mon Sep 17 00:00:00 2001 From: Lee Paludan Date: Mon, 21 Mar 2016 08:58:53 +0100 Subject: [PATCH 42/55] Updated grammer, still errors though --- compiler/src/java12.cup | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/compiler/src/java12.cup b/compiler/src/java12.cup index 78fff51..9f89587 100644 --- a/compiler/src/java12.cup +++ b/compiler/src/java12.cup @@ -111,7 +111,6 @@ VariableDclList VariableDcl ::= VariableInitializer | Identifier ListInitializer -| TypeName ; VariableInitializer ::= Expression @@ -202,11 +201,11 @@ UnaryExpr Primary ::= Literal | LPAREN Expression RPAREN - | MethodInvocation +// | MethodInvocation | TypeName ListOpt ; MethodInvocation - ::= TypeName LPAREN FormalArgs RPAREN + ::= TypeName LPAREN FormalArgs RPAREN ; FormalArgs ::= ArgsList @@ -256,6 +255,7 @@ Block ; BlockStmtList ::= BlockStmtList BlockStmt + | BlockStmt ; BlockStmt ::= LocalVariableDcl From 4278f4f0d21b92e8d1c937f69a2a11b9fc9fbb58 Mon Sep 17 00:00:00 2001 From: Lee Paludan Date: Mon, 21 Mar 2016 09:33:29 +0100 Subject: [PATCH 43/55] pushing parser states --- compiler/src/build.xml | 10 +++++++++- compiler/src/java12.cup | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/compiler/src/build.xml b/compiler/src/build.xml index 6bb2497..c6cfee8 100644 --- a/compiler/src/build.xml +++ b/compiler/src/build.xml @@ -5,7 +5,7 @@ - + @@ -14,6 +14,14 @@ + + + + + + + + diff --git a/compiler/src/java12.cup b/compiler/src/java12.cup index 9f89587..172b7ae 100644 --- a/compiler/src/java12.cup +++ b/compiler/src/java12.cup @@ -201,7 +201,7 @@ UnaryExpr Primary ::= Literal | LPAREN Expression RPAREN -// | MethodInvocation + | MethodInvocation | TypeName ListOpt ; MethodInvocation From b0ce1aa463475783b9aefd5ff8dfa54cf6a3ecbc Mon Sep 17 00:00:00 2001 From: Lee Paludan Date: Mon, 21 Mar 2016 09:35:11 +0100 Subject: [PATCH 44/55] Pushing states --- compiler/src/parser.states | 3570 ++++++++++++++++++++++++++++++++++++ 1 file changed, 3570 insertions(+) create mode 100644 compiler/src/parser.states diff --git a/compiler/src/parser.states b/compiler/src/parser.states new file mode 100644 index 0000000..0dc1a92 --- /dev/null +++ b/compiler/src/parser.states @@ -0,0 +1,3570 @@ +===== Viable Prefix Recognizer ===== +START lalr_state [0]: { + [RoboDcl ::= (*) Identifier COLON EOL , {LOAD }] + [$START ::= (*) Program EOF , {EOF }] + [Program ::= (*) RoboDcl Load RoboBodyDcl , {EOF }] +} +transition on Identifier to state [3] +transition on RoboDcl to state [2] +transition on Program to state [1] + +------------------- +lalr_state [1]: { + [$START ::= Program (*) EOF , {EOF }] +} +transition on EOF to state [224] + +------------------- +lalr_state [2]: { + [Load ::= (*) Load LOAD LPAREN StringLit RPAREN EOL , {NUM BOOL STRING COORD LIST VOID EOL LOAD HEAR }] + [Load ::= (*) LOAD LPAREN StringLit RPAREN EOL , {NUM BOOL STRING COORD LIST VOID EOL LOAD HEAR }] + [Program ::= RoboDcl (*) Load RoboBodyDcl , {EOF }] +} +transition on Load to state [7] +transition on LOAD to state [6] + +------------------- +lalr_state [3]: { + [RoboDcl ::= Identifier (*) COLON EOL , {LOAD }] +} +transition on COLON to state [4] + +------------------- +lalr_state [4]: { + [RoboDcl ::= Identifier COLON (*) EOL , {LOAD }] +} +transition on EOL to state [5] + +------------------- +lalr_state [5]: { + [RoboDcl ::= Identifier COLON EOL (*) , {LOAD }] +} + +------------------- +lalr_state [6]: { + [Load ::= LOAD (*) LPAREN StringLit RPAREN EOL , {NUM BOOL STRING COORD LIST VOID EOL LOAD HEAR }] +} +transition on LPAREN to state [220] + +------------------- +lalr_state [7]: { + [PrimitiveType ::= (*) NUM , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [RoboBodyDcl ::= (*) RoboBodyDcl MemberDcl , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] + [FieldDcl ::= (*) Type VariableDclList EOL , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] + [MethodDcl ::= (*) MethodHeader MethodBody , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] + [Type ::= (*) ReferenceType , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [Load ::= Load (*) LOAD LPAREN StringLit RPAREN EOL , {NUM BOOL STRING COORD LIST VOID EOL LOAD HEAR }] + [ReferenceType ::= (*) COORD , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [MemberDcl ::= (*) MethodDcl , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] + [MethodHeader ::= (*) VOID MethodDeclarator , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [PrimitiveType ::= (*) BOOL , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [RoboBodyDcl ::= (*) MemberDcl , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] + [MethodDcl ::= (*) HearDecl , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] + [HearDecl ::= (*) HEAR Identifier LPAREN FormalParams RPAREN Block END HEAR , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] + [Type ::= (*) PrimitiveType , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [ReferenceType ::= (*) LIST , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [MemberDcl ::= (*) EOL , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] + [ReferenceType ::= (*) STRING , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [MemberDcl ::= (*) FieldDcl , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] + [Program ::= RoboDcl Load (*) RoboBodyDcl , {EOF }] + [MethodHeader ::= (*) Type MethodDeclarator , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on MethodHeader to state [25] +transition on VOID to state [24] +transition on ReferenceType to state [23] +transition on BOOL to state [22] +transition on MemberDcl to state [21] +transition on LOAD to state [20] +transition on MethodDcl to state [19] +transition on RoboBodyDcl to state [18] +transition on STRING to state [17] +transition on NUM to state [16] +transition on EOL to state [15] +transition on PrimitiveType to state [14] +transition on Type to state [13] +transition on HEAR to state [12] +transition on COORD to state [11] +transition on LIST to state [10] +transition on FieldDcl to state [9] +transition on HearDecl to state [8] + +------------------- +lalr_state [8]: { + [MethodDcl ::= HearDecl (*) , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] +} + +------------------- +lalr_state [9]: { + [MemberDcl ::= FieldDcl (*) , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] +} + +------------------- +lalr_state [10]: { + [ReferenceType ::= LIST (*) , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] +} + +------------------- +lalr_state [11]: { + [ReferenceType ::= COORD (*) , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] +} + +------------------- +lalr_state [12]: { + [HearDecl ::= HEAR (*) Identifier LPAREN FormalParams RPAREN Block END HEAR , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] +} +transition on Identifier to state [213] + +------------------- +lalr_state [13]: { + [MethodDeclarator ::= (*) Identifier LPAREN FormalParams RPAREN , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [UnaryExpr ::= (*) Primary , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) AdditiveExpression AdditiveExpressionEnd , {COMMA EOL XOR PLUS MINUS AND OR IS NOT LT GT LTE GTE }] + [ConditionalExpression ::= (*) ConditionOrExpression , {COMMA EOL }] + [Literal ::= (*) CoordLit , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [XORExpression ::= (*) EqualityExpression , {COMMA EOL XOR AND OR }] + [Assignment ::= (*) LeftHandSide ASSIGN Expression , {COMMA EOL }] + [VariableDcl ::= (*) VariableInitializer , {COMMA EOL }] + [Primary ::= (*) Literal , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [ConditionOrExpression ::= (*) ConditionAndExpression , {COMMA EOL OR }] + [TypeName ::= (*) Identifier , {DOT COMMA EOL XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) TRUE , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [XORExpression ::= (*) XORExpression XOR EqualityExpression , {COMMA EOL XOR AND OR }] + [LeftHandSide ::= (*) TypeName ListOpt , {ASSIGN }] + [VariableDcl ::= (*) Identifier ListInitializer , {COMMA EOL }] + [Literal ::= (*) NumLit , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) LPAREN Expression RPAREN , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) AdditiveExpression , {COMMA EOL XOR AND OR IS NOT LT GT LTE GTE }] + [ConditionOrExpression ::= (*) ConditionOrExpression OR ConditionAndExpression , {COMMA EOL OR }] + [Expression ::= (*) AssignmentExpression , {COMMA EOL }] + [FieldDcl ::= Type (*) VariableDclList EOL , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT COMMA EOL XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) FALSE , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [MethodHeader ::= Type (*) MethodDeclarator , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [UnaryExpr ::= (*) PLUS UnaryExpr , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [EqualityExpression ::= (*) RelationalExpression , {COMMA EOL XOR AND OR IS NOT }] + [VariableInitializer ::= (*) Expression , {COMMA EOL }] + [Literal ::= (*) BoolLit , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) TypeName ListOpt , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) UnaryExpr , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) RelationalExpression RelationalExpressionEnd , {COMMA EOL XOR AND OR IS NOT LT GT LTE GTE }] + [ConditionAndExpression ::= (*) XORExpression , {COMMA EOL AND OR }] + [AssignmentExpression ::= (*) ConditionalExpression , {COMMA EOL }] + [VariableDclList ::= (*) VariableDcl , {COMMA EOL }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) MultiExpr , {COMMA EOL XOR PLUS MINUS AND OR IS NOT LT GT LTE GTE }] + [EqualityExpression ::= (*) EqualityExpression EqualityExpressionEnd , {COMMA EOL XOR AND OR IS NOT }] + [Literal ::= (*) StringLit , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) MultiExpr MultiExprEnd , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [ConditionAndExpression ::= (*) ConditionAndExpression AND XORExpression , {COMMA EOL AND OR }] + [AssignmentExpression ::= (*) Assignment , {COMMA EOL }] + [VariableDclList ::= (*) VariableDclList COMMA VariableDcl , {COMMA EOL }] +} +transition on AssignmentExpression to state [85] +transition on CoordLit to state [84] +transition on Expression to state [136] +transition on StringLit to state [82] +transition on Literal to state [81] +transition on AdditiveExpression to state [80] +transition on MethodDeclarator to state [210] +transition on ConditionAndExpression to state [79] +transition on XORExpression to state [78] +transition on BoolLit to state [77] +transition on FALSE to state [76] +transition on MINUS to state [75] +transition on EqualityExpression to state [74] +transition on ConditionOrExpression to state [73] +transition on VariableDclList to state [209] +transition on RelationalExpression to state [72] +transition on VariableDcl to state [134] +transition on Identifier to state [208] +transition on ConditionalExpression to state [71] +transition on TypeName to state [70] +transition on LeftHandSide to state [29] +transition on LPAREN to state [69] +transition on MultiExpr to state [68] +transition on TRUE to state [67] +transition on VariableInitializer to state [132] +transition on Primary to state [66] +transition on NumLit to state [64] +transition on PLUS to state [63] +transition on Assignment to state [62] +transition on UnaryExpr to state [61] + +------------------- +lalr_state [14]: { + [Type ::= PrimitiveType (*) , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] +} + +------------------- +lalr_state [15]: { + [MemberDcl ::= EOL (*) , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] +} + +------------------- +lalr_state [16]: { + [PrimitiveType ::= NUM (*) , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] +} + +------------------- +lalr_state [17]: { + [ReferenceType ::= STRING (*) , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] +} + +------------------- +lalr_state [18]: { + [PrimitiveType ::= (*) NUM , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [RoboBodyDcl ::= RoboBodyDcl (*) MemberDcl , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] + [FieldDcl ::= (*) Type VariableDclList EOL , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] + [MethodDcl ::= (*) MethodHeader MethodBody , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] + [Type ::= (*) ReferenceType , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [ReferenceType ::= (*) COORD , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [MemberDcl ::= (*) MethodDcl , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] + [MethodHeader ::= (*) VOID MethodDeclarator , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [PrimitiveType ::= (*) BOOL , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [MethodDcl ::= (*) HearDecl , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] + [HearDecl ::= (*) HEAR Identifier LPAREN FormalParams RPAREN Block END HEAR , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] + [Type ::= (*) PrimitiveType , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [ReferenceType ::= (*) LIST , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [MemberDcl ::= (*) EOL , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] + [ReferenceType ::= (*) STRING , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [MemberDcl ::= (*) FieldDcl , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] + [Program ::= RoboDcl Load RoboBodyDcl (*) , {EOF }] + [MethodHeader ::= (*) Type MethodDeclarator , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on MethodDcl to state [19] +transition on HearDecl to state [8] +transition on PrimitiveType to state [14] +transition on LIST to state [10] +transition on FieldDcl to state [9] +transition on MemberDcl to state [207] +transition on STRING to state [17] +transition on VOID to state [24] +transition on MethodHeader to state [25] +transition on COORD to state [11] +transition on EOL to state [15] +transition on BOOL to state [22] +transition on ReferenceType to state [23] +transition on NUM to state [16] +transition on Type to state [13] +transition on HEAR to state [12] + +------------------- +lalr_state [19]: { + [MemberDcl ::= MethodDcl (*) , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] +} + +------------------- +lalr_state [20]: { + [Load ::= Load LOAD (*) LPAREN StringLit RPAREN EOL , {NUM BOOL STRING COORD LIST VOID EOL LOAD HEAR }] +} +transition on LPAREN to state [203] + +------------------- +lalr_state [21]: { + [RoboBodyDcl ::= MemberDcl (*) , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] +} + +------------------- +lalr_state [22]: { + [PrimitiveType ::= BOOL (*) , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] +} + +------------------- +lalr_state [23]: { + [Type ::= ReferenceType (*) , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] +} + +------------------- +lalr_state [24]: { + [MethodDeclarator ::= (*) Identifier LPAREN FormalParams RPAREN , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [MethodHeader ::= VOID (*) MethodDeclarator , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on Identifier to state [193] +transition on MethodDeclarator to state [192] + +------------------- +lalr_state [25]: { + [RepeatStmt ::= (*) REPEAT UNTIL LPAREN Expression RPAREN EOL Block END REPEAT , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [ReferenceType ::= (*) LIST , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [BreakStmt ::= (*) BREAK EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [StmtNoSubstmt ::= (*) SignalStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [BlockStmtList ::= (*) BlockStmtList BlockStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [MethodDcl ::= MethodHeader (*) MethodBody , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] + [Assignment ::= (*) LeftHandSide ASSIGN Expression , {EOL }] + [SignalStmt ::= (*) SIGNAL Identifier LPAREN ArgsList RPAREN EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [PrimitiveType ::= (*) NUM , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [Statement ::= (*) StmtNoSubstmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [MethodBody ::= (*) Block END Identifier , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] + [ForeverStmt ::= (*) FOREVER EOL Block END FOREVER , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [TypeName ::= (*) Identifier , {DOT LPAREN ASSIGN SQUARE_LEFT }] + [ReturnStmt ::= (*) RETURN Expression EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [StmtNoSubstmt ::= (*) ExprStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [BlockStmtList ::= (*) BlockStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LeftHandSide ::= (*) TypeName ListOpt , {ASSIGN }] + [ExprStmt ::= (*) StmtExpr EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [PrimitiveType ::= (*) BOOL , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [Statement ::= (*) IfStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT LPAREN ASSIGN SQUARE_LEFT }] + [IfStmt ::= (*) IF LPAREN Expression RPAREN EOL Block END IF ElseIfStmt ElseStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [StmtNoSubstmt ::= (*) BreakStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [BlockStmt ::= (*) LocalVariableDcl , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LoopStmt ::= (*) RepeatStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [ReferenceType ::= (*) STRING , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [StmtExpr ::= (*) Assignment , {EOL }] + [Statement ::= (*) LoopStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Block ::= (*) BlockStmtList , {END }] + [StmtNoSubstmt ::= (*) ReturnStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Type ::= (*) ReferenceType , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [BlockStmt ::= (*) Statement , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LoopStmt ::= (*) ForeverStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [StmtExpr ::= (*) MethodInvocation , {EOL }] + [ReferenceType ::= (*) COORD , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [StmtNoSubstmt ::= (*) EmptyStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Block ::= (*) , {END }] + [MethodInvocation ::= (*) TypeName LPAREN FormalArgs RPAREN , {EOL }] + [Type ::= (*) PrimitiveType , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [EmptyStmt ::= (*) EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LocalVariableDcl ::= (*) Type VariableDclList EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on Block to state [55] +transition on StmtExpr to state [54] +transition on SIGNAL to state [53] +transition on BreakStmt to state [52] +transition on MethodInvocation to state [51] +transition on STRING to state [17] +transition on Type to state [50] +transition on Statement to state [49] +transition on EmptyStmt to state [48] +transition on LIST to state [10] +transition on Assignment to state [47] +transition on LoopStmt to state [46] +transition on SignalStmt to state [45] +transition on BlockStmtList to state [44] +transition on Identifier to state [43] +transition on IfStmt to state [42] +transition on MethodBody to state [41] +transition on BREAK to state [40] +transition on BlockStmt to state [39] +transition on RETURN to state [38] +transition on FOREVER to state [37] +transition on ReferenceType to state [23] +transition on COORD to state [11] +transition on IF to state [36] +transition on EOL to state [35] +transition on NUM to state [16] +transition on BOOL to state [22] +transition on RepeatStmt to state [34] +transition on LocalVariableDcl to state [33] +transition on REPEAT to state [32] +transition on TypeName to state [31] +transition on ForeverStmt to state [30] +transition on LeftHandSide to state [29] +transition on PrimitiveType to state [14] +transition on ExprStmt to state [28] +transition on StmtNoSubstmt to state [27] +transition on ReturnStmt to state [26] + +------------------- +lalr_state [26]: { + [StmtNoSubstmt ::= ReturnStmt (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} + +------------------- +lalr_state [27]: { + [Statement ::= StmtNoSubstmt (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} + +------------------- +lalr_state [28]: { + [StmtNoSubstmt ::= ExprStmt (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} + +------------------- +lalr_state [29]: { + [Assignment ::= LeftHandSide (*) ASSIGN Expression , {COMMA RPAREN EOL SQUARE_RIGHT }] +} +transition on ASSIGN to state [190] + +------------------- +lalr_state [30]: { + [LoopStmt ::= ForeverStmt (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} + +------------------- +lalr_state [31]: { + [TypeName ::= TypeName (*) DOT Identifier , {DOT LPAREN ASSIGN SQUARE_LEFT }] + [LeftHandSide ::= TypeName (*) ListOpt , {ASSIGN }] + [ListOpt ::= (*) , {ASSIGN }] + [MethodInvocation ::= TypeName (*) LPAREN FormalArgs RPAREN , {EOL }] + [ListOpt ::= (*) SQUARE_LEFT Expression SQUARE_RIGHT , {ASSIGN }] +} +transition on DOT to state [98] +transition on LPAREN to state [186] +transition on SQUARE_LEFT to state [97] +transition on ListOpt to state [185] + +------------------- +lalr_state [32]: { + [RepeatStmt ::= REPEAT (*) UNTIL LPAREN Expression RPAREN EOL Block END REPEAT , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on UNTIL to state [177] + +------------------- +lalr_state [33]: { + [BlockStmt ::= LocalVariableDcl (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} + +------------------- +lalr_state [34]: { + [LoopStmt ::= RepeatStmt (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} + +------------------- +lalr_state [35]: { + [EmptyStmt ::= EOL (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} + +------------------- +lalr_state [36]: { + [IfStmt ::= IF (*) LPAREN Expression RPAREN EOL Block END IF ElseIfStmt ElseStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on LPAREN to state [155] + +------------------- +lalr_state [37]: { + [ForeverStmt ::= FOREVER (*) EOL Block END FOREVER , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on EOL to state [151] + +------------------- +lalr_state [38]: { + [Literal ::= (*) CoordLit , {EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) AdditiveExpression , {EOL XOR AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) UnaryExpr , {EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) Identifier , {DOT EOL XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AssignmentExpression ::= (*) ConditionalExpression , {EOL }] + [ConditionAndExpression ::= (*) ConditionAndExpression AND XORExpression , {EOL AND OR }] + [Literal ::= (*) BoolLit , {EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) LPAREN Expression RPAREN , {EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [LeftHandSide ::= (*) TypeName ListOpt , {ASSIGN }] + [ConditionOrExpression ::= (*) ConditionOrExpression OR ConditionAndExpression , {EOL OR }] + [EqualityExpression ::= (*) RelationalExpression , {EOL XOR AND OR IS NOT }] + [BoolLit ::= (*) TRUE , {EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) RelationalExpression RelationalExpressionEnd , {EOL XOR AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) MultiExpr , {EOL XOR PLUS MINUS AND OR IS NOT LT GT LTE GTE }] + [ReturnStmt ::= RETURN (*) Expression EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [MultiExpr ::= (*) MultiExpr MultiExprEnd , {EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT EOL XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) Primary , {EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AssignmentExpression ::= (*) Assignment , {EOL }] + [ConditionalExpression ::= (*) ConditionOrExpression , {EOL }] + [XORExpression ::= (*) EqualityExpression , {EOL XOR AND OR }] + [Literal ::= (*) StringLit , {EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) PLUS UnaryExpr , {EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) TypeName ListOpt , {EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Expression ::= (*) AssignmentExpression , {EOL }] + [ConditionAndExpression ::= (*) XORExpression , {EOL AND OR }] + [Literal ::= (*) NumLit , {EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [EqualityExpression ::= (*) EqualityExpression EqualityExpressionEnd , {EOL XOR AND OR IS NOT }] + [BoolLit ::= (*) FALSE , {EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) AdditiveExpression AdditiveExpressionEnd , {EOL XOR PLUS MINUS AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) Literal , {EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Assignment ::= (*) LeftHandSide ASSIGN Expression , {EOL }] + [ConditionOrExpression ::= (*) ConditionAndExpression , {EOL OR }] + [XORExpression ::= (*) XORExpression XOR EqualityExpression , {EOL XOR AND OR }] +} +transition on AssignmentExpression to state [85] +transition on CoordLit to state [84] +transition on Expression to state [149] +transition on StringLit to state [82] +transition on Literal to state [81] +transition on AdditiveExpression to state [80] +transition on ConditionAndExpression to state [79] +transition on BoolLit to state [77] +transition on XORExpression to state [78] +transition on MINUS to state [75] +transition on FALSE to state [76] +transition on EqualityExpression to state [74] +transition on ConditionOrExpression to state [73] +transition on RelationalExpression to state [72] +transition on ConditionalExpression to state [71] +transition on Identifier to state [43] +transition on TypeName to state [70] +transition on MultiExpr to state [68] +transition on LPAREN to state [69] +transition on LeftHandSide to state [29] +transition on TRUE to state [67] +transition on Primary to state [66] +transition on NumLit to state [64] +transition on PLUS to state [63] +transition on Assignment to state [62] +transition on UnaryExpr to state [61] + +------------------- +lalr_state [39]: { + [BlockStmtList ::= BlockStmt (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} + +------------------- +lalr_state [40]: { + [BreakStmt ::= BREAK (*) EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on EOL to state [148] + +------------------- +lalr_state [41]: { + [MethodDcl ::= MethodHeader MethodBody (*) , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] +} + +------------------- +lalr_state [42]: { + [Statement ::= IfStmt (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} + +------------------- +lalr_state [43]: { + [TypeName ::= Identifier (*) , {DOT COMMA LPAREN RPAREN EOL XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE END }] +} + +------------------- +lalr_state [44]: { + [RepeatStmt ::= (*) REPEAT UNTIL LPAREN Expression RPAREN EOL Block END REPEAT , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [ReferenceType ::= (*) LIST , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [BreakStmt ::= (*) BREAK EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [BlockStmtList ::= BlockStmtList (*) BlockStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [StmtNoSubstmt ::= (*) SignalStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Assignment ::= (*) LeftHandSide ASSIGN Expression , {EOL }] + [SignalStmt ::= (*) SIGNAL Identifier LPAREN ArgsList RPAREN EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [PrimitiveType ::= (*) NUM , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [Statement ::= (*) StmtNoSubstmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [ForeverStmt ::= (*) FOREVER EOL Block END FOREVER , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [ReturnStmt ::= (*) RETURN Expression EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [TypeName ::= (*) Identifier , {DOT LPAREN ASSIGN SQUARE_LEFT }] + [StmtNoSubstmt ::= (*) ExprStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LeftHandSide ::= (*) TypeName ListOpt , {ASSIGN }] + [ExprStmt ::= (*) StmtExpr EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [PrimitiveType ::= (*) BOOL , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [Statement ::= (*) IfStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [IfStmt ::= (*) IF LPAREN Expression RPAREN EOL Block END IF ElseIfStmt ElseStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT LPAREN ASSIGN SQUARE_LEFT }] + [StmtNoSubstmt ::= (*) BreakStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [BlockStmt ::= (*) LocalVariableDcl , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LoopStmt ::= (*) RepeatStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [ReferenceType ::= (*) STRING , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [StmtExpr ::= (*) Assignment , {EOL }] + [Block ::= BlockStmtList (*) , {END }] + [Statement ::= (*) LoopStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [StmtNoSubstmt ::= (*) ReturnStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Type ::= (*) ReferenceType , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [BlockStmt ::= (*) Statement , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LoopStmt ::= (*) ForeverStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [StmtExpr ::= (*) MethodInvocation , {EOL }] + [ReferenceType ::= (*) COORD , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [StmtNoSubstmt ::= (*) EmptyStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [MethodInvocation ::= (*) TypeName LPAREN FormalArgs RPAREN , {EOL }] + [Type ::= (*) PrimitiveType , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [EmptyStmt ::= (*) EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LocalVariableDcl ::= (*) Type VariableDclList EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on EmptyStmt to state [48] +transition on SignalStmt to state [45] +transition on REPEAT to state [32] +transition on IfStmt to state [42] +transition on ReferenceType to state [23] +transition on BOOL to state [22] +transition on BlockStmt to state [147] +transition on Statement to state [49] +transition on FOREVER to state [37] +transition on BreakStmt to state [52] +transition on LoopStmt to state [46] +transition on BREAK to state [40] +transition on RepeatStmt to state [34] +transition on Identifier to state [43] +transition on STRING to state [17] +transition on NUM to state [16] +transition on TypeName to state [31] +transition on ExprStmt to state [28] +transition on PrimitiveType to state [14] +transition on EOL to state [35] +transition on Type to state [50] +transition on LeftHandSide to state [29] +transition on IF to state [36] +transition on StmtNoSubstmt to state [27] +transition on SIGNAL to state [53] +transition on StmtExpr to state [54] +transition on RETURN to state [38] +transition on COORD to state [11] +transition on ForeverStmt to state [30] +transition on LIST to state [10] +transition on LocalVariableDcl to state [33] +transition on Assignment to state [47] +transition on MethodInvocation to state [51] +transition on ReturnStmt to state [26] + +------------------- +lalr_state [45]: { + [StmtNoSubstmt ::= SignalStmt (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} + +------------------- +lalr_state [46]: { + [Statement ::= LoopStmt (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} + +------------------- +lalr_state [47]: { + [StmtExpr ::= Assignment (*) , {EOL }] +} + +------------------- +lalr_state [48]: { + [StmtNoSubstmt ::= EmptyStmt (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} + +------------------- +lalr_state [49]: { + [BlockStmt ::= Statement (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} + +------------------- +lalr_state [50]: { + [UnaryExpr ::= (*) Primary , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) AdditiveExpression AdditiveExpressionEnd , {COMMA EOL XOR PLUS MINUS AND OR IS NOT LT GT LTE GTE }] + [ConditionalExpression ::= (*) ConditionOrExpression , {COMMA EOL }] + [Literal ::= (*) CoordLit , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [XORExpression ::= (*) EqualityExpression , {COMMA EOL XOR AND OR }] + [Assignment ::= (*) LeftHandSide ASSIGN Expression , {COMMA EOL }] + [VariableDcl ::= (*) VariableInitializer , {COMMA EOL }] + [Primary ::= (*) Literal , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [ConditionOrExpression ::= (*) ConditionAndExpression , {COMMA EOL OR }] + [TypeName ::= (*) Identifier , {DOT COMMA EOL XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) TRUE , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [XORExpression ::= (*) XORExpression XOR EqualityExpression , {COMMA EOL XOR AND OR }] + [LeftHandSide ::= (*) TypeName ListOpt , {ASSIGN }] + [VariableDcl ::= (*) Identifier ListInitializer , {COMMA EOL }] + [Literal ::= (*) NumLit , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) LPAREN Expression RPAREN , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) AdditiveExpression , {COMMA EOL XOR AND OR IS NOT LT GT LTE GTE }] + [ConditionOrExpression ::= (*) ConditionOrExpression OR ConditionAndExpression , {COMMA EOL OR }] + [Expression ::= (*) AssignmentExpression , {COMMA EOL }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT COMMA EOL XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) FALSE , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) PLUS UnaryExpr , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [EqualityExpression ::= (*) RelationalExpression , {COMMA EOL XOR AND OR IS NOT }] + [VariableInitializer ::= (*) Expression , {COMMA EOL }] + [Literal ::= (*) BoolLit , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) TypeName ListOpt , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) UnaryExpr , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) RelationalExpression RelationalExpressionEnd , {COMMA EOL XOR AND OR IS NOT LT GT LTE GTE }] + [ConditionAndExpression ::= (*) XORExpression , {COMMA EOL AND OR }] + [AssignmentExpression ::= (*) ConditionalExpression , {COMMA EOL }] + [VariableDclList ::= (*) VariableDcl , {COMMA EOL }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) MultiExpr , {COMMA EOL XOR PLUS MINUS AND OR IS NOT LT GT LTE GTE }] + [EqualityExpression ::= (*) EqualityExpression EqualityExpressionEnd , {COMMA EOL XOR AND OR IS NOT }] + [Literal ::= (*) StringLit , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) MultiExpr MultiExprEnd , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [ConditionAndExpression ::= (*) ConditionAndExpression AND XORExpression , {COMMA EOL AND OR }] + [AssignmentExpression ::= (*) Assignment , {COMMA EOL }] + [VariableDclList ::= (*) VariableDclList COMMA VariableDcl , {COMMA EOL }] + [LocalVariableDcl ::= Type (*) VariableDclList EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on AssignmentExpression to state [85] +transition on CoordLit to state [84] +transition on Expression to state [136] +transition on StringLit to state [82] +transition on Literal to state [81] +transition on AdditiveExpression to state [80] +transition on ConditionAndExpression to state [79] +transition on XORExpression to state [78] +transition on BoolLit to state [77] +transition on FALSE to state [76] +transition on MINUS to state [75] +transition on EqualityExpression to state [74] +transition on ConditionOrExpression to state [73] +transition on RelationalExpression to state [72] +transition on VariableDclList to state [135] +transition on VariableDcl to state [134] +transition on Identifier to state [133] +transition on ConditionalExpression to state [71] +transition on TypeName to state [70] +transition on LeftHandSide to state [29] +transition on LPAREN to state [69] +transition on MultiExpr to state [68] +transition on TRUE to state [67] +transition on VariableInitializer to state [132] +transition on Primary to state [66] +transition on NumLit to state [64] +transition on PLUS to state [63] +transition on Assignment to state [62] +transition on UnaryExpr to state [61] + +------------------- +lalr_state [51]: { + [StmtExpr ::= MethodInvocation (*) , {EOL }] +} + +------------------- +lalr_state [52]: { + [StmtNoSubstmt ::= BreakStmt (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} + +------------------- +lalr_state [53]: { + [SignalStmt ::= SIGNAL (*) Identifier LPAREN ArgsList RPAREN EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on Identifier to state [59] + +------------------- +lalr_state [54]: { + [ExprStmt ::= StmtExpr (*) EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on EOL to state [58] + +------------------- +lalr_state [55]: { + [MethodBody ::= Block (*) END Identifier , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] +} +transition on END to state [56] + +------------------- +lalr_state [56]: { + [MethodBody ::= Block END (*) Identifier , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] +} +transition on Identifier to state [57] + +------------------- +lalr_state [57]: { + [MethodBody ::= Block END Identifier (*) , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] +} + +------------------- +lalr_state [58]: { + [ExprStmt ::= StmtExpr EOL (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} + +------------------- +lalr_state [59]: { + [SignalStmt ::= SIGNAL Identifier (*) LPAREN ArgsList RPAREN EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on LPAREN to state [60] + +------------------- +lalr_state [60]: { + [UnaryExpr ::= (*) Primary , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) AdditiveExpression AdditiveExpressionEnd , {COMMA RPAREN XOR PLUS MINUS AND OR IS NOT LT GT LTE GTE }] + [ConditionalExpression ::= (*) ConditionOrExpression , {COMMA RPAREN }] + [Literal ::= (*) CoordLit , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [XORExpression ::= (*) EqualityExpression , {COMMA RPAREN XOR AND OR }] + [Assignment ::= (*) LeftHandSide ASSIGN Expression , {COMMA RPAREN }] + [SignalStmt ::= SIGNAL Identifier LPAREN (*) ArgsList RPAREN EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Primary ::= (*) Literal , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [ConditionOrExpression ::= (*) ConditionAndExpression , {COMMA RPAREN OR }] + [TypeName ::= (*) Identifier , {DOT COMMA RPAREN XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) TRUE , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [XORExpression ::= (*) XORExpression XOR EqualityExpression , {COMMA RPAREN XOR AND OR }] + [LeftHandSide ::= (*) TypeName ListOpt , {ASSIGN }] + [Literal ::= (*) NumLit , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) LPAREN Expression RPAREN , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) AdditiveExpression , {COMMA RPAREN XOR AND OR IS NOT LT GT LTE GTE }] + [ConditionOrExpression ::= (*) ConditionOrExpression OR ConditionAndExpression , {COMMA RPAREN OR }] + [Expression ::= (*) AssignmentExpression , {COMMA RPAREN }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT COMMA RPAREN XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) FALSE , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [ArgsList ::= (*) ArgsList COMMA Expression , {COMMA RPAREN }] + [UnaryExpr ::= (*) PLUS UnaryExpr , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [EqualityExpression ::= (*) RelationalExpression , {COMMA RPAREN XOR AND OR IS NOT }] + [Literal ::= (*) BoolLit , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) TypeName ListOpt , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) UnaryExpr , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) RelationalExpression RelationalExpressionEnd , {COMMA RPAREN XOR AND OR IS NOT LT GT LTE GTE }] + [ConditionAndExpression ::= (*) XORExpression , {COMMA RPAREN AND OR }] + [AssignmentExpression ::= (*) ConditionalExpression , {COMMA RPAREN }] + [ArgsList ::= (*) Expression , {COMMA RPAREN }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) MultiExpr , {COMMA RPAREN XOR PLUS MINUS AND OR IS NOT LT GT LTE GTE }] + [EqualityExpression ::= (*) EqualityExpression EqualityExpressionEnd , {COMMA RPAREN XOR AND OR IS NOT }] + [Literal ::= (*) StringLit , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) MultiExpr MultiExprEnd , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [ConditionAndExpression ::= (*) ConditionAndExpression AND XORExpression , {COMMA RPAREN AND OR }] + [AssignmentExpression ::= (*) Assignment , {COMMA RPAREN }] +} +transition on AssignmentExpression to state [85] +transition on CoordLit to state [84] +transition on Expression to state [83] +transition on StringLit to state [82] +transition on Literal to state [81] +transition on AdditiveExpression to state [80] +transition on ConditionAndExpression to state [79] +transition on XORExpression to state [78] +transition on BoolLit to state [77] +transition on FALSE to state [76] +transition on MINUS to state [75] +transition on EqualityExpression to state [74] +transition on ConditionOrExpression to state [73] +transition on RelationalExpression to state [72] +transition on Identifier to state [43] +transition on ConditionalExpression to state [71] +transition on TypeName to state [70] +transition on LeftHandSide to state [29] +transition on LPAREN to state [69] +transition on MultiExpr to state [68] +transition on TRUE to state [67] +transition on Primary to state [66] +transition on ArgsList to state [65] +transition on NumLit to state [64] +transition on PLUS to state [63] +transition on Assignment to state [62] +transition on UnaryExpr to state [61] + +------------------- +lalr_state [61]: { + [MultiExpr ::= UnaryExpr (*) , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} + +------------------- +lalr_state [62]: { + [AssignmentExpression ::= Assignment (*) , {COMMA RPAREN EOL SQUARE_RIGHT }] +} + +------------------- +lalr_state [63]: { + [UnaryExpr ::= (*) PLUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) CoordLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) NumLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) TypeName ListOpt , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) Primary , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) FALSE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) StringLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) LPAREN Expression RPAREN , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) TRUE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) BoolLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= PLUS (*) UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) Literal , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} +transition on Primary to state [66] +transition on LPAREN to state [69] +transition on BoolLit to state [77] +transition on FALSE to state [76] +transition on StringLit to state [82] +transition on TypeName to state [89] +transition on PLUS to state [63] +transition on Identifier to state [43] +transition on NumLit to state [64] +transition on TRUE to state [67] +transition on UnaryExpr to state [131] +transition on Literal to state [81] +transition on CoordLit to state [84] +transition on MINUS to state [75] + +------------------- +lalr_state [64]: { + [Literal ::= NumLit (*) , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE END }] +} + +------------------- +lalr_state [65]: { + [SignalStmt ::= SIGNAL Identifier LPAREN ArgsList (*) RPAREN EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [ArgsList ::= ArgsList (*) COMMA Expression , {COMMA RPAREN }] +} +transition on RPAREN to state [128] +transition on COMMA to state [127] + +------------------- +lalr_state [66]: { + [UnaryExpr ::= Primary (*) , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} + +------------------- +lalr_state [67]: { + [BoolLit ::= TRUE (*) , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE END }] +} + +------------------- +lalr_state [68]: { + [MultiExprEnd ::= (*) DIV UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExprEnd ::= (*) MULT UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= MultiExpr (*) , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= MultiExpr (*) MultiExprEnd , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} +transition on DIV to state [93] +transition on MULT to state [92] +transition on MultiExprEnd to state [91] + +------------------- +lalr_state [69]: { + [Literal ::= (*) CoordLit , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) AdditiveExpression , {RPAREN XOR AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) UnaryExpr , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) Identifier , {DOT RPAREN XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AssignmentExpression ::= (*) ConditionalExpression , {RPAREN }] + [ConditionAndExpression ::= (*) ConditionAndExpression AND XORExpression , {RPAREN AND OR }] + [Literal ::= (*) BoolLit , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Primary ::= LPAREN (*) Expression RPAREN , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE END }] + [Primary ::= (*) LPAREN Expression RPAREN , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [LeftHandSide ::= (*) TypeName ListOpt , {ASSIGN }] + [ConditionOrExpression ::= (*) ConditionOrExpression OR ConditionAndExpression , {RPAREN OR }] + [EqualityExpression ::= (*) RelationalExpression , {RPAREN XOR AND OR IS NOT }] + [BoolLit ::= (*) TRUE , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) RelationalExpression RelationalExpressionEnd , {RPAREN XOR AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) MultiExpr , {RPAREN XOR PLUS MINUS AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) MultiExpr MultiExprEnd , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT RPAREN XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) Primary , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AssignmentExpression ::= (*) Assignment , {RPAREN }] + [ConditionalExpression ::= (*) ConditionOrExpression , {RPAREN }] + [XORExpression ::= (*) EqualityExpression , {RPAREN XOR AND OR }] + [Literal ::= (*) StringLit , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) PLUS UnaryExpr , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) TypeName ListOpt , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Expression ::= (*) AssignmentExpression , {RPAREN }] + [ConditionAndExpression ::= (*) XORExpression , {RPAREN AND OR }] + [Literal ::= (*) NumLit , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [EqualityExpression ::= (*) EqualityExpression EqualityExpressionEnd , {RPAREN XOR AND OR IS NOT }] + [BoolLit ::= (*) FALSE , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) AdditiveExpression AdditiveExpressionEnd , {RPAREN XOR PLUS MINUS AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) Literal , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Assignment ::= (*) LeftHandSide ASSIGN Expression , {RPAREN }] + [ConditionOrExpression ::= (*) ConditionAndExpression , {RPAREN OR }] + [XORExpression ::= (*) XORExpression XOR EqualityExpression , {RPAREN XOR AND OR }] +} +transition on AssignmentExpression to state [85] +transition on CoordLit to state [84] +transition on Expression to state [125] +transition on StringLit to state [82] +transition on Literal to state [81] +transition on AdditiveExpression to state [80] +transition on ConditionAndExpression to state [79] +transition on BoolLit to state [77] +transition on XORExpression to state [78] +transition on MINUS to state [75] +transition on FALSE to state [76] +transition on EqualityExpression to state [74] +transition on ConditionOrExpression to state [73] +transition on RelationalExpression to state [72] +transition on ConditionalExpression to state [71] +transition on Identifier to state [43] +transition on TypeName to state [70] +transition on MultiExpr to state [68] +transition on LPAREN to state [69] +transition on LeftHandSide to state [29] +transition on TRUE to state [67] +transition on Primary to state [66] +transition on NumLit to state [64] +transition on PLUS to state [63] +transition on Assignment to state [62] +transition on UnaryExpr to state [61] + +------------------- +lalr_state [70]: { + [Primary ::= TypeName (*) ListOpt , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= TypeName (*) DOT Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [LeftHandSide ::= TypeName (*) ListOpt , {ASSIGN }] + [ListOpt ::= (*) , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV ASSIGN SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [ListOpt ::= (*) SQUARE_LEFT Expression SQUARE_RIGHT , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV ASSIGN SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} +transition on DOT to state [98] +transition on SQUARE_LEFT to state [97] +transition on ListOpt to state [124] + +------------------- +lalr_state [71]: { + [AssignmentExpression ::= ConditionalExpression (*) , {COMMA RPAREN EOL SQUARE_RIGHT }] +} + +------------------- +lalr_state [72]: { + [RelationalExpressionEnd ::= (*) GTE AdditiveExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpressionEnd ::= (*) LT AdditiveExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [EqualityExpression ::= RelationalExpression (*) , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT }] + [RelationalExpressionEnd ::= (*) LTE AdditiveExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= RelationalExpression (*) RelationalExpressionEnd , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpressionEnd ::= (*) GT AdditiveExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} +transition on RelationalExpressionEnd to state [115] +transition on LTE to state [114] +transition on GT to state [113] +transition on GTE to state [112] +transition on LT to state [111] + +------------------- +lalr_state [73]: { + [ConditionOrExpression ::= ConditionOrExpression (*) OR ConditionAndExpression , {COMMA RPAREN EOL SQUARE_RIGHT OR }] + [ConditionalExpression ::= ConditionOrExpression (*) , {COMMA RPAREN EOL SQUARE_RIGHT }] +} +transition on OR to state [122] + +------------------- +lalr_state [74]: { + [EqualityExpression ::= EqualityExpression (*) EqualityExpressionEnd , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT }] + [XORExpression ::= EqualityExpression (*) , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR }] + [EqualityExpressionEnd ::= (*) NOT RelationalExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT }] + [EqualityExpressionEnd ::= (*) IS RelationalExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT }] +} +transition on IS to state [109] +transition on EqualityExpressionEnd to state [108] +transition on NOT to state [107] + +------------------- +lalr_state [75]: { + [UnaryExpr ::= (*) PLUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) CoordLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) NumLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) TypeName ListOpt , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) Primary , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) FALSE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) StringLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= MINUS (*) UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) LPAREN Expression RPAREN , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) TRUE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) BoolLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) Literal , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} +transition on Primary to state [66] +transition on LPAREN to state [69] +transition on BoolLit to state [77] +transition on FALSE to state [76] +transition on StringLit to state [82] +transition on TypeName to state [89] +transition on PLUS to state [63] +transition on Identifier to state [43] +transition on NumLit to state [64] +transition on TRUE to state [67] +transition on UnaryExpr to state [121] +transition on Literal to state [81] +transition on CoordLit to state [84] +transition on MINUS to state [75] + +------------------- +lalr_state [76]: { + [BoolLit ::= FALSE (*) , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE END }] +} + +------------------- +lalr_state [77]: { + [Literal ::= BoolLit (*) , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE END }] +} + +------------------- +lalr_state [78]: { + [XORExpression ::= XORExpression (*) XOR EqualityExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR }] + [ConditionAndExpression ::= XORExpression (*) , {COMMA RPAREN EOL SQUARE_RIGHT AND OR }] +} +transition on XOR to state [105] + +------------------- +lalr_state [79]: { + [ConditionAndExpression ::= ConditionAndExpression (*) AND XORExpression , {COMMA RPAREN EOL SQUARE_RIGHT AND OR }] + [ConditionOrExpression ::= ConditionAndExpression (*) , {COMMA RPAREN EOL SQUARE_RIGHT OR }] +} +transition on AND to state [103] + +------------------- +lalr_state [80]: { + [AdditiveExpressionEnd ::= (*) PLUS MultiExpr , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= AdditiveExpression (*) AdditiveExpressionEnd , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpressionEnd ::= (*) MINUS MultiExpr , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= AdditiveExpression (*) , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} +transition on MINUS to state [88] +transition on PLUS to state [87] +transition on AdditiveExpressionEnd to state [86] + +------------------- +lalr_state [81]: { + [Primary ::= Literal (*) , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE END }] +} + +------------------- +lalr_state [82]: { + [Literal ::= StringLit (*) , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE END }] +} + +------------------- +lalr_state [83]: { + [ArgsList ::= Expression (*) , {COMMA RPAREN }] +} + +------------------- +lalr_state [84]: { + [Literal ::= CoordLit (*) , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE END }] +} + +------------------- +lalr_state [85]: { + [Expression ::= AssignmentExpression (*) , {COMMA RPAREN EOL SQUARE_RIGHT }] +} + +------------------- +lalr_state [86]: { + [AdditiveExpression ::= AdditiveExpression AdditiveExpressionEnd (*) , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} + +------------------- +lalr_state [87]: { + [UnaryExpr ::= (*) PLUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpressionEnd ::= PLUS (*) MultiExpr , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) MultiExpr MultiExprEnd , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) CoordLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) NumLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) TypeName ListOpt , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) Primary , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) FALSE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) StringLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) LPAREN Expression RPAREN , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) TRUE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) BoolLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) Literal , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} +transition on Primary to state [66] +transition on LPAREN to state [69] +transition on BoolLit to state [77] +transition on FALSE to state [76] +transition on MultiExpr to state [102] +transition on StringLit to state [82] +transition on TypeName to state [89] +transition on PLUS to state [63] +transition on Identifier to state [43] +transition on NumLit to state [64] +transition on TRUE to state [67] +transition on UnaryExpr to state [61] +transition on Literal to state [81] +transition on CoordLit to state [84] +transition on MINUS to state [75] + +------------------- +lalr_state [88]: { + [UnaryExpr ::= (*) PLUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) MultiExpr MultiExprEnd , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) CoordLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) NumLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) TypeName ListOpt , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) Primary , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) FALSE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) StringLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) LPAREN Expression RPAREN , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpressionEnd ::= MINUS (*) MultiExpr , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) TRUE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) BoolLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) Literal , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} +transition on Primary to state [66] +transition on LPAREN to state [69] +transition on BoolLit to state [77] +transition on FALSE to state [76] +transition on MultiExpr to state [90] +transition on StringLit to state [82] +transition on TypeName to state [89] +transition on PLUS to state [63] +transition on Identifier to state [43] +transition on NumLit to state [64] +transition on TRUE to state [67] +transition on UnaryExpr to state [61] +transition on Literal to state [81] +transition on CoordLit to state [84] +transition on MINUS to state [75] + +------------------- +lalr_state [89]: { + [TypeName ::= TypeName (*) DOT Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE END }] + [Primary ::= TypeName (*) ListOpt , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE END }] + [ListOpt ::= (*) , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE END }] + [ListOpt ::= (*) SQUARE_LEFT Expression SQUARE_RIGHT , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE END }] +} +transition on DOT to state [98] +transition on SQUARE_LEFT to state [97] +transition on ListOpt to state [96] + +------------------- +lalr_state [90]: { + [MultiExprEnd ::= (*) DIV UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpressionEnd ::= MINUS MultiExpr (*) , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExprEnd ::= (*) MULT UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= MultiExpr (*) MultiExprEnd , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} +transition on DIV to state [93] +transition on MULT to state [92] +transition on MultiExprEnd to state [91] + +------------------- +lalr_state [91]: { + [MultiExpr ::= MultiExpr MultiExprEnd (*) , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} + +------------------- +lalr_state [92]: { + [UnaryExpr ::= (*) PLUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) CoordLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) NumLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) TypeName ListOpt , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) Primary , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) FALSE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) StringLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) LPAREN Expression RPAREN , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExprEnd ::= MULT (*) UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) TRUE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) BoolLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) Literal , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} +transition on Primary to state [66] +transition on LPAREN to state [69] +transition on BoolLit to state [77] +transition on FALSE to state [76] +transition on StringLit to state [82] +transition on TypeName to state [89] +transition on PLUS to state [63] +transition on Identifier to state [43] +transition on NumLit to state [64] +transition on TRUE to state [67] +transition on UnaryExpr to state [95] +transition on Literal to state [81] +transition on CoordLit to state [84] +transition on MINUS to state [75] + +------------------- +lalr_state [93]: { + [UnaryExpr ::= (*) PLUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) CoordLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) NumLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) TypeName ListOpt , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExprEnd ::= DIV (*) UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) Primary , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) FALSE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) StringLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) LPAREN Expression RPAREN , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) TRUE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) BoolLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) Literal , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} +transition on Primary to state [66] +transition on LPAREN to state [69] +transition on BoolLit to state [77] +transition on FALSE to state [76] +transition on StringLit to state [82] +transition on TypeName to state [89] +transition on PLUS to state [63] +transition on Identifier to state [43] +transition on NumLit to state [64] +transition on TRUE to state [67] +transition on UnaryExpr to state [94] +transition on Literal to state [81] +transition on CoordLit to state [84] +transition on MINUS to state [75] + +------------------- +lalr_state [94]: { + [MultiExprEnd ::= DIV UnaryExpr (*) , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} + +------------------- +lalr_state [95]: { + [MultiExprEnd ::= MULT UnaryExpr (*) , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} + +------------------- +lalr_state [96]: { + [Primary ::= TypeName ListOpt (*) , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE END }] +} + +------------------- +lalr_state [97]: { + [Literal ::= (*) CoordLit , {XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) AdditiveExpression , {XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) UnaryExpr , {XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) Identifier , {DOT XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AssignmentExpression ::= (*) ConditionalExpression , {SQUARE_RIGHT }] + [ConditionAndExpression ::= (*) ConditionAndExpression AND XORExpression , {SQUARE_RIGHT AND OR }] + [Literal ::= (*) BoolLit , {XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) LPAREN Expression RPAREN , {XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [LeftHandSide ::= (*) TypeName ListOpt , {ASSIGN }] + [ConditionOrExpression ::= (*) ConditionOrExpression OR ConditionAndExpression , {SQUARE_RIGHT OR }] + [EqualityExpression ::= (*) RelationalExpression , {XOR SQUARE_RIGHT AND OR IS NOT }] + [BoolLit ::= (*) TRUE , {XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) RelationalExpression RelationalExpressionEnd , {XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) MultiExpr , {XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) MultiExpr MultiExprEnd , {XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) Primary , {XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AssignmentExpression ::= (*) Assignment , {SQUARE_RIGHT }] + [ConditionalExpression ::= (*) ConditionOrExpression , {SQUARE_RIGHT }] + [XORExpression ::= (*) EqualityExpression , {XOR SQUARE_RIGHT AND OR }] + [Literal ::= (*) StringLit , {XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) PLUS UnaryExpr , {XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) TypeName ListOpt , {XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [ListOpt ::= SQUARE_LEFT (*) Expression SQUARE_RIGHT , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV ASSIGN SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE END }] + [Expression ::= (*) AssignmentExpression , {SQUARE_RIGHT }] + [ConditionAndExpression ::= (*) XORExpression , {SQUARE_RIGHT AND OR }] + [Literal ::= (*) NumLit , {XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [EqualityExpression ::= (*) EqualityExpression EqualityExpressionEnd , {XOR SQUARE_RIGHT AND OR IS NOT }] + [BoolLit ::= (*) FALSE , {XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) AdditiveExpression AdditiveExpressionEnd , {XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) Literal , {XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Assignment ::= (*) LeftHandSide ASSIGN Expression , {SQUARE_RIGHT }] + [ConditionOrExpression ::= (*) ConditionAndExpression , {SQUARE_RIGHT OR }] + [XORExpression ::= (*) XORExpression XOR EqualityExpression , {XOR SQUARE_RIGHT AND OR }] +} +transition on AssignmentExpression to state [85] +transition on CoordLit to state [84] +transition on Expression to state [100] +transition on StringLit to state [82] +transition on Literal to state [81] +transition on AdditiveExpression to state [80] +transition on ConditionAndExpression to state [79] +transition on BoolLit to state [77] +transition on XORExpression to state [78] +transition on MINUS to state [75] +transition on FALSE to state [76] +transition on EqualityExpression to state [74] +transition on ConditionOrExpression to state [73] +transition on RelationalExpression to state [72] +transition on ConditionalExpression to state [71] +transition on Identifier to state [43] +transition on TypeName to state [70] +transition on MultiExpr to state [68] +transition on LPAREN to state [69] +transition on LeftHandSide to state [29] +transition on TRUE to state [67] +transition on Primary to state [66] +transition on NumLit to state [64] +transition on PLUS to state [63] +transition on Assignment to state [62] +transition on UnaryExpr to state [61] + +------------------- +lalr_state [98]: { + [TypeName ::= TypeName DOT (*) Identifier , {DOT COMMA LPAREN RPAREN EOL XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE END }] +} +transition on Identifier to state [99] + +------------------- +lalr_state [99]: { + [TypeName ::= TypeName DOT Identifier (*) , {DOT COMMA LPAREN RPAREN EOL XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE END }] +} + +------------------- +lalr_state [100]: { + [ListOpt ::= SQUARE_LEFT Expression (*) SQUARE_RIGHT , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV ASSIGN SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE END }] +} +transition on SQUARE_RIGHT to state [101] + +------------------- +lalr_state [101]: { + [ListOpt ::= SQUARE_LEFT Expression SQUARE_RIGHT (*) , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV ASSIGN SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE END }] +} + +------------------- +lalr_state [102]: { + [MultiExprEnd ::= (*) DIV UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExprEnd ::= (*) MULT UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= MultiExpr (*) MultiExprEnd , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpressionEnd ::= PLUS MultiExpr (*) , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} +transition on DIV to state [93] +transition on MULT to state [92] +transition on MultiExprEnd to state [91] + +------------------- +lalr_state [103]: { + [Literal ::= (*) CoordLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) AdditiveExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [ConditionAndExpression ::= ConditionAndExpression AND (*) XORExpression , {COMMA RPAREN EOL SQUARE_RIGHT AND OR }] + [Literal ::= (*) BoolLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) LPAREN Expression RPAREN , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [EqualityExpression ::= (*) RelationalExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT }] + [BoolLit ::= (*) TRUE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) RelationalExpression RelationalExpressionEnd , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) MultiExpr , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) MultiExpr MultiExprEnd , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) Primary , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [XORExpression ::= (*) EqualityExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR }] + [Literal ::= (*) StringLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) PLUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) TypeName ListOpt , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) NumLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [EqualityExpression ::= (*) EqualityExpression EqualityExpressionEnd , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT }] + [BoolLit ::= (*) FALSE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) AdditiveExpression AdditiveExpressionEnd , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) Literal , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [XORExpression ::= (*) XORExpression XOR EqualityExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR }] +} +transition on CoordLit to state [84] +transition on StringLit to state [82] +transition on Literal to state [81] +transition on AdditiveExpression to state [80] +transition on BoolLit to state [77] +transition on XORExpression to state [104] +transition on MINUS to state [75] +transition on FALSE to state [76] +transition on EqualityExpression to state [74] +transition on RelationalExpression to state [72] +transition on Identifier to state [43] +transition on TypeName to state [89] +transition on MultiExpr to state [68] +transition on LPAREN to state [69] +transition on TRUE to state [67] +transition on Primary to state [66] +transition on NumLit to state [64] +transition on PLUS to state [63] +transition on UnaryExpr to state [61] + +------------------- +lalr_state [104]: { + [ConditionAndExpression ::= ConditionAndExpression AND XORExpression (*) , {COMMA RPAREN EOL SQUARE_RIGHT AND OR }] + [XORExpression ::= XORExpression (*) XOR EqualityExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR }] +} +transition on XOR to state [105] + +------------------- +lalr_state [105]: { + [Literal ::= (*) CoordLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) AdditiveExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) BoolLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) LPAREN Expression RPAREN , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [EqualityExpression ::= (*) RelationalExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT }] + [BoolLit ::= (*) TRUE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) RelationalExpression RelationalExpressionEnd , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) MultiExpr , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) MultiExpr MultiExprEnd , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) Primary , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) StringLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) PLUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) TypeName ListOpt , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) NumLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [EqualityExpression ::= (*) EqualityExpression EqualityExpressionEnd , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT }] + [BoolLit ::= (*) FALSE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) AdditiveExpression AdditiveExpressionEnd , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) Literal , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [XORExpression ::= XORExpression XOR (*) EqualityExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR }] +} +transition on CoordLit to state [84] +transition on StringLit to state [82] +transition on Literal to state [81] +transition on AdditiveExpression to state [80] +transition on BoolLit to state [77] +transition on MINUS to state [75] +transition on FALSE to state [76] +transition on EqualityExpression to state [106] +transition on RelationalExpression to state [72] +transition on Identifier to state [43] +transition on TypeName to state [89] +transition on MultiExpr to state [68] +transition on LPAREN to state [69] +transition on TRUE to state [67] +transition on Primary to state [66] +transition on NumLit to state [64] +transition on PLUS to state [63] +transition on UnaryExpr to state [61] + +------------------- +lalr_state [106]: { + [EqualityExpression ::= EqualityExpression (*) EqualityExpressionEnd , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT }] + [EqualityExpressionEnd ::= (*) NOT RelationalExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT }] + [XORExpression ::= XORExpression XOR EqualityExpression (*) , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR }] + [EqualityExpressionEnd ::= (*) IS RelationalExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT }] +} +transition on IS to state [109] +transition on EqualityExpressionEnd to state [108] +transition on NOT to state [107] + +------------------- +lalr_state [107]: { + [RelationalExpression ::= (*) AdditiveExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) CoordLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) BoolLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) LPAREN Expression RPAREN , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) TRUE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) RelationalExpression RelationalExpressionEnd , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) MultiExpr , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) MultiExpr MultiExprEnd , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) Primary , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [EqualityExpressionEnd ::= NOT (*) RelationalExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT }] + [Literal ::= (*) StringLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) PLUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) TypeName ListOpt , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) NumLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) FALSE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) AdditiveExpression AdditiveExpressionEnd , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) Literal , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} +transition on Primary to state [66] +transition on LPAREN to state [69] +transition on BoolLit to state [77] +transition on FALSE to state [76] +transition on AdditiveExpression to state [80] +transition on MultiExpr to state [68] +transition on StringLit to state [82] +transition on TypeName to state [89] +transition on Identifier to state [43] +transition on PLUS to state [63] +transition on TRUE to state [67] +transition on NumLit to state [64] +transition on UnaryExpr to state [61] +transition on Literal to state [81] +transition on CoordLit to state [84] +transition on RelationalExpression to state [120] +transition on MINUS to state [75] + +------------------- +lalr_state [108]: { + [EqualityExpression ::= EqualityExpression EqualityExpressionEnd (*) , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT }] +} + +------------------- +lalr_state [109]: { + [RelationalExpression ::= (*) AdditiveExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) CoordLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [EqualityExpressionEnd ::= IS (*) RelationalExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT }] + [Literal ::= (*) BoolLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) LPAREN Expression RPAREN , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) TRUE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) RelationalExpression RelationalExpressionEnd , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) MultiExpr , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) MultiExpr MultiExprEnd , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) Primary , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) StringLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) PLUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) TypeName ListOpt , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) NumLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) FALSE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) AdditiveExpression AdditiveExpressionEnd , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) Literal , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} +transition on Primary to state [66] +transition on LPAREN to state [69] +transition on BoolLit to state [77] +transition on FALSE to state [76] +transition on AdditiveExpression to state [80] +transition on MultiExpr to state [68] +transition on StringLit to state [82] +transition on TypeName to state [89] +transition on Identifier to state [43] +transition on PLUS to state [63] +transition on TRUE to state [67] +transition on NumLit to state [64] +transition on UnaryExpr to state [61] +transition on Literal to state [81] +transition on CoordLit to state [84] +transition on RelationalExpression to state [110] +transition on MINUS to state [75] + +------------------- +lalr_state [110]: { + [RelationalExpressionEnd ::= (*) GTE AdditiveExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpressionEnd ::= (*) LT AdditiveExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpressionEnd ::= (*) LTE AdditiveExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= RelationalExpression (*) RelationalExpressionEnd , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [EqualityExpressionEnd ::= IS RelationalExpression (*) , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT }] + [RelationalExpressionEnd ::= (*) GT AdditiveExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} +transition on RelationalExpressionEnd to state [115] +transition on LTE to state [114] +transition on GT to state [113] +transition on GTE to state [112] +transition on LT to state [111] + +------------------- +lalr_state [111]: { + [Literal ::= (*) CoordLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) BoolLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) LPAREN Expression RPAREN , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) TRUE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) MultiExpr , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) MultiExpr MultiExprEnd , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) Primary , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) StringLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) PLUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) TypeName ListOpt , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) NumLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpressionEnd ::= LT (*) AdditiveExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) FALSE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) AdditiveExpression AdditiveExpressionEnd , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) Literal , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} +transition on Primary to state [66] +transition on LPAREN to state [69] +transition on BoolLit to state [77] +transition on FALSE to state [76] +transition on MultiExpr to state [68] +transition on StringLit to state [82] +transition on AdditiveExpression to state [119] +transition on TypeName to state [89] +transition on Identifier to state [43] +transition on PLUS to state [63] +transition on TRUE to state [67] +transition on NumLit to state [64] +transition on UnaryExpr to state [61] +transition on Literal to state [81] +transition on CoordLit to state [84] +transition on MINUS to state [75] + +------------------- +lalr_state [112]: { + [Literal ::= (*) CoordLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpressionEnd ::= GTE (*) AdditiveExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) BoolLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) LPAREN Expression RPAREN , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) TRUE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) MultiExpr , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) MultiExpr MultiExprEnd , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) Primary , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) StringLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) PLUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) TypeName ListOpt , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) NumLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) FALSE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) AdditiveExpression AdditiveExpressionEnd , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) Literal , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} +transition on Primary to state [66] +transition on LPAREN to state [69] +transition on BoolLit to state [77] +transition on FALSE to state [76] +transition on AdditiveExpression to state [118] +transition on MultiExpr to state [68] +transition on StringLit to state [82] +transition on TypeName to state [89] +transition on Identifier to state [43] +transition on PLUS to state [63] +transition on TRUE to state [67] +transition on NumLit to state [64] +transition on UnaryExpr to state [61] +transition on Literal to state [81] +transition on CoordLit to state [84] +transition on MINUS to state [75] + +------------------- +lalr_state [113]: { + [Literal ::= (*) CoordLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) BoolLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpressionEnd ::= GT (*) AdditiveExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) LPAREN Expression RPAREN , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) TRUE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) MultiExpr , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) MultiExpr MultiExprEnd , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) Primary , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) StringLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) PLUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) TypeName ListOpt , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) NumLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) FALSE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) AdditiveExpression AdditiveExpressionEnd , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) Literal , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} +transition on Primary to state [66] +transition on LPAREN to state [69] +transition on BoolLit to state [77] +transition on FALSE to state [76] +transition on AdditiveExpression to state [117] +transition on MultiExpr to state [68] +transition on StringLit to state [82] +transition on TypeName to state [89] +transition on Identifier to state [43] +transition on PLUS to state [63] +transition on TRUE to state [67] +transition on NumLit to state [64] +transition on UnaryExpr to state [61] +transition on Literal to state [81] +transition on CoordLit to state [84] +transition on MINUS to state [75] + +------------------- +lalr_state [114]: { + [Literal ::= (*) CoordLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) BoolLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) LPAREN Expression RPAREN , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) TRUE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) MultiExpr , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) MultiExpr MultiExprEnd , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) Primary , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) StringLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpressionEnd ::= LTE (*) AdditiveExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) PLUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) TypeName ListOpt , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Literal ::= (*) NumLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) FALSE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) AdditiveExpression AdditiveExpressionEnd , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) Literal , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} +transition on Primary to state [66] +transition on LPAREN to state [69] +transition on BoolLit to state [77] +transition on FALSE to state [76] +transition on MultiExpr to state [68] +transition on StringLit to state [82] +transition on AdditiveExpression to state [116] +transition on TypeName to state [89] +transition on Identifier to state [43] +transition on PLUS to state [63] +transition on TRUE to state [67] +transition on NumLit to state [64] +transition on UnaryExpr to state [61] +transition on Literal to state [81] +transition on CoordLit to state [84] +transition on MINUS to state [75] + +------------------- +lalr_state [115]: { + [RelationalExpression ::= RelationalExpression RelationalExpressionEnd (*) , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} + +------------------- +lalr_state [116]: { + [AdditiveExpressionEnd ::= (*) PLUS MultiExpr , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= AdditiveExpression (*) AdditiveExpressionEnd , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpressionEnd ::= LTE AdditiveExpression (*) , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpressionEnd ::= (*) MINUS MultiExpr , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} +transition on MINUS to state [88] +transition on PLUS to state [87] +transition on AdditiveExpressionEnd to state [86] + +------------------- +lalr_state [117]: { + [AdditiveExpressionEnd ::= (*) PLUS MultiExpr , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= AdditiveExpression (*) AdditiveExpressionEnd , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpressionEnd ::= (*) MINUS MultiExpr , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpressionEnd ::= GT AdditiveExpression (*) , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} +transition on MINUS to state [88] +transition on PLUS to state [87] +transition on AdditiveExpressionEnd to state [86] + +------------------- +lalr_state [118]: { + [RelationalExpressionEnd ::= GTE AdditiveExpression (*) , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpressionEnd ::= (*) PLUS MultiExpr , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= AdditiveExpression (*) AdditiveExpressionEnd , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpressionEnd ::= (*) MINUS MultiExpr , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} +transition on MINUS to state [88] +transition on PLUS to state [87] +transition on AdditiveExpressionEnd to state [86] + +------------------- +lalr_state [119]: { + [AdditiveExpressionEnd ::= (*) PLUS MultiExpr , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpressionEnd ::= LT AdditiveExpression (*) , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= AdditiveExpression (*) AdditiveExpressionEnd , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpressionEnd ::= (*) MINUS MultiExpr , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} +transition on MINUS to state [88] +transition on PLUS to state [87] +transition on AdditiveExpressionEnd to state [86] + +------------------- +lalr_state [120]: { + [RelationalExpressionEnd ::= (*) GTE AdditiveExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [EqualityExpressionEnd ::= NOT RelationalExpression (*) , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT }] + [RelationalExpressionEnd ::= (*) LT AdditiveExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpressionEnd ::= (*) LTE AdditiveExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= RelationalExpression (*) RelationalExpressionEnd , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpressionEnd ::= (*) GT AdditiveExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} +transition on RelationalExpressionEnd to state [115] +transition on LTE to state [114] +transition on GT to state [113] +transition on GTE to state [112] +transition on LT to state [111] + +------------------- +lalr_state [121]: { + [UnaryExpr ::= MINUS UnaryExpr (*) , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} + +------------------- +lalr_state [122]: { + [Literal ::= (*) CoordLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) AdditiveExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [ConditionAndExpression ::= (*) ConditionAndExpression AND XORExpression , {COMMA RPAREN EOL SQUARE_RIGHT AND OR }] + [Literal ::= (*) BoolLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) LPAREN Expression RPAREN , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [ConditionOrExpression ::= ConditionOrExpression OR (*) ConditionAndExpression , {COMMA RPAREN EOL SQUARE_RIGHT OR }] + [EqualityExpression ::= (*) RelationalExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT }] + [BoolLit ::= (*) TRUE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) RelationalExpression RelationalExpressionEnd , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) MultiExpr , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) MultiExpr MultiExprEnd , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) Primary , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [XORExpression ::= (*) EqualityExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR }] + [Literal ::= (*) StringLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) PLUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) TypeName ListOpt , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [ConditionAndExpression ::= (*) XORExpression , {COMMA RPAREN EOL SQUARE_RIGHT AND OR }] + [Literal ::= (*) NumLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [EqualityExpression ::= (*) EqualityExpression EqualityExpressionEnd , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT }] + [BoolLit ::= (*) FALSE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) AdditiveExpression AdditiveExpressionEnd , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) Literal , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [XORExpression ::= (*) XORExpression XOR EqualityExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR }] +} +transition on CoordLit to state [84] +transition on StringLit to state [82] +transition on Literal to state [81] +transition on AdditiveExpression to state [80] +transition on ConditionAndExpression to state [123] +transition on XORExpression to state [78] +transition on BoolLit to state [77] +transition on MINUS to state [75] +transition on FALSE to state [76] +transition on EqualityExpression to state [74] +transition on RelationalExpression to state [72] +transition on Identifier to state [43] +transition on TypeName to state [89] +transition on MultiExpr to state [68] +transition on LPAREN to state [69] +transition on TRUE to state [67] +transition on Primary to state [66] +transition on NumLit to state [64] +transition on PLUS to state [63] +transition on UnaryExpr to state [61] + +------------------- +lalr_state [123]: { + [ConditionOrExpression ::= ConditionOrExpression OR ConditionAndExpression (*) , {COMMA RPAREN EOL SQUARE_RIGHT OR }] + [ConditionAndExpression ::= ConditionAndExpression (*) AND XORExpression , {COMMA RPAREN EOL SQUARE_RIGHT AND OR }] +} +transition on AND to state [103] + +------------------- +lalr_state [124]: { + [LeftHandSide ::= TypeName ListOpt (*) , {ASSIGN }] + [Primary ::= TypeName ListOpt (*) , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} + +------------------- +lalr_state [125]: { + [Primary ::= LPAREN Expression (*) RPAREN , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE END }] +} +transition on RPAREN to state [126] + +------------------- +lalr_state [126]: { + [Primary ::= LPAREN Expression RPAREN (*) , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE END }] +} + +------------------- +lalr_state [127]: { + [Literal ::= (*) CoordLit , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) AdditiveExpression , {COMMA RPAREN XOR AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) UnaryExpr , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) Identifier , {DOT COMMA RPAREN XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AssignmentExpression ::= (*) ConditionalExpression , {COMMA RPAREN }] + [ConditionAndExpression ::= (*) ConditionAndExpression AND XORExpression , {COMMA RPAREN AND OR }] + [Literal ::= (*) BoolLit , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [ArgsList ::= ArgsList COMMA (*) Expression , {COMMA RPAREN }] + [Primary ::= (*) LPAREN Expression RPAREN , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [LeftHandSide ::= (*) TypeName ListOpt , {ASSIGN }] + [ConditionOrExpression ::= (*) ConditionOrExpression OR ConditionAndExpression , {COMMA RPAREN OR }] + [EqualityExpression ::= (*) RelationalExpression , {COMMA RPAREN XOR AND OR IS NOT }] + [BoolLit ::= (*) TRUE , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) RelationalExpression RelationalExpressionEnd , {COMMA RPAREN XOR AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) MultiExpr , {COMMA RPAREN XOR PLUS MINUS AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) MultiExpr MultiExprEnd , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT COMMA RPAREN XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) Primary , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AssignmentExpression ::= (*) Assignment , {COMMA RPAREN }] + [ConditionalExpression ::= (*) ConditionOrExpression , {COMMA RPAREN }] + [XORExpression ::= (*) EqualityExpression , {COMMA RPAREN XOR AND OR }] + [Literal ::= (*) StringLit , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) PLUS UnaryExpr , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) TypeName ListOpt , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Expression ::= (*) AssignmentExpression , {COMMA RPAREN }] + [ConditionAndExpression ::= (*) XORExpression , {COMMA RPAREN AND OR }] + [Literal ::= (*) NumLit , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [EqualityExpression ::= (*) EqualityExpression EqualityExpressionEnd , {COMMA RPAREN XOR AND OR IS NOT }] + [BoolLit ::= (*) FALSE , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) AdditiveExpression AdditiveExpressionEnd , {COMMA RPAREN XOR PLUS MINUS AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) Literal , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Assignment ::= (*) LeftHandSide ASSIGN Expression , {COMMA RPAREN }] + [ConditionOrExpression ::= (*) ConditionAndExpression , {COMMA RPAREN OR }] + [XORExpression ::= (*) XORExpression XOR EqualityExpression , {COMMA RPAREN XOR AND OR }] +} +transition on AssignmentExpression to state [85] +transition on CoordLit to state [84] +transition on Expression to state [130] +transition on StringLit to state [82] +transition on Literal to state [81] +transition on AdditiveExpression to state [80] +transition on ConditionAndExpression to state [79] +transition on BoolLit to state [77] +transition on XORExpression to state [78] +transition on MINUS to state [75] +transition on FALSE to state [76] +transition on EqualityExpression to state [74] +transition on ConditionOrExpression to state [73] +transition on RelationalExpression to state [72] +transition on ConditionalExpression to state [71] +transition on Identifier to state [43] +transition on TypeName to state [70] +transition on MultiExpr to state [68] +transition on LPAREN to state [69] +transition on LeftHandSide to state [29] +transition on TRUE to state [67] +transition on Primary to state [66] +transition on NumLit to state [64] +transition on PLUS to state [63] +transition on Assignment to state [62] +transition on UnaryExpr to state [61] + +------------------- +lalr_state [128]: { + [SignalStmt ::= SIGNAL Identifier LPAREN ArgsList RPAREN (*) EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on EOL to state [129] + +------------------- +lalr_state [129]: { + [SignalStmt ::= SIGNAL Identifier LPAREN ArgsList RPAREN EOL (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} + +------------------- +lalr_state [130]: { + [ArgsList ::= ArgsList COMMA Expression (*) , {COMMA RPAREN }] +} + +------------------- +lalr_state [131]: { + [UnaryExpr ::= PLUS UnaryExpr (*) , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] +} + +------------------- +lalr_state [132]: { + [VariableDcl ::= VariableInitializer (*) , {COMMA EOL }] +} + +------------------- +lalr_state [133]: { + [ListInitializer ::= (*) LitList END Identifier , {COMMA EOL }] + [Literal ::= (*) CoordLit , {COMMA END }] + [Literal ::= (*) NumLit , {COMMA END }] + [Primary ::= (*) TypeName ListOpt , {COMMA END }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT COMMA SQUARE_LEFT END }] + [LitList ::= (*) Primary , {COMMA END }] + [BoolLit ::= (*) FALSE , {COMMA END }] + [Literal ::= (*) StringLit , {COMMA END }] + [Primary ::= (*) LPAREN Expression RPAREN , {COMMA END }] + [TypeName ::= Identifier (*) , {DOT COMMA EOL XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) Identifier , {DOT COMMA SQUARE_LEFT END }] + [VariableDcl ::= Identifier (*) ListInitializer , {COMMA EOL }] + [LitList ::= (*) LitList COMMA Primary , {COMMA END }] + [BoolLit ::= (*) TRUE , {COMMA END }] + [Literal ::= (*) BoolLit , {COMMA END }] + [Primary ::= (*) Literal , {COMMA END }] +} +transition on Primary to state [142] +transition on LPAREN to state [69] +transition on BoolLit to state [77] +transition on FALSE to state [76] +transition on StringLit to state [82] +transition on ListInitializer to state [141] +transition on TypeName to state [89] +transition on Identifier to state [43] +transition on NumLit to state [64] +transition on TRUE to state [67] +transition on Literal to state [81] +transition on LitList to state [140] +transition on CoordLit to state [84] + +------------------- +lalr_state [134]: { + [VariableDclList ::= VariableDcl (*) , {COMMA EOL }] +} + +------------------- +lalr_state [135]: { + [VariableDclList ::= VariableDclList (*) COMMA VariableDcl , {COMMA EOL }] + [LocalVariableDcl ::= Type VariableDclList (*) EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on EOL to state [138] +transition on COMMA to state [137] + +------------------- +lalr_state [136]: { + [VariableInitializer ::= Expression (*) , {COMMA EOL }] +} + +------------------- +lalr_state [137]: { + [UnaryExpr ::= (*) Primary , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) AdditiveExpression AdditiveExpressionEnd , {COMMA EOL XOR PLUS MINUS AND OR IS NOT LT GT LTE GTE }] + [ConditionalExpression ::= (*) ConditionOrExpression , {COMMA EOL }] + [Literal ::= (*) CoordLit , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [XORExpression ::= (*) EqualityExpression , {COMMA EOL XOR AND OR }] + [Assignment ::= (*) LeftHandSide ASSIGN Expression , {COMMA EOL }] + [VariableDcl ::= (*) VariableInitializer , {COMMA EOL }] + [Primary ::= (*) Literal , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [ConditionOrExpression ::= (*) ConditionAndExpression , {COMMA EOL OR }] + [TypeName ::= (*) Identifier , {DOT COMMA EOL XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) TRUE , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [XORExpression ::= (*) XORExpression XOR EqualityExpression , {COMMA EOL XOR AND OR }] + [LeftHandSide ::= (*) TypeName ListOpt , {ASSIGN }] + [VariableDcl ::= (*) Identifier ListInitializer , {COMMA EOL }] + [Literal ::= (*) NumLit , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) LPAREN Expression RPAREN , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) AdditiveExpression , {COMMA EOL XOR AND OR IS NOT LT GT LTE GTE }] + [ConditionOrExpression ::= (*) ConditionOrExpression OR ConditionAndExpression , {COMMA EOL OR }] + [Expression ::= (*) AssignmentExpression , {COMMA EOL }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT COMMA EOL XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) FALSE , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) PLUS UnaryExpr , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [EqualityExpression ::= (*) RelationalExpression , {COMMA EOL XOR AND OR IS NOT }] + [VariableInitializer ::= (*) Expression , {COMMA EOL }] + [Literal ::= (*) BoolLit , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) TypeName ListOpt , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) UnaryExpr , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) RelationalExpression RelationalExpressionEnd , {COMMA EOL XOR AND OR IS NOT LT GT LTE GTE }] + [ConditionAndExpression ::= (*) XORExpression , {COMMA EOL AND OR }] + [AssignmentExpression ::= (*) ConditionalExpression , {COMMA EOL }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) MultiExpr , {COMMA EOL XOR PLUS MINUS AND OR IS NOT LT GT LTE GTE }] + [EqualityExpression ::= (*) EqualityExpression EqualityExpressionEnd , {COMMA EOL XOR AND OR IS NOT }] + [Literal ::= (*) StringLit , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) MultiExpr MultiExprEnd , {COMMA EOL XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [VariableDclList ::= VariableDclList COMMA (*) VariableDcl , {COMMA EOL }] + [ConditionAndExpression ::= (*) ConditionAndExpression AND XORExpression , {COMMA EOL AND OR }] + [AssignmentExpression ::= (*) Assignment , {COMMA EOL }] +} +transition on AssignmentExpression to state [85] +transition on CoordLit to state [84] +transition on Expression to state [136] +transition on StringLit to state [82] +transition on Literal to state [81] +transition on AdditiveExpression to state [80] +transition on ConditionAndExpression to state [79] +transition on XORExpression to state [78] +transition on BoolLit to state [77] +transition on FALSE to state [76] +transition on MINUS to state [75] +transition on EqualityExpression to state [74] +transition on ConditionOrExpression to state [73] +transition on RelationalExpression to state [72] +transition on VariableDcl to state [139] +transition on Identifier to state [133] +transition on ConditionalExpression to state [71] +transition on TypeName to state [70] +transition on LeftHandSide to state [29] +transition on LPAREN to state [69] +transition on MultiExpr to state [68] +transition on TRUE to state [67] +transition on VariableInitializer to state [132] +transition on Primary to state [66] +transition on NumLit to state [64] +transition on PLUS to state [63] +transition on Assignment to state [62] +transition on UnaryExpr to state [61] + +------------------- +lalr_state [138]: { + [LocalVariableDcl ::= Type VariableDclList EOL (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} + +------------------- +lalr_state [139]: { + [VariableDclList ::= VariableDclList COMMA VariableDcl (*) , {COMMA EOL }] +} + +------------------- +lalr_state [140]: { + [LitList ::= LitList (*) COMMA Primary , {COMMA END }] + [ListInitializer ::= LitList (*) END Identifier , {COMMA EOL }] +} +transition on END to state [144] +transition on COMMA to state [143] + +------------------- +lalr_state [141]: { + [VariableDcl ::= Identifier ListInitializer (*) , {COMMA EOL }] +} + +------------------- +lalr_state [142]: { + [LitList ::= Primary (*) , {COMMA END }] +} + +------------------- +lalr_state [143]: { + [Literal ::= (*) CoordLit , {COMMA END }] + [Literal ::= (*) NumLit , {COMMA END }] + [Primary ::= (*) TypeName ListOpt , {COMMA END }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT COMMA SQUARE_LEFT END }] + [BoolLit ::= (*) FALSE , {COMMA END }] + [Literal ::= (*) StringLit , {COMMA END }] + [Primary ::= (*) LPAREN Expression RPAREN , {COMMA END }] + [TypeName ::= (*) Identifier , {DOT COMMA SQUARE_LEFT END }] + [LitList ::= LitList COMMA (*) Primary , {COMMA END }] + [BoolLit ::= (*) TRUE , {COMMA END }] + [Literal ::= (*) BoolLit , {COMMA END }] + [Primary ::= (*) Literal , {COMMA END }] +} +transition on Primary to state [146] +transition on LPAREN to state [69] +transition on BoolLit to state [77] +transition on FALSE to state [76] +transition on StringLit to state [82] +transition on TypeName to state [89] +transition on Identifier to state [43] +transition on NumLit to state [64] +transition on TRUE to state [67] +transition on Literal to state [81] +transition on CoordLit to state [84] + +------------------- +lalr_state [144]: { + [ListInitializer ::= LitList END (*) Identifier , {COMMA EOL }] +} +transition on Identifier to state [145] + +------------------- +lalr_state [145]: { + [ListInitializer ::= LitList END Identifier (*) , {COMMA EOL }] +} + +------------------- +lalr_state [146]: { + [LitList ::= LitList COMMA Primary (*) , {COMMA END }] +} + +------------------- +lalr_state [147]: { + [BlockStmtList ::= BlockStmtList BlockStmt (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} + +------------------- +lalr_state [148]: { + [BreakStmt ::= BREAK EOL (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} + +------------------- +lalr_state [149]: { + [ReturnStmt ::= RETURN Expression (*) EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on EOL to state [150] + +------------------- +lalr_state [150]: { + [ReturnStmt ::= RETURN Expression EOL (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} + +------------------- +lalr_state [151]: { + [RepeatStmt ::= (*) REPEAT UNTIL LPAREN Expression RPAREN EOL Block END REPEAT , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [ReferenceType ::= (*) LIST , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [BreakStmt ::= (*) BREAK EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [StmtNoSubstmt ::= (*) SignalStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [BlockStmtList ::= (*) BlockStmtList BlockStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Assignment ::= (*) LeftHandSide ASSIGN Expression , {EOL }] + [SignalStmt ::= (*) SIGNAL Identifier LPAREN ArgsList RPAREN EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [PrimitiveType ::= (*) NUM , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [Statement ::= (*) StmtNoSubstmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [ForeverStmt ::= FOREVER EOL (*) Block END FOREVER , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [ForeverStmt ::= (*) FOREVER EOL Block END FOREVER , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [TypeName ::= (*) Identifier , {DOT LPAREN ASSIGN SQUARE_LEFT }] + [ReturnStmt ::= (*) RETURN Expression EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [StmtNoSubstmt ::= (*) ExprStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [BlockStmtList ::= (*) BlockStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LeftHandSide ::= (*) TypeName ListOpt , {ASSIGN }] + [ExprStmt ::= (*) StmtExpr EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [PrimitiveType ::= (*) BOOL , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [Statement ::= (*) IfStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [IfStmt ::= (*) IF LPAREN Expression RPAREN EOL Block END IF ElseIfStmt ElseStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT LPAREN ASSIGN SQUARE_LEFT }] + [StmtNoSubstmt ::= (*) BreakStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [BlockStmt ::= (*) LocalVariableDcl , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LoopStmt ::= (*) RepeatStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [ReferenceType ::= (*) STRING , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [StmtExpr ::= (*) Assignment , {EOL }] + [Statement ::= (*) LoopStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Block ::= (*) BlockStmtList , {END }] + [StmtNoSubstmt ::= (*) ReturnStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Type ::= (*) ReferenceType , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [BlockStmt ::= (*) Statement , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LoopStmt ::= (*) ForeverStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [StmtExpr ::= (*) MethodInvocation , {EOL }] + [ReferenceType ::= (*) COORD , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [StmtNoSubstmt ::= (*) EmptyStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Block ::= (*) , {END }] + [MethodInvocation ::= (*) TypeName LPAREN FormalArgs RPAREN , {EOL }] + [Type ::= (*) PrimitiveType , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [EmptyStmt ::= (*) EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LocalVariableDcl ::= (*) Type VariableDclList EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on Block to state [152] +transition on StmtExpr to state [54] +transition on SIGNAL to state [53] +transition on BreakStmt to state [52] +transition on MethodInvocation to state [51] +transition on STRING to state [17] +transition on Type to state [50] +transition on Statement to state [49] +transition on EmptyStmt to state [48] +transition on LIST to state [10] +transition on Assignment to state [47] +transition on LoopStmt to state [46] +transition on SignalStmt to state [45] +transition on BlockStmtList to state [44] +transition on Identifier to state [43] +transition on IfStmt to state [42] +transition on BREAK to state [40] +transition on BlockStmt to state [39] +transition on RETURN to state [38] +transition on FOREVER to state [37] +transition on ReferenceType to state [23] +transition on COORD to state [11] +transition on IF to state [36] +transition on EOL to state [35] +transition on NUM to state [16] +transition on BOOL to state [22] +transition on RepeatStmt to state [34] +transition on LocalVariableDcl to state [33] +transition on REPEAT to state [32] +transition on TypeName to state [31] +transition on ForeverStmt to state [30] +transition on LeftHandSide to state [29] +transition on PrimitiveType to state [14] +transition on ExprStmt to state [28] +transition on StmtNoSubstmt to state [27] +transition on ReturnStmt to state [26] + +------------------- +lalr_state [152]: { + [ForeverStmt ::= FOREVER EOL Block (*) END FOREVER , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on END to state [153] + +------------------- +lalr_state [153]: { + [ForeverStmt ::= FOREVER EOL Block END (*) FOREVER , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on FOREVER to state [154] + +------------------- +lalr_state [154]: { + [ForeverStmt ::= FOREVER EOL Block END FOREVER (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} + +------------------- +lalr_state [155]: { + [Literal ::= (*) CoordLit , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) AdditiveExpression , {RPAREN XOR AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) UnaryExpr , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) Identifier , {DOT RPAREN XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AssignmentExpression ::= (*) ConditionalExpression , {RPAREN }] + [ConditionAndExpression ::= (*) ConditionAndExpression AND XORExpression , {RPAREN AND OR }] + [Literal ::= (*) BoolLit , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) LPAREN Expression RPAREN , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [LeftHandSide ::= (*) TypeName ListOpt , {ASSIGN }] + [ConditionOrExpression ::= (*) ConditionOrExpression OR ConditionAndExpression , {RPAREN OR }] + [EqualityExpression ::= (*) RelationalExpression , {RPAREN XOR AND OR IS NOT }] + [BoolLit ::= (*) TRUE , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) RelationalExpression RelationalExpressionEnd , {RPAREN XOR AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) MultiExpr , {RPAREN XOR PLUS MINUS AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) MultiExpr MultiExprEnd , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT RPAREN XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) Primary , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AssignmentExpression ::= (*) Assignment , {RPAREN }] + [ConditionalExpression ::= (*) ConditionOrExpression , {RPAREN }] + [XORExpression ::= (*) EqualityExpression , {RPAREN XOR AND OR }] + [Literal ::= (*) StringLit , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) PLUS UnaryExpr , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) TypeName ListOpt , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Expression ::= (*) AssignmentExpression , {RPAREN }] + [ConditionAndExpression ::= (*) XORExpression , {RPAREN AND OR }] + [Literal ::= (*) NumLit , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [EqualityExpression ::= (*) EqualityExpression EqualityExpressionEnd , {RPAREN XOR AND OR IS NOT }] + [BoolLit ::= (*) FALSE , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [IfStmt ::= IF LPAREN (*) Expression RPAREN EOL Block END IF ElseIfStmt ElseStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [AdditiveExpression ::= (*) AdditiveExpression AdditiveExpressionEnd , {RPAREN XOR PLUS MINUS AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) Literal , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Assignment ::= (*) LeftHandSide ASSIGN Expression , {RPAREN }] + [ConditionOrExpression ::= (*) ConditionAndExpression , {RPAREN OR }] + [XORExpression ::= (*) XORExpression XOR EqualityExpression , {RPAREN XOR AND OR }] +} +transition on AssignmentExpression to state [85] +transition on CoordLit to state [84] +transition on Expression to state [156] +transition on StringLit to state [82] +transition on Literal to state [81] +transition on AdditiveExpression to state [80] +transition on ConditionAndExpression to state [79] +transition on BoolLit to state [77] +transition on XORExpression to state [78] +transition on MINUS to state [75] +transition on FALSE to state [76] +transition on EqualityExpression to state [74] +transition on ConditionOrExpression to state [73] +transition on RelationalExpression to state [72] +transition on ConditionalExpression to state [71] +transition on Identifier to state [43] +transition on TypeName to state [70] +transition on MultiExpr to state [68] +transition on LPAREN to state [69] +transition on LeftHandSide to state [29] +transition on TRUE to state [67] +transition on Primary to state [66] +transition on NumLit to state [64] +transition on PLUS to state [63] +transition on Assignment to state [62] +transition on UnaryExpr to state [61] + +------------------- +lalr_state [156]: { + [IfStmt ::= IF LPAREN Expression (*) RPAREN EOL Block END IF ElseIfStmt ElseStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on RPAREN to state [157] + +------------------- +lalr_state [157]: { + [IfStmt ::= IF LPAREN Expression RPAREN (*) EOL Block END IF ElseIfStmt ElseStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on EOL to state [158] + +------------------- +lalr_state [158]: { + [RepeatStmt ::= (*) REPEAT UNTIL LPAREN Expression RPAREN EOL Block END REPEAT , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [ReferenceType ::= (*) LIST , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [BreakStmt ::= (*) BREAK EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [StmtNoSubstmt ::= (*) SignalStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [BlockStmtList ::= (*) BlockStmtList BlockStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Assignment ::= (*) LeftHandSide ASSIGN Expression , {EOL }] + [SignalStmt ::= (*) SIGNAL Identifier LPAREN ArgsList RPAREN EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [PrimitiveType ::= (*) NUM , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [Statement ::= (*) StmtNoSubstmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [ForeverStmt ::= (*) FOREVER EOL Block END FOREVER , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [TypeName ::= (*) Identifier , {DOT LPAREN ASSIGN SQUARE_LEFT }] + [ReturnStmt ::= (*) RETURN Expression EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [StmtNoSubstmt ::= (*) ExprStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [BlockStmtList ::= (*) BlockStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LeftHandSide ::= (*) TypeName ListOpt , {ASSIGN }] + [ExprStmt ::= (*) StmtExpr EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [PrimitiveType ::= (*) BOOL , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [Statement ::= (*) IfStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [IfStmt ::= IF LPAREN Expression RPAREN EOL (*) Block END IF ElseIfStmt ElseStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [IfStmt ::= (*) IF LPAREN Expression RPAREN EOL Block END IF ElseIfStmt ElseStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT LPAREN ASSIGN SQUARE_LEFT }] + [StmtNoSubstmt ::= (*) BreakStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [BlockStmt ::= (*) LocalVariableDcl , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LoopStmt ::= (*) RepeatStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [ReferenceType ::= (*) STRING , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [StmtExpr ::= (*) Assignment , {EOL }] + [Statement ::= (*) LoopStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Block ::= (*) BlockStmtList , {END }] + [StmtNoSubstmt ::= (*) ReturnStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Type ::= (*) ReferenceType , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [BlockStmt ::= (*) Statement , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LoopStmt ::= (*) ForeverStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [StmtExpr ::= (*) MethodInvocation , {EOL }] + [ReferenceType ::= (*) COORD , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [StmtNoSubstmt ::= (*) EmptyStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Block ::= (*) , {END }] + [MethodInvocation ::= (*) TypeName LPAREN FormalArgs RPAREN , {EOL }] + [Type ::= (*) PrimitiveType , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [EmptyStmt ::= (*) EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LocalVariableDcl ::= (*) Type VariableDclList EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on Block to state [159] +transition on StmtExpr to state [54] +transition on SIGNAL to state [53] +transition on BreakStmt to state [52] +transition on MethodInvocation to state [51] +transition on STRING to state [17] +transition on Type to state [50] +transition on Statement to state [49] +transition on EmptyStmt to state [48] +transition on LIST to state [10] +transition on Assignment to state [47] +transition on LoopStmt to state [46] +transition on SignalStmt to state [45] +transition on BlockStmtList to state [44] +transition on Identifier to state [43] +transition on IfStmt to state [42] +transition on BREAK to state [40] +transition on BlockStmt to state [39] +transition on RETURN to state [38] +transition on FOREVER to state [37] +transition on ReferenceType to state [23] +transition on COORD to state [11] +transition on IF to state [36] +transition on EOL to state [35] +transition on NUM to state [16] +transition on BOOL to state [22] +transition on RepeatStmt to state [34] +transition on LocalVariableDcl to state [33] +transition on REPEAT to state [32] +transition on TypeName to state [31] +transition on ForeverStmt to state [30] +transition on LeftHandSide to state [29] +transition on PrimitiveType to state [14] +transition on ExprStmt to state [28] +transition on StmtNoSubstmt to state [27] +transition on ReturnStmt to state [26] + +------------------- +lalr_state [159]: { + [IfStmt ::= IF LPAREN Expression RPAREN EOL Block (*) END IF ElseIfStmt ElseStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on END to state [160] + +------------------- +lalr_state [160]: { + [IfStmt ::= IF LPAREN Expression RPAREN EOL Block END (*) IF ElseIfStmt ElseStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on IF to state [161] + +------------------- +lalr_state [161]: { + [ElseIfStmt ::= (*) ElseIfStmt ELSE IF LPAREN Expression RPAREN EOL Block END ELSEIF , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF ELSE REPEAT FOREVER }] + [ElseIfStmt ::= (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF ELSE REPEAT FOREVER }] + [IfStmt ::= IF LPAREN Expression RPAREN EOL Block END IF (*) ElseIfStmt ElseStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on ElseIfStmt to state [162] + +------------------- +lalr_state [162]: { + [ElseStmt ::= (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [ElseIfStmt ::= ElseIfStmt (*) ELSE IF LPAREN Expression RPAREN EOL Block END ELSEIF , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF ELSE REPEAT FOREVER }] + [ElseStmt ::= (*) ELSE EOL Block END ELSE , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [IfStmt ::= IF LPAREN Expression RPAREN EOL Block END IF ElseIfStmt (*) ElseStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on ElseStmt to state [164] +transition on ELSE to state [163] + +------------------- +lalr_state [163]: { + [ElseIfStmt ::= ElseIfStmt ELSE (*) IF LPAREN Expression RPAREN EOL Block END ELSEIF , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF ELSE REPEAT FOREVER }] + [ElseStmt ::= ELSE (*) EOL Block END ELSE , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on IF to state [166] +transition on EOL to state [165] + +------------------- +lalr_state [164]: { + [IfStmt ::= IF LPAREN Expression RPAREN EOL Block END IF ElseIfStmt ElseStmt (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} + +------------------- +lalr_state [165]: { + [RepeatStmt ::= (*) REPEAT UNTIL LPAREN Expression RPAREN EOL Block END REPEAT , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [ReferenceType ::= (*) LIST , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [BreakStmt ::= (*) BREAK EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [StmtNoSubstmt ::= (*) SignalStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [BlockStmtList ::= (*) BlockStmtList BlockStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Assignment ::= (*) LeftHandSide ASSIGN Expression , {EOL }] + [ElseStmt ::= ELSE EOL (*) Block END ELSE , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [SignalStmt ::= (*) SIGNAL Identifier LPAREN ArgsList RPAREN EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [PrimitiveType ::= (*) NUM , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [Statement ::= (*) StmtNoSubstmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [ForeverStmt ::= (*) FOREVER EOL Block END FOREVER , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [TypeName ::= (*) Identifier , {DOT LPAREN ASSIGN SQUARE_LEFT }] + [ReturnStmt ::= (*) RETURN Expression EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [StmtNoSubstmt ::= (*) ExprStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [BlockStmtList ::= (*) BlockStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LeftHandSide ::= (*) TypeName ListOpt , {ASSIGN }] + [ExprStmt ::= (*) StmtExpr EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [PrimitiveType ::= (*) BOOL , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [Statement ::= (*) IfStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [IfStmt ::= (*) IF LPAREN Expression RPAREN EOL Block END IF ElseIfStmt ElseStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT LPAREN ASSIGN SQUARE_LEFT }] + [StmtNoSubstmt ::= (*) BreakStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [BlockStmt ::= (*) LocalVariableDcl , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LoopStmt ::= (*) RepeatStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [ReferenceType ::= (*) STRING , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [StmtExpr ::= (*) Assignment , {EOL }] + [Statement ::= (*) LoopStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Block ::= (*) BlockStmtList , {END }] + [StmtNoSubstmt ::= (*) ReturnStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Type ::= (*) ReferenceType , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [BlockStmt ::= (*) Statement , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LoopStmt ::= (*) ForeverStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [StmtExpr ::= (*) MethodInvocation , {EOL }] + [ReferenceType ::= (*) COORD , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [StmtNoSubstmt ::= (*) EmptyStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Block ::= (*) , {END }] + [MethodInvocation ::= (*) TypeName LPAREN FormalArgs RPAREN , {EOL }] + [Type ::= (*) PrimitiveType , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [EmptyStmt ::= (*) EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LocalVariableDcl ::= (*) Type VariableDclList EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on Block to state [174] +transition on StmtExpr to state [54] +transition on SIGNAL to state [53] +transition on BreakStmt to state [52] +transition on MethodInvocation to state [51] +transition on STRING to state [17] +transition on Type to state [50] +transition on Statement to state [49] +transition on EmptyStmt to state [48] +transition on LIST to state [10] +transition on Assignment to state [47] +transition on LoopStmt to state [46] +transition on SignalStmt to state [45] +transition on BlockStmtList to state [44] +transition on Identifier to state [43] +transition on IfStmt to state [42] +transition on BREAK to state [40] +transition on BlockStmt to state [39] +transition on RETURN to state [38] +transition on FOREVER to state [37] +transition on ReferenceType to state [23] +transition on COORD to state [11] +transition on IF to state [36] +transition on EOL to state [35] +transition on NUM to state [16] +transition on BOOL to state [22] +transition on RepeatStmt to state [34] +transition on LocalVariableDcl to state [33] +transition on REPEAT to state [32] +transition on TypeName to state [31] +transition on ForeverStmt to state [30] +transition on LeftHandSide to state [29] +transition on PrimitiveType to state [14] +transition on ExprStmt to state [28] +transition on StmtNoSubstmt to state [27] +transition on ReturnStmt to state [26] + +------------------- +lalr_state [166]: { + [ElseIfStmt ::= ElseIfStmt ELSE IF (*) LPAREN Expression RPAREN EOL Block END ELSEIF , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF ELSE REPEAT FOREVER }] +} +transition on LPAREN to state [167] + +------------------- +lalr_state [167]: { + [Literal ::= (*) CoordLit , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) AdditiveExpression , {RPAREN XOR AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) UnaryExpr , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) Identifier , {DOT RPAREN XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AssignmentExpression ::= (*) ConditionalExpression , {RPAREN }] + [ElseIfStmt ::= ElseIfStmt ELSE IF LPAREN (*) Expression RPAREN EOL Block END ELSEIF , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF ELSE REPEAT FOREVER }] + [ConditionAndExpression ::= (*) ConditionAndExpression AND XORExpression , {RPAREN AND OR }] + [Literal ::= (*) BoolLit , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) LPAREN Expression RPAREN , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [LeftHandSide ::= (*) TypeName ListOpt , {ASSIGN }] + [ConditionOrExpression ::= (*) ConditionOrExpression OR ConditionAndExpression , {RPAREN OR }] + [EqualityExpression ::= (*) RelationalExpression , {RPAREN XOR AND OR IS NOT }] + [BoolLit ::= (*) TRUE , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) RelationalExpression RelationalExpressionEnd , {RPAREN XOR AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) MultiExpr , {RPAREN XOR PLUS MINUS AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) MultiExpr MultiExprEnd , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT RPAREN XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) Primary , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AssignmentExpression ::= (*) Assignment , {RPAREN }] + [ConditionalExpression ::= (*) ConditionOrExpression , {RPAREN }] + [XORExpression ::= (*) EqualityExpression , {RPAREN XOR AND OR }] + [Literal ::= (*) StringLit , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) PLUS UnaryExpr , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) TypeName ListOpt , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Expression ::= (*) AssignmentExpression , {RPAREN }] + [ConditionAndExpression ::= (*) XORExpression , {RPAREN AND OR }] + [Literal ::= (*) NumLit , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [EqualityExpression ::= (*) EqualityExpression EqualityExpressionEnd , {RPAREN XOR AND OR IS NOT }] + [BoolLit ::= (*) FALSE , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) AdditiveExpression AdditiveExpressionEnd , {RPAREN XOR PLUS MINUS AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) Literal , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Assignment ::= (*) LeftHandSide ASSIGN Expression , {RPAREN }] + [ConditionOrExpression ::= (*) ConditionAndExpression , {RPAREN OR }] + [XORExpression ::= (*) XORExpression XOR EqualityExpression , {RPAREN XOR AND OR }] +} +transition on AssignmentExpression to state [85] +transition on CoordLit to state [84] +transition on Expression to state [168] +transition on StringLit to state [82] +transition on Literal to state [81] +transition on AdditiveExpression to state [80] +transition on ConditionAndExpression to state [79] +transition on BoolLit to state [77] +transition on XORExpression to state [78] +transition on MINUS to state [75] +transition on FALSE to state [76] +transition on EqualityExpression to state [74] +transition on ConditionOrExpression to state [73] +transition on RelationalExpression to state [72] +transition on ConditionalExpression to state [71] +transition on Identifier to state [43] +transition on TypeName to state [70] +transition on MultiExpr to state [68] +transition on LPAREN to state [69] +transition on LeftHandSide to state [29] +transition on TRUE to state [67] +transition on Primary to state [66] +transition on NumLit to state [64] +transition on PLUS to state [63] +transition on Assignment to state [62] +transition on UnaryExpr to state [61] + +------------------- +lalr_state [168]: { + [ElseIfStmt ::= ElseIfStmt ELSE IF LPAREN Expression (*) RPAREN EOL Block END ELSEIF , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF ELSE REPEAT FOREVER }] +} +transition on RPAREN to state [169] + +------------------- +lalr_state [169]: { + [ElseIfStmt ::= ElseIfStmt ELSE IF LPAREN Expression RPAREN (*) EOL Block END ELSEIF , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF ELSE REPEAT FOREVER }] +} +transition on EOL to state [170] + +------------------- +lalr_state [170]: { + [RepeatStmt ::= (*) REPEAT UNTIL LPAREN Expression RPAREN EOL Block END REPEAT , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [ReferenceType ::= (*) LIST , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [BreakStmt ::= (*) BREAK EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [StmtNoSubstmt ::= (*) SignalStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [BlockStmtList ::= (*) BlockStmtList BlockStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Assignment ::= (*) LeftHandSide ASSIGN Expression , {EOL }] + [SignalStmt ::= (*) SIGNAL Identifier LPAREN ArgsList RPAREN EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [PrimitiveType ::= (*) NUM , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [Statement ::= (*) StmtNoSubstmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [ForeverStmt ::= (*) FOREVER EOL Block END FOREVER , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [TypeName ::= (*) Identifier , {DOT LPAREN ASSIGN SQUARE_LEFT }] + [ReturnStmt ::= (*) RETURN Expression EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [StmtNoSubstmt ::= (*) ExprStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [BlockStmtList ::= (*) BlockStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LeftHandSide ::= (*) TypeName ListOpt , {ASSIGN }] + [ExprStmt ::= (*) StmtExpr EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [PrimitiveType ::= (*) BOOL , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [Statement ::= (*) IfStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [IfStmt ::= (*) IF LPAREN Expression RPAREN EOL Block END IF ElseIfStmt ElseStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT LPAREN ASSIGN SQUARE_LEFT }] + [StmtNoSubstmt ::= (*) BreakStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [BlockStmt ::= (*) LocalVariableDcl , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LoopStmt ::= (*) RepeatStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [ReferenceType ::= (*) STRING , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [StmtExpr ::= (*) Assignment , {EOL }] + [Statement ::= (*) LoopStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Block ::= (*) BlockStmtList , {END }] + [ElseIfStmt ::= ElseIfStmt ELSE IF LPAREN Expression RPAREN EOL (*) Block END ELSEIF , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF ELSE REPEAT FOREVER }] + [StmtNoSubstmt ::= (*) ReturnStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Type ::= (*) ReferenceType , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [BlockStmt ::= (*) Statement , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LoopStmt ::= (*) ForeverStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [StmtExpr ::= (*) MethodInvocation , {EOL }] + [ReferenceType ::= (*) COORD , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [StmtNoSubstmt ::= (*) EmptyStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Block ::= (*) , {END }] + [MethodInvocation ::= (*) TypeName LPAREN FormalArgs RPAREN , {EOL }] + [Type ::= (*) PrimitiveType , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [EmptyStmt ::= (*) EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LocalVariableDcl ::= (*) Type VariableDclList EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on Block to state [171] +transition on StmtExpr to state [54] +transition on SIGNAL to state [53] +transition on BreakStmt to state [52] +transition on MethodInvocation to state [51] +transition on STRING to state [17] +transition on Type to state [50] +transition on Statement to state [49] +transition on EmptyStmt to state [48] +transition on LIST to state [10] +transition on Assignment to state [47] +transition on LoopStmt to state [46] +transition on SignalStmt to state [45] +transition on BlockStmtList to state [44] +transition on Identifier to state [43] +transition on IfStmt to state [42] +transition on BREAK to state [40] +transition on BlockStmt to state [39] +transition on RETURN to state [38] +transition on FOREVER to state [37] +transition on ReferenceType to state [23] +transition on COORD to state [11] +transition on IF to state [36] +transition on EOL to state [35] +transition on NUM to state [16] +transition on BOOL to state [22] +transition on RepeatStmt to state [34] +transition on LocalVariableDcl to state [33] +transition on REPEAT to state [32] +transition on TypeName to state [31] +transition on ForeverStmt to state [30] +transition on LeftHandSide to state [29] +transition on PrimitiveType to state [14] +transition on ExprStmt to state [28] +transition on StmtNoSubstmt to state [27] +transition on ReturnStmt to state [26] + +------------------- +lalr_state [171]: { + [ElseIfStmt ::= ElseIfStmt ELSE IF LPAREN Expression RPAREN EOL Block (*) END ELSEIF , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF ELSE REPEAT FOREVER }] +} +transition on END to state [172] + +------------------- +lalr_state [172]: { + [ElseIfStmt ::= ElseIfStmt ELSE IF LPAREN Expression RPAREN EOL Block END (*) ELSEIF , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF ELSE REPEAT FOREVER }] +} +transition on ELSEIF to state [173] + +------------------- +lalr_state [173]: { + [ElseIfStmt ::= ElseIfStmt ELSE IF LPAREN Expression RPAREN EOL Block END ELSEIF (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF ELSE REPEAT FOREVER }] +} + +------------------- +lalr_state [174]: { + [ElseStmt ::= ELSE EOL Block (*) END ELSE , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on END to state [175] + +------------------- +lalr_state [175]: { + [ElseStmt ::= ELSE EOL Block END (*) ELSE , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on ELSE to state [176] + +------------------- +lalr_state [176]: { + [ElseStmt ::= ELSE EOL Block END ELSE (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} + +------------------- +lalr_state [177]: { + [RepeatStmt ::= REPEAT UNTIL (*) LPAREN Expression RPAREN EOL Block END REPEAT , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on LPAREN to state [178] + +------------------- +lalr_state [178]: { + [Literal ::= (*) CoordLit , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) AdditiveExpression , {RPAREN XOR AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) UnaryExpr , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) Identifier , {DOT RPAREN XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AssignmentExpression ::= (*) ConditionalExpression , {RPAREN }] + [ConditionAndExpression ::= (*) ConditionAndExpression AND XORExpression , {RPAREN AND OR }] + [Literal ::= (*) BoolLit , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) LPAREN Expression RPAREN , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [LeftHandSide ::= (*) TypeName ListOpt , {ASSIGN }] + [ConditionOrExpression ::= (*) ConditionOrExpression OR ConditionAndExpression , {RPAREN OR }] + [EqualityExpression ::= (*) RelationalExpression , {RPAREN XOR AND OR IS NOT }] + [BoolLit ::= (*) TRUE , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) RelationalExpression RelationalExpressionEnd , {RPAREN XOR AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) MultiExpr , {RPAREN XOR PLUS MINUS AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) MultiExpr MultiExprEnd , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT RPAREN XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) Primary , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AssignmentExpression ::= (*) Assignment , {RPAREN }] + [ConditionalExpression ::= (*) ConditionOrExpression , {RPAREN }] + [XORExpression ::= (*) EqualityExpression , {RPAREN XOR AND OR }] + [Literal ::= (*) StringLit , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [RepeatStmt ::= REPEAT UNTIL LPAREN (*) Expression RPAREN EOL Block END REPEAT , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [UnaryExpr ::= (*) PLUS UnaryExpr , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) TypeName ListOpt , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Expression ::= (*) AssignmentExpression , {RPAREN }] + [ConditionAndExpression ::= (*) XORExpression , {RPAREN AND OR }] + [Literal ::= (*) NumLit , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [EqualityExpression ::= (*) EqualityExpression EqualityExpressionEnd , {RPAREN XOR AND OR IS NOT }] + [BoolLit ::= (*) FALSE , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) AdditiveExpression AdditiveExpressionEnd , {RPAREN XOR PLUS MINUS AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) Literal , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Assignment ::= (*) LeftHandSide ASSIGN Expression , {RPAREN }] + [ConditionOrExpression ::= (*) ConditionAndExpression , {RPAREN OR }] + [XORExpression ::= (*) XORExpression XOR EqualityExpression , {RPAREN XOR AND OR }] +} +transition on AssignmentExpression to state [85] +transition on CoordLit to state [84] +transition on Expression to state [179] +transition on StringLit to state [82] +transition on Literal to state [81] +transition on AdditiveExpression to state [80] +transition on ConditionAndExpression to state [79] +transition on BoolLit to state [77] +transition on XORExpression to state [78] +transition on MINUS to state [75] +transition on FALSE to state [76] +transition on EqualityExpression to state [74] +transition on ConditionOrExpression to state [73] +transition on RelationalExpression to state [72] +transition on ConditionalExpression to state [71] +transition on Identifier to state [43] +transition on TypeName to state [70] +transition on MultiExpr to state [68] +transition on LPAREN to state [69] +transition on LeftHandSide to state [29] +transition on TRUE to state [67] +transition on Primary to state [66] +transition on NumLit to state [64] +transition on PLUS to state [63] +transition on Assignment to state [62] +transition on UnaryExpr to state [61] + +------------------- +lalr_state [179]: { + [RepeatStmt ::= REPEAT UNTIL LPAREN Expression (*) RPAREN EOL Block END REPEAT , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on RPAREN to state [180] + +------------------- +lalr_state [180]: { + [RepeatStmt ::= REPEAT UNTIL LPAREN Expression RPAREN (*) EOL Block END REPEAT , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on EOL to state [181] + +------------------- +lalr_state [181]: { + [RepeatStmt ::= REPEAT UNTIL LPAREN Expression RPAREN EOL (*) Block END REPEAT , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [RepeatStmt ::= (*) REPEAT UNTIL LPAREN Expression RPAREN EOL Block END REPEAT , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [ReferenceType ::= (*) LIST , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [BreakStmt ::= (*) BREAK EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [StmtNoSubstmt ::= (*) SignalStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [BlockStmtList ::= (*) BlockStmtList BlockStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Assignment ::= (*) LeftHandSide ASSIGN Expression , {EOL }] + [SignalStmt ::= (*) SIGNAL Identifier LPAREN ArgsList RPAREN EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [PrimitiveType ::= (*) NUM , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [Statement ::= (*) StmtNoSubstmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [ForeverStmt ::= (*) FOREVER EOL Block END FOREVER , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [TypeName ::= (*) Identifier , {DOT LPAREN ASSIGN SQUARE_LEFT }] + [ReturnStmt ::= (*) RETURN Expression EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [StmtNoSubstmt ::= (*) ExprStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [BlockStmtList ::= (*) BlockStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LeftHandSide ::= (*) TypeName ListOpt , {ASSIGN }] + [ExprStmt ::= (*) StmtExpr EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [PrimitiveType ::= (*) BOOL , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [Statement ::= (*) IfStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [IfStmt ::= (*) IF LPAREN Expression RPAREN EOL Block END IF ElseIfStmt ElseStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT LPAREN ASSIGN SQUARE_LEFT }] + [StmtNoSubstmt ::= (*) BreakStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [BlockStmt ::= (*) LocalVariableDcl , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LoopStmt ::= (*) RepeatStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [ReferenceType ::= (*) STRING , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [StmtExpr ::= (*) Assignment , {EOL }] + [Statement ::= (*) LoopStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Block ::= (*) BlockStmtList , {END }] + [StmtNoSubstmt ::= (*) ReturnStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Type ::= (*) ReferenceType , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [BlockStmt ::= (*) Statement , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LoopStmt ::= (*) ForeverStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [StmtExpr ::= (*) MethodInvocation , {EOL }] + [ReferenceType ::= (*) COORD , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [StmtNoSubstmt ::= (*) EmptyStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Block ::= (*) , {END }] + [MethodInvocation ::= (*) TypeName LPAREN FormalArgs RPAREN , {EOL }] + [Type ::= (*) PrimitiveType , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [EmptyStmt ::= (*) EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LocalVariableDcl ::= (*) Type VariableDclList EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on Block to state [182] +transition on StmtExpr to state [54] +transition on SIGNAL to state [53] +transition on BreakStmt to state [52] +transition on MethodInvocation to state [51] +transition on STRING to state [17] +transition on Type to state [50] +transition on Statement to state [49] +transition on EmptyStmt to state [48] +transition on LIST to state [10] +transition on Assignment to state [47] +transition on LoopStmt to state [46] +transition on SignalStmt to state [45] +transition on BlockStmtList to state [44] +transition on Identifier to state [43] +transition on IfStmt to state [42] +transition on BREAK to state [40] +transition on BlockStmt to state [39] +transition on RETURN to state [38] +transition on FOREVER to state [37] +transition on ReferenceType to state [23] +transition on COORD to state [11] +transition on IF to state [36] +transition on EOL to state [35] +transition on NUM to state [16] +transition on BOOL to state [22] +transition on RepeatStmt to state [34] +transition on LocalVariableDcl to state [33] +transition on REPEAT to state [32] +transition on TypeName to state [31] +transition on ForeverStmt to state [30] +transition on LeftHandSide to state [29] +transition on PrimitiveType to state [14] +transition on ExprStmt to state [28] +transition on StmtNoSubstmt to state [27] +transition on ReturnStmt to state [26] + +------------------- +lalr_state [182]: { + [RepeatStmt ::= REPEAT UNTIL LPAREN Expression RPAREN EOL Block (*) END REPEAT , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on END to state [183] + +------------------- +lalr_state [183]: { + [RepeatStmt ::= REPEAT UNTIL LPAREN Expression RPAREN EOL Block END (*) REPEAT , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on REPEAT to state [184] + +------------------- +lalr_state [184]: { + [RepeatStmt ::= REPEAT UNTIL LPAREN Expression RPAREN EOL Block END REPEAT (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} + +------------------- +lalr_state [185]: { + [LeftHandSide ::= TypeName ListOpt (*) , {ASSIGN }] +} + +------------------- +lalr_state [186]: { + [UnaryExpr ::= (*) Primary , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) AdditiveExpression AdditiveExpressionEnd , {COMMA RPAREN XOR PLUS MINUS AND OR IS NOT LT GT LTE GTE }] + [ConditionalExpression ::= (*) ConditionOrExpression , {COMMA RPAREN }] + [Literal ::= (*) CoordLit , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [FormalArgs ::= (*) ArgsList , {RPAREN }] + [XORExpression ::= (*) EqualityExpression , {COMMA RPAREN XOR AND OR }] + [Assignment ::= (*) LeftHandSide ASSIGN Expression , {COMMA RPAREN }] + [Primary ::= (*) Literal , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [ConditionOrExpression ::= (*) ConditionAndExpression , {COMMA RPAREN OR }] + [TypeName ::= (*) Identifier , {DOT COMMA RPAREN XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) TRUE , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [FormalArgs ::= (*) , {RPAREN }] + [XORExpression ::= (*) XORExpression XOR EqualityExpression , {COMMA RPAREN XOR AND OR }] + [LeftHandSide ::= (*) TypeName ListOpt , {ASSIGN }] + [Literal ::= (*) NumLit , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) LPAREN Expression RPAREN , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) AdditiveExpression , {COMMA RPAREN XOR AND OR IS NOT LT GT LTE GTE }] + [ConditionOrExpression ::= (*) ConditionOrExpression OR ConditionAndExpression , {COMMA RPAREN OR }] + [Expression ::= (*) AssignmentExpression , {COMMA RPAREN }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT COMMA RPAREN XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) FALSE , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [ArgsList ::= (*) ArgsList COMMA Expression , {COMMA RPAREN }] + [UnaryExpr ::= (*) PLUS UnaryExpr , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [EqualityExpression ::= (*) RelationalExpression , {COMMA RPAREN XOR AND OR IS NOT }] + [Literal ::= (*) BoolLit , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) TypeName ListOpt , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) UnaryExpr , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) RelationalExpression RelationalExpressionEnd , {COMMA RPAREN XOR AND OR IS NOT LT GT LTE GTE }] + [ConditionAndExpression ::= (*) XORExpression , {COMMA RPAREN AND OR }] + [AssignmentExpression ::= (*) ConditionalExpression , {COMMA RPAREN }] + [ArgsList ::= (*) Expression , {COMMA RPAREN }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) MultiExpr , {COMMA RPAREN XOR PLUS MINUS AND OR IS NOT LT GT LTE GTE }] + [EqualityExpression ::= (*) EqualityExpression EqualityExpressionEnd , {COMMA RPAREN XOR AND OR IS NOT }] + [Literal ::= (*) StringLit , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [MethodInvocation ::= TypeName LPAREN (*) FormalArgs RPAREN , {EOL }] + [MultiExpr ::= (*) MultiExpr MultiExprEnd , {COMMA RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [ConditionAndExpression ::= (*) ConditionAndExpression AND XORExpression , {COMMA RPAREN AND OR }] + [AssignmentExpression ::= (*) Assignment , {COMMA RPAREN }] +} +transition on AssignmentExpression to state [85] +transition on CoordLit to state [84] +transition on Expression to state [83] +transition on StringLit to state [82] +transition on Literal to state [81] +transition on AdditiveExpression to state [80] +transition on ConditionAndExpression to state [79] +transition on XORExpression to state [78] +transition on BoolLit to state [77] +transition on FALSE to state [76] +transition on MINUS to state [75] +transition on EqualityExpression to state [74] +transition on ConditionOrExpression to state [73] +transition on RelationalExpression to state [72] +transition on Identifier to state [43] +transition on ConditionalExpression to state [71] +transition on TypeName to state [70] +transition on LeftHandSide to state [29] +transition on LPAREN to state [69] +transition on MultiExpr to state [68] +transition on TRUE to state [67] +transition on Primary to state [66] +transition on ArgsList to state [188] +transition on FormalArgs to state [187] +transition on NumLit to state [64] +transition on PLUS to state [63] +transition on Assignment to state [62] +transition on UnaryExpr to state [61] + +------------------- +lalr_state [187]: { + [MethodInvocation ::= TypeName LPAREN FormalArgs (*) RPAREN , {EOL }] +} +transition on RPAREN to state [189] + +------------------- +lalr_state [188]: { + [FormalArgs ::= ArgsList (*) , {RPAREN }] + [ArgsList ::= ArgsList (*) COMMA Expression , {COMMA RPAREN }] +} +transition on COMMA to state [127] + +------------------- +lalr_state [189]: { + [MethodInvocation ::= TypeName LPAREN FormalArgs RPAREN (*) , {EOL }] +} + +------------------- +lalr_state [190]: { + [Literal ::= (*) CoordLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) AdditiveExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AssignmentExpression ::= (*) ConditionalExpression , {COMMA RPAREN EOL SQUARE_RIGHT }] + [ConditionAndExpression ::= (*) ConditionAndExpression AND XORExpression , {COMMA RPAREN EOL SQUARE_RIGHT AND OR }] + [Literal ::= (*) BoolLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) LPAREN Expression RPAREN , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [LeftHandSide ::= (*) TypeName ListOpt , {ASSIGN }] + [ConditionOrExpression ::= (*) ConditionOrExpression OR ConditionAndExpression , {COMMA RPAREN EOL SQUARE_RIGHT OR }] + [EqualityExpression ::= (*) RelationalExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT }] + [BoolLit ::= (*) TRUE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) RelationalExpression RelationalExpressionEnd , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) MultiExpr , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) MultiExpr MultiExprEnd , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT COMMA RPAREN EOL XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) Primary , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AssignmentExpression ::= (*) Assignment , {COMMA RPAREN EOL SQUARE_RIGHT }] + [ConditionalExpression ::= (*) ConditionOrExpression , {COMMA RPAREN EOL SQUARE_RIGHT }] + [XORExpression ::= (*) EqualityExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR }] + [Literal ::= (*) StringLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) PLUS UnaryExpr , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) TypeName ListOpt , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Expression ::= (*) AssignmentExpression , {COMMA RPAREN EOL SQUARE_RIGHT }] + [ConditionAndExpression ::= (*) XORExpression , {COMMA RPAREN EOL SQUARE_RIGHT AND OR }] + [Literal ::= (*) NumLit , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [EqualityExpression ::= (*) EqualityExpression EqualityExpressionEnd , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR IS NOT }] + [BoolLit ::= (*) FALSE , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) AdditiveExpression AdditiveExpressionEnd , {COMMA RPAREN EOL XOR PLUS MINUS SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Primary ::= (*) Literal , {COMMA RPAREN EOL XOR PLUS MINUS MULT DIV SQUARE_RIGHT AND OR IS NOT LT GT LTE GTE }] + [Assignment ::= LeftHandSide ASSIGN (*) Expression , {COMMA RPAREN EOL SQUARE_RIGHT }] + [Assignment ::= (*) LeftHandSide ASSIGN Expression , {COMMA RPAREN EOL SQUARE_RIGHT }] + [ConditionOrExpression ::= (*) ConditionAndExpression , {COMMA RPAREN EOL SQUARE_RIGHT OR }] + [XORExpression ::= (*) XORExpression XOR EqualityExpression , {COMMA RPAREN EOL XOR SQUARE_RIGHT AND OR }] +} +transition on AssignmentExpression to state [85] +transition on CoordLit to state [84] +transition on Expression to state [191] +transition on StringLit to state [82] +transition on Literal to state [81] +transition on AdditiveExpression to state [80] +transition on ConditionAndExpression to state [79] +transition on BoolLit to state [77] +transition on XORExpression to state [78] +transition on MINUS to state [75] +transition on FALSE to state [76] +transition on EqualityExpression to state [74] +transition on ConditionOrExpression to state [73] +transition on RelationalExpression to state [72] +transition on ConditionalExpression to state [71] +transition on Identifier to state [43] +transition on TypeName to state [70] +transition on MultiExpr to state [68] +transition on LPAREN to state [69] +transition on LeftHandSide to state [29] +transition on TRUE to state [67] +transition on Primary to state [66] +transition on NumLit to state [64] +transition on PLUS to state [63] +transition on Assignment to state [62] +transition on UnaryExpr to state [61] + +------------------- +lalr_state [191]: { + [Assignment ::= LeftHandSide ASSIGN Expression (*) , {COMMA RPAREN EOL SQUARE_RIGHT }] +} + +------------------- +lalr_state [192]: { + [MethodHeader ::= VOID MethodDeclarator (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} + +------------------- +lalr_state [193]: { + [MethodDeclarator ::= Identifier (*) LPAREN FormalParams RPAREN , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on LPAREN to state [194] + +------------------- +lalr_state [194]: { + [ReferenceType ::= (*) LIST , {Identifier }] + [PrimitiveType ::= (*) BOOL , {Identifier }] + [ParamsList ::= (*) Param , {COMMA RPAREN }] + [FormalParams ::= (*) ParamsList , {RPAREN }] + [Type ::= (*) ReferenceType , {Identifier }] + [ReferenceType ::= (*) COORD , {Identifier }] + [PrimitiveType ::= (*) NUM , {Identifier }] + [ParamsList ::= (*) ParamsList COMMA Param , {COMMA RPAREN }] + [ReferenceType ::= (*) STRING , {Identifier }] + [Param ::= (*) Type Identifier , {COMMA RPAREN }] + [Type ::= (*) PrimitiveType , {Identifier }] + [FormalParams ::= (*) , {RPAREN }] + [MethodDeclarator ::= Identifier LPAREN (*) FormalParams RPAREN , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on PrimitiveType to state [14] +transition on FormalParams to state [198] +transition on LIST to state [10] +transition on STRING to state [17] +transition on ParamsList to state [197] +transition on COORD to state [11] +transition on BOOL to state [22] +transition on ReferenceType to state [23] +transition on NUM to state [16] +transition on Param to state [196] +transition on Type to state [195] + +------------------- +lalr_state [195]: { + [Param ::= Type (*) Identifier , {COMMA RPAREN }] +} +transition on Identifier to state [202] + +------------------- +lalr_state [196]: { + [ParamsList ::= Param (*) , {COMMA RPAREN }] +} + +------------------- +lalr_state [197]: { + [ParamsList ::= ParamsList (*) COMMA Param , {COMMA RPAREN }] + [FormalParams ::= ParamsList (*) , {RPAREN }] +} +transition on COMMA to state [200] + +------------------- +lalr_state [198]: { + [MethodDeclarator ::= Identifier LPAREN FormalParams (*) RPAREN , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on RPAREN to state [199] + +------------------- +lalr_state [199]: { + [MethodDeclarator ::= Identifier LPAREN FormalParams RPAREN (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} + +------------------- +lalr_state [200]: { + [ReferenceType ::= (*) LIST , {Identifier }] + [PrimitiveType ::= (*) BOOL , {Identifier }] + [Type ::= (*) ReferenceType , {Identifier }] + [ParamsList ::= ParamsList COMMA (*) Param , {COMMA RPAREN }] + [ReferenceType ::= (*) COORD , {Identifier }] + [PrimitiveType ::= (*) NUM , {Identifier }] + [ReferenceType ::= (*) STRING , {Identifier }] + [Param ::= (*) Type Identifier , {COMMA RPAREN }] + [Type ::= (*) PrimitiveType , {Identifier }] +} +transition on PrimitiveType to state [14] +transition on LIST to state [10] +transition on STRING to state [17] +transition on COORD to state [11] +transition on BOOL to state [22] +transition on ReferenceType to state [23] +transition on NUM to state [16] +transition on Type to state [195] +transition on Param to state [201] + +------------------- +lalr_state [201]: { + [ParamsList ::= ParamsList COMMA Param (*) , {COMMA RPAREN }] +} + +------------------- +lalr_state [202]: { + [Param ::= Type Identifier (*) , {COMMA RPAREN }] +} + +------------------- +lalr_state [203]: { + [Load ::= Load LOAD LPAREN (*) StringLit RPAREN EOL , {NUM BOOL STRING COORD LIST VOID EOL LOAD HEAR }] +} +transition on StringLit to state [204] + +------------------- +lalr_state [204]: { + [Load ::= Load LOAD LPAREN StringLit (*) RPAREN EOL , {NUM BOOL STRING COORD LIST VOID EOL LOAD HEAR }] +} +transition on RPAREN to state [205] + +------------------- +lalr_state [205]: { + [Load ::= Load LOAD LPAREN StringLit RPAREN (*) EOL , {NUM BOOL STRING COORD LIST VOID EOL LOAD HEAR }] +} +transition on EOL to state [206] + +------------------- +lalr_state [206]: { + [Load ::= Load LOAD LPAREN StringLit RPAREN EOL (*) , {NUM BOOL STRING COORD LIST VOID EOL LOAD HEAR }] +} + +------------------- +lalr_state [207]: { + [RoboBodyDcl ::= RoboBodyDcl MemberDcl (*) , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] +} + +------------------- +lalr_state [208]: { + [MethodDeclarator ::= Identifier (*) LPAREN FormalParams RPAREN , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [ListInitializer ::= (*) LitList END Identifier , {COMMA EOL }] + [Literal ::= (*) CoordLit , {COMMA END }] + [Literal ::= (*) NumLit , {COMMA END }] + [Primary ::= (*) TypeName ListOpt , {COMMA END }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT COMMA SQUARE_LEFT END }] + [LitList ::= (*) Primary , {COMMA END }] + [BoolLit ::= (*) FALSE , {COMMA END }] + [Literal ::= (*) StringLit , {COMMA END }] + [Primary ::= (*) LPAREN Expression RPAREN , {COMMA END }] + [TypeName ::= Identifier (*) , {DOT COMMA EOL XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT AND OR IS NOT LT GT LTE GTE }] + [TypeName ::= (*) Identifier , {DOT COMMA SQUARE_LEFT END }] + [VariableDcl ::= Identifier (*) ListInitializer , {COMMA EOL }] + [LitList ::= (*) LitList COMMA Primary , {COMMA END }] + [BoolLit ::= (*) TRUE , {COMMA END }] + [Literal ::= (*) BoolLit , {COMMA END }] + [Primary ::= (*) Literal , {COMMA END }] +} +transition on Primary to state [142] +transition on LPAREN to state [212] +transition on BoolLit to state [77] +transition on FALSE to state [76] +transition on StringLit to state [82] +transition on ListInitializer to state [141] +transition on TypeName to state [89] +transition on Identifier to state [43] +transition on NumLit to state [64] +transition on TRUE to state [67] +transition on Literal to state [81] +transition on LitList to state [140] +transition on CoordLit to state [84] + +------------------- +lalr_state [209]: { + [VariableDclList ::= VariableDclList (*) COMMA VariableDcl , {COMMA EOL }] + [FieldDcl ::= Type VariableDclList (*) EOL , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] +} +transition on EOL to state [211] +transition on COMMA to state [137] + +------------------- +lalr_state [210]: { + [MethodHeader ::= Type MethodDeclarator (*) , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} + +------------------- +lalr_state [211]: { + [FieldDcl ::= Type VariableDclList EOL (*) , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] +} + +------------------- +lalr_state [212]: { + [FormalParams ::= (*) ParamsList , {RPAREN }] + [UnaryExpr ::= (*) Primary , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) AdditiveExpression AdditiveExpressionEnd , {RPAREN XOR PLUS MINUS AND OR IS NOT LT GT LTE GTE }] + [ConditionalExpression ::= (*) ConditionOrExpression , {RPAREN }] + [ReferenceType ::= (*) LIST , {Identifier }] + [Literal ::= (*) CoordLit , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [XORExpression ::= (*) EqualityExpression , {RPAREN XOR AND OR }] + [Assignment ::= (*) LeftHandSide ASSIGN Expression , {RPAREN }] + [PrimitiveType ::= (*) NUM , {Identifier }] + [FormalParams ::= (*) , {RPAREN }] + [Primary ::= (*) Literal , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [ConditionOrExpression ::= (*) ConditionAndExpression , {RPAREN OR }] + [TypeName ::= (*) Identifier , {DOT RPAREN XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) TRUE , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [XORExpression ::= (*) XORExpression XOR EqualityExpression , {RPAREN XOR AND OR }] + [LeftHandSide ::= (*) TypeName ListOpt , {ASSIGN }] + [PrimitiveType ::= (*) BOOL , {Identifier }] + [Literal ::= (*) NumLit , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [ParamsList ::= (*) ParamsList COMMA Param , {COMMA RPAREN }] + [Primary ::= LPAREN (*) Expression RPAREN , {COMMA END }] + [Primary ::= (*) LPAREN Expression RPAREN , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) AdditiveExpression , {RPAREN XOR AND OR IS NOT LT GT LTE GTE }] + [ConditionOrExpression ::= (*) ConditionOrExpression OR ConditionAndExpression , {RPAREN OR }] + [Expression ::= (*) AssignmentExpression , {RPAREN }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT RPAREN XOR PLUS MINUS MULT DIV ASSIGN SQUARE_LEFT AND OR IS NOT LT GT LTE GTE }] + [BoolLit ::= (*) FALSE , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [UnaryExpr ::= (*) PLUS UnaryExpr , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [EqualityExpression ::= (*) RelationalExpression , {RPAREN XOR AND OR IS NOT }] + [ReferenceType ::= (*) STRING , {Identifier }] + [Literal ::= (*) BoolLit , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [ParamsList ::= (*) Param , {COMMA RPAREN }] + [Primary ::= (*) TypeName ListOpt , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [MultiExpr ::= (*) UnaryExpr , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [RelationalExpression ::= (*) RelationalExpression RelationalExpressionEnd , {RPAREN XOR AND OR IS NOT LT GT LTE GTE }] + [ConditionAndExpression ::= (*) XORExpression , {RPAREN AND OR }] + [AssignmentExpression ::= (*) ConditionalExpression , {RPAREN }] + [Type ::= (*) ReferenceType , {Identifier }] + [UnaryExpr ::= (*) MINUS UnaryExpr , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [AdditiveExpression ::= (*) MultiExpr , {RPAREN XOR PLUS MINUS AND OR IS NOT LT GT LTE GTE }] + [EqualityExpression ::= (*) EqualityExpression EqualityExpressionEnd , {RPAREN XOR AND OR IS NOT }] + [ReferenceType ::= (*) COORD , {Identifier }] + [Literal ::= (*) StringLit , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [Param ::= (*) Type Identifier , {COMMA RPAREN }] + [MultiExpr ::= (*) MultiExpr MultiExprEnd , {RPAREN XOR PLUS MINUS MULT DIV AND OR IS NOT LT GT LTE GTE }] + [ConditionAndExpression ::= (*) ConditionAndExpression AND XORExpression , {RPAREN AND OR }] + [AssignmentExpression ::= (*) Assignment , {RPAREN }] + [Type ::= (*) PrimitiveType , {Identifier }] + [MethodDeclarator ::= Identifier LPAREN (*) FormalParams RPAREN , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on RelationalExpression to state [72] +transition on Param to state [196] +transition on FALSE to state [76] +transition on XORExpression to state [78] +transition on Type to state [195] +transition on STRING to state [17] +transition on Expression to state [125] +transition on StringLit to state [82] +transition on LIST to state [10] +transition on Assignment to state [62] +transition on NumLit to state [64] +transition on ConditionAndExpression to state [79] +transition on FormalParams to state [198] +transition on Identifier to state [43] +transition on EqualityExpression to state [74] +transition on ConditionalExpression to state [71] +transition on AssignmentExpression to state [85] +transition on TRUE to state [67] +transition on ConditionOrExpression to state [73] +transition on ReferenceType to state [23] +transition on UnaryExpr to state [61] +transition on COORD to state [11] +transition on PLUS to state [63] +transition on NUM to state [16] +transition on BOOL to state [22] +transition on CoordLit to state [84] +transition on Primary to state [66] +transition on AdditiveExpression to state [80] +transition on MINUS to state [75] +transition on LPAREN to state [69] +transition on TypeName to state [70] +transition on ParamsList to state [197] +transition on LeftHandSide to state [29] +transition on PrimitiveType to state [14] +transition on BoolLit to state [77] +transition on Literal to state [81] +transition on MultiExpr to state [68] + +------------------- +lalr_state [213]: { + [HearDecl ::= HEAR Identifier (*) LPAREN FormalParams RPAREN Block END HEAR , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] +} +transition on LPAREN to state [214] + +------------------- +lalr_state [214]: { + [ReferenceType ::= (*) LIST , {Identifier }] + [PrimitiveType ::= (*) BOOL , {Identifier }] + [ParamsList ::= (*) Param , {COMMA RPAREN }] + [FormalParams ::= (*) ParamsList , {RPAREN }] + [Type ::= (*) ReferenceType , {Identifier }] + [HearDecl ::= HEAR Identifier LPAREN (*) FormalParams RPAREN Block END HEAR , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] + [ReferenceType ::= (*) COORD , {Identifier }] + [PrimitiveType ::= (*) NUM , {Identifier }] + [ParamsList ::= (*) ParamsList COMMA Param , {COMMA RPAREN }] + [ReferenceType ::= (*) STRING , {Identifier }] + [Param ::= (*) Type Identifier , {COMMA RPAREN }] + [Type ::= (*) PrimitiveType , {Identifier }] + [FormalParams ::= (*) , {RPAREN }] +} +transition on FormalParams to state [215] +transition on PrimitiveType to state [14] +transition on LIST to state [10] +transition on ParamsList to state [197] +transition on STRING to state [17] +transition on COORD to state [11] +transition on BOOL to state [22] +transition on ReferenceType to state [23] +transition on NUM to state [16] +transition on Param to state [196] +transition on Type to state [195] + +------------------- +lalr_state [215]: { + [HearDecl ::= HEAR Identifier LPAREN FormalParams (*) RPAREN Block END HEAR , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] +} +transition on RPAREN to state [216] + +------------------- +lalr_state [216]: { + [RepeatStmt ::= (*) REPEAT UNTIL LPAREN Expression RPAREN EOL Block END REPEAT , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [ReferenceType ::= (*) LIST , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [BreakStmt ::= (*) BREAK EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [StmtNoSubstmt ::= (*) SignalStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [BlockStmtList ::= (*) BlockStmtList BlockStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Assignment ::= (*) LeftHandSide ASSIGN Expression , {EOL }] + [SignalStmt ::= (*) SIGNAL Identifier LPAREN ArgsList RPAREN EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [PrimitiveType ::= (*) NUM , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [Statement ::= (*) StmtNoSubstmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [ForeverStmt ::= (*) FOREVER EOL Block END FOREVER , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [TypeName ::= (*) Identifier , {DOT LPAREN ASSIGN SQUARE_LEFT }] + [ReturnStmt ::= (*) RETURN Expression EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [StmtNoSubstmt ::= (*) ExprStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [BlockStmtList ::= (*) BlockStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [HearDecl ::= HEAR Identifier LPAREN FormalParams RPAREN (*) Block END HEAR , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] + [LeftHandSide ::= (*) TypeName ListOpt , {ASSIGN }] + [ExprStmt ::= (*) StmtExpr EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [PrimitiveType ::= (*) BOOL , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [Statement ::= (*) IfStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [IfStmt ::= (*) IF LPAREN Expression RPAREN EOL Block END IF ElseIfStmt ElseStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [TypeName ::= (*) TypeName DOT Identifier , {DOT LPAREN ASSIGN SQUARE_LEFT }] + [StmtNoSubstmt ::= (*) BreakStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [BlockStmt ::= (*) LocalVariableDcl , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LoopStmt ::= (*) RepeatStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [ReferenceType ::= (*) STRING , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [StmtExpr ::= (*) Assignment , {EOL }] + [Statement ::= (*) LoopStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Block ::= (*) BlockStmtList , {END }] + [StmtNoSubstmt ::= (*) ReturnStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Type ::= (*) ReferenceType , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [BlockStmt ::= (*) Statement , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LoopStmt ::= (*) ForeverStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [StmtExpr ::= (*) MethodInvocation , {EOL }] + [ReferenceType ::= (*) COORD , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [StmtNoSubstmt ::= (*) EmptyStmt , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [Block ::= (*) , {END }] + [MethodInvocation ::= (*) TypeName LPAREN FormalArgs RPAREN , {EOL }] + [Type ::= (*) PrimitiveType , {Identifier NumLit LPAREN PLUS MINUS TRUE FALSE StringLit CoordLit }] + [EmptyStmt ::= (*) EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] + [LocalVariableDcl ::= (*) Type VariableDclList EOL , {Identifier NUM BOOL STRING COORD LIST EOL END SIGNAL BREAK RETURN IF REPEAT FOREVER }] +} +transition on Block to state [217] +transition on StmtExpr to state [54] +transition on SIGNAL to state [53] +transition on BreakStmt to state [52] +transition on MethodInvocation to state [51] +transition on STRING to state [17] +transition on Type to state [50] +transition on Statement to state [49] +transition on EmptyStmt to state [48] +transition on LIST to state [10] +transition on Assignment to state [47] +transition on LoopStmt to state [46] +transition on SignalStmt to state [45] +transition on BlockStmtList to state [44] +transition on Identifier to state [43] +transition on IfStmt to state [42] +transition on BREAK to state [40] +transition on BlockStmt to state [39] +transition on RETURN to state [38] +transition on FOREVER to state [37] +transition on ReferenceType to state [23] +transition on COORD to state [11] +transition on IF to state [36] +transition on EOL to state [35] +transition on NUM to state [16] +transition on BOOL to state [22] +transition on RepeatStmt to state [34] +transition on LocalVariableDcl to state [33] +transition on REPEAT to state [32] +transition on TypeName to state [31] +transition on ForeverStmt to state [30] +transition on LeftHandSide to state [29] +transition on PrimitiveType to state [14] +transition on ExprStmt to state [28] +transition on StmtNoSubstmt to state [27] +transition on ReturnStmt to state [26] + +------------------- +lalr_state [217]: { + [HearDecl ::= HEAR Identifier LPAREN FormalParams RPAREN Block (*) END HEAR , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] +} +transition on END to state [218] + +------------------- +lalr_state [218]: { + [HearDecl ::= HEAR Identifier LPAREN FormalParams RPAREN Block END (*) HEAR , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] +} +transition on HEAR to state [219] + +------------------- +lalr_state [219]: { + [HearDecl ::= HEAR Identifier LPAREN FormalParams RPAREN Block END HEAR (*) , {EOF NUM BOOL STRING COORD LIST VOID EOL HEAR }] +} + +------------------- +lalr_state [220]: { + [Load ::= LOAD LPAREN (*) StringLit RPAREN EOL , {NUM BOOL STRING COORD LIST VOID EOL LOAD HEAR }] +} +transition on StringLit to state [221] + +------------------- +lalr_state [221]: { + [Load ::= LOAD LPAREN StringLit (*) RPAREN EOL , {NUM BOOL STRING COORD LIST VOID EOL LOAD HEAR }] +} +transition on RPAREN to state [222] + +------------------- +lalr_state [222]: { + [Load ::= LOAD LPAREN StringLit RPAREN (*) EOL , {NUM BOOL STRING COORD LIST VOID EOL LOAD HEAR }] +} +transition on EOL to state [223] + +------------------- +lalr_state [223]: { + [Load ::= LOAD LPAREN StringLit RPAREN EOL (*) , {NUM BOOL STRING COORD LIST VOID EOL LOAD HEAR }] +} + +------------------- +lalr_state [224]: { + [$START ::= Program EOF (*) , {EOF }] +} + +------------------- +------- CUP v0.11b 20140611 (SVN rev 31) Parser Generation Summary ------- + 0 errors and 0 warnings + 48 terminals, 65 non-terminals, and 120 productions declared, + producing 225 unique parse states. + 0 terminals declared but not used. + 0 non-terminals declared but not used. + 0 productions never reduced. + 0 conflicts detected (0 expected). + Code written to "parser.java", and "sym.java". +---------------------------------------------------- (CUP v0.11b 20140611 (SVN rev 31)) From 57e2ee9224a36f798c4e1dd5d99360ca69217500 Mon Sep 17 00:00:00 2001 From: GoatSnail Date: Mon, 21 Mar 2016 11:30:10 +0100 Subject: [PATCH 45/55] Fixed Java file endings --- AST/ASTLee/src/java/org/AST/SyntaxNodes/BlockNode.java | 4 ++++ .../org/AST/SyntaxNodes/{MultNode.java; => MultNode.java} | 0 .../java/org/AST/SyntaxNodes/{PwrNode.java; => PwrNode.java} | 0 .../org/AST/SyntaxNodes/{SqrtNode.java; => SqrtNode.java} | 0 .../org/AST/SyntaxNodes/{ValueNode.java; => ValueNode.java} | 0 5 files changed, 4 insertions(+) create mode 100644 AST/ASTLee/src/java/org/AST/SyntaxNodes/BlockNode.java rename AST/ASTLee/src/java/org/AST/SyntaxNodes/{MultNode.java; => MultNode.java} (100%) rename AST/ASTLee/src/java/org/AST/SyntaxNodes/{PwrNode.java; => PwrNode.java} (100%) rename AST/ASTLee/src/java/org/AST/SyntaxNodes/{SqrtNode.java; => SqrtNode.java} (100%) rename AST/ASTLee/src/java/org/AST/SyntaxNodes/{ValueNode.java; => ValueNode.java} (100%) diff --git a/AST/ASTLee/src/java/org/AST/SyntaxNodes/BlockNode.java b/AST/ASTLee/src/java/org/AST/SyntaxNodes/BlockNode.java new file mode 100644 index 0000000..bc720ed --- /dev/null +++ b/AST/ASTLee/src/java/org/AST/SyntaxNodes/BlockNode.java @@ -0,0 +1,4 @@ +import +package org.AST; + +public class BlockNode extends N \ No newline at end of file diff --git a/AST/ASTLee/src/java/org/AST/SyntaxNodes/MultNode.java; b/AST/ASTLee/src/java/org/AST/SyntaxNodes/MultNode.java similarity index 100% rename from AST/ASTLee/src/java/org/AST/SyntaxNodes/MultNode.java; rename to AST/ASTLee/src/java/org/AST/SyntaxNodes/MultNode.java diff --git a/AST/ASTLee/src/java/org/AST/SyntaxNodes/PwrNode.java; b/AST/ASTLee/src/java/org/AST/SyntaxNodes/PwrNode.java similarity index 100% rename from AST/ASTLee/src/java/org/AST/SyntaxNodes/PwrNode.java; rename to AST/ASTLee/src/java/org/AST/SyntaxNodes/PwrNode.java diff --git a/AST/ASTLee/src/java/org/AST/SyntaxNodes/SqrtNode.java; b/AST/ASTLee/src/java/org/AST/SyntaxNodes/SqrtNode.java similarity index 100% rename from AST/ASTLee/src/java/org/AST/SyntaxNodes/SqrtNode.java; rename to AST/ASTLee/src/java/org/AST/SyntaxNodes/SqrtNode.java diff --git a/AST/ASTLee/src/java/org/AST/SyntaxNodes/ValueNode.java; b/AST/ASTLee/src/java/org/AST/SyntaxNodes/ValueNode.java similarity index 100% rename from AST/ASTLee/src/java/org/AST/SyntaxNodes/ValueNode.java; rename to AST/ASTLee/src/java/org/AST/SyntaxNodes/ValueNode.java From 7d08a1774bffe4cc49c24f0e7e2e12584ab9eea4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20S=C3=B8by?= Date: Mon, 21 Mar 2016 11:32:15 +0100 Subject: [PATCH 46/55] Added AssignNode - Michael --- .../src/java/org/AST/SyntaxNodes/AssignNode.java | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 AST/ASTLee/src/java/org/AST/SyntaxNodes/AssignNode.java diff --git a/AST/ASTLee/src/java/org/AST/SyntaxNodes/AssignNode.java b/AST/ASTLee/src/java/org/AST/SyntaxNodes/AssignNode.java new file mode 100644 index 0000000..9dd895f --- /dev/null +++ b/AST/ASTLee/src/java/org/AST/SyntaxNodes/AssignNode.java @@ -0,0 +1,11 @@ +package org.AST; + +import org.AST.SyntaxNodes; +import org.AST.GeneralNodes; + +public class AssignNode extends BinaryNode{ + public AssignNode(IDNode id, ExpressionNode expr){ + this.leftmostchild = id; + this.rightChild = expr; + } +} \ No newline at end of file From 8ff8ac52b1c2a0697d699b89118c0c1241165102 Mon Sep 17 00:00:00 2001 From: Tobias Morell Date: Tue, 22 Mar 2016 08:34:21 +0100 Subject: [PATCH 47/55] ANTLR/ : Added ANTLR folder - able to parse expressions --- ANTLR/src/Test/ObsidiCode.g4 | 86 + ANTLR/src/Test/ObsidiCode.tokens | 49 + ANTLR/src/Test/ObsidiCodeBaseListener.class | Bin 0 -> 5824 bytes ANTLR/src/Test/ObsidiCodeBaseListener.java | 291 +++ ANTLR/src/Test/ObsidiCodeLexer.class | Bin 0 -> 6515 bytes ANTLR/src/Test/ObsidiCodeLexer.java | 170 ++ ANTLR/src/Test/ObsidiCodeLexer.tokens | 49 + ANTLR/src/Test/ObsidiCodeListener.class | Bin 0 -> 4089 bytes ANTLR/src/Test/ObsidiCodeListener.java | 220 +++ ...CodeParser$AdditiveExpressionContext.class | Bin 0 -> 1411 bytes ...eParser$AdditiveExpressionEndContext.class | Bin 0 -> 1090 bytes .../ObsidiCodeParser$AssignmentContext.class | Bin 0 -> 1218 bytes ...deParser$AssignmentExpressionContext.class | Bin 0 -> 1304 bytes ...Parser$ConditionAndExpressionContext.class | Bin 0 -> 1239 bytes ...eParser$ConditionOrExpressionContext.class | Bin 0 -> 1268 bytes ...eParser$ConditionalExpressionContext.class | Bin 0 -> 1138 bytes ...CodeParser$EqualityExpressionContext.class | Bin 0 -> 1455 bytes ...eParser$EqualityExpressionEndContext.class | Bin 0 -> 1134 bytes .../ObsidiCodeParser$ExpressionContext.class | Bin 0 -> 1078 bytes ...ObsidiCodeParser$LeftHandSideContext.class | Bin 0 -> 1200 bytes .../ObsidiCodeParser$ListOptContext.class | Bin 0 -> 1024 bytes .../ObsidiCodeParser$LiteralContext.class | Bin 0 -> 1044 bytes .../ObsidiCodeParser$MultiExprContext.class | Bin 0 -> 1312 bytes ...ObsidiCodeParser$MultiExprEndContext.class | Bin 0 -> 1045 bytes .../ObsidiCodeParser$PrimaryContext.class | Bin 0 -> 1508 bytes ...deParser$RelationalExpressionContext.class | Bin 0 -> 1469 bytes ...arser$RelationalExpressionEndContext.class | Bin 0 -> 1136 bytes .../ObsidiCodeParser$TypeNameContext.class | Bin 0 -> 1128 bytes .../ObsidiCodeParser$UnaryExprContext.class | Bin 0 -> 1124 bytes ...bsidiCodeParser$XOrExpressionContext.class | Bin 0 -> 1196 bytes ANTLR/src/Test/ObsidiCodeParser.class | Bin 0 -> 24734 bytes ANTLR/src/Test/ObsidiCodeParser.java | 1623 +++++++++++++++++ ANTLR/src/Test/expression_test.png | Bin 0 -> 56678 bytes ANTLR/src/Test/test_prog | 1 + 34 files changed, 2489 insertions(+) create mode 100644 ANTLR/src/Test/ObsidiCode.g4 create mode 100644 ANTLR/src/Test/ObsidiCode.tokens create mode 100644 ANTLR/src/Test/ObsidiCodeBaseListener.class create mode 100644 ANTLR/src/Test/ObsidiCodeBaseListener.java create mode 100644 ANTLR/src/Test/ObsidiCodeLexer.class create mode 100644 ANTLR/src/Test/ObsidiCodeLexer.java create mode 100644 ANTLR/src/Test/ObsidiCodeLexer.tokens create mode 100644 ANTLR/src/Test/ObsidiCodeListener.class create mode 100644 ANTLR/src/Test/ObsidiCodeListener.java create mode 100644 ANTLR/src/Test/ObsidiCodeParser$AdditiveExpressionContext.class create mode 100644 ANTLR/src/Test/ObsidiCodeParser$AdditiveExpressionEndContext.class create mode 100644 ANTLR/src/Test/ObsidiCodeParser$AssignmentContext.class create mode 100644 ANTLR/src/Test/ObsidiCodeParser$AssignmentExpressionContext.class create mode 100644 ANTLR/src/Test/ObsidiCodeParser$ConditionAndExpressionContext.class create mode 100644 ANTLR/src/Test/ObsidiCodeParser$ConditionOrExpressionContext.class create mode 100644 ANTLR/src/Test/ObsidiCodeParser$ConditionalExpressionContext.class create mode 100644 ANTLR/src/Test/ObsidiCodeParser$EqualityExpressionContext.class create mode 100644 ANTLR/src/Test/ObsidiCodeParser$EqualityExpressionEndContext.class create mode 100644 ANTLR/src/Test/ObsidiCodeParser$ExpressionContext.class create mode 100644 ANTLR/src/Test/ObsidiCodeParser$LeftHandSideContext.class create mode 100644 ANTLR/src/Test/ObsidiCodeParser$ListOptContext.class create mode 100644 ANTLR/src/Test/ObsidiCodeParser$LiteralContext.class create mode 100644 ANTLR/src/Test/ObsidiCodeParser$MultiExprContext.class create mode 100644 ANTLR/src/Test/ObsidiCodeParser$MultiExprEndContext.class create mode 100644 ANTLR/src/Test/ObsidiCodeParser$PrimaryContext.class create mode 100644 ANTLR/src/Test/ObsidiCodeParser$RelationalExpressionContext.class create mode 100644 ANTLR/src/Test/ObsidiCodeParser$RelationalExpressionEndContext.class create mode 100644 ANTLR/src/Test/ObsidiCodeParser$TypeNameContext.class create mode 100644 ANTLR/src/Test/ObsidiCodeParser$UnaryExprContext.class create mode 100644 ANTLR/src/Test/ObsidiCodeParser$XOrExpressionContext.class create mode 100644 ANTLR/src/Test/ObsidiCodeParser.class create mode 100644 ANTLR/src/Test/ObsidiCodeParser.java create mode 100644 ANTLR/src/Test/expression_test.png create mode 100644 ANTLR/src/Test/test_prog diff --git a/ANTLR/src/Test/ObsidiCode.g4 b/ANTLR/src/Test/ObsidiCode.g4 new file mode 100644 index 0000000..5c940fb --- /dev/null +++ b/ANTLR/src/Test/ObsidiCode.g4 @@ -0,0 +1,86 @@ +grammar ObsidiCode; + +//Regex for the scanner: +Identifier + : [A-z][0-z]*; +NumLit + : [0-9]+([\.][0-9]+)?; +CoordLit + : [\(][0-9][,] [0-9][,] [0-9][\)]; +StringLit + : [^"]+; + +//Skip blank-space +WS + : [ \t\r\n]+ -> skip; //<--- newline added for tests! + +//Start rule: +expression + : assignmentExpression; + +literal + : NumLit + | 'TRUE' + | 'FALSE' + | CoordLit + | '"' StringLit '='; +typeName + : Identifier + | typeName '.' Identifier + ; + +assignmentExpression + : conditionalExpression + | assignment; +assignment + : leftHandSide '=' expression; +leftHandSide + : typeName listOpt; +listOpt + : '[' expression ']' + | //lambda + ;conditionalExpression + : conditionOrExpression; +conditionOrExpression + : conditionAndExpression + | conditionOrExpression 'OR' conditionAndExpression; +conditionAndExpression + : xOrExpression + | conditionAndExpression 'AND' xOrExpression; +xOrExpression + : equalityExpression + | xOrExpression 'XOR' equalityExpression; +equalityExpression + : relationalExpression + | equalityExpression equalityExpressionEnd; +equalityExpressionEnd + : 'IS' relationalExpression + | 'NOT' relationalExpression; +relationalExpression + : additiveExpression + | relationalExpression relationalExpressionEnd; +relationalExpressionEnd + : 'LESS_THAN' additiveExpression + | 'GREATER_THAN' additiveExpression + | 'LESS_THAN_EQUAL' additiveExpression + | 'GREATER_THAN_EQUAL' additiveExpression; +additiveExpression + : multiExpr + | additiveExpression additiveExpressionEnd; +additiveExpressionEnd + : '+' multiExpr + | '-' multiExpr; +multiExpr + : unaryExpr + | multiExpr multiExprEnd; +multiExprEnd + : '*' unaryExpr + | '/' unaryExpr; +unaryExpr + : '+' unaryExpr + | '-' unaryExpr + | primary; +primary + : literal + | '(' expression ')' + | typeName listOpt; diff --git a/ANTLR/src/Test/ObsidiCode.tokens b/ANTLR/src/Test/ObsidiCode.tokens new file mode 100644 index 0000000..8474895 --- /dev/null +++ b/ANTLR/src/Test/ObsidiCode.tokens @@ -0,0 +1,49 @@ +T__0=1 +T__1=2 +T__2=3 +T__3=4 +T__4=5 +T__5=6 +T__6=7 +T__7=8 +T__8=9 +T__9=10 +T__10=11 +T__11=12 +T__12=13 +T__13=14 +T__14=15 +T__15=16 +T__16=17 +T__17=18 +T__18=19 +T__19=20 +T__20=21 +T__21=22 +Identifier=23 +NumLit=24 +CoordLit=25 +StringLit=26 +WS=27 +'TRUE'=1 +'FALSE'=2 +'"'=3 +'='=4 +'.'=5 +'['=6 +']'=7 +'OR'=8 +'AND'=9 +'XOR'=10 +'IS'=11 +'NOT'=12 +'LESS_THAN'=13 +'GREATER_THAN'=14 +'LESS_THAN_EQUAL'=15 +'GREATER_THAN_EQUAL'=16 +'+'=17 +'-'=18 +'*'=19 +'/'=20 +'('=21 +')'=22 diff --git a/ANTLR/src/Test/ObsidiCodeBaseListener.class b/ANTLR/src/Test/ObsidiCodeBaseListener.class new file mode 100644 index 0000000000000000000000000000000000000000..0b35698a89068ef9769b4d4d378dd2e390e7c149 GIT binary patch literal 5824 zcma)B-X_Zx;tg_0JCr_R{dGh2*%YQeSo|$yNX%Cryru*0b@9Sl{`~Cdy zcRvu(5M6Ji<@CHmFF5p~Lzfw?JmmRabcE6JzWy_eZW^hUIHT1?&*x*c$}|s7xzlA) z!u^N`qw})?4@0l&JM=Q6w&Z=Jiu(D8QPT+SykepANl}CyXcDAml-h z*6N@L-NNU+D5-*z3|aIL*DX8r3XsJY6|BeLo@J!pdlJyWq zr95AY~?5mvTaPEXpKj5ZmoRLp&bUgfor8FYy5 z87VEF@yu8ERyv<_)&I-K(87>Un!=*Zj?b`PN)OQ6jJj1vGIc7Wp}Y|?HIXTGW`-z( zFU%7*_dinHm1EUr-4jH z?sX;zeV6lNs*|JhKBLWbDpf}N4KtPBMkduIrmGGYubbhL*jnazdfj}00o2P?Hl}q` z7f;rWj>PLmuaP5j4P$4lQkj_6O zejZoZH3=JAIrJ%`?MZpP8!e+P8kD`5GTN#U@jX(_?QRW8E?>!JqHsO21Xoax=4rTt zne$Iyq!{hdj1WV=L#eN^@6WFl^U?D{|w^jf(JJt?tj-Ii( ziLHK~#1@e^ylgv8yl3UP_Z&4rzohllNH5VUoQti{Ht2e2JG2wp1>FMO3hjaRLi?cu z&_QScIt1Mhy#snD^f2@Y^eA)$dLQ&SvThe default implementation does nothing.

+ */ + @Override public void enterExpression(ObsidiCodeParser.ExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExpression(ObsidiCodeParser.ExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLiteral(ObsidiCodeParser.LiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLiteral(ObsidiCodeParser.LiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeName(ObsidiCodeParser.TypeNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeName(ObsidiCodeParser.TypeNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAssignmentExpression(ObsidiCodeParser.AssignmentExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAssignmentExpression(ObsidiCodeParser.AssignmentExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAssignment(ObsidiCodeParser.AssignmentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAssignment(ObsidiCodeParser.AssignmentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLeftHandSide(ObsidiCodeParser.LeftHandSideContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLeftHandSide(ObsidiCodeParser.LeftHandSideContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterListOpt(ObsidiCodeParser.ListOptContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitListOpt(ObsidiCodeParser.ListOptContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConditionalExpression(ObsidiCodeParser.ConditionalExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConditionalExpression(ObsidiCodeParser.ConditionalExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConditionOrExpression(ObsidiCodeParser.ConditionOrExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConditionOrExpression(ObsidiCodeParser.ConditionOrExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConditionAndExpression(ObsidiCodeParser.ConditionAndExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConditionAndExpression(ObsidiCodeParser.ConditionAndExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterXOrExpression(ObsidiCodeParser.XOrExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitXOrExpression(ObsidiCodeParser.XOrExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEqualityExpression(ObsidiCodeParser.EqualityExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEqualityExpression(ObsidiCodeParser.EqualityExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEqualityExpressionEnd(ObsidiCodeParser.EqualityExpressionEndContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEqualityExpressionEnd(ObsidiCodeParser.EqualityExpressionEndContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRelationalExpression(ObsidiCodeParser.RelationalExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRelationalExpression(ObsidiCodeParser.RelationalExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRelationalExpressionEnd(ObsidiCodeParser.RelationalExpressionEndContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRelationalExpressionEnd(ObsidiCodeParser.RelationalExpressionEndContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAdditiveExpression(ObsidiCodeParser.AdditiveExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAdditiveExpression(ObsidiCodeParser.AdditiveExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAdditiveExpressionEnd(ObsidiCodeParser.AdditiveExpressionEndContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAdditiveExpressionEnd(ObsidiCodeParser.AdditiveExpressionEndContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMultiExpr(ObsidiCodeParser.MultiExprContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMultiExpr(ObsidiCodeParser.MultiExprContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMultiExprEnd(ObsidiCodeParser.MultiExprEndContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMultiExprEnd(ObsidiCodeParser.MultiExprEndContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterUnaryExpr(ObsidiCodeParser.UnaryExprContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitUnaryExpr(ObsidiCodeParser.UnaryExprContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrimary(ObsidiCodeParser.PrimaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimary(ObsidiCodeParser.PrimaryContext ctx) { } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEveryRule(ParserRuleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEveryRule(ParserRuleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void visitTerminal(TerminalNode node) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void visitErrorNode(ErrorNode node) { } +} \ No newline at end of file diff --git a/ANTLR/src/Test/ObsidiCodeLexer.class b/ANTLR/src/Test/ObsidiCodeLexer.class new file mode 100644 index 0000000000000000000000000000000000000000..cb5484c1eb81915b80eac7107519a9dd4d9eefac GIT binary patch literal 6515 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\3"+ + "\2\2\2\7D\3\2\2\2\tF\3\2\2\2\13H\3\2\2\2\rJ\3\2\2\2\17L\3\2\2\2\21N\3"+ + "\2\2\2\23Q\3\2\2\2\25U\3\2\2\2\27Y\3\2\2\2\31\\\3\2\2\2\33`\3\2\2\2\35"+ + "j\3\2\2\2\37w\3\2\2\2!\u0087\3\2\2\2#\u009a\3\2\2\2%\u009c\3\2\2\2\'\u009e"+ + "\3\2\2\2)\u00a0\3\2\2\2+\u00a2\3\2\2\2-\u00a4\3\2\2\2/\u00a6\3\2\2\2\61"+ + "\u00ae\3\2\2\2\63\u00ba\3\2\2\2\65\u00c3\3\2\2\2\67\u00c8\3\2\2\29:\7"+ + "V\2\2:;\7T\2\2;<\7W\2\2<=\7G\2\2=\4\3\2\2\2>?\7H\2\2?@\7C\2\2@A\7N\2\2"+ + "AB\7U\2\2BC\7G\2\2C\6\3\2\2\2DE\7$\2\2E\b\3\2\2\2FG\7?\2\2G\n\3\2\2\2"+ + "HI\7\60\2\2I\f\3\2\2\2JK\7]\2\2K\16\3\2\2\2LM\7_\2\2M\20\3\2\2\2NO\7Q"+ + "\2\2OP\7T\2\2P\22\3\2\2\2QR\7C\2\2RS\7P\2\2ST\7F\2\2T\24\3\2\2\2UV\7Z"+ + "\2\2VW\7Q\2\2WX\7T\2\2X\26\3\2\2\2YZ\7K\2\2Z[\7U\2\2[\30\3\2\2\2\\]\7"+ + "P\2\2]^\7Q\2\2^_\7V\2\2_\32\3\2\2\2`a\7N\2\2ab\7G\2\2bc\7U\2\2cd\7U\2"+ + "\2de\7a\2\2ef\7V\2\2fg\7J\2\2gh\7C\2\2hi\7P\2\2i\34\3\2\2\2jk\7I\2\2k"+ + "l\7T\2\2lm\7G\2\2mn\7C\2\2no\7V\2\2op\7G\2\2pq\7T\2\2qr\7a\2\2rs\7V\2"+ + "\2st\7J\2\2tu\7C\2\2uv\7P\2\2v\36\3\2\2\2wx\7N\2\2xy\7G\2\2yz\7U\2\2z"+ + "{\7U\2\2{|\7a\2\2|}\7V\2\2}~\7J\2\2~\177\7C\2\2\177\u0080\7P\2\2\u0080"+ + "\u0081\7a\2\2\u0081\u0082\7G\2\2\u0082\u0083\7S\2\2\u0083\u0084\7W\2\2"+ + "\u0084\u0085\7C\2\2\u0085\u0086\7N\2\2\u0086 \3\2\2\2\u0087\u0088\7I\2"+ + "\2\u0088\u0089\7T\2\2\u0089\u008a\7G\2\2\u008a\u008b\7C\2\2\u008b\u008c"+ + "\7V\2\2\u008c\u008d\7G\2\2\u008d\u008e\7T\2\2\u008e\u008f\7a\2\2\u008f"+ + "\u0090\7V\2\2\u0090\u0091\7J\2\2\u0091\u0092\7C\2\2\u0092\u0093\7P\2\2"+ + "\u0093\u0094\7a\2\2\u0094\u0095\7G\2\2\u0095\u0096\7S\2\2\u0096\u0097"+ + "\7W\2\2\u0097\u0098\7C\2\2\u0098\u0099\7N\2\2\u0099\"\3\2\2\2\u009a\u009b"+ + "\7-\2\2\u009b$\3\2\2\2\u009c\u009d\7/\2\2\u009d&\3\2\2\2\u009e\u009f\7"+ + ",\2\2\u009f(\3\2\2\2\u00a0\u00a1\7\61\2\2\u00a1*\3\2\2\2\u00a2\u00a3\7"+ + "*\2\2\u00a3,\3\2\2\2\u00a4\u00a5\7+\2\2\u00a5.\3\2\2\2\u00a6\u00aa\t\2"+ + "\2\2\u00a7\u00a9\t\3\2\2\u00a8\u00a7\3\2\2\2\u00a9\u00ac\3\2\2\2\u00aa"+ + "\u00a8\3\2\2\2\u00aa\u00ab\3\2\2\2\u00ab\60\3\2\2\2\u00ac\u00aa\3\2\2"+ + "\2\u00ad\u00af\t\4\2\2\u00ae\u00ad\3\2\2\2\u00af\u00b0\3\2\2\2\u00b0\u00ae"+ + "\3\2\2\2\u00b0\u00b1\3\2\2\2\u00b1\u00b8\3\2\2\2\u00b2\u00b4\t\5\2\2\u00b3"+ + "\u00b5\t\4\2\2\u00b4\u00b3\3\2\2\2\u00b5\u00b6\3\2\2\2\u00b6\u00b4\3\2"+ + "\2\2\u00b6\u00b7\3\2\2\2\u00b7\u00b9\3\2\2\2\u00b8\u00b2\3\2\2\2\u00b8"+ + "\u00b9\3\2\2\2\u00b9\62\3\2\2\2\u00ba\u00bb\t\6\2\2\u00bb\u00bc\t\4\2"+ + "\2\u00bc\u00bd\t\7\2\2\u00bd\u00be\t\4\2\2\u00be\u00bf\t\7\2\2\u00bf\u00c0"+ + "\t\4\2\2\u00c0\u00c1\t\b\2\2\u00c1\64\3\2\2\2\u00c2\u00c4\t\t\2\2\u00c3"+ + "\u00c2\3\2\2\2\u00c4\u00c5\3\2\2\2\u00c5\u00c3\3\2\2\2\u00c5\u00c6\3\2"+ + "\2\2\u00c6\66\3\2\2\2\u00c7\u00c9\t\n\2\2\u00c8\u00c7\3\2\2\2\u00c9\u00ca"+ + "\3\2\2\2\u00ca\u00c8\3\2\2\2\u00ca\u00cb\3\2\2\2\u00cb\u00cc\3\2\2\2\u00cc"+ + "\u00cd\b\34\2\2\u00cd8\3\2\2\2\t\2\u00aa\u00b0\u00b6\u00b8\u00c5\u00ca"+ + "\3\b\2\2"; + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/ANTLR/src/Test/ObsidiCodeLexer.tokens b/ANTLR/src/Test/ObsidiCodeLexer.tokens new file mode 100644 index 0000000..8474895 --- /dev/null +++ b/ANTLR/src/Test/ObsidiCodeLexer.tokens @@ -0,0 +1,49 @@ +T__0=1 +T__1=2 +T__2=3 +T__3=4 +T__4=5 +T__5=6 +T__6=7 +T__7=8 +T__8=9 +T__9=10 +T__10=11 +T__11=12 +T__12=13 +T__13=14 +T__14=15 +T__15=16 +T__16=17 +T__17=18 +T__18=19 +T__19=20 +T__20=21 +T__21=22 +Identifier=23 +NumLit=24 +CoordLit=25 +StringLit=26 +WS=27 +'TRUE'=1 +'FALSE'=2 +'"'=3 +'='=4 +'.'=5 +'['=6 +']'=7 +'OR'=8 +'AND'=9 +'XOR'=10 +'IS'=11 +'NOT'=12 +'LESS_THAN'=13 +'GREATER_THAN'=14 +'LESS_THAN_EQUAL'=15 +'GREATER_THAN_EQUAL'=16 +'+'=17 +'-'=18 +'*'=19 +'/'=20 +'('=21 +')'=22 diff --git a/ANTLR/src/Test/ObsidiCodeListener.class b/ANTLR/src/Test/ObsidiCodeListener.class new file mode 100644 index 0000000000000000000000000000000000000000..435fc77e043553c1a47e35fcb4afc4e53c257673 GIT binary patch literal 4089 zcma)9>slN|5UtjjF$pA)JCM7O1d^~O;5FV5iHUBq7)XqF2eyNQv$JGo7QwqFULVCr z@P`lJL-~28?5UaA?%mHHaHy`+b*j2+x|_fM`SUL#nxWr4+VJRsN3o)PI!blCu(c8E zBnjG)N2#LW!k%x#zlE`Z8&Ra=`Or@iohUkYzTQ|#f@Uz^Zt6upPINqO&AK{ySJ7U* z6{Lj=kyx@GK-UjF>VRSl5gT_zuW~r_o-DK(S2W0Rm$x_cEx)Bb+C+7^C6Ol_k-JD7 zdLRp(I~0v@>^UsaTGYbdMLiyUp=iwI5zWgE%{~)Y|7fP~BIR3F_&nOemKC<>y7tJT z6?;^;5bnP{()ZKre$-qFnpn?mMF;Ao5z(1+)aM|w(hzT1DN4}~N!r**J^GUSfele` z_d}V(!A(E#xS~<60Wq3Eiq7`K@}_;I=$O+bnpYfE^_#&NjAZ3GSyn!c%2)SwIiIrY z|K;PD;mD`VLeo~)XD(`%7w8*B$EA>pPcoY6w?eKdoYH7zi7GTj`#Gn3u&4Nw?CU7&^9iQWaB#P`b^+t_^fl0P&@CB%g3wpqoNZ% zoRZP3W2gGh;iSg0?drkH`)0109W9%>+&2%gfcCg#v|QBz6#B*7}qvuYjGz^gO;wPvDP(y^DX1AJhVr@DLPXG?)4~CbkZVK-*$>lS&aNCCd+ft zq7?6!;(HXjomfE^(zq4V@r-fjUw(@yx?}}{hW!i?;XeHGRVe)F-tj9Js!W)$CR8p$ z;Z0dQ`;ri{owZHIS1Npa%UtKH(9wlm|6sW2WdS>T`>2xecJ?;89Q?GEjvN^h({3Q) z^baLRgM_j_lIq8g@3lLjor)AahM&jrZ{E}nMLXz8BH%8AyJ?W^y$1Kuezp%7JV-~_ zK5B4;j2eBKj;uWK?&`|>h1v!0Ed9Xz(c^pz)|2B@FegQa2z-RoCHn*r-3!# z3~(0sJn#kJ%fMHFuLI|SZvw9a>%g19cYwEncY*H$KLCCR{1oT|HSj)g9r!uz`WL^A B9cBOk literal 0 HcmV?d00001 diff --git a/ANTLR/src/Test/ObsidiCodeListener.java b/ANTLR/src/Test/ObsidiCodeListener.java new file mode 100644 index 0000000..18ba5ed --- /dev/null +++ b/ANTLR/src/Test/ObsidiCodeListener.java @@ -0,0 +1,220 @@ +// Generated from ObsidiCode.g4 by ANTLR 4.5 +import org.antlr.v4.runtime.misc.NotNull; +import org.antlr.v4.runtime.tree.ParseTreeListener; + +/** + * This interface defines a complete listener for a parse tree produced by + * {@link ObsidiCodeParser}. + */ +public interface ObsidiCodeListener extends ParseTreeListener { + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#expression}. + * @param ctx the parse tree + */ + void enterExpression(ObsidiCodeParser.ExpressionContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#expression}. + * @param ctx the parse tree + */ + void exitExpression(ObsidiCodeParser.ExpressionContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#literal}. + * @param ctx the parse tree + */ + void enterLiteral(ObsidiCodeParser.LiteralContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#literal}. + * @param ctx the parse tree + */ + void exitLiteral(ObsidiCodeParser.LiteralContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#typeName}. + * @param ctx the parse tree + */ + void enterTypeName(ObsidiCodeParser.TypeNameContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#typeName}. + * @param ctx the parse tree + */ + void exitTypeName(ObsidiCodeParser.TypeNameContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#assignmentExpression}. + * @param ctx the parse tree + */ + void enterAssignmentExpression(ObsidiCodeParser.AssignmentExpressionContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#assignmentExpression}. + * @param ctx the parse tree + */ + void exitAssignmentExpression(ObsidiCodeParser.AssignmentExpressionContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#assignment}. + * @param ctx the parse tree + */ + void enterAssignment(ObsidiCodeParser.AssignmentContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#assignment}. + * @param ctx the parse tree + */ + void exitAssignment(ObsidiCodeParser.AssignmentContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#leftHandSide}. + * @param ctx the parse tree + */ + void enterLeftHandSide(ObsidiCodeParser.LeftHandSideContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#leftHandSide}. + * @param ctx the parse tree + */ + void exitLeftHandSide(ObsidiCodeParser.LeftHandSideContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#listOpt}. + * @param ctx the parse tree + */ + void enterListOpt(ObsidiCodeParser.ListOptContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#listOpt}. + * @param ctx the parse tree + */ + void exitListOpt(ObsidiCodeParser.ListOptContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#conditionalExpression}. + * @param ctx the parse tree + */ + void enterConditionalExpression(ObsidiCodeParser.ConditionalExpressionContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#conditionalExpression}. + * @param ctx the parse tree + */ + void exitConditionalExpression(ObsidiCodeParser.ConditionalExpressionContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#conditionOrExpression}. + * @param ctx the parse tree + */ + void enterConditionOrExpression(ObsidiCodeParser.ConditionOrExpressionContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#conditionOrExpression}. + * @param ctx the parse tree + */ + void exitConditionOrExpression(ObsidiCodeParser.ConditionOrExpressionContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#conditionAndExpression}. + * @param ctx the parse tree + */ + void enterConditionAndExpression(ObsidiCodeParser.ConditionAndExpressionContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#conditionAndExpression}. + * @param ctx the parse tree + */ + void exitConditionAndExpression(ObsidiCodeParser.ConditionAndExpressionContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#xOrExpression}. + * @param ctx the parse tree + */ + void enterXOrExpression(ObsidiCodeParser.XOrExpressionContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#xOrExpression}. + * @param ctx the parse tree + */ + void exitXOrExpression(ObsidiCodeParser.XOrExpressionContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#equalityExpression}. + * @param ctx the parse tree + */ + void enterEqualityExpression(ObsidiCodeParser.EqualityExpressionContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#equalityExpression}. + * @param ctx the parse tree + */ + void exitEqualityExpression(ObsidiCodeParser.EqualityExpressionContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#equalityExpressionEnd}. + * @param ctx the parse tree + */ + void enterEqualityExpressionEnd(ObsidiCodeParser.EqualityExpressionEndContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#equalityExpressionEnd}. + * @param ctx the parse tree + */ + void exitEqualityExpressionEnd(ObsidiCodeParser.EqualityExpressionEndContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#relationalExpression}. + * @param ctx the parse tree + */ + void enterRelationalExpression(ObsidiCodeParser.RelationalExpressionContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#relationalExpression}. + * @param ctx the parse tree + */ + void exitRelationalExpression(ObsidiCodeParser.RelationalExpressionContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#relationalExpressionEnd}. + * @param ctx the parse tree + */ + void enterRelationalExpressionEnd(ObsidiCodeParser.RelationalExpressionEndContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#relationalExpressionEnd}. + * @param ctx the parse tree + */ + void exitRelationalExpressionEnd(ObsidiCodeParser.RelationalExpressionEndContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#additiveExpression}. + * @param ctx the parse tree + */ + void enterAdditiveExpression(ObsidiCodeParser.AdditiveExpressionContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#additiveExpression}. + * @param ctx the parse tree + */ + void exitAdditiveExpression(ObsidiCodeParser.AdditiveExpressionContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#additiveExpressionEnd}. + * @param ctx the parse tree + */ + void enterAdditiveExpressionEnd(ObsidiCodeParser.AdditiveExpressionEndContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#additiveExpressionEnd}. + * @param ctx the parse tree + */ + void exitAdditiveExpressionEnd(ObsidiCodeParser.AdditiveExpressionEndContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#multiExpr}. + * @param ctx the parse tree + */ + void enterMultiExpr(ObsidiCodeParser.MultiExprContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#multiExpr}. + * @param ctx the parse tree + */ + void exitMultiExpr(ObsidiCodeParser.MultiExprContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#multiExprEnd}. + * @param ctx the parse tree + */ + void enterMultiExprEnd(ObsidiCodeParser.MultiExprEndContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#multiExprEnd}. + * @param ctx the parse tree + */ + void exitMultiExprEnd(ObsidiCodeParser.MultiExprEndContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#unaryExpr}. + * @param ctx the parse tree + */ + void enterUnaryExpr(ObsidiCodeParser.UnaryExprContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#unaryExpr}. + * @param ctx the parse tree + */ + void exitUnaryExpr(ObsidiCodeParser.UnaryExprContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#primary}. + * @param ctx the parse tree + */ + void enterPrimary(ObsidiCodeParser.PrimaryContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#primary}. + * @param ctx the parse tree + */ + void exitPrimary(ObsidiCodeParser.PrimaryContext ctx); +} \ No newline at end of file diff --git a/ANTLR/src/Test/ObsidiCodeParser$AdditiveExpressionContext.class b/ANTLR/src/Test/ObsidiCodeParser$AdditiveExpressionContext.class new file mode 100644 index 0000000000000000000000000000000000000000..7e1e6c73ba64da1293da853bd3cf89e5a6cd1048 GIT binary patch literal 1411 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 literal 0 HcmV?d00001 diff --git a/ANTLR/src/Test/ObsidiCodeParser$ConditionalExpressionContext.class b/ANTLR/src/Test/ObsidiCodeParser$ConditionalExpressionContext.class new file mode 100644 index 0000000000000000000000000000000000000000..c5e84db720634efcb6ec670eacd56b3664306f28 GIT binary patch literal 1138 zcma)5U2hUW6g`)vETxMDDt@&1(H7eU)b%UzfyNi22?@5wHho`ULPobsGrKhW75{?| z`l8VXQ(yfjCTgOIJ{s@97MhCKmpe0e?mhR+J$F9+e*Xc$U6f2LreIZoyZ5hh0zoj1b_mv0&-V+M7Nq%;Qq8}2hy6+2B^V}d10pYe?YHT$F z*_O3#TRd@9AXIT0LX{BLp@jK{^u=axuPM}y+w|Cz*pR*q9}uqFjjrlAt{-~JIk@Mj zo*&9R;SBMg_B;{ssn$!o%&8+n?X3H4(I*&osZN*`%vfnR;nqL!LM0;59o{u$5DI== zRb!^NL$~$(vAZ8}ONzc66d|OxyFJwskEDjqpM3qzXYPS(VwG^?;4etfR}Rf07bPt5s!JFd z^W`Xbi2RK&7H~ESyw3m(fn4Py;xCY{93ozRhnX03k=TIIu*i30=?C%}6qM!kbN>TL g{0;JxL4J)vVmLpjashLi1J~n*BE`Kjd0ocrAGz=);{X5v literal 0 HcmV?d00001 diff --git a/ANTLR/src/Test/ObsidiCodeParser$EqualityExpressionContext.class b/ANTLR/src/Test/ObsidiCodeParser$EqualityExpressionContext.class new file mode 100644 index 0000000000000000000000000000000000000000..7b0339fa69cee31355e97928504fa0a1c1598980 GIT binary patch literal 1455 zcma)6-*3`T7(JKEC_l;sHa54RZVqRGjm~J|1B)*N6B2Z0TYN9$hE%&U+p^%F;{V`- zzG(Ep%vb*;6OG?3T`?3VFZZ@zzjMxa&uRPP_t$R#9%5g?RvH|46>KXgr;)-v1v?oe za9=K(f(pa3BP_!+2ex6gM(2)jUAku2IGRyz4s1`1JO;IG+rnvDhU*HKVPC6s4!f?| zGn<2+cwsoMaLU&ZG#KKtli^0kw8it`SywnGM%SWBLA)6nmg&9ydz!UYq!`XppC$g! zev&Rm6rypnv%LWon-x$abYN^(kZ4NT^F*78g?0~5lqzP(Br*1nkNRU zSivg2F%!_$fmQ6Gu0lthVP`($8FCYzaV!jrK@Q=72U;v7? zM@VZzK8yXNHHQMN(+ECB@M**^>Rm!{1|mL2#HSEkDpGC%Vw z0h}Yj@Fts7emy34ZH;B*`d=N+j6{Nes7rl{-*rU-!M=M23>#*hHT8IPJ?w{Q>Wn BbAJE; literal 0 HcmV?d00001 diff --git a/ANTLR/src/Test/ObsidiCodeParser$EqualityExpressionEndContext.class b/ANTLR/src/Test/ObsidiCodeParser$EqualityExpressionEndContext.class new file mode 100644 index 0000000000000000000000000000000000000000..ab3d65d475cbf50252ec34fb8977b6b6b9d5d10b GIT binary patch literal 1134 zcma)5TW=CU6#j;#ETxMD+IlH?sl|2yb&Z<%K;sL+gk)Ql*1ivALPobson0FIDgFl^ z^hKi&roQ^4jAvjA32e}pGc)J%o$p-c_n#j>0X#v)#AXI2iW#I)GI4VSN!-%nwuw6? z?lP<^;qg%ReeN}fXG#PC-5HAQ7d z?SUsEI`vlNm?-r`sFf|hD~1e)U1>2a3nHwvT9b^&3zdjKkLc#gAQV(vU1MesLw@pZ zpPxnC(qbq_NfY*Q7prbT_RP{utAtH?1Frh%87EbL&{ zf{k5<2UBy@@8n~nolLB>*u3+9t!Bv0=4H4Nb$*g-&vteFj>r9;Gg=ZF zQGD~~hsm%x8d@x0hR62&rp3BmE{C4u4L!G5FKp58NYh^dmO%Rgi)5BwWf*h=tm+z= z@fC>+u+Q|Sa!IDN&1jLNS&`Hc+Z18YX;y2cZ!o@0oHIy}vx}6mPp)|sqJScuI)#z5 zK24m*$OmLt!+PZSi~tA%h1xG9KO$SZK(hKBO9|*Ci4mi5lGn%^ZER>zusnrd{TE1T f9^?&y98W02Qs+JIP>7opCgFs{9K7 zzydZPSfH}yqY!r-HmHALpKX&;0)L<0pVes2SKcVPMBZ0lNlntssZn%G@z< z*T6o*rW-}RCk9-^&&NZ_=@klwoo5T&tx&{#95YyLA-HS>RLdiVhjy*=x*Pd@zZLfR zu`44kD^~zC8FDI z1pdt^;3=JEyY`kSc|2Cmw&?RQgKpQ_49heXm&&b3F2;)`PeD)V*72j5(`-$JSv-l| z-q}lcm~t!dv7a?pavFIzu@tyyRrz z5LF8{sto&CINf)q-c+X20^i~PEtO$?wgbazy5nhsBfFy}bpls-PVyZ{jKyo7myOg< zN2w*0(}Ha}RSQl3G|im=zbF3&Hq*Q( zRId=qjbF%pM6q#!T>U$iG^ie0LTJ+CjL-vYk(bDqsQlW$K=Sh-A%P4t5DnLpE;q2E RI8Z-^n=olr2Az9Y{tMXz3EBVv literal 0 HcmV?d00001 diff --git a/ANTLR/src/Test/ObsidiCodeParser$LeftHandSideContext.class b/ANTLR/src/Test/ObsidiCodeParser$LeftHandSideContext.class new file mode 100644 index 0000000000000000000000000000000000000000..1ed46c3e734a927d8bbe1afcb147419339b99107 GIT binary patch literal 1200 zcma)5OK;Oa5dJo9;v{uS9+XFDX-h(J9@I!6aY)4_5+agmD-v;cnk6zgPGmb(`3Fcy zfCLioA2`4T1P4^E{3yh%<2>pF(aX;6?94Ya-?#hw&ySw~ZevHr)gP%ecW1_nr^@g?}+vZN)GF+Ft3`Mo1@3&pEW7hi} zeqcB*cZ#8;8pD#fB{hyZXF1x@9nBfqp4sEtsHaCmiwDTHM(Hul(dC|SHtY^RW{}iUgCW6bN=LXE zZv6w#b9eySqMhi66CpK$nQD5*;j@RvAQ&#rk4?V_L$cW)I*0teDWF%wjO{!%jtm(p z!)Ev@Os0Yo$_yKGai^J4ki&U~>@;lLse%fs3T~oG>P@c$>2&_Ydtlg|rr8k6HUkZ1=e&z1sT#PLkefSq*xLx z$S6<^iO}S7W$hc5zD(egh)|_hh_Tlcx{3=yLY}N>DiZ%Ri4|>wy`l9YF3~EQzf1Xq zfNbR#q92i}oFH2Mj#vbuM#LXsRO2l&>>VzXm&VOddj5YP@;u0U0{JiniQtM~Wep11 UyiephmWgHw>&TFelifz*FKjy=$N&HU literal 0 HcmV?d00001 diff --git a/ANTLR/src/Test/ObsidiCodeParser$ListOptContext.class b/ANTLR/src/Test/ObsidiCodeParser$ListOptContext.class new file mode 100644 index 0000000000000000000000000000000000000000..e4d8f31bf7a891a9995a82972f9b1d8cd94898e8 GIT binary patch literal 1024 zcma)4O>fgc5PcJ;aq2j2l2X1}C~ZUPBnTsc#32=z2&71XB3f~GnpI?Q?P%>(`78Vf z4j>^)5uo(Sk3!5k#u14Sz0B^;$D22A_UEs!KL9*LUB^uWIyMaCv8m%$0a@HuW=qE% z9XkX=jE7Q$p&R&w^3(Lu4*W=rBZArSeIeVP6NVxr)U0~;2(IA6ba}N-@0xX37)8>FpGzgbNu$XGfcSU z#n_FTurP3^7*sA129g+0R7 zESzYovJQq(x{sB4N9}SV5=!&fgq1|o6n)?7s>y86@dtLibQb@zYvLWn>qr<9s@CFP z`I~;cg@RH&@nf6+Yo32Eums*OOtwXSRiW_>FdJ(i?K3hH&~!L>W${+8MKdSvVjaIpCLzIIJJyQQn10NYN3^K@6+Td@;L|Aa3x86%m565O7jBQ zcPKU|$TrTgl!0oJi5X3sd_$SOV_kuQ%3OZ+e;~OCSpE&4ZuIZ~ literal 0 HcmV?d00001 diff --git a/ANTLR/src/Test/ObsidiCodeParser$LiteralContext.class b/ANTLR/src/Test/ObsidiCodeParser$LiteralContext.class new file mode 100644 index 0000000000000000000000000000000000000000..24138a9edde6dc27384cfdcf78020eb1990c0ab6 GIT binary patch literal 1044 zcmb7DU279T6g{&WvrV#T(`dDg)mod@e25Vge2DlG5Efz;6MWw^Lm0c+Ewhu7zo4Rm zg5rPhL0=So5PkJWiFYPx0_{ri<=)xLx#ymHX7=}=?>_+CLM4kdRCULD9L%F%jHmney|($d6Oa4qRg<= z79l5s9+zFe7f@xP6-Bad2s0feML00$^j#4Ob&uhCC3(mrU&dTM9tFG=g^G_=)2lvV za0guJq8Il0n8B`8J%$V?guyc0{0E;AZAiN$zb#_LLoS<|Gv87E-u?ss;7Bqb3p0cv z+lfYUkKY%1m6eCRSoDS7bfWIYQ~%I+aTQxG7O})ooFk4VxF}=W#SXR|Tw~anBPJYW zvV%)Mm~P3ic)Z|xAt`MIejM|dVJGoUPS{1xlU3blpNHCH&-;(dbd8@=9Sr44`xMp2 z#+Js&f=zmN4n09oBz4G8%+l8tdVP%YLanfBe*ybMXNDZbw5dO%=q91plF-iy zolioSlF%;*O*cnTE7>9?Hf5()U;hg0^Grw<7M)*`pjQMfV0qe5qO7G`sgE=4MD%N_ z7jbrqyF>k&p;-R~`vdazpRjA+kg}j>SZ3MDj5oyn7U!r+rsy#%r;(gFN%D?J-p@%a ToHtW0kkz0?=^w`>Y#{R&0&(Bm literal 0 HcmV?d00001 diff --git a/ANTLR/src/Test/ObsidiCodeParser$MultiExprContext.class b/ANTLR/src/Test/ObsidiCodeParser$MultiExprContext.class new file mode 100644 index 0000000000000000000000000000000000000000..9902d9819b4a52e3e89c5e081b239a3dad2ceb58 GIT binary patch literal 1312 zcma)5TWb?R6#gc=W}9?VbFp4()yAfElhkZM!G{!IN`*kG#a7=p%@9_TP1#F{KgD-J z5br{ZK1hA_M~P>4Hxt-I?8}^)Ip6ut<(v8a=f_U~_pqshZ zxFZ%rLzN*DIF|crXLRH;VLQB4L_xEU_CZHGS&1|9AmSe-uIWClUsx8roX4f<@kNqJic$bf#cf)Zbq#>4f;H$Z?>w>sg54^#bwLs z@)3h#R9n;|r{THcnql)Fe7?(L(gWJHZO`X4=ceGy?fcf@%U$az9@!ip*a?&-Wk&ZexW&!1Va`M>a)Q(u*k?M^x1cpGeCiuo^C;4qj8LKoB^mLS zuq7ECvq%707Ufk7dkLAp#>YEW literal 0 HcmV?d00001 diff --git a/ANTLR/src/Test/ObsidiCodeParser$MultiExprEndContext.class b/ANTLR/src/Test/ObsidiCodeParser$MultiExprEndContext.class new file mode 100644 index 0000000000000000000000000000000000000000..bfead0b5dc27ec2c3e7f50facbf0e4bd2f2813d0 GIT binary patch literal 1045 zcma)4%Wl&^6g?9=aq2oW56Y|M5t_Dkf-n+DEK;$FiWDgYL<@VT8AWd0Nj0{s@G1NQ z3)p~Qfy$QOK>{QYa3^sdN%4P0G>j%&(X zH*mwiO@@V7c=E+||5!5QpN;N~o``rqVz8P*aM=jFFytY_y6vWY_gX6iD~vo-1P!`A6IxVm^%n zo^Yr)o#(`(%OmA%iVp8HXtvWN?wnXkUoVlG0zj8)w@li9Fkd;asxZaf>axrABlEPjuaZ_@u&F^J;oXy=f-0 z85PsNkfrsLRTXPgq0wnnYpd^|y%{H)NKx`vWb|*8T0k)=SfNw3(DKDsY5mjy literal 0 HcmV?d00001 diff --git a/ANTLR/src/Test/ObsidiCodeParser$PrimaryContext.class b/ANTLR/src/Test/ObsidiCodeParser$PrimaryContext.class new file mode 100644 index 0000000000000000000000000000000000000000..57ef5e90bd46cf04943c15c7dff652f17010a271 GIT binary patch literal 1508 zcma)5+fEZv6kVs&>GZ}Oyn&)nuoq-d5lkSy5KWp?AVPc};Dn4$r_Icil$e;Pi6;65 z{(}$tqR|I~uYQzqO=lcnS|TrJpUYZnpS{;PzyJLB3E(d7YnaU#aB zFqeadTmCSwLDz6wK(kCwI))|CUkhey4cn7#Pat2lZRxC8hU-dKV7geUZS1(_p1Ic8 zlbeR)N~ds|vm%i64+RElrY+Z7^&RPK8#@+vva;QDr0bduTVUv6w20Ep_R{adF-6)t zY|3?`?x)!fr;$pbmr4vp4VLYC8%~HJp9juszGs z4;FQ&WqW2_>Oq5^v@97auT)D<+0=dM`I}XHPqqb=VyP;Sk!-o+ZwoA(q31a=6y4^` zzqF(~E52smmS^lfe{3|vR;Oj#>?C2=w;C;HS3WX*>9M$d^UsU}L&F_`$@o#s**u@s zqQF!atji#Q>s_E&|9hu9+2B0JF(EK~tn{zoJnmsBk7X?NQrUFOy5Sr~UiQZ~X3yu9 zz~FJ}z)8N8(7H%{wOI2Ts9T1;uXp|lJwESi;8Wb3LA`HyFp29SaG3&>z;NXkw2$bk95Kmvq!aLyBszTxlDx%``i`BZD8vxy wQ~wjmbc?*F$cJN*1g1M#3g~AnL#6Bt`jBCc8H_L{880xZjF%a+j0?#81)w8oO8@`> literal 0 HcmV?d00001 diff --git a/ANTLR/src/Test/ObsidiCodeParser$RelationalExpressionContext.class b/ANTLR/src/Test/ObsidiCodeParser$RelationalExpressionContext.class new file mode 100644 index 0000000000000000000000000000000000000000..ec219250ae19241e53afbe84e946506b50001068 GIT binary patch literal 1469 zcma)6O>fgc5PchmxJjLoq%HlVv@{eaDREGdIHW>CRgofv549C{r(Q({*QwS{lrs_% z5+H#D2mS*GxPah*%9S657=PfP#3{M#*t7HAo1N$NuixK)0N6oI#zqDbuFBYyQOqEX zYcjT`k-~LvQDu}E3c6vKuG!=J{Zqjm$L!b)OLs?-dmY>5eV0LL*ftk?mhL#*VW_I5 z=EIg_8s=Wd;E#0Sa8Vo!uQMdQI);l))8-GlCoL|H^p-`LIl(R6C4Jrcx0jWJm~_-l zEl&O%1U0Y_r?YPx3~O;f+KJS5CRH1NNHDc)+NOJlVOwo>L|fBs*AiOqmL|HkYo2f| znA$sTU`TWFL3n9~+891p@R0O~o|>lPaWT7I)RAHxJFy?Y8FM1+r{X zbLoBsCdPc&3^&!$`*hB@d{-BJ7h~wKK|g>r{SE*bWHGX|&d^(t@{FQVo&}S>AaMrv ziQegA(wg%2q-V6|P@r`fAq5C&81bBHXE7gxNCt@HFyaN(l6xUyle&^fUoKZxzv9B@ zsG$rJ)X+<$q*qkBh@}v)LeV>hl*@jMii7T7)5bEq0nxD^PdkN0o+B!#MKN;6f;PpWa8Qa zl33N|x``VmZZZ_O>q;g2Vs~&Hh%l60pW(`bDQBbWD=|Ws&�h|P}`IeiUQoG#b~D_Wfu{lygC5XVONL5N zXLXI4-B?VYO{_CiCy!=N#X=dkEG!{M zdW_TlRb*iUn-*+rGC1Soc-DKuvW1{T>Y?aDCd z3$UuoV8&Y{PQYH%o|-0`(r3mOvZNYWov}_C2CZhbR(c2H%_um71O#DVt+fFMw)eM0gjvb7T=tM4(FfF?;q6%9##AaDG{iUtMC mQ~JfTKvL5nzX;^_7$kv95zA#P=o*NR{t(E}tV~+hF#i|et0SfW literal 0 HcmV?d00001 diff --git a/ANTLR/src/Test/ObsidiCodeParser$TypeNameContext.class b/ANTLR/src/Test/ObsidiCodeParser$TypeNameContext.class new file mode 100644 index 0000000000000000000000000000000000000000..71fbccdc932c33a373a577dd5f8828ccff174807 GIT binary patch literal 1128 zcmb7D(P|Sx6g{(Px@o#;)6`n6Ra2YR&8E15f)6Ra1cZec#RlIe%^22hCS`V0;-~lz zKIn_04^m(K0TEPC(9aO>Y&Hp`mFml#*_nIJJ@=m3kH6o&2XG5JSs1uv;<8?^WRbyD z6UBL?v7y5?6PpZKuPtQcKk0^eQf8mQ8j!B!;dfg8rL9(lwGq)G<{e%1baMZ3C_;C>$=3cL__QgG4Q?E?-b>k^N z;ucESGO^82oW7s#+ro9&7M4(8C`^(^Vl0&5Sg62Z*gn;@6GI_yXdunrfslHXp7$Si z=O+q=ybKG;bjRlI+I8Kd8*tfiV~@#(e>IFI8yhonpJB^B`)$N7YX?R!Y|v}Z&<_C2 zg3Lyi;yis7k)j=taq_FF*I+McPcJ0N13uAL4ta_?yOd;G&N2*2PaVUUMtr7RawkD- z5+X%N)2Xb#!OW{Mz5e}xFC^zHr7q)K0$8I}3o_C##<^ND@QvaM&QsJfgc5PcihapF2OO(qL?A^9w4#N()2t$w#EI5U6@Ci; zfdgDXa6skCk3!7auA?SJxzsA;&bgW-XOO&u9L)KFT6iY;l% z8Y&FgvFC^nFD4_wkbisWH-}!pCjo=e@;ok@eaH8?&#-M;?Zb}mcHQQ%%a0u4b5WVC zsxvIfXNHxw>+#p)L5GVIr_-m1HWKcD2pMi1MP5Qxz7G3p5+SD>uIC2N8FtO~Q1ooa z3;M!7-?zos3)}&>qo&@B`#eUjx2$(GNRJ0H*z&r3!l0N|i-zYkrjTKVC;z|;1dl;a z$ZNZPz)6w1#LOKB&guJC&L|!(!zXS?!k`}y$KsT~bS3oKtYnYRoO4IRHbZIlX--W8 zJ9xyfIhS}<8UqCs84A<1%T^7TunbgTG3+cR8Lh$;ClZuCELJf2u!h-|bJ%^y>)GLo zkkpHQ3gLy~C(A?4nG5VzsJqlTDMX1jJVW~qq{+*|Ae*CG1qyk9Q7wWgUy-^1`%HJD zj&q^z(rpE+*HkD`g)&=VQ!YszSColEAvCR8+xUj1FA2Pk6resuTHT}6n^=nr*6EZ@ zDf!~3Bw6+ib)W1l+$Jl#KOg{tK%w>v>PO^i7f`F;kxoI9q{0~@k^`)&&v1vLG_M@x i?*Blvd5}7RG^QXa+zVOOu`GKaK86kGq^?3|9@)RV3I$XE literal 0 HcmV?d00001 diff --git a/ANTLR/src/Test/ObsidiCodeParser$XOrExpressionContext.class b/ANTLR/src/Test/ObsidiCodeParser$XOrExpressionContext.class new file mode 100644 index 0000000000000000000000000000000000000000..5bd74ab026db0da0e80db4a24e7b52aa9af2a4ca GIT binary patch literal 1196 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 literal 0 HcmV?d00001 diff --git a/ANTLR/src/Test/ObsidiCodeParser.java b/ANTLR/src/Test/ObsidiCodeParser.java new file mode 100644 index 0000000..bc31a42 --- /dev/null +++ b/ANTLR/src/Test/ObsidiCodeParser.java @@ -0,0 +1,1623 @@ +// Generated from ObsidiCode.g4 by ANTLR 4.5 +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.misc.*; +import org.antlr.v4.runtime.tree.*; +import java.util.List; +import java.util.Iterator; +import java.util.ArrayList; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) +public class ObsidiCodeParser extends Parser { + static { RuntimeMetaData.checkVersion("4.5", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9, + T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, T__16=17, + T__17=18, T__18=19, T__19=20, T__20=21, T__21=22, Identifier=23, NumLit=24, + CoordLit=25, StringLit=26, WS=27; + public static final int + RULE_expression = 0, RULE_literal = 1, RULE_typeName = 2, RULE_assignmentExpression = 3, + RULE_assignment = 4, RULE_leftHandSide = 5, RULE_listOpt = 6, RULE_conditionalExpression = 7, + RULE_conditionOrExpression = 8, RULE_conditionAndExpression = 9, RULE_xOrExpression = 10, + RULE_equalityExpression = 11, RULE_equalityExpressionEnd = 12, RULE_relationalExpression = 13, + RULE_relationalExpressionEnd = 14, RULE_additiveExpression = 15, RULE_additiveExpressionEnd = 16, + RULE_multiExpr = 17, RULE_multiExprEnd = 18, RULE_unaryExpr = 19, RULE_primary = 20; + public static final String[] ruleNames = { + "expression", "literal", "typeName", "assignmentExpression", "assignment", + "leftHandSide", "listOpt", "conditionalExpression", "conditionOrExpression", + "conditionAndExpression", "xOrExpression", "equalityExpression", "equalityExpressionEnd", + "relationalExpression", "relationalExpressionEnd", "additiveExpression", + "additiveExpressionEnd", "multiExpr", "multiExprEnd", "unaryExpr", "primary" + }; + + private static final String[] _LITERAL_NAMES = { + null, "'TRUE'", "'FALSE'", "'\"'", "'='", "'.'", "'['", "']'", "'OR'", + "'AND'", "'XOR'", "'IS'", "'NOT'", "'LESS_THAN'", "'GREATER_THAN'", "'LESS_THAN_EQUAL'", + "'GREATER_THAN_EQUAL'", "'+'", "'-'", "'*'", "'/'", "'('", "')'" + }; + private static final String[] _SYMBOLIC_NAMES = { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, "Identifier", + "NumLit", "CoordLit", "StringLit", "WS" + }; + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + @Override + public String getGrammarFileName() { return "ObsidiCode.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public ATN getATN() { return _ATN; } + + public ObsidiCodeParser(TokenStream input) { + super(input); + _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + public static class ExpressionContext extends ParserRuleContext { + public AssignmentExpressionContext assignmentExpression() { + return getRuleContext(AssignmentExpressionContext.class,0); + } + public ExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitExpression(this); + } + } + + public final ExpressionContext expression() throws RecognitionException { + ExpressionContext _localctx = new ExpressionContext(_ctx, getState()); + enterRule(_localctx, 0, RULE_expression); + try { + enterOuterAlt(_localctx, 1); + { + setState(42); + assignmentExpression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class LiteralContext extends ParserRuleContext { + public TerminalNode NumLit() { return getToken(ObsidiCodeParser.NumLit, 0); } + public TerminalNode CoordLit() { return getToken(ObsidiCodeParser.CoordLit, 0); } + public TerminalNode StringLit() { return getToken(ObsidiCodeParser.StringLit, 0); } + public LiteralContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_literal; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitLiteral(this); + } + } + + public final LiteralContext literal() throws RecognitionException { + LiteralContext _localctx = new LiteralContext(_ctx, getState()); + enterRule(_localctx, 2, RULE_literal); + try { + setState(51); + switch (_input.LA(1)) { + case NumLit: + enterOuterAlt(_localctx, 1); + { + setState(44); + match(NumLit); + } + break; + case T__0: + enterOuterAlt(_localctx, 2); + { + setState(45); + match(T__0); + } + break; + case T__1: + enterOuterAlt(_localctx, 3); + { + setState(46); + match(T__1); + } + break; + case CoordLit: + enterOuterAlt(_localctx, 4); + { + setState(47); + match(CoordLit); + } + break; + case T__2: + enterOuterAlt(_localctx, 5); + { + setState(48); + match(T__2); + setState(49); + match(StringLit); + setState(50); + match(T__3); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class TypeNameContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(ObsidiCodeParser.Identifier, 0); } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public TypeNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterTypeName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitTypeName(this); + } + } + + public final TypeNameContext typeName() throws RecognitionException { + return typeName(0); + } + + private TypeNameContext typeName(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + TypeNameContext _localctx = new TypeNameContext(_ctx, _parentState); + TypeNameContext _prevctx = _localctx; + int _startState = 4; + enterRecursionRule(_localctx, 4, RULE_typeName, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(54); + match(Identifier); + } + _ctx.stop = _input.LT(-1); + setState(61); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,1,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new TypeNameContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_typeName); + setState(56); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(57); + match(T__4); + setState(58); + match(Identifier); + } + } + } + setState(63); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,1,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class AssignmentExpressionContext extends ParserRuleContext { + public ConditionalExpressionContext conditionalExpression() { + return getRuleContext(ConditionalExpressionContext.class,0); + } + public AssignmentContext assignment() { + return getRuleContext(AssignmentContext.class,0); + } + public AssignmentExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_assignmentExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterAssignmentExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitAssignmentExpression(this); + } + } + + public final AssignmentExpressionContext assignmentExpression() throws RecognitionException { + AssignmentExpressionContext _localctx = new AssignmentExpressionContext(_ctx, getState()); + enterRule(_localctx, 6, RULE_assignmentExpression); + try { + setState(66); + switch ( getInterpreter().adaptivePredict(_input,2,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(64); + conditionalExpression(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(65); + assignment(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class AssignmentContext extends ParserRuleContext { + public LeftHandSideContext leftHandSide() { + return getRuleContext(LeftHandSideContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public AssignmentContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_assignment; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterAssignment(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitAssignment(this); + } + } + + public final AssignmentContext assignment() throws RecognitionException { + AssignmentContext _localctx = new AssignmentContext(_ctx, getState()); + enterRule(_localctx, 8, RULE_assignment); + try { + enterOuterAlt(_localctx, 1); + { + setState(68); + leftHandSide(); + setState(69); + match(T__3); + setState(70); + expression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class LeftHandSideContext extends ParserRuleContext { + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public ListOptContext listOpt() { + return getRuleContext(ListOptContext.class,0); + } + public LeftHandSideContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_leftHandSide; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterLeftHandSide(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitLeftHandSide(this); + } + } + + public final LeftHandSideContext leftHandSide() throws RecognitionException { + LeftHandSideContext _localctx = new LeftHandSideContext(_ctx, getState()); + enterRule(_localctx, 10, RULE_leftHandSide); + try { + enterOuterAlt(_localctx, 1); + { + setState(72); + typeName(0); + setState(73); + listOpt(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ListOptContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public ListOptContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_listOpt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterListOpt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitListOpt(this); + } + } + + public final ListOptContext listOpt() throws RecognitionException { + ListOptContext _localctx = new ListOptContext(_ctx, getState()); + enterRule(_localctx, 12, RULE_listOpt); + try { + setState(80); + switch ( getInterpreter().adaptivePredict(_input,3,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(75); + match(T__5); + setState(76); + expression(); + setState(77); + match(T__6); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ConditionalExpressionContext extends ParserRuleContext { + public ConditionOrExpressionContext conditionOrExpression() { + return getRuleContext(ConditionOrExpressionContext.class,0); + } + public ConditionalExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_conditionalExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterConditionalExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitConditionalExpression(this); + } + } + + public final ConditionalExpressionContext conditionalExpression() throws RecognitionException { + ConditionalExpressionContext _localctx = new ConditionalExpressionContext(_ctx, getState()); + enterRule(_localctx, 14, RULE_conditionalExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(82); + conditionOrExpression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ConditionOrExpressionContext extends ParserRuleContext { + public ConditionAndExpressionContext conditionAndExpression() { + return getRuleContext(ConditionAndExpressionContext.class,0); + } + public ConditionOrExpressionContext conditionOrExpression() { + return getRuleContext(ConditionOrExpressionContext.class,0); + } + public ConditionOrExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_conditionOrExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterConditionOrExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitConditionOrExpression(this); + } + } + + public final ConditionOrExpressionContext conditionOrExpression() throws RecognitionException { + return conditionOrExpression(0); + } + + private ConditionOrExpressionContext conditionOrExpression(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + ConditionOrExpressionContext _localctx = new ConditionOrExpressionContext(_ctx, _parentState); + ConditionOrExpressionContext _prevctx = _localctx; + int _startState = 16; + enterRecursionRule(_localctx, 16, RULE_conditionOrExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(85); + conditionAndExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(92); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,4,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new ConditionOrExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_conditionOrExpression); + setState(87); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(88); + match(T__7); + setState(89); + conditionAndExpression(0); + } + } + } + setState(94); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,4,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class ConditionAndExpressionContext extends ParserRuleContext { + public XOrExpressionContext xOrExpression() { + return getRuleContext(XOrExpressionContext.class,0); + } + public ConditionAndExpressionContext conditionAndExpression() { + return getRuleContext(ConditionAndExpressionContext.class,0); + } + public ConditionAndExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_conditionAndExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterConditionAndExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitConditionAndExpression(this); + } + } + + public final ConditionAndExpressionContext conditionAndExpression() throws RecognitionException { + return conditionAndExpression(0); + } + + private ConditionAndExpressionContext conditionAndExpression(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + ConditionAndExpressionContext _localctx = new ConditionAndExpressionContext(_ctx, _parentState); + ConditionAndExpressionContext _prevctx = _localctx; + int _startState = 18; + enterRecursionRule(_localctx, 18, RULE_conditionAndExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(96); + xOrExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(103); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,5,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new ConditionAndExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_conditionAndExpression); + setState(98); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(99); + match(T__8); + setState(100); + xOrExpression(0); + } + } + } + setState(105); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,5,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class XOrExpressionContext extends ParserRuleContext { + public EqualityExpressionContext equalityExpression() { + return getRuleContext(EqualityExpressionContext.class,0); + } + public XOrExpressionContext xOrExpression() { + return getRuleContext(XOrExpressionContext.class,0); + } + public XOrExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_xOrExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterXOrExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitXOrExpression(this); + } + } + + public final XOrExpressionContext xOrExpression() throws RecognitionException { + return xOrExpression(0); + } + + private XOrExpressionContext xOrExpression(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + XOrExpressionContext _localctx = new XOrExpressionContext(_ctx, _parentState); + XOrExpressionContext _prevctx = _localctx; + int _startState = 20; + enterRecursionRule(_localctx, 20, RULE_xOrExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(107); + equalityExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(114); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,6,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new XOrExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_xOrExpression); + setState(109); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(110); + match(T__9); + setState(111); + equalityExpression(0); + } + } + } + setState(116); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,6,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class EqualityExpressionContext extends ParserRuleContext { + public RelationalExpressionContext relationalExpression() { + return getRuleContext(RelationalExpressionContext.class,0); + } + public EqualityExpressionContext equalityExpression() { + return getRuleContext(EqualityExpressionContext.class,0); + } + public EqualityExpressionEndContext equalityExpressionEnd() { + return getRuleContext(EqualityExpressionEndContext.class,0); + } + public EqualityExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_equalityExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterEqualityExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitEqualityExpression(this); + } + } + + public final EqualityExpressionContext equalityExpression() throws RecognitionException { + return equalityExpression(0); + } + + private EqualityExpressionContext equalityExpression(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + EqualityExpressionContext _localctx = new EqualityExpressionContext(_ctx, _parentState); + EqualityExpressionContext _prevctx = _localctx; + int _startState = 22; + enterRecursionRule(_localctx, 22, RULE_equalityExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(118); + relationalExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(124); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,7,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new EqualityExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_equalityExpression); + setState(120); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(121); + equalityExpressionEnd(); + } + } + } + setState(126); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,7,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class EqualityExpressionEndContext extends ParserRuleContext { + public RelationalExpressionContext relationalExpression() { + return getRuleContext(RelationalExpressionContext.class,0); + } + public EqualityExpressionEndContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_equalityExpressionEnd; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterEqualityExpressionEnd(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitEqualityExpressionEnd(this); + } + } + + public final EqualityExpressionEndContext equalityExpressionEnd() throws RecognitionException { + EqualityExpressionEndContext _localctx = new EqualityExpressionEndContext(_ctx, getState()); + enterRule(_localctx, 24, RULE_equalityExpressionEnd); + try { + setState(131); + switch (_input.LA(1)) { + case T__10: + enterOuterAlt(_localctx, 1); + { + setState(127); + match(T__10); + setState(128); + relationalExpression(0); + } + break; + case T__11: + enterOuterAlt(_localctx, 2); + { + setState(129); + match(T__11); + setState(130); + relationalExpression(0); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class RelationalExpressionContext extends ParserRuleContext { + public AdditiveExpressionContext additiveExpression() { + return getRuleContext(AdditiveExpressionContext.class,0); + } + public RelationalExpressionContext relationalExpression() { + return getRuleContext(RelationalExpressionContext.class,0); + } + public RelationalExpressionEndContext relationalExpressionEnd() { + return getRuleContext(RelationalExpressionEndContext.class,0); + } + public RelationalExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_relationalExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterRelationalExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitRelationalExpression(this); + } + } + + public final RelationalExpressionContext relationalExpression() throws RecognitionException { + return relationalExpression(0); + } + + private RelationalExpressionContext relationalExpression(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + RelationalExpressionContext _localctx = new RelationalExpressionContext(_ctx, _parentState); + RelationalExpressionContext _prevctx = _localctx; + int _startState = 26; + enterRecursionRule(_localctx, 26, RULE_relationalExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(134); + additiveExpression(0); + } + _ctx.stop = _input.LT(-1); + setState(140); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,9,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new RelationalExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); + setState(136); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(137); + relationalExpressionEnd(); + } + } + } + setState(142); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,9,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class RelationalExpressionEndContext extends ParserRuleContext { + public AdditiveExpressionContext additiveExpression() { + return getRuleContext(AdditiveExpressionContext.class,0); + } + public RelationalExpressionEndContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_relationalExpressionEnd; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterRelationalExpressionEnd(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitRelationalExpressionEnd(this); + } + } + + public final RelationalExpressionEndContext relationalExpressionEnd() throws RecognitionException { + RelationalExpressionEndContext _localctx = new RelationalExpressionEndContext(_ctx, getState()); + enterRule(_localctx, 28, RULE_relationalExpressionEnd); + try { + setState(151); + switch (_input.LA(1)) { + case T__12: + enterOuterAlt(_localctx, 1); + { + setState(143); + match(T__12); + setState(144); + additiveExpression(0); + } + break; + case T__13: + enterOuterAlt(_localctx, 2); + { + setState(145); + match(T__13); + setState(146); + additiveExpression(0); + } + break; + case T__14: + enterOuterAlt(_localctx, 3); + { + setState(147); + match(T__14); + setState(148); + additiveExpression(0); + } + break; + case T__15: + enterOuterAlt(_localctx, 4); + { + setState(149); + match(T__15); + setState(150); + additiveExpression(0); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class AdditiveExpressionContext extends ParserRuleContext { + public MultiExprContext multiExpr() { + return getRuleContext(MultiExprContext.class,0); + } + public AdditiveExpressionContext additiveExpression() { + return getRuleContext(AdditiveExpressionContext.class,0); + } + public AdditiveExpressionEndContext additiveExpressionEnd() { + return getRuleContext(AdditiveExpressionEndContext.class,0); + } + public AdditiveExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_additiveExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterAdditiveExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitAdditiveExpression(this); + } + } + + public final AdditiveExpressionContext additiveExpression() throws RecognitionException { + return additiveExpression(0); + } + + private AdditiveExpressionContext additiveExpression(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + AdditiveExpressionContext _localctx = new AdditiveExpressionContext(_ctx, _parentState); + AdditiveExpressionContext _prevctx = _localctx; + int _startState = 30; + enterRecursionRule(_localctx, 30, RULE_additiveExpression, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(154); + multiExpr(0); + } + _ctx.stop = _input.LT(-1); + setState(160); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,11,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new AdditiveExpressionContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_additiveExpression); + setState(156); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(157); + additiveExpressionEnd(); + } + } + } + setState(162); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,11,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class AdditiveExpressionEndContext extends ParserRuleContext { + public MultiExprContext multiExpr() { + return getRuleContext(MultiExprContext.class,0); + } + public AdditiveExpressionEndContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_additiveExpressionEnd; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterAdditiveExpressionEnd(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitAdditiveExpressionEnd(this); + } + } + + public final AdditiveExpressionEndContext additiveExpressionEnd() throws RecognitionException { + AdditiveExpressionEndContext _localctx = new AdditiveExpressionEndContext(_ctx, getState()); + enterRule(_localctx, 32, RULE_additiveExpressionEnd); + try { + setState(167); + switch (_input.LA(1)) { + case T__16: + enterOuterAlt(_localctx, 1); + { + setState(163); + match(T__16); + setState(164); + multiExpr(0); + } + break; + case T__17: + enterOuterAlt(_localctx, 2); + { + setState(165); + match(T__17); + setState(166); + multiExpr(0); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class MultiExprContext extends ParserRuleContext { + public UnaryExprContext unaryExpr() { + return getRuleContext(UnaryExprContext.class,0); + } + public MultiExprContext multiExpr() { + return getRuleContext(MultiExprContext.class,0); + } + public MultiExprEndContext multiExprEnd() { + return getRuleContext(MultiExprEndContext.class,0); + } + public MultiExprContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_multiExpr; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterMultiExpr(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitMultiExpr(this); + } + } + + public final MultiExprContext multiExpr() throws RecognitionException { + return multiExpr(0); + } + + private MultiExprContext multiExpr(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + MultiExprContext _localctx = new MultiExprContext(_ctx, _parentState); + MultiExprContext _prevctx = _localctx; + int _startState = 34; + enterRecursionRule(_localctx, 34, RULE_multiExpr, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(170); + unaryExpr(); + } + _ctx.stop = _input.LT(-1); + setState(176); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,13,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new MultiExprContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_multiExpr); + setState(172); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(173); + multiExprEnd(); + } + } + } + setState(178); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,13,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class MultiExprEndContext extends ParserRuleContext { + public UnaryExprContext unaryExpr() { + return getRuleContext(UnaryExprContext.class,0); + } + public MultiExprEndContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_multiExprEnd; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterMultiExprEnd(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitMultiExprEnd(this); + } + } + + public final MultiExprEndContext multiExprEnd() throws RecognitionException { + MultiExprEndContext _localctx = new MultiExprEndContext(_ctx, getState()); + enterRule(_localctx, 36, RULE_multiExprEnd); + try { + setState(183); + switch (_input.LA(1)) { + case T__18: + enterOuterAlt(_localctx, 1); + { + setState(179); + match(T__18); + setState(180); + unaryExpr(); + } + break; + case T__19: + enterOuterAlt(_localctx, 2); + { + setState(181); + match(T__19); + setState(182); + unaryExpr(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class UnaryExprContext extends ParserRuleContext { + public UnaryExprContext unaryExpr() { + return getRuleContext(UnaryExprContext.class,0); + } + public PrimaryContext primary() { + return getRuleContext(PrimaryContext.class,0); + } + public UnaryExprContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_unaryExpr; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterUnaryExpr(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitUnaryExpr(this); + } + } + + public final UnaryExprContext unaryExpr() throws RecognitionException { + UnaryExprContext _localctx = new UnaryExprContext(_ctx, getState()); + enterRule(_localctx, 38, RULE_unaryExpr); + try { + setState(190); + switch (_input.LA(1)) { + case T__16: + enterOuterAlt(_localctx, 1); + { + setState(185); + match(T__16); + setState(186); + unaryExpr(); + } + break; + case T__17: + enterOuterAlt(_localctx, 2); + { + setState(187); + match(T__17); + setState(188); + unaryExpr(); + } + break; + case T__0: + case T__1: + case T__2: + case T__20: + case Identifier: + case NumLit: + case CoordLit: + enterOuterAlt(_localctx, 3); + { + setState(189); + primary(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PrimaryContext extends ParserRuleContext { + public LiteralContext literal() { + return getRuleContext(LiteralContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public ListOptContext listOpt() { + return getRuleContext(ListOptContext.class,0); + } + public PrimaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterPrimary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitPrimary(this); + } + } + + public final PrimaryContext primary() throws RecognitionException { + PrimaryContext _localctx = new PrimaryContext(_ctx, getState()); + enterRule(_localctx, 40, RULE_primary); + try { + setState(200); + switch (_input.LA(1)) { + case T__0: + case T__1: + case T__2: + case NumLit: + case CoordLit: + enterOuterAlt(_localctx, 1); + { + setState(192); + literal(); + } + break; + case T__20: + enterOuterAlt(_localctx, 2); + { + setState(193); + match(T__20); + setState(194); + expression(); + setState(195); + match(T__21); + } + break; + case Identifier: + enterOuterAlt(_localctx, 3); + { + setState(197); + typeName(0); + setState(198); + listOpt(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { + switch (ruleIndex) { + case 2: + return typeName_sempred((TypeNameContext)_localctx, predIndex); + case 8: + return conditionOrExpression_sempred((ConditionOrExpressionContext)_localctx, predIndex); + case 9: + return conditionAndExpression_sempred((ConditionAndExpressionContext)_localctx, predIndex); + case 10: + return xOrExpression_sempred((XOrExpressionContext)_localctx, predIndex); + case 11: + return equalityExpression_sempred((EqualityExpressionContext)_localctx, predIndex); + case 13: + return relationalExpression_sempred((RelationalExpressionContext)_localctx, predIndex); + case 15: + return additiveExpression_sempred((AdditiveExpressionContext)_localctx, predIndex); + case 17: + return multiExpr_sempred((MultiExprContext)_localctx, predIndex); + } + return true; + } + private boolean typeName_sempred(TypeNameContext _localctx, int predIndex) { + switch (predIndex) { + case 0: + return precpred(_ctx, 1); + } + return true; + } + private boolean conditionOrExpression_sempred(ConditionOrExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 1: + return precpred(_ctx, 1); + } + return true; + } + private boolean conditionAndExpression_sempred(ConditionAndExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 2: + return precpred(_ctx, 1); + } + return true; + } + private boolean xOrExpression_sempred(XOrExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 3: + return precpred(_ctx, 1); + } + return true; + } + private boolean equalityExpression_sempred(EqualityExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 4: + return precpred(_ctx, 1); + } + return true; + } + private boolean relationalExpression_sempred(RelationalExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 5: + return precpred(_ctx, 1); + } + return true; + } + private boolean additiveExpression_sempred(AdditiveExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 6: + return precpred(_ctx, 1); + } + return true; + } + private boolean multiExpr_sempred(MultiExprContext _localctx, int predIndex) { + switch (predIndex) { + case 7: + return precpred(_ctx, 1); + } + return true; + } + + public static final String _serializedATN = + "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3\35\u00cd\4\2\t\2"+ + "\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"+ + "\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ + "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\3\2\3\2\3\3\3\3\3\3\3\3\3\3\3"+ + "\3\3\3\5\3\66\n\3\3\4\3\4\3\4\3\4\3\4\3\4\7\4>\n\4\f\4\16\4A\13\4\3\5"+ + "\3\5\5\5E\n\5\3\6\3\6\3\6\3\6\3\7\3\7\3\7\3\b\3\b\3\b\3\b\3\b\5\bS\n\b"+ + "\3\t\3\t\3\n\3\n\3\n\3\n\3\n\3\n\7\n]\n\n\f\n\16\n`\13\n\3\13\3\13\3\13"+ + "\3\13\3\13\3\13\7\13h\n\13\f\13\16\13k\13\13\3\f\3\f\3\f\3\f\3\f\3\f\7"+ + "\fs\n\f\f\f\16\fv\13\f\3\r\3\r\3\r\3\r\3\r\7\r}\n\r\f\r\16\r\u0080\13"+ + "\r\3\16\3\16\3\16\3\16\5\16\u0086\n\16\3\17\3\17\3\17\3\17\3\17\7\17\u008d"+ + "\n\17\f\17\16\17\u0090\13\17\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\5"+ + "\20\u009a\n\20\3\21\3\21\3\21\3\21\3\21\7\21\u00a1\n\21\f\21\16\21\u00a4"+ + "\13\21\3\22\3\22\3\22\3\22\5\22\u00aa\n\22\3\23\3\23\3\23\3\23\3\23\7"+ + "\23\u00b1\n\23\f\23\16\23\u00b4\13\23\3\24\3\24\3\24\3\24\5\24\u00ba\n"+ + "\24\3\25\3\25\3\25\3\25\3\25\5\25\u00c1\n\25\3\26\3\26\3\26\3\26\3\26"+ + "\3\26\3\26\3\26\5\26\u00cb\n\26\3\26\2\n\6\22\24\26\30\34 $\27\2\4\6\b"+ + "\n\f\16\20\22\24\26\30\32\34\36 \"$&(*\2\2\u00cf\2,\3\2\2\2\4\65\3\2\2"+ + "\2\6\67\3\2\2\2\bD\3\2\2\2\nF\3\2\2\2\fJ\3\2\2\2\16R\3\2\2\2\20T\3\2\2"+ + "\2\22V\3\2\2\2\24a\3\2\2\2\26l\3\2\2\2\30w\3\2\2\2\32\u0085\3\2\2\2\34"+ + "\u0087\3\2\2\2\36\u0099\3\2\2\2 \u009b\3\2\2\2\"\u00a9\3\2\2\2$\u00ab"+ + "\3\2\2\2&\u00b9\3\2\2\2(\u00c0\3\2\2\2*\u00ca\3\2\2\2,-\5\b\5\2-\3\3\2"+ + "\2\2.\66\7\32\2\2/\66\7\3\2\2\60\66\7\4\2\2\61\66\7\33\2\2\62\63\7\5\2"+ + "\2\63\64\7\34\2\2\64\66\7\6\2\2\65.\3\2\2\2\65/\3\2\2\2\65\60\3\2\2\2"+ + "\65\61\3\2\2\2\65\62\3\2\2\2\66\5\3\2\2\2\678\b\4\1\289\7\31\2\29?\3\2"+ + "\2\2:;\f\3\2\2;<\7\7\2\2<>\7\31\2\2=:\3\2\2\2>A\3\2\2\2?=\3\2\2\2?@\3"+ + "\2\2\2@\7\3\2\2\2A?\3\2\2\2BE\5\20\t\2CE\5\n\6\2DB\3\2\2\2DC\3\2\2\2E"+ + "\t\3\2\2\2FG\5\f\7\2GH\7\6\2\2HI\5\2\2\2I\13\3\2\2\2JK\5\6\4\2KL\5\16"+ + "\b\2L\r\3\2\2\2MN\7\b\2\2NO\5\2\2\2OP\7\t\2\2PS\3\2\2\2QS\3\2\2\2RM\3"+ + "\2\2\2RQ\3\2\2\2S\17\3\2\2\2TU\5\22\n\2U\21\3\2\2\2VW\b\n\1\2WX\5\24\13"+ + "\2X^\3\2\2\2YZ\f\3\2\2Z[\7\n\2\2[]\5\24\13\2\\Y\3\2\2\2]`\3\2\2\2^\\\3"+ + "\2\2\2^_\3\2\2\2_\23\3\2\2\2`^\3\2\2\2ab\b\13\1\2bc\5\26\f\2ci\3\2\2\2"+ + "de\f\3\2\2ef\7\13\2\2fh\5\26\f\2gd\3\2\2\2hk\3\2\2\2ig\3\2\2\2ij\3\2\2"+ + "\2j\25\3\2\2\2ki\3\2\2\2lm\b\f\1\2mn\5\30\r\2nt\3\2\2\2op\f\3\2\2pq\7"+ + "\f\2\2qs\5\30\r\2ro\3\2\2\2sv\3\2\2\2tr\3\2\2\2tu\3\2\2\2u\27\3\2\2\2"+ + "vt\3\2\2\2wx\b\r\1\2xy\5\34\17\2y~\3\2\2\2z{\f\3\2\2{}\5\32\16\2|z\3\2"+ + "\2\2}\u0080\3\2\2\2~|\3\2\2\2~\177\3\2\2\2\177\31\3\2\2\2\u0080~\3\2\2"+ + "\2\u0081\u0082\7\r\2\2\u0082\u0086\5\34\17\2\u0083\u0084\7\16\2\2\u0084"+ + "\u0086\5\34\17\2\u0085\u0081\3\2\2\2\u0085\u0083\3\2\2\2\u0086\33\3\2"+ + "\2\2\u0087\u0088\b\17\1\2\u0088\u0089\5 \21\2\u0089\u008e\3\2\2\2\u008a"+ + "\u008b\f\3\2\2\u008b\u008d\5\36\20\2\u008c\u008a\3\2\2\2\u008d\u0090\3"+ + "\2\2\2\u008e\u008c\3\2\2\2\u008e\u008f\3\2\2\2\u008f\35\3\2\2\2\u0090"+ + "\u008e\3\2\2\2\u0091\u0092\7\17\2\2\u0092\u009a\5 \21\2\u0093\u0094\7"+ + "\20\2\2\u0094\u009a\5 \21\2\u0095\u0096\7\21\2\2\u0096\u009a\5 \21\2\u0097"+ + "\u0098\7\22\2\2\u0098\u009a\5 \21\2\u0099\u0091\3\2\2\2\u0099\u0093\3"+ + "\2\2\2\u0099\u0095\3\2\2\2\u0099\u0097\3\2\2\2\u009a\37\3\2\2\2\u009b"+ + "\u009c\b\21\1\2\u009c\u009d\5$\23\2\u009d\u00a2\3\2\2\2\u009e\u009f\f"+ + "\3\2\2\u009f\u00a1\5\"\22\2\u00a0\u009e\3\2\2\2\u00a1\u00a4\3\2\2\2\u00a2"+ + "\u00a0\3\2\2\2\u00a2\u00a3\3\2\2\2\u00a3!\3\2\2\2\u00a4\u00a2\3\2\2\2"+ + "\u00a5\u00a6\7\23\2\2\u00a6\u00aa\5$\23\2\u00a7\u00a8\7\24\2\2\u00a8\u00aa"+ + "\5$\23\2\u00a9\u00a5\3\2\2\2\u00a9\u00a7\3\2\2\2\u00aa#\3\2\2\2\u00ab"+ + "\u00ac\b\23\1\2\u00ac\u00ad\5(\25\2\u00ad\u00b2\3\2\2\2\u00ae\u00af\f"+ + "\3\2\2\u00af\u00b1\5&\24\2\u00b0\u00ae\3\2\2\2\u00b1\u00b4\3\2\2\2\u00b2"+ + "\u00b0\3\2\2\2\u00b2\u00b3\3\2\2\2\u00b3%\3\2\2\2\u00b4\u00b2\3\2\2\2"+ + "\u00b5\u00b6\7\25\2\2\u00b6\u00ba\5(\25\2\u00b7\u00b8\7\26\2\2\u00b8\u00ba"+ + "\5(\25\2\u00b9\u00b5\3\2\2\2\u00b9\u00b7\3\2\2\2\u00ba\'\3\2\2\2\u00bb"+ + "\u00bc\7\23\2\2\u00bc\u00c1\5(\25\2\u00bd\u00be\7\24\2\2\u00be\u00c1\5"+ + "(\25\2\u00bf\u00c1\5*\26\2\u00c0\u00bb\3\2\2\2\u00c0\u00bd\3\2\2\2\u00c0"+ + "\u00bf\3\2\2\2\u00c1)\3\2\2\2\u00c2\u00cb\5\4\3\2\u00c3\u00c4\7\27\2\2"+ + "\u00c4\u00c5\5\2\2\2\u00c5\u00c6\7\30\2\2\u00c6\u00cb\3\2\2\2\u00c7\u00c8"+ + "\5\6\4\2\u00c8\u00c9\5\16\b\2\u00c9\u00cb\3\2\2\2\u00ca\u00c2\3\2\2\2"+ + "\u00ca\u00c3\3\2\2\2\u00ca\u00c7\3\2\2\2\u00cb+\3\2\2\2\23\65?DR^it~\u0085"+ + "\u008e\u0099\u00a2\u00a9\u00b2\u00b9\u00c0\u00ca"; + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/ANTLR/src/Test/expression_test.png b/ANTLR/src/Test/expression_test.png new file mode 100644 index 0000000000000000000000000000000000000000..d7223898db4a21822d993f13693a10aa40fcc822 GIT binary patch literal 56678 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

1~@a+AfKwK(SBkSunJ%e z5Hxdc8L^=BROYKcD=hABj3LliVu}gV;yq-8qvwv0@Ar{2D^&7fqo2By;+TK^c_%UO zzLx5zlUS{IY{hk@5GG_8!2wZN4_O*HBG)KjQvHyIAaj&vp5pu~n>+}J z!aJ3ox!)Ey$pp_?5LuaChVAS;&;J)?c_J{O>G+vR=rS~p^ONNCQ-S!PHG^+U^7V~E zz?VUVq>-BaUV5eHP)o6cOJ5W?rhYGl&hXd}UB9o#mGDhjV|*<3_SGe1Z&*HE_uz82 zH$_@FWY-3V4bk!tBVYepe+o(FW+`^g{kCe7`qkoPqt&3|QNYJzyO*IKs6tUeh`RhS zfX9blzkCjD3unYM9X%|f@;q@68RUdxmcKJsM~27{5yC&#L}WUt>T)-1_yyHeWsaC@ zoST1@NE%N%j(mBWbEii)kK9Ty>Cc}(H9#lx-Fg;3dMI7jB~qIeu8+P#z4KuAH;Ql< zm<(F$0@MsBpHGBwA?MI!fafu??i<>p+X5dbS4ZjMmw0A)r1Qk%+pCS07fZj9MCM={ z=DZ?fO;2B60u@5t98~7Hksc#1*lKzFC&>1$g=!t!(PHrGnYqt)H|Dk$)?Cip`K!x% zB&u}*#Oo3n-8GgG5CDSF7=o;u#3qa88jh?(d^(wdEnQZf-QAKOEjczgh7mvv_?LwG zqoEF$HpV1C9}I=aaeNT`338Fr+Br~}?83Oer#YAIUR`DxS_l5L={9--QXitI`Vx1d zaaR-t59iwW3BPZl+Vv>}qNw^gq#4fTD7(M7OcT5(jS`GSi@9E#ZHt3vFY7FA>=7d* z;SP$aB;c&yE`O9$I!W>NylpwytE)3xb<0f$79k>~HqOf!y5x&JXo63`$%+wBxQ#QY zpxZED>$3Vq<}vhQnak)UN7<62U@F|ZLS8T42~tE8^=5s<2m*fm#(4a37S3;By=1O+ z8Mox;2SYS}6ppDeY@{nqtZb~+oI&@A5QGI&ijSQyzl@egdq?lL4dZcqFjVH!bKg<+ z1GNmyU2~+eDkBbYe@ewN5qWcpsB%gW1wYf#jmcAu!!hH=kH+w51!t~}U2hL?pCa_z zRIcq2R2;6u>$72-+54>|cPpQeUyLb9%_fwT zut!jvjW*Y6PS+>j5iA`iSdgjM=^l^h-|rLnaTLfOMy|{0q>d{`bjF#S9TLAOE?0Do z6u1s$NM&@@*Nws*m41e#y_2M&B5TYNXa>jLL}Q=YGIS=F#xARp8##$z8g?PHJ=E>~ zv5v1P`ym1$7u#6DQ~L3=;KERYj=ENhv8U07=`NzI@Qum1gzRNsquMNct(R-cg>mIT zlu+Y}+ytwBtV9>T&y{nPP^Jm7Ijf|~FCs-GNfEzL7vfY0G_pz2tpSEGsgxGbl_9zA z)+$FV;+irxt@Je4I9;~swbB~pY@QchZ+>0+5qm*I~fnY-Lhyb4%*?&HYj5IugCP*5C5kRHw5j{&|6%-l}%aY{S7h*B&=- zoZIq7di`tHL7P($=?gHr%D72YoO55GHSET#g*v&)ZEpJ221oZHkF{k0ZVi3Bx8I}c68G<`q|g^7!5ss?MNY%h$dAqu zo#e4nv-Q7}@O$NAG|S-}Rf{J4AdmTp?&3nr(O&{Gi$A*FQataZax-3Pr2QpHN$DqT zM0K=Abks_yfb+f*eo7g?nCp<6`e=|-Xe^}uYgqMd_gun&qK|Q%LOw^3M{&x#4*BY9 zPHDFv_l_0t-(mW>!+0edlZP`1J#O_C7x?x-_WcP%d&0LZ&*|9zv5p%#z|*opoK*iA zjN>M4_CV;~@C@h841!~?Tj2HTUGI+q=#Es$epKx~+bOtKE5p;bCv)AB_UNk6cLj1Ckv zD2<``XYr&u%YSG$k-Zb2?R=fihEUyX^a*itwLBB`f zhn{2@mqwj4E4Y*A4Mt7h($q{{D$RyBCl;f6-5lld59C*!<&#daNA;uJn(BzrJy>e( z`et>IcG{Vw6!z+~(CEsHc-Nn6xDhO)yQ(`_yZSX@ri5_)LZlb}U9cx+&>XdA5lOm; zzd8kH^%+CK=)PpOe}c4UvFr4o6#tSA>F(h1qxKbEWA4L$CJli>GX&YgxhZw(8bc>0 zJfB`x!JH+ZOB=tKWHEm;?Gl)sQbmtV$oq1Wu$!(83wx@9anA(?o5wJ_gg zBsjkyU;eBM8xz>wX0Kk{HB3L(ZEoi%4`gW3aWuhZj1Q0s-nfcBIXn2_5t75gL zxmsyxtjhpT*?jE#M4ECD6i4UhqGb>=ZdAwOF5$VfV*zD-md>^NP;gPccU)QC$X{8b zZ6CGas!-T@!oqzQ)rY1Rz)*&&9hV0>Zj^Rd)4Sdo`@egku>n_0& z%jr`BwN()uO)7reit_vG;VM;gZdUdI+HCw4y|DGUk?K?nbAmuBWvlN%;oc;UW{_c& zo_`8(i*&#(2qAavyV;?p|9V2+a%;~G(ay5&p4TB|jKyInM?Kzcm4X1oeb>mY1>A%? z9rC(*_Zd8%wT-VR=8Vzw1Lf`3)eZL^Na2q`l0F!G;Le~4H?RB_TIN7<56~VHM^ZRn zme&HQs^KgWdSc=l_{0@EafDPzP*>ro&!OB)WSiGSP4H+xnN+E^t0YphO>Uc(F9g_H(iDSa(L*uykCJ>ps*I-VAOi*gUB+SHb^=h^ zba*a&&dv{p(seR~8KRd%<0SQGXXI>2%W=Ro( z38Sf?%DtivgGZl%@Y?U`19N{CT3e_y-i-4!DdJvhQQY?T4tW|RZLB;3P?d>MaRKK% zK(Y)taNo~Oa)}YraHGclTKn{ZPbXB@v;_>dv`fTda@`neVOxb!P8J+M^fRjXx9FGl z8GhzvH%9UQB>IW5UY}zb48H5#)YBPX)Af_TbgOW0_!r^GLxyDzqx2bfES`(2Rm zuL0dn_LO=5X7YYc#L(z#Z`|UwS>C2E9HG!xH4d4#7zQ<~n@d~q2U22=JheWeYT(KR z*=MiwC5M}CK@z-lCGGP<*+i?g0Dr9mgBRBnTaIb)jQBP#^u+u2wUNt%^BG{c{4H1P z#;%E*3>SGvCHUGid27a*e=eElyORY>V{J5riN?9#aUZp+due@J7rcxSJya5TOLDD1gj=rMAZRm8dC zaXZmtqi|`%J$o6kwAL=;21sjx`}aCwKNEBfaX!QD12B`Vy*`*qwrs~-nD)E-O_r^3 z`j0G&jGzhE(WosNt!4m;j3!?m?Ql`B^#*zNm$R1)o@rLwY@fN+GU>-K7#5zrVBoT{ z{@#~Z?H`$Y*Ztdga@tnu>z9d?rG<$e`$H7(eT!i=Ylj9ZZKmIWpC2XrtSsDwx z+81ywbZtw|W2PIf6h4TRzrs-Rrtix!LebkratBj=oTMk zwQ?*mipHu_@V>lKq_v_gV?A@hAjZJS!KqT$KP=bC@f!@ZJ7-Wpu`p2H5tm;Uvc+ZI zfoEB$2VecA5FRxr(vgJ)lOBjEYvN}W`l()`WFF>$DllHXBYhBhe3sQc_^ywpA~krr z(1f|N)o5G8CMH_B$~-j80$@S2y7!&ci^+y@4SD>H;{M8#nc$wSkGIZXx%>lp zWG?**=tuf@sNGp)R=?y@-L-rUaCo%~H@>7n!CCkk<(wFW(a-0o|2ZWs z&GOB`h2uYumVz@SlfXv!j77bm@_O?dMTaT1Fds;gO+3uLX>Q;hf~=GFxwqJp)Q-+w zbkpDg#F2NXd+j~Z&QDz?6f@NR&J8sZx?xZ5W;IKJb=Jx&j_um>5D0;K%FqXhd1>5?gfMzR5F=MMW=Lbg8 zmOlMXSz1jk^zL!%Y27iI`M?dAIZF5)?H~|Aj*Z*yyxIPvC?M_EULvDg_KLVW_y@%s ze*{W}&fB`1=nZ^4u5Nj4Bh@U|RI(LIPj)VK6)55FA24$hUVXbdVTtD|k%5Fn?+S{Q zY7w_=u9Q$ozaFe27?vssJ>hrVF7&rz%X3j*66TyN_X#PdV&MhvT5h0=QS#yvCH#$b zOq?SxJj)x%?5_JD8FuQJIdNf|u@oL@+@sdRT?r8#D&=JVG?&W{hR)}k>ZI7#+XNJM zh)+Vp-W#E;JF)Qs_^3A1bTc`$MM^332Pi5Lx*x1-mYx0mH$WZb4-edY>i?j;`cv?F zE5~liSVP6dhkn$b2oLvBIQQnH2p=o`jtj*EsF-tT_^kRwnSm%ert&nuRr{ZmSG)PI zSIEwh?b5c~nI}$e6Vqv9FER*xNFS3A-X#{L3uXy-`EN`oDvH2a3l3b@5=uK+9H znauB9)a$-|`!*p_GPA16I?)KdR+lgLI*6%v+P(U%T2-Zyem2cK!DAMoI?p(Xj)vQn zkaqp0e4WqaUEl{{)N6t|KL=!n@A>@QpuDHGm$_{JVBj9F2H-1|75_FZ=Tj>LNBNn66p!D>uHSC}rk`&l-0*W)G%FpL zEB`nV78=tuW`yV>>wA5$G#t+O-5TIAS7Dx!UL(oK7rhh;w{z@JMrqZ`x}Ej<@_RwV zcPvW3oiNTn=aP5@&CLqGYhKQGyvxCxa)bw9VZ5MxU*FMYKS9`hi3FA>`)!Zgz8ik- zITWv_q=G?@(#Jo#kfbFWm+BT7~oaotm8^3RIYG5G+4P9&i&)tL)=Vys&4Ny;tOmTU&FeulfgT0bgWlI8rBT|YL!lePNE_a1(IOe0i)N7CZzGm8H& z-0e^2v@cmUgDlf1+3|w=y>82;chuy#)gV78Ml;`guzy%@E1jBSuGCQsV#+3sB}P}W zj;;cj#a&y@(fSYc-gGto-OrEt$ zP)Srcw=k#hp^BjVqHKPTI5xHdP`@XC{Ak|r+wy3Olt1Biulu=H-379#H;3HD^1l<` z`R5h$Qw1K%UmYJlUumc?bs4HiWjIy8O*X1F(oZCM*p*l+Y0sXqaFl=IEzBq|jSeuu z%XTNq{y0EB^`0QcLr;r-Q6g(30-hVOY|Y%d72D>eRuBGvlmO zbsirXz}~TjS3AGqLJ+aXG5{*<(9wy z1WwJ^y`*NgtW7dH!&v$h8&hE{cO zs9E0Gl-pZ5h?N4h(QqC?avCnY-q*eisVdB3FgRu#`_hg(u#!en6RMyz%^hKuOC$ zq`NTwX;t1GsRK#M5k!inwXVg}-ilB+B~;1lw-)Q<#${8UZ3z$gES70AtNCkmln%y_ ztu2IMPDmIvvgPSXOs~J|SyHV$&CS_vn-^wP&cplEI$`Ch&-{6}W_h>%4qsPn*Hm%1 zPz;CPl1OlWwf~Utezi$&J)CZG*I@*29IZRDCVQTS4d1Hfl@{7%^9H_^w$RxjSittF zqiX`4KIxcLiK4CheP*~X`eE(42EQmR;i-w-_4L#HY#G11Z}yJbyUCy(ZGy=9ZhTIe zSKH@v&h5-O0K&Q()}CrOD-2{Ro!WPZ?OjW(y-iQr4yM9;m6OQNO24Q2QxwVMJA-AO0GI)^Sy^E@UEM{FXV z3s|@kd^Q1jQ3#thsgyRHaYtyOh~u1FqdsOryEc-wno2IgTbN?U_p9xU0kGQK6c}eN zg7K!9^`o+Mqx;)@kpkYzKh<9u=2L1? ze&ne-ISrHp(l3O?PPQmN(om%3^9NPRyRuJJ5uJu6NzT4Ln2bGDC6(~ra>DnThvUTZ z4>S1&Fq6|c^yjaHr<{o5U%9{>^{RV0uQ*z|ZbY54+zLa<$O_vJ#x%5Qw1`0T9xG?J zWk<}N{>2dOt?99z)lFC^u};AyPN=Lka|bvjDp3|b-kKhHm=kE!;iuT_)4`1~{$|t(ovp}F z#@XWFecIfLLc2mv7*!vdc)NRM{|UFoDF35Jkg2#*@DAAa(d$PwUmD-vdmsj)UJYE> zE{WCsl52h`+y^Ki@{ySjy0^P2wf1&dSTqo2gUldYr#i|v_x%xX?rb+MT_0l+<_pYH zM&BLXYii6%HD>l3#qxGFJ=oK*aZ<(Q=_I>!>#_$U@=a0x0M;VItI!BFi;wr(VitHx z_~!&E&9{y@Chz#jT8^dAmb76|lN#mcLQ=Z3k5z*ga`$@Q;eeFb0k?T^rKaa{uMU}E zT6f!2G;;7+*88ds53jAI7U8XSvpSmEGyat~R?TOExzl|op0TpGfibZ*lfZ}Fm_sCY z0sq=xI}V>2?(grX0lThN_|vC$^)e_fzZ>0BE!SZ0a7450648VJ1s0L5ecTL(WN_>O zH(izgm=3=I4sIwP2{&*E(HhRJ|g3>Z%pz38sUtds)Y=yG-+;g z6=(k3wQFN1jd#}j-TC_`5pW7dtN!UX$OY;_hQ5rTzzz@?t$ zKh7T-szej~NKgB?c~q1UJu2p^H#@#Q7Q}W6zIWaY@jiZly+PSC3KML;qPkaRU{;Hf z--ss^(nrDxgI} zTFDIp%W`EaV`o_!xjC-qnvTc2tD7k8z2K(j^(CWQ;7*uA8|ntLyHr+Ke(^29VHmGtAk@A@YNiMW#5<8@8^tWw*30`>({3Qfi3qdkwt zXr}hhokmx;uK)_%h8ykOS!Hkruy;~p_tmyU2wC@$30~gK;d7KlYFziN_g$lv=SV>h zlE{>wfqmd_tmswb=H^b?)-R3o^|y1xS{RRyOx#;10~6_Yt1~YH zMez6!Qg!&)K|%ZdLPuj5zkLoA`=D@C-^9eEgKpVHCv@4_cp8qaZ0$S1^9`z>c1ZSU zPGF@EEHR$ilPa~6_E_nnp>gVz>`A(1H=WQuSwM!`F|m7Fd_EinN;6mmt#A7-?L@5m z!{0beHaj>>7{6J2To^yLPo3QHRo?I~$VEu!fXuCUC2fY0)A3-iGjtYm0??0!lhxSn z$%%!EXLa|?QV(gRLof1NX%3l6zjiE=GvrCyDRc-p501n8YmLT~j|2Vc|17~m+Ub+qP6F_py1vEiy+o&e^ zcbNR!S#1 zcEqe{F@5L)nw0#$BD8(_v!p5sv==_G);vG`n9Rn@uxEkVbG*iim2DfC3+VaDZLfu3 zMYI-2coa{g;#T1+NyroQK|g)(8iN>a_3;K2JFHb}WvJw)()4Ys@dhS{{MDVEZXJD& z8{}jpCNNol8^pcOVt(te9G@zl8=@q%5>3mugs(7%Ofl<6``E`izegr>08^3NS;4^A zZW~ZP1z;rSf=e5LP1mdEmrK`K zYUlDoMRg5FuI^z1D?VT4^0s$QV`-QKh0T zSwi;dih62_QEOunCZVKp`Idl-?bZLZ&J%1cW7xKIn)%AS+(Cv~!Tj=rs4c|1;3e6& zY@R1Sp}qYM=^>l!LGQbT8Cw2QtHw_aGPh)IaQdWUy#xOfW6Owq4Ii4_iL9-&csIn~ zG)HWv>&_)?KAduQDq{Aqmhz4; z4C81twA}aj+6_!9_eDm&_WWv^FJ*1gukPYWYyVi}`#V`1P1vOWq7AR2ZmIcC0cwY+ z+s##5_~S#^IhvV{p9%=HRc&PBkbnya6hZGb@ppA%fGF1R0m9N&TouV6YD)(nIV%c1 z#2+z156=At8_7D5_gk3A+=qjHrcW7{P~l{211GKgzKJ8K0Y}2P5r|x5R4#43%(L2x z^!Tyy=B&r`?vE)SoAh_4 z?+T)7J*jMXiaD0HlB#?Z&(KiwC*hlIpkUfQOVN*8=LmN&+D8Q8CnF^3!Y&`IvVGRg zFR_jlvfwZzFS5{dWx^qH67YW@Ic}J-ChlLDd@JWLbu`GAsxwh*=<3DbX`+?x!g+1( z*GwxgNx=5hh%u>81#89^lVh{5Fb(~~W`m_2PC+z>o_&u{G3>}tjE&*dVdibdN-D*Y zTjq)3Yqh$i5h$4$_8D?Oe$IM3BBd=d1y3j;5}&RWbYa&;UC*bG*E=2LrZ3AU>Wq+d zXU#gj_W67?u-BbrrBgnyZ1_~Xc2stlLTk}4i$riwx~o>E$gxLdoAkNaCVhMEzP-cG zwl;wuK)U6~z_UV3kG&{uCJvsEP<`cpjDDji9R)TLxq+a}<50J?9{$F^%&9I*5j&X# zb#;#+(e8w;HTehb#K{u!?c0>um@j#sV+BVINf1~3O=^hpqk*-(isucT42=XGEqPhx zlIdjrJ!yDNy*16~XMrOdDHnIP&;{xTjHM~EAuxljq5U~?WqMC0#?(}*c!XcD6>SMW zS=iE$Gu!~@D~`Nyd>)!e0aWI#78W)T4TsIenr?&upogC=G7i5O#iD(=;-xA5lA zYcN*g5NWX$6P#|BljieEfA*c&wz8@Sk2K5AW2Rv8y_I_zcgN)BVl=iZ@jhAhq#;G- zE!jen6LiGS9k2~tOt z3ZD~@ZpmBhRr{q)=B2H}8pPHi4iK&Mh0tF)A_YA%)iRi+{1f;8uyw2tItZ~D&Wf(z zBW9U`d&FiHJYtk6vYDa2zF>BoW6P^cF85731v+D3nt=KC2&-4`n)n&w+qST<@TPyy z@bHYf9dJvS&xYJ{M;ljOlq&4+DKZ73D+s4NhUaSB1L=tcmgw?q?)vDNpC9PPI9!}P zn-7Bum6J#`+AI|zrs92m0LZV~yUfsf9-3(o#Ciw~9KP$L!>`rsM)TpAy>>ImWAoI-doVDC} z_p=rV%?)L^`FN~;N>FB*NKq5Xu`sHizAG~)PEr&FHy-_u& zxpv8~JR6HL-m94K9c$P3;<@&VLZq8*xwG{>a!u3s&gCh~_h+ao`J9n7KvjxL4&le< zN!ByB*wWez53s|fLLi!FyS0apI*5$DqQ0oyKOakufuWE-PRyKW(Po{N-&Xz@)<8li zoM1ipe)pk+_($joO;72Plkc&E_${MZ#%^cbowx3u+~g>q<8hP+oz{oBJZx@gzFQM& z?|pIcS?F^m`l$_P!|%PRQ=H`Yi-Hcd9mqjOdRJHzcl5;4q&w&N={f_0mxUickU_>p zp9bjqR70^?f%do^H-LmN65+${`brDc+AH~gC~`|6vISRoCo?9$7@^$71RtL_Bz|eetuZog4;Ebk^p=#*R8KcF zMygjoQZPCO0oGgdpBN7w1rDmGsyrkqq+Py_xZkqsy&qVfhju>b5xzdZvxw5`g3C_= zhuUV6h^g2!0z=eSb;LhQ8JV=B!joH;KIhrGU)2oHLi@^d?8($Drn>4u)1Mu|JKk zarj?r&C1uyNxC27+7E!(z5eO;b}xr%C3o?|g1T%G7-=)H!6Do){B5};No{2Mspa0+ zN#p`6{(|zgeaQob`vi|897zxpP zsyh?CvlAkNk;jQir#Cn@|NhQqyouDz(_*j|;b#j+<5o0UO~qSAT@ZX}>FL4M#y`e6 zql;%1imgBwd%wfAAM-iIH;Abu!*A@j*y#|jAY$t{ckf2(ic6jB4y}V!f}PXn2uzi( z0rg{&I`FiHv=@8@p{{7QVmbrjly`{y-?IAm)^owgesP|aKFUTOFIzN!@P@$G^pUe@ zSH=PAsG_BEgHjq}ZmMhpC2O+b2~)c^Tj^UPgD&>wo<;{hK?^*PpWE$`DFwn;r7{Q) z^DkHtSvC<<3P&JOzP$6xAoNrLGCR7NDhw559fF>0X`EEkVlot=Do8cx381)yr5J_r z2km12fLJ76m$}0s&!{u2c4?kfox84Dk2`3A0GDMd7dI{83RAWy)u1qRKTzEoL7*V} z8`o5L=$AaDm0#iJF5O!3p?a~i+$Q}&lnmRRGGv`q zB8vuL%f7JkEN|_XD^*fx6*0llW&;F>eu*HVV6#v$%U3vHO%M3D4q;S#arRl9knXIM ziNARw(XLKOXvME3VQ?~eU6P$D7qQXBRAe$AzQnRV`ED1cR#R+_K#a9l2J|{c|TD+FyA$}9fW2v?w4qK4YaWXc*fP-`#_3a z?@wiWDFtTl_?*kF3L{AHtP%y<5uHtcX)7tk2OZ?_4tV=(>mm>5ers3!GaciN-(jL_ z`}raJa%68ba*L4N^Ez0et*qOjYZYg>tqfw)ZjOr$O!NC&PLaCXH%{JH;rEi7g1Cq|I`88(<$Bf0C3H(ymqlz_n?Z=K zxh!pA--MPZ43ZM$=GK_4NUxVz>!XE4;yuCXy!mT<_hx+xa@@+E?xg1JnLo40C7ug3 z#JUjn4+zen1jFC0FPsS;Iy4{*V@jaqwKu#YXc$G1$k+^A2a{m#gnTnmS43@MwztFi z&861OE6NxVD=K`mAf^M}@mjbjc9NDYv+idQxLR$3Pr+r1rQz%aA=32?t;rKTcl1eu z{UA065xO?~Ez!E8A98OQ>urt$afJN1Yt&@8x80HV+S2;bM99N&W&UFV1w}X|D_TE?NQo2!+Clqqy5XMs~d|2Udvik#^ z2gCfOPdg^K?m14Be2W zAomKY(jRLiSn>Q`H6oPIr8&lLY7A7x@0(J)5Wl@}b7@3>i<#2^_cxB9xtHjxRfbT0 zm!BVS8YQ&O4X2~np-t40#nsyU9qeVGPOT)j8>lQ*!5FYSEOrQ8aQ5GsqgvkxB)aR+PoVj1C=vtjp z`95iL-=aY|Rm-v&u4X%_uB`UfEiL*P@GOB~7ta1<@y#LM?Q)Zi>h%Eomurs8d+jN_ zB{~y~T+95v+#>pB%9;7iTcKFB_n!p)s~Ks5F&f^UF5GN|4gb&TrXF1@=3M%Je(crXL;kO6TzP>%Uvq z8K{*wig?GkuH-6A7Ljv1dklNj=CyY&rr^jC=f*a5D^fbh93sg-CD`;>dP?j8Uf zWD!&s0QX4tv|-DI%HkK~__pj8Ya>&nN|(}ry~lH}fQU5p^m0eTmqSe8b!i(0UKitO zspZ_v-ksA2VPRAoxOl@zHDzMOz04d#jR~y^tZa5~Tw9OwW!|Y7*S9P`X!g=`KQ3Ru zpCB}SZgC(2XeKjz**}i*iUW%d<>6TPMEMAzgc|jzBvtjsf2Mb>cA8fEBlN4vyyJyr z8TCGj;C6XgL@uF4^(0S8K?KW!7fZJ+GrYvNM_QSttl{UmAxd@(lsd<~{hQC0Kooqu zEwDO=Ik&3ru`cDTwJ;+omFHl(5YbHqx|e`p#7(6~x+ygYqO#py*GRhBtJ)5ZPAJ7= zfTDsCo(?7(&M>u@3s`74BR_V?`#Q!1xOTb;y-vOt(+$gS72e!gy1z79?~r=tSEYqL ztaJWFWjO>kl~EeqGkvh3w;7!T2iu2va)}F4ybq;4Rp(0j_?*|=@TIbx7_;^cwF?A6 z#t@RFXF>qzSMajqgKXjVdvkc?-<3VK)VVWM=fE>EaM^Yv=WB+LhE$AlNEd><92Q zf+tGU^jsYOzD3$ucSgk(j>xsR(`V8@%uwT=X;Ya z+izV0}(j& z|A!9Ga(zc^W^u7)JiKg^o{3ZcHZ2n;HrBvIH=KdWoNWB#zr~JsYXE)d|Mu)%v^f=G zH5zR&`tq&|vgB#|&!7N#zW%Jc@y1;kMsN0YT-n=;nT|*LN5r;=;^1gdwE#%1C}Vtv zqhnutT-_^N`f!=>)!Fd4XrqhV7mJ8g8w^q#2E3h^tmQu_ud~ZC`*yV(@kJ^RpB&Kv z6@)(=Tp`2-pF^89H?*#qY}|m6#nN}vYuPFCL*a9ud-LMlA~rT;n>6?KiK(QqqX;F? zc9Sw{ENz&M*h%QCVQP6LkyReYEXiTk-wjA&mD$C$d#iS@{tOA3n44&Q^h`F>u2OSp zU;N8Vt5xw|Z?CJJyg6=?h;*C67#>*h{>t^Tide4Fi5z989w_`pi&Hf-mGTM@M+;|p zJHd3$9cvywmubhyf5Ru<@y1HX_)y7L@5c5eA4ZD~lT{F=sJgBygLV~D*|CzFUDW#= zj6B4d4*WY@ViXW?`kGv~xf?xXsPCj}l*T+|7)rYevp$=rwti`&pz=Y1A;|gzLT{g# zM4rW}O0VS9>K738UFYcjxnKa@6*ZnIJWpI)GLQ<59XkA!vxZm4Dj1};7tX&Syq7@i zRmf_@eA!{uT%S`=R@;FAZM;Fc8*z^O1TDTE#zQ+ zQ;O<1%wzXJvyp*08~*z1$2bGS*+Ee5z!d8iTB&T(slvzjaMIa=VzcyWnAULbKJK8m0U-j#hBGELlJZJR%+9c3!rwNXH8#+%~Xd;m2ASc?^MvqbmDZ(Mpc6jo8NH`ds+1z2VG#+N*ZkN|(oHS2*PudM$xIEk6<)KcVERetVp zOHV7NkzDOUny}MX%MK3v!tk1%826F`9shwiIp(s68Hiw71M(w`hvMd1 zY45{gU7x}fNn+$$H;R3kz*;_)QcdEA)|Hh6z8iwx(1GYB88&r)?$BEKEv6|}ufJ2F zJ*_wJa(ms(*$aV#S4QdX;eW_&#dsWF@fP^H?FA$2?4y_}yS}5)I}-N~Zv4dQlUxD- zU3bHFR(rNmY%Fn+*ZO@1b0c_6^apT@IcqZ3~NX~DUis+{D!=4 zw6BzPD@iA8JWz#GSnpF$9bT1HV{ApaFFYN254XCRsp>Grr8UXel9YIbB@gB8tHWhP zDPSCtpWUpdB-|#8H;R~P0@P(iKEL}$D#c4JAY}bAqnOTRf75$pQEqbqpBjtA-Q7Ab zG0p5P@0}0LVb7h|68(9nz6A0z^AEwF?WVCJ>1uDzK4~9(qqx4_9%ltgOFY|Jd*jal z%kHF;P82tMjFR%&5AYnGOXLj$_3w}*KSmJx-~)lMuck10Y) zVs=S(4)-7LBZh{W=%^!4QP+kR)qA~5ph_^;#!Fh89Eei>XcB*9ZGIDN`xYC4{zoG_ z%@BWAsn~9<%8G!Ok2sJY4JbqJGnXj9R{z#PXraqXcly!9s9mM2SgpvQL?Y>}FUGx$ zv5_(NOURy=qG#DPC<5=gFC-=6HKgA{@m)BNa7T?TI4~eA)88mUlBMPu&M=q5T(15I zqcl<4$Z!m);Tpn@S{Ky`EdpWs4lAI>L~t{ABt01OvidYnD5)2T4SnG!EzSc=vtIL8 z4RA#`u|VZ#rP8)FNqnoC6#maK)j&|?!fI@>o{(a)VPGVv{vKJ|OQYBBtc|BU1%EV@ zc#b5PhGW;V;H50ykx7EegS?x9H~y<>Q2~7bF=^D`voKkf~WpOadENk#_}LYQv=PAJmBlKU6~uGrrQaRkAtKu@LVqi z7aWa%vgpFV@V%3MKEwb0Yjt+!8F)DV`u3{y{_p)fk_Ksd;Mw;Wq<(?N<~Tb~5Ih`g zZU&ye0r>x>iy|Wl~)53!K-IuN}-`*|>7H%fW z$ot1ItXP<6lImENGE3TuHGhVR{Kll4{N+6@&zFm!fv7JG%7e@wt06xVbB*}eZC_Ux zx}qqF#$0uBXl(xB?T(g^po6>7T*cDZ96WEQX4a8gLSGr?MuPQzNLV4D`{ixRnslf* z^0q1Tb@#I&Vj6BdPDp_55h8^zD@&}P8qhfFr^^r9|{Y!)%sbjDMF z9j)DWn|Wrw4CMJAeh-~I_CKltv@@1(W#3tKC@o^!#{f&#mQ4J?lDAkWtz?O4lA9BK zMPq<{w3_@p(i(qaJic2Cq!t4xHbtld z`h#BvmNsPd2Pr{b`3NQX4{Z*Ls)y#6x_txB(m;4*Wh#;1PaX`9irVU!qYVw!wwNq! zmA{J9Ve>6__MqoK1nzktRC2krZN7SP#bl0V2)w>9KT^jZE>?&A3=?Q@t?_H<8vE~~ z)^cl0y4clPmAuy@R;xi4UCUkmgOfw81>^d8mZNgIQcHlGI2j5m z1nJyv)D~gv>%!Zwt1Wz9(dhrSF8KqgvGRwa$cxn_j;aXj+KsKkMmmVsB=b^uloumv znp^{Kstu|UD^8=#*QsI>xfbwiQ{*Aya5KV*T4AvO$ltVsH9_olS3(el&828HC#ct^XQI z?K=z5tNI5EQEUFj7xb#Ym5QAOR<#>8!3&cu-?&D|HTjJ1+yTc0Uf+1-Z@<-l&YPk3L;Jl=2R;$CEj9Cp>&gx5n7)Ljs-ybO>tS4VjJu3imn zbWs#NR^)nUbo%k$tK~e09=YIeY2U7d+A7FrY4i!_g_KF3Jru62D|Q|>7yV_UaJ=|t zSLx85O&J%pV9XS%Nx&;#rsY)(Y!xLl4RQQ`eeJOfxX#GGe3W3Kn#SIz5E~j^pSh-}RH=rMZh8M&!;Vn^SW=Fxu{TYUNr-oV(Bw`CK<)9ZKi$h#%09kHPK z)tRIO*vYvZf$B^tY%|<~taV{Wj+nk%d0K?!vOL+gzEvoZ&I_)}0Z#&YXu3kCr9c4O zUie9X_r|JwtA}Q^j@Lrh($(mBubTTAX~BOikaFdN7|8;LQx)PZ2RMAN9UjPNvS;AA zmOZ)VIM@D?sVcc6nXINXBi3K*Th^N0?)+r?B$qeis{$@>@&gycXfDopWto<;8O_;_ zO3mmX&**Beg?9@|axJ1>%6x0a*ZRj_O!mXl?8JT2Bj_Fh(O$1;ckTQg?VDtRdjQVy3luc;j&+v@jMqrWia3T4@d z+?x}5Dn()s{m)@!n>u6j&DIl`xmuf-2KvFt_FzzRUaY;$v|SPw@iOvGB$JmV(yq3D zG_hrsm4r5o@UVJy-o`{*Q8m@hFuJ^j{K?2_=>Ez&HT+|W_E!2tu~G1dI-`=qRhfU( z{ir9G4#l1R4L2d}af2@&k4WER6$~SB>Wn96ky*w!)22rerg17JVgYB{2XC|wW;b2a zmegkPV8L~Un6@P)qt#c#%xepVPe0dmzD@bRs{8J!rn0VYXB>4LL`PH<4Khj>5J6g~ zjs>L207{c4MWk!!1PC)0qy_066r_oC1Tlo@poAhI0@8^RAQDPUFa${Z&J9d?=6Tk; z*89EdTi<%`Kgzv3r=PulyPUH_&GQ&<+}zUqEVVc*!d&<|k&T0Zv2ZMt2wP4jBFpgU@nA3&VVip5{-(y&f((PJLb*uDrC@K3Px_ z8gFj060`I**SVc>kl7rEK&l6)INN0h;0fmDzF*ie$igs(^ZGq4R%KkL0U63GR#=w) zPia!+N%{RZQCEkAz_3Pc`(Uyfr=duDEQP8!Q<2R)Z8a(Kjg@d_!^vkFiU@5s*TxHV zp3s@5;unKr7rd~ zt?e@RWJ`tnDrR*%e;P`;fnY6-Ii+m!Vi8@d%#VKdjxFDRx9j^hMY8YB)LG8uMNx_TRD=a<1y$gl1NuWAyE zv4d~AQa&fls=?_3Z8H-|;$@+FGcc^&xE zsnU9F_kbsTB2z2-=e)>)7)&SW*uuSyB=1lClarJCCwziXYyKeh6<9kLM1^>&P5oJ3 ze&qiPP7N}cK_&fvC?F#zM-w}?xFnt5!_#`IOTkIH4;p+>bN=H4^I(cXA0iLCO|K## z79QVQHLd2i+j~)DuT1X7811@sjV%5XSDBuaq}N8m>8{;%ZjclL7lecSTrTE-r?d3X z&$co@=&t#hRzaEIz+-ixQXhNg<6peIU_r!*8GdebZGM=$XX_064zUBi)KgP+op6?3 zGddd$Zz!_=?JEaHLibfU`-LguZ^I*Ui5;-UX|-o&qzr>xM4TI9Jdc=jj~T`0@WXvB zp6>rB(gCtT5AB-ccKO*JT+~S`7rHUk7=o!Vl-hWt)hUd)wy{Q|`YnN%GRH`x$31OwaG8F2SnWsl~9rcy}6c zb-)mv7TTyZ?!aI=WE0)W(m|9gnvDi&Pe6W9ePsexaa0b!s+(d*2Dd2y30-!g@OzP- z8cF;Zaru)JMaEUUj~;W(yZQKvj_NOyCRujBEa%=5tag8o_sG6_!WClOhriDMgL7-^ zE}AIgmicPJJI-Jk7uNVi*LC)~>fAKs3A&U3bNR&Q^4c0(nWXGETL(}eK?wdNVNhiV zF!2i`J=@u#YMlb3Ouy0B!e&laL6Q#SFSEn3}G{ zjqzA$QDt-g&70p{BZQT>1GVSoNxtE?A3!??%f>tlyi9IKEXLEq_X5e_RK$rjrQCt# zo1EVHS^(4k)}O*F88mqMOg=h}hE*nLd41C(4K0g$GPW%Jb*QX%ugEZWO$oQniyW7& zc4QDLc<=4H_&C_tiz&W`3LRYU%o~qesBptGdeDotoh$eL>{JIip^X_)wD1MS&|M4IN>?qJ z{JvGO2wc8>GLk$WRu7 zgM&ODqMhq@Y-5C1W%L0(O5BiVI z|38km!P@@^E%@)SOm~2)6$MG)P#Wm`lRhP(rXQp0*`iL$d7jWPSSe>ov zit3ofY$v2)QO^Z;j;QDk;e!EzN~=q1_`Dcee(~1iJB=6CG(1Lc)J7T$&8^-Lk5H#e^GSD zy1z>brDARA8sANjs~4>1Yn`PHNn)d?3hYrXE&;EvqFe}$NpqP>b@w~G0`g1Um#6E4 zJKCoRPF#`M)sj_8f18){J7gipnHmydoXf7u!R7L!C%&p*N!^>po}=p=c1HClCQ4pd zE9767=WUXgsFv6-w?)bHgJ~gdMGL=Q&Uab=ImNp&h3#%UA?b{H@jIQ_&k{($6nb?( zAoNj|8;ProfdL`OTY!T2HXv~8{`{O)z3oCXL<=gbEj_V*8?tSPMQS@{H@ zdQUrm>KdXXzl}~kGB{q{TvucCjD3R~ZzLPtOzZhQ={ZJ}oOnxreZ#RhM`o*-C)^ao7!-3Y=rnsjXPl|o4)n8VCJud7VS?=<((c!!;7}@T) z?V6R>QT>DUOwsK)2Wgp(9%LcwMV5*o?Tf~(-69uvpi_+8S039X&nx8;=iw21@lw%4 zCey*Lt?btIYJ~_&rJ7G>mYwc-pBq45<-xpJZ@5I}y7?<#L>^c&TO8M{(E1IW6l$Zo z3G{b$m~5li)l3W9VhNPDc02^f?LLus0wpbHCdEaD4X(h%o~C9rsl1=_R|&vO*vH!A%D-=C2I$&LYOq{YPz=R?K+SQ`94E8xxa^z%OxP*v`^d!m85+9L3>`zrZyB z-dQT^_SwWqm~S_=cEE5YT$yaEJ-u2-uNYnGHIuIiy!3TW7@pTjwL&L*v>;u-GFM@Q z`?ZD#tE+%TOTPP-ibwdtuUA%5y>Sk>J^H?J-x0Op(~-ItlW`d&oBM zJv5L93i5w^;rNiX3A0Tj%#DxK!B3JG4k1`0>mL|*hg)18PC~Yry*N)`hN+GW7k2w5 zTM?xEh9MEnTH3(O@j|5$B#Tw<3dx^;hE!=FC{Am}jiRKg_CmAL^^4B2`iO_DPg1Cf zGa)*rjAf{YNyM%2r7mi@zawJl?lF9Rg>N{hX8&b zF~&;wGNu%&k=>iZ!J@>6!K`=trfOm*Ts!}| zzYBiF&If3V1W$dwwNb{ zL}YJ54KCgj+8!@|P>`jXC;822#kkrm>Y4l2JL(@wW9+lfAfl~DSIxXoC-4eojaFUs zbLfB#*6o{9;d{hSGcQ!Xxz60TXcl6?ADbV&qGXvk0H7mFIXk{LfUwUs{c+|Sn-3rA z*MQ{9T3H#$MrhSU4*6_=`=;jOqfCodwznNmjkdTyBA_Gwb6^M>Y3BQ#bBM@Cp2-4{ zrqX#_(!mHT{m!Jw9zpqh3?B*^MJ9g}zs;N{`x;^Uf-nU-uA{y}-i?nw@mf%q6^MHM zks;$6MSA|HVI(=UP@2c5ZSQ-kZu02hQ+P>4bL}T!WaBNr>WgATXlX?Dfs{f+J#|o; zdGI&}=3a6$2lnGD+N8d?4aNQx=1)Z5Qz-NY9bd`@s?XR||KI)azmM%YArQ2$KvgLT zQ|Gy$UKV6!W!X?ryY-vsioPBeXRqgL`{Prc70U@U(&q+8&{y?;{+Vq+hF z%rpU}L;7wyg(r+`BsOrqQiB4XgwV_*j=*%@)+pmY{R_M=(+(M`pL854E$bUxRBc1) zBszDW!OR59Pp<}`iG>Tpu>7}F#}u7RVj8Rj{ki|t(0S})DlxrR*fhe}IGcyCTkI&#s z-P8{-c|+{$X-jkYGXIdG$ys2}NEI8EhDXTL1u|}Tlo!*@vbY+e6!c=y?g6Aj3IR4& zh32GyM0I}6$MM;Sg|}4yuXP>Na>%w)%KRk7yy!&`V(u7gR!0XId@ac-IqgZd%O=v@ zCG>~uxsb&>EmVJ4*_4uY4;ULzO*#>2p&h+`Q^S;Y>SZ(@k#l)@LZ)y65$Ah;q==`7 zY$3zaLw7zFPOZ%@@G>k~DDb~Ydjj&o&gRFld~4Y8zlO5KX7XRJ0N7spYbZ%~%~%=# zA0U1?Y1*z1#{BJ93dp-!SHn&_M)Dotyzpc3xVyd1CuHk=j>-9vJ(?EKa%dLA??8;F z6D{Xnz8>RC4c&8L2x>X@5qTWNcQ9T-XlkG zmsIJ+nv~ey9$9u}UUGnGLtXLYI>4fn+XUv?eJU%h~^hqx6w;c@9@G zFml9|c|0PS_{IP!ucFC0)mU;{5B`CUS;|=`D^p#KcvH-l-#OA-0s?iTC)}^UU_c56 z_wKMZ;-QJ2?%HG)<)})VGIR#t@qjd6+%EKW4LH9D)vBV==P2FGCc|Y~$TZN`D}9@* z0b&VvnXD-gprWKELX_y4JVFr%AD=vZnAz<^&ZvY^&njzWAGlH z@Am`f&dVQGiUth#hx54ok6rY+kKdVD-+yeh_oV0^rp#Fft%OkbizB(Ff%arfLtUb>iPeK_`6VCC#B8U z-QUm#vYg{=j4?V+Uzn-2wT?Yl(+E4`Z1IrQTs8SUkGJX>^sF$mR#58rAwSk}G}RIP zUnBV&(JnABfLs3H_KsoT9(lc-kl9S!={CzvWO*H!lU0H+6NZwKl8rOH4uR^q2bW3a zaGx$NRvDG2-ZiwLy+nqJH>ttlYnHi}NHU53<03U$c%4~V*D{G8e)P%0*cCE~!k(G! z&Q?{Ag(`jdGi0X*1;=^{#DUHCrs&c{kl|F#LVivTi!+eq9ZY^I?_mHLr>yCp>wZuewL*N{A`Er5qyPBJ<9@Bsb8%q<@X*)5xU47*_=D zV2B{iNE+kp$+nsuld4S^!~zpBLLl|l8FFpKp&wb@>x>zKoC2Wjg%dsuG)(^dw>M2j zPR_t5ZOP9jsu1JjQ8F~rVqZSH4~H?V^>=cbN z={8AKUrUmdu;nM+ZB`m{m3S9loH#+b-t7HlBF=T)FGO-0fmC%4P!Cz+YAN@3blvY% z#jHa`Ro`DPx4{1}xTC_xPVkpd$p6vstNV zxFZKu26J(wreSs*^qs?r^i9ci(+P#vy863~T;)X#xwphGxkC2-NE`7cD{E?K@5h*- z8pKx{H;-$te;}rRkfr$%5O&i%mw-oVVkm$b^VKd^98HW-Z(y;YgU~hg2fHTinvUX( zx2L<)DtUxmXSu@nl>6_9C>jU53uQ>4@Gmb8Y8W&nK7raJE3~y-Lr3ZPi@I%>(-M;W zBqBLzXc%^ zehPPuiO9T{PrUa^dfoJTj5hRrM;7E=F=~oGP*pA?n_kvrX>%=8!eFW<4h^df?t3OE z57lFJ_qzUJZ%S2g?mTSXNI}H4Gf=#PeVMM^#TXu(2~SyqJfV>XifgBy&DFy?nK%71 zIUi{`ZF z*Q`(UKNEcw;c7&j)Op~Dlcf-*ji5?pYkeA#VXo5|jK!KMx`Wm)f>uwOLqFcy83dIf zm=dII6P+>mM7GnVkGD&}+kbmv*n9oThQ4C_Dtf2vOc>S3VXXyKQ25IvwrG?4akqw* z(bd~w5TKf9UAo4&IYzSPx!BrRq9Kpwg~^25&@Wm>C|O`2U%qGEwmrTBloG5wsagqn z4|WY_5dGjsd#PS%k=fxa;uin_W}fQ+?XxA7c;^^OOtnJQO2y-aa{x1*N-&wWI{nTE zKFJ69kyfQP!vNl5+)Rx(k{I0~99YgpBN%NN}^8*EJ$4`?}z zTD7+?YlI8%%_K~lBUr$wirUV-=wky!JkFQ0G#o+V`FOf(*yPV9`es-SybPjQ8s7sm z(bK^jpK4aZ+nF+2O;-|!TTZX+X$T2`&8K`eft$E}7{I9D=lhL*D{|-hLY7s!fE9?P zkmF|zu{j773;eA|dR;?EB$mMvX4J}NF_yZRnM05w4JHF>cCR?_8%^9=(gMx4Qb5P* zgauvh^ogmJORbId;B2%}62ZCZg>rsquk&hIvW7h}+~W0cvI(fr-3nQ<2Bx~vT7L^h zppfAqL$df5$B#^7CfCag=i0t@$}8U)Fw2f{C=>azH!qvlQ58izd&RHdLB5w9F<yu>I(w(v=3eb>H%g`mP7 zllO1;Pec_i1Z-WT@3YYH4Q8oN3}jzw0-mwDub9wFkSi=Jbbdz*p`QC+TV9XPLzY*q zg`@V@7+-94bzRlmHvUNN<}$ciZg-z4^+xYE{2CWEm)-lj-~M5{cpa$!2i~Q z1^zc^0W^)b#wNzWNRvQciFBPar0Ok|AYjR%u~xvViTAbkdSp~3TiCE(K4%Y5Tr1}c z?sR95AvWk6m9^U(0ORJeHej6Cm5_YLO!OLnamtng7v_n3*c!7B9Hl78u|M?rZPGk_ z{@+1d%&UI|ar#d-LENKY0OI5WkG}!yLVG{si<6irzKH=Ag`@Qeuu~N1#V@o|L-lhC zqgd3dy7QV3LPg73azo8`lFX|r7x>{V*`cxOyOu;&c7&kzK44SVYO~bEYY>o~K>m~Y zq$q<38=B2{3U4btfM6C@v;gaDZ2b69KcK8c zRN5#L2k>(JHeEMr`T3c+;pqKfNLPOuZ}qb_#^_^=DbTKtv=P|(JPP9W8QI|0k7v%8 z)7!5#`R#!eMA#31ng@8Fm17Rg~%`F2SU z;72=eksr7@8BR8q#O26}O6Bt0SKE$*Qu;*b85BBnd+>)|3)La!?Ta=`htujI1CgUq zQsPtp8mE<1s&@NWR?D7Rv182sCPT#gOz3llB&eY_DOi^8eG0M}T*s=lWH93TovW;W zU5ODPP#0>&?9YlxsV4-YgYds8rT09`t$ko@{qB0pBKWlBX(%ZEyuzFHS5^wl@wEm^ z;cJ;hV$Uh?=_TxRT*8Cn1^tIA)-xW)u!l7)A69BIp?@dKJ_vc7I@lD~Sc zPVC&kn5yq&^R2|Z%sp>T*Hz3p@xYrHXx{*q_2|&EV7-uD;&G9AdC|F$pb*ufI*2#D zi*ym|vdcVaS8R+AXZ3m;=bxk$$Wk857M{|`?UAtLA)xO%E~eEf8o%hD8@FHj#9HfX zND!fvj9+mA&-(+sbpfIhy9TY@a_L!$Clrbe9l}c2_sRt6T-MdUWMsrjl!2DYsXKtk zROs#@QGp=&yU507RYk@O!O*E54BPY%P%#4!;#`_K7{IMj*`|1yI#Be!O3}4hHg8|- zXWLl=h+-F@fY14>U+wzb8it#!+izKee&g?hb|X{l6u|dLU~@{leUWA-RJhw$rtrt~ zRX;kTZzy}rW&*P3ICdn*xs=7u^{V1yMl9vir|mPJfZ^0g3#IJ`pCJc4kKJm*0q8*r0oA#{RCg5AM@WHA36LIT9-(`9v9bUJvy= z8rMZlI_CX&`^;_E!s4(V$!LV}z*wHMaZ2i62B|b+6O2Jp3u>=1>A4kz4)-~x8I-31 zYIq2M?3(4wDjQbSbIUKqyW`eXF6eU@yj6!{_aO= zf)-iU95)eVTC@-+#hf{_mT4M6d7xr;o7Qmfy_9I>(LZBqsyzLGk;u+8(A*fyH?AJM zqzU2Gm%&f^#hB>Brkt<5U#aNbpa+=yu9I3;7v3Ur0#a)?3^bvQJx@YZ1c`Rhc^bSy zdTPMdq3thgS3IVZ2Z(R%Np(H)a^SAPjJ3X>fudL+^Q%lhbD4oQd08(=^bOp0}b95bz_!9RwDRp-K@Y0n|P$jMU zd*r=)4n!cBvhDP235ib3O5phk#`zKP8an~Fr{^fkD9d^<2ua3Le4KXUxA*4q*2JOe zAN3PyM;pr#nu)+>sam}CAn_2LtvbExla(3x0(G8UT)sYeXpB&mBAgdmE|5-}_ZXGs za|x5A>jr2&*bS>u9t-(qv#^JIJ9d8=hcfA1eXQqKIFgO9g_K=7UPw;TVnxEQmsh{0w){*kvPZrpwReK2p2+8q1e zO7?d@;Kp|RBSvqdk6ouzHv_+Q0?{on9bZuPERhEfBmjIMui z+8rvz{KGnZZd4PFpMbB-sEOl!5iCV~%~pCs7xgSqX)Yb29@%cUkKRDC+UGjsrMkF-7fgO5b?M=O(DNt$T>Ke&{Q&V3!Ss%0lfsasx}=Hg{(IUSD5x@tE4 z`!IL$1|x4fKEGS2O!fCC&HH?v>(~6r@nYqk%ekqwav*AX{^jN%>poZFl*;p6ZdS)< zgQ&gUCW#9zDc6ewjwXllS=i>!rtODo;%}#hrYos&PR(c`H42uH1q(?^bw9R`W~t~T zU$>x7!|NGc$L-VKREMWG*%bZ&9(j( z6YwBZlJr~y-;xy`Ku_oar$pQk3!PNe8ty90p@Zs=mPD}Z(CNGCf#mxaFB<=PpaGgN zz3K|?0U?W|6Ys*1emNfn|5&@DeI`=2xuMZ_1OR{#;QJFmnAcTRPLv~95ok-&b9iUN z^z(}1FwYt0->fhfTMpAtiXfi8YMBt2vD`Jljg`U;&fqsU#c02Ylvh~_R;JVENm{&ep7RXF&5ZMqFrTY>C*x4ZEWyUQ4}wxp$t29tKh2n{5U5FA0^tID!{ z+xtOlZFx^tnEVh%t@vj87-`}i7c++H{2bzJo6DOe5jE&5 z#qK0$TfzPYhxS{ps0%)TDAM(uqCnfe{t{ob*z~y&Wx+YHsobZ4xeleS#ImZ$QtJN28aV38!3K4QQ-P(a)2*rh2@pM)CnolhQGOpeVybRf$S9D)`}hH-YRQ8h^WL#PWr8l0mX4_ zP`r=K(*&bZT*S)lApa9XkY1)HCMIfKK?_HDv``x9 zgqjTE!U0xJzP;ebXhLW{=}!`G8apD)wcataEo{z1NX|-dssqP(bZFapYVGHE4X9Z+ z;z4B>^wnmO?Ak%j(Kod}nM6$Lr1ZYZ6Ijy>^KX)S4=Gl%=DcRLc&7kjUt`g@I(#BM+KOB;!_u}@Uvwo1}sLcReT-dVVFJVCmk;1HT*?k z&S^Iu*?!3I!P_6<;T2aNXG@bL@(XdYq!T^XAtkfa9_VBaG(Xn*otQn#?63=5>;rhE zZ9L^}PC25IhTDcBIE%%^KCJ14bCnlca< zS_Ccw$X+%ZU%HfMZ!sVTPP%kmG3q)QUB?vraPX4rr~C=si_mcJ6^J2nwxwZe)$8w! z{4QfoU>|`LmH+fqD=j1(y3&xsALeN}r}g|7oL@uWNh9oc)3{=L zGg|v9Ye)+Bj;F*|*Iv|}%GymakM6Pnl*1kE#_+r@s>s~OJCso=)JgJMBh&$l`x52~ zj6KmU|2Pg4a1pa1Q#)J!5z6QL&LNG**=h8xn3kwkY)_^uM0k=;C z=PCn>?Gj}Z0_uoQ{9;0py+DBR*O|2KLkx}- zs`UXeUyw-=fm-%#V|t>qd=+VRWf3Plb)x-1wBJFc&qKG|ue;bJ^Qw0`(cRogElQ=0 z6|jVry&>uE`SEB@7uJS_D@$KR(lZzzOOdMu1|veID_y_RP8YH!;o5$&Y~NNWvIK5R z&@$!393y}$j!-@qk#%;STqvmIrGPTQWxCar^Ws-p#PL~@viDPw(yPS}BYwh%!y{66 z=UA+r-ROS{rL6@VnM^OSN04h^dIR+}z|(QEGq8tfFDK#GoIy0N`xSF3HD=s5St{s5H;DbFoSA{EPo0ck ztFawjCvJ!P8ty>v($s0tQGOgx{=So=Rqu9`;Xyc9m`f0PPXOllsCaAbbY5Ljlm%88 z8M|DI^9{-h+1Ba>YV5Cf!+hXWKr=7y0qWN)2y2BUT+vM2eROXiA}P+co8dV4mqx?y zUKqNEADx!ni?wMn7qH{{T|^z6I_hJi-9x!SB;0GcL^e)7$wUo&)W|nkc6fPx_}Pjt z#1UjojrZ+_BEZjtaM=MOImDV6$-?Fr9yDgM%e05W!Xz03;gqFRguPi~zXbR%pjuwh<@kD2zN4U~tu(5Ap%X(@*{#of5Dw7R zk2=$Tr*$JfM5L-p%%KxW>m2AyD4x7gO~a!?J#zYirj0h@%peFLd`H&#mf*|_EqoA zTGR0rRQV^mT=}o*-%%FflZSA`_!_M0O7Dz~YEu<7wC5hW*FJ6@s*shS8Fh0MW9DcB zM`{{0lK7w)5V9Oc;VR~W^_PO?GagnbL%By(gP+q zGE|BLM}|Uujx7yV@EW6eDWsp*n9bvqaCv>A;%{G5ooxx-WvT@=%|W$dKZ$_TM|;_a z11hq|EkSd(+{ zJ(f127a!^g>|j84VW4`weiaVM6rg(Dx+wxlG@yFH#_`a{`m_H%GA;@k)bHdByY~$X zeK@46>#X^H1B<%s(>0H*qzu=#Xh+6x6M1QGkyd+Fy0+TIb6#AUPh7B$s#v7tq)<7B z>Rj8>gCliNEGHvyawOh zyF&{)+3}E1bayDPGY55HUk`ydktgHSKJz;IKQ2fjx#K;JMq8gP@!V+0+riGx&H|Z@ zKR{jo_I%;0WsYCc7Q-bCPFo}T+#!NU)LaNc8lK^0n3h!1p^KOZ;k^w}zw8}n%L}>M z;+Q8`9-o+>^V?o{(zt=PBq4dIW5y-6A0ph<`(ZkmCbpJnds9Gn>L%?tJlm^E#YnqU z<%xqIeSpRP|nguG|poU<4x z^X13fCn_JC5kKfojn&s7-C8haZBSrre3J^EtZC44`N&U}$x$6UORk+?kqjzl+afDQe{3p`ON3he_h(nD2&H>ld(6`E RW$3m3g-hov&pQ70e*k6-7WM!D literal 0 HcmV?d00001 diff --git a/ANTLR/src/Test/test_prog b/ANTLR/src/Test/test_prog new file mode 100644 index 0000000..515ad5d --- /dev/null +++ b/ANTLR/src/Test/test_prog @@ -0,0 +1 @@ +a * 2 + 3 / 9 IS b * 21 + (3 - a) From 28b52468ce71cc4af54296a14f5e2fb499db49d9 Mon Sep 17 00:00:00 2001 From: Arne Rasmussen Date: Tue, 22 Mar 2016 08:39:59 +0100 Subject: [PATCH 48/55] AST/ : Added .gitignore --- AST/.gitignore | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 AST/.gitignore diff --git a/AST/.gitignore b/AST/.gitignore new file mode 100644 index 0000000..f69c541 --- /dev/null +++ b/AST/.gitignore @@ -0,0 +1,13 @@ +*.class +.idea/ + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.ear + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* From 69f4f5870fdbaadaabda099b36322c8c8ed22001 Mon Sep 17 00:00:00 2001 From: TobiasMorell Date: Tue, 22 Mar 2016 08:46:13 +0100 Subject: [PATCH 49/55] ANTLR : added gitignore --- ANTLR/.gitignore | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 ANTLR/.gitignore diff --git a/ANTLR/.gitignore b/ANTLR/.gitignore new file mode 100644 index 0000000..4c028bb --- /dev/null +++ b/ANTLR/.gitignore @@ -0,0 +1,14 @@ +*.class + +.idea/ + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.ear + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* From 0a139d6da35a1e50f6e4ae316e4329930e7652ea Mon Sep 17 00:00:00 2001 From: Tobias Morell Date: Tue, 22 Mar 2016 12:52:25 +0100 Subject: [PATCH 50/55] ANTLR : antlr4 specification of grammar - still some errors --- ANTLR/.gitignore | 1 + ANTLR/src/Test/ObsidiCode.g4 | 199 +- ANTLR/src/Test/ObsidiCode.tokens | 106 +- ANTLR/src/Test/ObsidiCodeBaseListener.class | Bin 5824 -> 14030 bytes ANTLR/src/Test/ObsidiCodeBaseListener.java | 448 ++- ANTLR/src/Test/ObsidiCodeLexer.class | Bin 6515 -> 11466 bytes ANTLR/src/Test/ObsidiCodeLexer.java | 253 +- ANTLR/src/Test/ObsidiCodeLexer.tokens | 106 +- ANTLR/src/Test/ObsidiCodeListener.class | Bin 4089 -> 10001 bytes ANTLR/src/Test/ObsidiCodeListener.java | 378 +- ...CodeParser$AdditiveExpressionContext.class | Bin 1411 -> 1411 bytes ...eParser$AdditiveExpressionEndContext.class | Bin 1090 -> 1090 bytes .../ObsidiCodeParser$AssignmentContext.class | Bin 1218 -> 1219 bytes ...deParser$AssignmentExpressionContext.class | Bin 1304 -> 1305 bytes ...Parser$ConditionAndExpressionContext.class | Bin 1239 -> 1239 bytes ...eParser$ConditionOrExpressionContext.class | Bin 1268 -> 1268 bytes ...eParser$ConditionalExpressionContext.class | Bin 1138 -> 1138 bytes ...CodeParser$EqualityExpressionContext.class | Bin 1455 -> 1455 bytes ...eParser$EqualityExpressionEndContext.class | Bin 1134 -> 1134 bytes .../ObsidiCodeParser$ExpressionContext.class | Bin 1078 -> 1079 bytes ...ObsidiCodeParser$LeftHandSideContext.class | Bin 1200 -> 1201 bytes .../ObsidiCodeParser$ListOptContext.class | Bin 1024 -> 1024 bytes .../ObsidiCodeParser$LiteralContext.class | Bin 1044 -> 1044 bytes .../ObsidiCodeParser$MultiExprContext.class | Bin 1312 -> 1312 bytes ...ObsidiCodeParser$MultiExprEndContext.class | Bin 1045 -> 1045 bytes .../ObsidiCodeParser$PrimaryContext.class | Bin 1508 -> 1508 bytes ...deParser$RelationalExpressionContext.class | Bin 1469 -> 1469 bytes ...arser$RelationalExpressionEndContext.class | Bin 1136 -> 1136 bytes .../ObsidiCodeParser$TypeNameContext.class | Bin 1128 -> 1128 bytes .../ObsidiCodeParser$UnaryExprContext.class | Bin 1124 -> 1124 bytes ...bsidiCodeParser$XOrExpressionContext.class | Bin 1196 -> 1196 bytes ANTLR/src/Test/ObsidiCodeParser.class | Bin 24734 -> 55111 bytes ANTLR/src/Test/ObsidiCodeParser.java | 3128 +++++++++++++++-- ANTLR/src/Test/expression_test.png | Bin 56678 -> 0 bytes ANTLR/src/Test/test_decl | 21 + ANTLR/src/Test/test_prog | 1 - 36 files changed, 4162 insertions(+), 479 deletions(-) delete mode 100644 ANTLR/src/Test/expression_test.png create mode 100644 ANTLR/src/Test/test_decl delete mode 100644 ANTLR/src/Test/test_prog diff --git a/ANTLR/.gitignore b/ANTLR/.gitignore index 4c028bb..2167eb4 100644 --- a/ANTLR/.gitignore +++ b/ANTLR/.gitignore @@ -1,6 +1,7 @@ *.class .idea/ +out/ # Mobile Tools for Java (J2ME) .mtj.tmp/ diff --git a/ANTLR/src/Test/ObsidiCode.g4 b/ANTLR/src/Test/ObsidiCode.g4 index 5c940fb..cd58da8 100644 --- a/ANTLR/src/Test/ObsidiCode.g4 +++ b/ANTLR/src/Test/ObsidiCode.g4 @@ -1,34 +1,211 @@ grammar ObsidiCode; +//Fragment rules for lexer +fragment NameStartChar + : 'A'..'Z' | 'a'..'z'; +fragment NameChar + : NameStartChar + | '0'..'9' + | '_' + ; +fragment Num + : '0'..'9'; + //Regex for the scanner: Identifier - : [A-z][0-z]*; + : NameStartChar NameChar*; + NumLit - : [0-9]+([\.][0-9]+)?; + : Num+ ('.'Num+)?; CoordLit - : [\(][0-9][,] [0-9][,] [0-9][\)]; + : '('Num+',' Num+','Num+')'; StringLit - : [^"]+; + : '"'~('"')*'"'; -//Skip blank-space -WS - : [ \t\r\n]+ -> skip; //<--- newline added for tests! +WS + : [\t\r' ']+ -> skip; -//Start rule: -expression - : assignmentExpression; +//Comments +COMMENT + : '/*' .*? '*/' -> skip + ; +EOLCOMMENT + : '//' .*? '\n' -> skip + ; +prog + : roboDcl loads roboBodyDcl; +//Types and literals: literal : NumLit | 'TRUE' | 'FALSE' | CoordLit - | '"' StringLit '='; + | StringLit + ; typeName : Identifier | typeName '.' Identifier ; +type + : referenceType + | primitiveType + ; +primitiveType + : 'NUM' + | 'BOOL' + ; +referenceType + : 'STRING' + | 'COORD' + | 'LIST' + ; + +loads + : loads 'LOAD' '(' StringLit ')' '\n' + | //lambda + ; + +//Declarations +roboDcl + : Identifier':''\n' + ; +roboBodyDcl + : roboBodyDcl memberDcl + | memberDcl + ; + +memberDcl + : fieldDcl + | methodDcl + | '\n' + ; + +fieldDcl + : type variableDclList '\n'; +variableDclList + : variableDcl + | variableDclList ',' variableDcl + ; +variableDcl + : Identifier variableInitializer + | Identifier listInitializer + ; +variableInitializer + : assignmentExpression + | //lambda + ; +listInitializer + : litList 'END' Identifier + | //lambda + ; +litList + : litList ',' primary + | primary + ; + +//method stuff +methodDcl + : methodHeader methodBody + | hearDcl + ; +methodHeader + : type methodDeclarator + | 'VOID' methodDeclarator + ; +methodDeclarator + : Identifier '(' formalParams ')' '\n' + ; +methodBody + : block 'END' Identifier + ; +hearDcl + : 'HEAR' Identifier '(' formalParams ')' '\n' block 'END HEAR' + ; + +//Statements +block + : blockStmtList + | //lambda + ; +blockStmtList + : blockStmtList statement '\n' + | statement '\n' + ; +statement + : type variableDclList + | stmtNoSub + | ifStmt + | loopStmt + ; +stmtNoSub + : //lambda + | signalStmt + | exprStmt + | 'BREAK' + | 'RETURN' expression + ; +signalStmt + : 'SIGNAL' Identifier '(' argsList ')' + ; +exprStmt + : assignmentExpression + | methodInvocation + ; + +methodInvocation + : typeName '(' formalArgs ')' + ; + +ifStmt + : 'IF' '(' expression ')' '\n' block 'END IF' 'elseIfOpt' 'elseOpt' + ; +elseIfOpt + : elseIfOpt 'ELSE IF' '(' expression ')' '\n' block 'END ELSEIF' + | //lambda + ; +elseOpt + : 'ELSE' '\n' block 'END Else' + | //lambda + ; + +loopStmt + : repeatStmt + | foreverStmt + ; +repeatStmt + : 'REPEAT UNTIL' '(' expression ')' '\n' block 'END REPEAT' + ; +foreverStmt + : 'FOREVER' '\n' block 'END FOREVER' + ; + +//Args and params +formalArgs + : argsList + | //lambda + ; +argsList + : argsList ',' expression + | expression + ; +formalParams + : paramsList + | //lambda + ; +paramsList + : paramsList ',' param + | param + ; +param + : type Identifier + ; + +//Expression part +expression + : assignmentExpression; + assignmentExpression : conditionalExpression | assignment; diff --git a/ANTLR/src/Test/ObsidiCode.tokens b/ANTLR/src/Test/ObsidiCode.tokens index 8474895..d5c8d38 100644 --- a/ANTLR/src/Test/ObsidiCode.tokens +++ b/ANTLR/src/Test/ObsidiCode.tokens @@ -20,30 +20,86 @@ T__18=19 T__19=20 T__20=21 T__21=22 -Identifier=23 -NumLit=24 -CoordLit=25 -StringLit=26 -WS=27 +T__22=23 +T__23=24 +T__24=25 +T__25=26 +T__26=27 +T__27=28 +T__28=29 +T__29=30 +T__30=31 +T__31=32 +T__32=33 +T__33=34 +T__34=35 +T__35=36 +T__36=37 +T__37=38 +T__38=39 +T__39=40 +T__40=41 +T__41=42 +T__42=43 +T__43=44 +T__44=45 +T__45=46 +T__46=47 +T__47=48 +T__48=49 +Identifier=50 +NumLit=51 +CoordLit=52 +StringLit=53 +WS=54 +COMMENT=55 +EOLCOMMENT=56 'TRUE'=1 'FALSE'=2 -'"'=3 -'='=4 -'.'=5 -'['=6 -']'=7 -'OR'=8 -'AND'=9 -'XOR'=10 -'IS'=11 -'NOT'=12 -'LESS_THAN'=13 -'GREATER_THAN'=14 -'LESS_THAN_EQUAL'=15 -'GREATER_THAN_EQUAL'=16 -'+'=17 -'-'=18 -'*'=19 -'/'=20 -'('=21 -')'=22 +'.'=3 +'NUM'=4 +'BOOL'=5 +'STRING'=6 +'COORD'=7 +'LIST'=8 +'LOAD'=9 +'('=10 +')'=11 +'\n'=12 +':'=13 +','=14 +'END'=15 +'VOID'=16 +'HEAR'=17 +'END HEAR'=18 +'BREAK'=19 +'RETURN'=20 +'SIGNAL'=21 +'IF'=22 +'END IF'=23 +'elseIfOpt'=24 +'elseOpt'=25 +'ELSE IF'=26 +'END ELSEIF'=27 +'ELSE'=28 +'END Else'=29 +'REPEAT UNTIL'=30 +'END REPEAT'=31 +'FOREVER'=32 +'END FOREVER'=33 +'='=34 +'['=35 +']'=36 +'OR'=37 +'AND'=38 +'XOR'=39 +'IS'=40 +'NOT'=41 +'LESS_THAN'=42 +'GREATER_THAN'=43 +'LESS_THAN_EQUAL'=44 +'GREATER_THAN_EQUAL'=45 +'+'=46 +'-'=47 +'*'=48 +'/'=49 diff --git a/ANTLR/src/Test/ObsidiCodeBaseListener.class b/ANTLR/src/Test/ObsidiCodeBaseListener.class index 0b35698a89068ef9769b4d4d378dd2e390e7c149..e26c99a86eb4711e9fdab1753b40c8a19530bffd 100644 GIT binary patch literal 14030 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 Vu+v~?!On)A2Rk2j5$s~o{5oRVQPuze delta 634 zcmYMx%WD%+6bA6`-ZB{y1IbKgrin8(lVTAA8nq&}sEDDcSh00sgLctiM`^4{NTQ}b z`taRaYva+n?NW+@kd+TgmXd`F{}0iXOY51qaP|AnIo!j6`|WybPrUu-(3f$-^K(W_*q^VOBLZ@eFqct8PhhCW7Y1rG&mDkOX8cVt515#^$j5|3#! z>PbAIK5bILQvrusnnN2}Nx`CDjpz;y>Sc)~dZ#Z2@JztS(Q((Lk=R8A%K`~%xi+<9 zR~0<>U;J=)(6VK4SEnsEL|?2Btr!OstoR3fFb#6tARl2+Ps;9GZf%_dow-O2W`yV*3mm(8&K>_PT0JHQ@gkFh7%EPIkY l#SUZs2+ndC<;HpT0z1ZDV#nDDHqUzO6}G@$V@qrq!N2R`m+}Ar diff --git a/ANTLR/src/Test/ObsidiCodeBaseListener.java b/ANTLR/src/Test/ObsidiCodeBaseListener.java index ae7c09c..959a028 100644 --- a/ANTLR/src/Test/ObsidiCodeBaseListener.java +++ b/ANTLR/src/Test/ObsidiCodeBaseListener.java @@ -16,13 +16,13 @@ public class ObsidiCodeBaseListener implements ObsidiCodeListener { * *

The default implementation does nothing.

*/ - @Override public void enterExpression(ObsidiCodeParser.ExpressionContext ctx) { } + @Override public void enterProg(ObsidiCodeParser.ProgContext ctx) { } /** * {@inheritDoc} * *

The default implementation does nothing.

*/ - @Override public void exitExpression(ObsidiCodeParser.ExpressionContext ctx) { } + @Override public void exitProg(ObsidiCodeParser.ProgContext ctx) { } /** * {@inheritDoc} * @@ -47,6 +47,450 @@ public class ObsidiCodeBaseListener implements ObsidiCodeListener { *

The default implementation does nothing.

*/ @Override public void exitTypeName(ObsidiCodeParser.TypeNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterType(ObsidiCodeParser.TypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitType(ObsidiCodeParser.TypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrimitiveType(ObsidiCodeParser.PrimitiveTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimitiveType(ObsidiCodeParser.PrimitiveTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterReferenceType(ObsidiCodeParser.ReferenceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitReferenceType(ObsidiCodeParser.ReferenceTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLoads(ObsidiCodeParser.LoadsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLoads(ObsidiCodeParser.LoadsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRoboDcl(ObsidiCodeParser.RoboDclContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRoboDcl(ObsidiCodeParser.RoboDclContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRoboBodyDcl(ObsidiCodeParser.RoboBodyDclContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRoboBodyDcl(ObsidiCodeParser.RoboBodyDclContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMemberDcl(ObsidiCodeParser.MemberDclContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMemberDcl(ObsidiCodeParser.MemberDclContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFieldDcl(ObsidiCodeParser.FieldDclContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFieldDcl(ObsidiCodeParser.FieldDclContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVariableDclList(ObsidiCodeParser.VariableDclListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVariableDclList(ObsidiCodeParser.VariableDclListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVariableDcl(ObsidiCodeParser.VariableDclContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVariableDcl(ObsidiCodeParser.VariableDclContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVariableInitializer(ObsidiCodeParser.VariableInitializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVariableInitializer(ObsidiCodeParser.VariableInitializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterListInitializer(ObsidiCodeParser.ListInitializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitListInitializer(ObsidiCodeParser.ListInitializerContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLitList(ObsidiCodeParser.LitListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLitList(ObsidiCodeParser.LitListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethodDcl(ObsidiCodeParser.MethodDclContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethodDcl(ObsidiCodeParser.MethodDclContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethodHeader(ObsidiCodeParser.MethodHeaderContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethodHeader(ObsidiCodeParser.MethodHeaderContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethodDeclarator(ObsidiCodeParser.MethodDeclaratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethodDeclarator(ObsidiCodeParser.MethodDeclaratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethodBody(ObsidiCodeParser.MethodBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethodBody(ObsidiCodeParser.MethodBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterHearDcl(ObsidiCodeParser.HearDclContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitHearDcl(ObsidiCodeParser.HearDclContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBlock(ObsidiCodeParser.BlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBlock(ObsidiCodeParser.BlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBlockStmtList(ObsidiCodeParser.BlockStmtListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBlockStmtList(ObsidiCodeParser.BlockStmtListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStatement(ObsidiCodeParser.StatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStatement(ObsidiCodeParser.StatementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStmtNoSub(ObsidiCodeParser.StmtNoSubContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStmtNoSub(ObsidiCodeParser.StmtNoSubContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSignalStmt(ObsidiCodeParser.SignalStmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSignalStmt(ObsidiCodeParser.SignalStmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExprStmt(ObsidiCodeParser.ExprStmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExprStmt(ObsidiCodeParser.ExprStmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethodInvocation(ObsidiCodeParser.MethodInvocationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethodInvocation(ObsidiCodeParser.MethodInvocationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIfStmt(ObsidiCodeParser.IfStmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIfStmt(ObsidiCodeParser.IfStmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterElseIfOpt(ObsidiCodeParser.ElseIfOptContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitElseIfOpt(ObsidiCodeParser.ElseIfOptContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterElseOpt(ObsidiCodeParser.ElseOptContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitElseOpt(ObsidiCodeParser.ElseOptContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLoopStmt(ObsidiCodeParser.LoopStmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLoopStmt(ObsidiCodeParser.LoopStmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRepeatStmt(ObsidiCodeParser.RepeatStmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRepeatStmt(ObsidiCodeParser.RepeatStmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterForeverStmt(ObsidiCodeParser.ForeverStmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitForeverStmt(ObsidiCodeParser.ForeverStmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFormalArgs(ObsidiCodeParser.FormalArgsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFormalArgs(ObsidiCodeParser.FormalArgsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArgsList(ObsidiCodeParser.ArgsListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArgsList(ObsidiCodeParser.ArgsListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFormalParams(ObsidiCodeParser.FormalParamsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFormalParams(ObsidiCodeParser.FormalParamsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterParamsList(ObsidiCodeParser.ParamsListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitParamsList(ObsidiCodeParser.ParamsListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterParam(ObsidiCodeParser.ParamContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitParam(ObsidiCodeParser.ParamContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExpression(ObsidiCodeParser.ExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExpression(ObsidiCodeParser.ExpressionContext ctx) { } /** * {@inheritDoc} * diff --git a/ANTLR/src/Test/ObsidiCodeLexer.class b/ANTLR/src/Test/ObsidiCodeLexer.class index cb5484c1eb81915b80eac7107519a9dd4d9eefac..de9893a62bc0d09cf1493a2b3ddc420b7ebdad35 100644 GIT binary patch literal 11466 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\3"+ - "\2\2\2\7D\3\2\2\2\tF\3\2\2\2\13H\3\2\2\2\rJ\3\2\2\2\17L\3\2\2\2\21N\3"+ - "\2\2\2\23Q\3\2\2\2\25U\3\2\2\2\27Y\3\2\2\2\31\\\3\2\2\2\33`\3\2\2\2\35"+ - "j\3\2\2\2\37w\3\2\2\2!\u0087\3\2\2\2#\u009a\3\2\2\2%\u009c\3\2\2\2\'\u009e"+ - "\3\2\2\2)\u00a0\3\2\2\2+\u00a2\3\2\2\2-\u00a4\3\2\2\2/\u00a6\3\2\2\2\61"+ - "\u00ae\3\2\2\2\63\u00ba\3\2\2\2\65\u00c3\3\2\2\2\67\u00c8\3\2\2\29:\7"+ - "V\2\2:;\7T\2\2;<\7W\2\2<=\7G\2\2=\4\3\2\2\2>?\7H\2\2?@\7C\2\2@A\7N\2\2"+ - "AB\7U\2\2BC\7G\2\2C\6\3\2\2\2DE\7$\2\2E\b\3\2\2\2FG\7?\2\2G\n\3\2\2\2"+ - "HI\7\60\2\2I\f\3\2\2\2JK\7]\2\2K\16\3\2\2\2LM\7_\2\2M\20\3\2\2\2NO\7Q"+ - "\2\2OP\7T\2\2P\22\3\2\2\2QR\7C\2\2RS\7P\2\2ST\7F\2\2T\24\3\2\2\2UV\7Z"+ - "\2\2VW\7Q\2\2WX\7T\2\2X\26\3\2\2\2YZ\7K\2\2Z[\7U\2\2[\30\3\2\2\2\\]\7"+ - "P\2\2]^\7Q\2\2^_\7V\2\2_\32\3\2\2\2`a\7N\2\2ab\7G\2\2bc\7U\2\2cd\7U\2"+ - "\2de\7a\2\2ef\7V\2\2fg\7J\2\2gh\7C\2\2hi\7P\2\2i\34\3\2\2\2jk\7I\2\2k"+ - "l\7T\2\2lm\7G\2\2mn\7C\2\2no\7V\2\2op\7G\2\2pq\7T\2\2qr\7a\2\2rs\7V\2"+ - "\2st\7J\2\2tu\7C\2\2uv\7P\2\2v\36\3\2\2\2wx\7N\2\2xy\7G\2\2yz\7U\2\2z"+ - "{\7U\2\2{|\7a\2\2|}\7V\2\2}~\7J\2\2~\177\7C\2\2\177\u0080\7P\2\2\u0080"+ - "\u0081\7a\2\2\u0081\u0082\7G\2\2\u0082\u0083\7S\2\2\u0083\u0084\7W\2\2"+ - "\u0084\u0085\7C\2\2\u0085\u0086\7N\2\2\u0086 \3\2\2\2\u0087\u0088\7I\2"+ - "\2\u0088\u0089\7T\2\2\u0089\u008a\7G\2\2\u008a\u008b\7C\2\2\u008b\u008c"+ - "\7V\2\2\u008c\u008d\7G\2\2\u008d\u008e\7T\2\2\u008e\u008f\7a\2\2\u008f"+ - "\u0090\7V\2\2\u0090\u0091\7J\2\2\u0091\u0092\7C\2\2\u0092\u0093\7P\2\2"+ - "\u0093\u0094\7a\2\2\u0094\u0095\7G\2\2\u0095\u0096\7S\2\2\u0096\u0097"+ - "\7W\2\2\u0097\u0098\7C\2\2\u0098\u0099\7N\2\2\u0099\"\3\2\2\2\u009a\u009b"+ - "\7-\2\2\u009b$\3\2\2\2\u009c\u009d\7/\2\2\u009d&\3\2\2\2\u009e\u009f\7"+ - ",\2\2\u009f(\3\2\2\2\u00a0\u00a1\7\61\2\2\u00a1*\3\2\2\2\u00a2\u00a3\7"+ - "*\2\2\u00a3,\3\2\2\2\u00a4\u00a5\7+\2\2\u00a5.\3\2\2\2\u00a6\u00aa\t\2"+ - "\2\2\u00a7\u00a9\t\3\2\2\u00a8\u00a7\3\2\2\2\u00a9\u00ac\3\2\2\2\u00aa"+ - "\u00a8\3\2\2\2\u00aa\u00ab\3\2\2\2\u00ab\60\3\2\2\2\u00ac\u00aa\3\2\2"+ - "\2\u00ad\u00af\t\4\2\2\u00ae\u00ad\3\2\2\2\u00af\u00b0\3\2\2\2\u00b0\u00ae"+ - "\3\2\2\2\u00b0\u00b1\3\2\2\2\u00b1\u00b8\3\2\2\2\u00b2\u00b4\t\5\2\2\u00b3"+ - "\u00b5\t\4\2\2\u00b4\u00b3\3\2\2\2\u00b5\u00b6\3\2\2\2\u00b6\u00b4\3\2"+ - "\2\2\u00b6\u00b7\3\2\2\2\u00b7\u00b9\3\2\2\2\u00b8\u00b2\3\2\2\2\u00b8"+ - "\u00b9\3\2\2\2\u00b9\62\3\2\2\2\u00ba\u00bb\t\6\2\2\u00bb\u00bc\t\4\2"+ - "\2\u00bc\u00bd\t\7\2\2\u00bd\u00be\t\4\2\2\u00be\u00bf\t\7\2\2\u00bf\u00c0"+ - "\t\4\2\2\u00c0\u00c1\t\b\2\2\u00c1\64\3\2\2\2\u00c2\u00c4\t\t\2\2\u00c3"+ - "\u00c2\3\2\2\2\u00c4\u00c5\3\2\2\2\u00c5\u00c3\3\2\2\2\u00c5\u00c6\3\2"+ - "\2\2\u00c6\66\3\2\2\2\u00c7\u00c9\t\n\2\2\u00c8\u00c7\3\2\2\2\u00c9\u00ca"+ - "\3\2\2\2\u00ca\u00c8\3\2\2\2\u00ca\u00cb\3\2\2\2\u00cb\u00cc\3\2\2\2\u00cc"+ - "\u00cd\b\34\2\2\u00cd8\3\2\2\2\t\2\u00aa\u00b0\u00b6\u00b8\u00c5\u00ca"+ - "\3\b\2\2"; + "\2\2\61\3\2\2\2\2\63\3\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3"+ + "\2\2\2\2=\3\2\2\2\2?\3\2\2\2\2A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2\2G\3\2\2"+ + "\2\2I\3\2\2\2\2K\3\2\2\2\2M\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2"+ + "U\3\2\2\2\2W\3\2\2\2\2Y\3\2\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2\2\2\2a\3"+ + "\2\2\2\2c\3\2\2\2\2k\3\2\2\2\2m\3\2\2\2\2o\3\2\2\2\2q\3\2\2\2\2s\3\2\2"+ + "\2\2u\3\2\2\2\2w\3\2\2\2\3y\3\2\2\2\5~\3\2\2\2\7\u0084\3\2\2\2\t\u0086"+ + "\3\2\2\2\13\u008a\3\2\2\2\r\u008f\3\2\2\2\17\u0096\3\2\2\2\21\u009c\3"+ + "\2\2\2\23\u00a1\3\2\2\2\25\u00a6\3\2\2\2\27\u00a8\3\2\2\2\31\u00aa\3\2"+ + "\2\2\33\u00ac\3\2\2\2\35\u00ae\3\2\2\2\37\u00b0\3\2\2\2!\u00b4\3\2\2\2"+ + "#\u00b9\3\2\2\2%\u00be\3\2\2\2\'\u00c7\3\2\2\2)\u00cd\3\2\2\2+\u00d4\3"+ + "\2\2\2-\u00db\3\2\2\2/\u00de\3\2\2\2\61\u00e5\3\2\2\2\63\u00ef\3\2\2\2"+ + "\65\u00f7\3\2\2\2\67\u00ff\3\2\2\29\u010a\3\2\2\2;\u010f\3\2\2\2=\u0118"+ + "\3\2\2\2?\u0125\3\2\2\2A\u0130\3\2\2\2C\u0138\3\2\2\2E\u0144\3\2\2\2G"+ + "\u0146\3\2\2\2I\u0148\3\2\2\2K\u014a\3\2\2\2M\u014d\3\2\2\2O\u0151\3\2"+ + "\2\2Q\u0155\3\2\2\2S\u0158\3\2\2\2U\u015c\3\2\2\2W\u0166\3\2\2\2Y\u0173"+ + "\3\2\2\2[\u0183\3\2\2\2]\u0196\3\2\2\2_\u0198\3\2\2\2a\u019a\3\2\2\2c"+ + "\u019c\3\2\2\2e\u019e\3\2\2\2g\u01a2\3\2\2\2i\u01a4\3\2\2\2k\u01a6\3\2"+ + "\2\2m\u01ae\3\2\2\2o\u01ba\3\2\2\2q\u01ce\3\2\2\2s\u01d8\3\2\2\2u\u01de"+ + "\3\2\2\2w\u01ec\3\2\2\2yz\7V\2\2z{\7T\2\2{|\7W\2\2|}\7G\2\2}\4\3\2\2\2"+ + "~\177\7H\2\2\177\u0080\7C\2\2\u0080\u0081\7N\2\2\u0081\u0082\7U\2\2\u0082"+ + "\u0083\7G\2\2\u0083\6\3\2\2\2\u0084\u0085\7\60\2\2\u0085\b\3\2\2\2\u0086"+ + "\u0087\7P\2\2\u0087\u0088\7W\2\2\u0088\u0089\7O\2\2\u0089\n\3\2\2\2\u008a"+ + "\u008b\7D\2\2\u008b\u008c\7Q\2\2\u008c\u008d\7Q\2\2\u008d\u008e\7N\2\2"+ + "\u008e\f\3\2\2\2\u008f\u0090\7U\2\2\u0090\u0091\7V\2\2\u0091\u0092\7T"+ + "\2\2\u0092\u0093\7K\2\2\u0093\u0094\7P\2\2\u0094\u0095\7I\2\2\u0095\16"+ + "\3\2\2\2\u0096\u0097\7E\2\2\u0097\u0098\7Q\2\2\u0098\u0099\7Q\2\2\u0099"+ + "\u009a\7T\2\2\u009a\u009b\7F\2\2\u009b\20\3\2\2\2\u009c\u009d\7N\2\2\u009d"+ + "\u009e\7K\2\2\u009e\u009f\7U\2\2\u009f\u00a0\7V\2\2\u00a0\22\3\2\2\2\u00a1"+ + "\u00a2\7N\2\2\u00a2\u00a3\7Q\2\2\u00a3\u00a4\7C\2\2\u00a4\u00a5\7F\2\2"+ + "\u00a5\24\3\2\2\2\u00a6\u00a7\7*\2\2\u00a7\26\3\2\2\2\u00a8\u00a9\7+\2"+ + "\2\u00a9\30\3\2\2\2\u00aa\u00ab\7\f\2\2\u00ab\32\3\2\2\2\u00ac\u00ad\7"+ + "<\2\2\u00ad\34\3\2\2\2\u00ae\u00af\7.\2\2\u00af\36\3\2\2\2\u00b0\u00b1"+ + "\7G\2\2\u00b1\u00b2\7P\2\2\u00b2\u00b3\7F\2\2\u00b3 \3\2\2\2\u00b4\u00b5"+ + "\7X\2\2\u00b5\u00b6\7Q\2\2\u00b6\u00b7\7K\2\2\u00b7\u00b8\7F\2\2\u00b8"+ + "\"\3\2\2\2\u00b9\u00ba\7J\2\2\u00ba\u00bb\7G\2\2\u00bb\u00bc\7C\2\2\u00bc"+ + "\u00bd\7T\2\2\u00bd$\3\2\2\2\u00be\u00bf\7G\2\2\u00bf\u00c0\7P\2\2\u00c0"+ + "\u00c1\7F\2\2\u00c1\u00c2\7\"\2\2\u00c2\u00c3\7J\2\2\u00c3\u00c4\7G\2"+ + "\2\u00c4\u00c5\7C\2\2\u00c5\u00c6\7T\2\2\u00c6&\3\2\2\2\u00c7\u00c8\7"+ + "D\2\2\u00c8\u00c9\7T\2\2\u00c9\u00ca\7G\2\2\u00ca\u00cb\7C\2\2\u00cb\u00cc"+ + "\7M\2\2\u00cc(\3\2\2\2\u00cd\u00ce\7T\2\2\u00ce\u00cf\7G\2\2\u00cf\u00d0"+ + "\7V\2\2\u00d0\u00d1\7W\2\2\u00d1\u00d2\7T\2\2\u00d2\u00d3\7P\2\2\u00d3"+ + "*\3\2\2\2\u00d4\u00d5\7U\2\2\u00d5\u00d6\7K\2\2\u00d6\u00d7\7I\2\2\u00d7"+ + "\u00d8\7P\2\2\u00d8\u00d9\7C\2\2\u00d9\u00da\7N\2\2\u00da,\3\2\2\2\u00db"+ + "\u00dc\7K\2\2\u00dc\u00dd\7H\2\2\u00dd.\3\2\2\2\u00de\u00df\7G\2\2\u00df"+ + "\u00e0\7P\2\2\u00e0\u00e1\7F\2\2\u00e1\u00e2\7\"\2\2\u00e2\u00e3\7K\2"+ + "\2\u00e3\u00e4\7H\2\2\u00e4\60\3\2\2\2\u00e5\u00e6\7g\2\2\u00e6\u00e7"+ + "\7n\2\2\u00e7\u00e8\7u\2\2\u00e8\u00e9\7g\2\2\u00e9\u00ea\7K\2\2\u00ea"+ + "\u00eb\7h\2\2\u00eb\u00ec\7Q\2\2\u00ec\u00ed\7r\2\2\u00ed\u00ee\7v\2\2"+ + "\u00ee\62\3\2\2\2\u00ef\u00f0\7g\2\2\u00f0\u00f1\7n\2\2\u00f1\u00f2\7"+ + "u\2\2\u00f2\u00f3\7g\2\2\u00f3\u00f4\7Q\2\2\u00f4\u00f5\7r\2\2\u00f5\u00f6"+ + "\7v\2\2\u00f6\64\3\2\2\2\u00f7\u00f8\7G\2\2\u00f8\u00f9\7N\2\2\u00f9\u00fa"+ + "\7U\2\2\u00fa\u00fb\7G\2\2\u00fb\u00fc\7\"\2\2\u00fc\u00fd\7K\2\2\u00fd"+ + "\u00fe\7H\2\2\u00fe\66\3\2\2\2\u00ff\u0100\7G\2\2\u0100\u0101\7P\2\2\u0101"+ + "\u0102\7F\2\2\u0102\u0103\7\"\2\2\u0103\u0104\7G\2\2\u0104\u0105\7N\2"+ + "\2\u0105\u0106\7U\2\2\u0106\u0107\7G\2\2\u0107\u0108\7K\2\2\u0108\u0109"+ + "\7H\2\2\u01098\3\2\2\2\u010a\u010b\7G\2\2\u010b\u010c\7N\2\2\u010c\u010d"+ + "\7U\2\2\u010d\u010e\7G\2\2\u010e:\3\2\2\2\u010f\u0110\7G\2\2\u0110\u0111"+ + "\7P\2\2\u0111\u0112\7F\2\2\u0112\u0113\7\"\2\2\u0113\u0114\7G\2\2\u0114"+ + "\u0115\7n\2\2\u0115\u0116\7u\2\2\u0116\u0117\7g\2\2\u0117<\3\2\2\2\u0118"+ + "\u0119\7T\2\2\u0119\u011a\7G\2\2\u011a\u011b\7R\2\2\u011b\u011c\7G\2\2"+ + "\u011c\u011d\7C\2\2\u011d\u011e\7V\2\2\u011e\u011f\7\"\2\2\u011f\u0120"+ + "\7W\2\2\u0120\u0121\7P\2\2\u0121\u0122\7V\2\2\u0122\u0123\7K\2\2\u0123"+ + "\u0124\7N\2\2\u0124>\3\2\2\2\u0125\u0126\7G\2\2\u0126\u0127\7P\2\2\u0127"+ + "\u0128\7F\2\2\u0128\u0129\7\"\2\2\u0129\u012a\7T\2\2\u012a\u012b\7G\2"+ + "\2\u012b\u012c\7R\2\2\u012c\u012d\7G\2\2\u012d\u012e\7C\2\2\u012e\u012f"+ + "\7V\2\2\u012f@\3\2\2\2\u0130\u0131\7H\2\2\u0131\u0132\7Q\2\2\u0132\u0133"+ + "\7T\2\2\u0133\u0134\7G\2\2\u0134\u0135\7X\2\2\u0135\u0136\7G\2\2\u0136"+ + "\u0137\7T\2\2\u0137B\3\2\2\2\u0138\u0139\7G\2\2\u0139\u013a\7P\2\2\u013a"+ + "\u013b\7F\2\2\u013b\u013c\7\"\2\2\u013c\u013d\7H\2\2\u013d\u013e\7Q\2"+ + "\2\u013e\u013f\7T\2\2\u013f\u0140\7G\2\2\u0140\u0141\7X\2\2\u0141\u0142"+ + "\7G\2\2\u0142\u0143\7T\2\2\u0143D\3\2\2\2\u0144\u0145\7?\2\2\u0145F\3"+ + "\2\2\2\u0146\u0147\7]\2\2\u0147H\3\2\2\2\u0148\u0149\7_\2\2\u0149J\3\2"+ + "\2\2\u014a\u014b\7Q\2\2\u014b\u014c\7T\2\2\u014cL\3\2\2\2\u014d\u014e"+ + "\7C\2\2\u014e\u014f\7P\2\2\u014f\u0150\7F\2\2\u0150N\3\2\2\2\u0151\u0152"+ + "\7Z\2\2\u0152\u0153\7Q\2\2\u0153\u0154\7T\2\2\u0154P\3\2\2\2\u0155\u0156"+ + "\7K\2\2\u0156\u0157\7U\2\2\u0157R\3\2\2\2\u0158\u0159\7P\2\2\u0159\u015a"+ + "\7Q\2\2\u015a\u015b\7V\2\2\u015bT\3\2\2\2\u015c\u015d\7N\2\2\u015d\u015e"+ + "\7G\2\2\u015e\u015f\7U\2\2\u015f\u0160\7U\2\2\u0160\u0161\7a\2\2\u0161"+ + "\u0162\7V\2\2\u0162\u0163\7J\2\2\u0163\u0164\7C\2\2\u0164\u0165\7P\2\2"+ + "\u0165V\3\2\2\2\u0166\u0167\7I\2\2\u0167\u0168\7T\2\2\u0168\u0169\7G\2"+ + "\2\u0169\u016a\7C\2\2\u016a\u016b\7V\2\2\u016b\u016c\7G\2\2\u016c\u016d"+ + "\7T\2\2\u016d\u016e\7a\2\2\u016e\u016f\7V\2\2\u016f\u0170\7J\2\2\u0170"+ + "\u0171\7C\2\2\u0171\u0172\7P\2\2\u0172X\3\2\2\2\u0173\u0174\7N\2\2\u0174"+ + "\u0175\7G\2\2\u0175\u0176\7U\2\2\u0176\u0177\7U\2\2\u0177\u0178\7a\2\2"+ + "\u0178\u0179\7V\2\2\u0179\u017a\7J\2\2\u017a\u017b\7C\2\2\u017b\u017c"+ + "\7P\2\2\u017c\u017d\7a\2\2\u017d\u017e\7G\2\2\u017e\u017f\7S\2\2\u017f"+ + "\u0180\7W\2\2\u0180\u0181\7C\2\2\u0181\u0182\7N\2\2\u0182Z\3\2\2\2\u0183"+ + "\u0184\7I\2\2\u0184\u0185\7T\2\2\u0185\u0186\7G\2\2\u0186\u0187\7C\2\2"+ + "\u0187\u0188\7V\2\2\u0188\u0189\7G\2\2\u0189\u018a\7T\2\2\u018a\u018b"+ + "\7a\2\2\u018b\u018c\7V\2\2\u018c\u018d\7J\2\2\u018d\u018e\7C\2\2\u018e"+ + "\u018f\7P\2\2\u018f\u0190\7a\2\2\u0190\u0191\7G\2\2\u0191\u0192\7S\2\2"+ + "\u0192\u0193\7W\2\2\u0193\u0194\7C\2\2\u0194\u0195\7N\2\2\u0195\\\3\2"+ + "\2\2\u0196\u0197\7-\2\2\u0197^\3\2\2\2\u0198\u0199\7/\2\2\u0199`\3\2\2"+ + "\2\u019a\u019b\7,\2\2\u019bb\3\2\2\2\u019c\u019d\7\61\2\2\u019dd\3\2\2"+ + "\2\u019e\u019f\t\2\2\2\u019ff\3\2\2\2\u01a0\u01a3\5e\63\2\u01a1\u01a3"+ + "\t\3\2\2\u01a2\u01a0\3\2\2\2\u01a2\u01a1\3\2\2\2\u01a3h\3\2\2\2\u01a4"+ + "\u01a5\4\62;\2\u01a5j\3\2\2\2\u01a6\u01aa\5e\63\2\u01a7\u01a9\5g\64\2"+ + "\u01a8\u01a7\3\2\2\2\u01a9\u01ac\3\2\2\2\u01aa\u01a8\3\2\2\2\u01aa\u01ab"+ + "\3\2\2\2\u01abl\3\2\2\2\u01ac\u01aa\3\2\2\2\u01ad\u01af\5i\65\2\u01ae"+ + "\u01ad\3\2\2\2\u01af\u01b0\3\2\2\2\u01b0\u01ae\3\2\2\2\u01b0\u01b1\3\2"+ + "\2\2\u01b1\u01b8\3\2\2\2\u01b2\u01b4\7\60\2\2\u01b3\u01b5\5i\65\2\u01b4"+ + "\u01b3\3\2\2\2\u01b5\u01b6\3\2\2\2\u01b6\u01b4\3\2\2\2\u01b6\u01b7\3\2"+ + "\2\2\u01b7\u01b9\3\2\2\2\u01b8\u01b2\3\2\2\2\u01b8\u01b9\3\2\2\2\u01b9"+ + "n\3\2\2\2\u01ba\u01bc\7*\2\2\u01bb\u01bd\5i\65\2\u01bc\u01bb\3\2\2\2\u01bd"+ + "\u01be\3\2\2\2\u01be\u01bc\3\2\2\2\u01be\u01bf\3\2\2\2\u01bf\u01c0\3\2"+ + "\2\2\u01c0\u01c2\7.\2\2\u01c1\u01c3\5i\65\2\u01c2\u01c1\3\2\2\2\u01c3"+ + "\u01c4\3\2\2\2\u01c4\u01c2\3\2\2\2\u01c4\u01c5\3\2\2\2\u01c5\u01c6\3\2"+ + "\2\2\u01c6\u01c8\7.\2\2\u01c7\u01c9\5i\65\2\u01c8\u01c7\3\2\2\2\u01c9"+ + "\u01ca\3\2\2\2\u01ca\u01c8\3\2\2\2\u01ca\u01cb\3\2\2\2\u01cb\u01cc\3\2"+ + "\2\2\u01cc\u01cd\7+\2\2\u01cdp\3\2\2\2\u01ce\u01d2\7$\2\2\u01cf\u01d1"+ + "\n\4\2\2\u01d0\u01cf\3\2\2\2\u01d1\u01d4\3\2\2\2\u01d2\u01d0\3\2\2\2\u01d2"+ + "\u01d3\3\2\2\2\u01d3\u01d5\3\2\2\2\u01d4\u01d2\3\2\2\2\u01d5\u01d6\7$"+ + "\2\2\u01d6r\3\2\2\2\u01d7\u01d9\t\5\2\2\u01d8\u01d7\3\2\2\2\u01d9\u01da"+ + "\3\2\2\2\u01da\u01d8\3\2\2\2\u01da\u01db\3\2\2\2\u01db\u01dc\3\2\2\2\u01dc"+ + "\u01dd\b:\2\2\u01ddt\3\2\2\2\u01de\u01df\7\61\2\2\u01df\u01e0\7,\2\2\u01e0"+ + "\u01e4\3\2\2\2\u01e1\u01e3\13\2\2\2\u01e2\u01e1\3\2\2\2\u01e3\u01e6\3"+ + "\2\2\2\u01e4\u01e5\3\2\2\2\u01e4\u01e2\3\2\2\2\u01e5\u01e7\3\2\2\2\u01e6"+ + "\u01e4\3\2\2\2\u01e7\u01e8\7,\2\2\u01e8\u01e9\7\61\2\2\u01e9\u01ea\3\2"+ + "\2\2\u01ea\u01eb\b;\2\2\u01ebv\3\2\2\2\u01ec\u01ed\7\61\2\2\u01ed\u01ee"+ + "\7\61\2\2\u01ee\u01f2\3\2\2\2\u01ef\u01f1\13\2\2\2\u01f0\u01ef\3\2\2\2"+ + "\u01f1\u01f4\3\2\2\2\u01f2\u01f3\3\2\2\2\u01f2\u01f0\3\2\2\2\u01f3\u01f5"+ + "\3\2\2\2\u01f4\u01f2\3\2\2\2\u01f5\u01f6\7\f\2\2\u01f6\u01f7\3\2\2\2\u01f7"+ + "\u01f8\b<\2\2\u01f8x\3\2\2\2\17\2\u01a2\u01aa\u01b0\u01b6\u01b8\u01be"+ + "\u01c4\u01ca\u01d2\u01da\u01e4\u01f2\3\b\2\2"; public static final ATN _ATN = new ATNDeserializer().deserialize(_serializedATN.toCharArray()); static { diff --git a/ANTLR/src/Test/ObsidiCodeLexer.tokens b/ANTLR/src/Test/ObsidiCodeLexer.tokens index 8474895..d5c8d38 100644 --- a/ANTLR/src/Test/ObsidiCodeLexer.tokens +++ b/ANTLR/src/Test/ObsidiCodeLexer.tokens @@ -20,30 +20,86 @@ T__18=19 T__19=20 T__20=21 T__21=22 -Identifier=23 -NumLit=24 -CoordLit=25 -StringLit=26 -WS=27 +T__22=23 +T__23=24 +T__24=25 +T__25=26 +T__26=27 +T__27=28 +T__28=29 +T__29=30 +T__30=31 +T__31=32 +T__32=33 +T__33=34 +T__34=35 +T__35=36 +T__36=37 +T__37=38 +T__38=39 +T__39=40 +T__40=41 +T__41=42 +T__42=43 +T__43=44 +T__44=45 +T__45=46 +T__46=47 +T__47=48 +T__48=49 +Identifier=50 +NumLit=51 +CoordLit=52 +StringLit=53 +WS=54 +COMMENT=55 +EOLCOMMENT=56 'TRUE'=1 'FALSE'=2 -'"'=3 -'='=4 -'.'=5 -'['=6 -']'=7 -'OR'=8 -'AND'=9 -'XOR'=10 -'IS'=11 -'NOT'=12 -'LESS_THAN'=13 -'GREATER_THAN'=14 -'LESS_THAN_EQUAL'=15 -'GREATER_THAN_EQUAL'=16 -'+'=17 -'-'=18 -'*'=19 -'/'=20 -'('=21 -')'=22 +'.'=3 +'NUM'=4 +'BOOL'=5 +'STRING'=6 +'COORD'=7 +'LIST'=8 +'LOAD'=9 +'('=10 +')'=11 +'\n'=12 +':'=13 +','=14 +'END'=15 +'VOID'=16 +'HEAR'=17 +'END HEAR'=18 +'BREAK'=19 +'RETURN'=20 +'SIGNAL'=21 +'IF'=22 +'END IF'=23 +'elseIfOpt'=24 +'elseOpt'=25 +'ELSE IF'=26 +'END ELSEIF'=27 +'ELSE'=28 +'END Else'=29 +'REPEAT UNTIL'=30 +'END REPEAT'=31 +'FOREVER'=32 +'END FOREVER'=33 +'='=34 +'['=35 +']'=36 +'OR'=37 +'AND'=38 +'XOR'=39 +'IS'=40 +'NOT'=41 +'LESS_THAN'=42 +'GREATER_THAN'=43 +'LESS_THAN_EQUAL'=44 +'GREATER_THAN_EQUAL'=45 +'+'=46 +'-'=47 +'*'=48 +'/'=49 diff --git a/ANTLR/src/Test/ObsidiCodeListener.class b/ANTLR/src/Test/ObsidiCodeListener.class index 435fc77e043553c1a47e35fcb4afc4e53c257673..95f2230ef18011835d3fccc849cf228ced5ebeb8 100644 GIT binary patch literal 10001 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 X37iX@2V4YP3|tOe0bB!IOKtxH3)EP~ delta 518 zcmW;I&r1|>7zXg?`;BQ5H)f~#&J49VYmh`rb+Ci7=pk7wvfA~Kff^1pfhFU%V`)Ek zv$irq8Q#C54n=q@TQ8e?SnO?Gin9`aBQ3FE70L`9I}>uYW&$1Tcu_HX1f= z*k~#^NxGCYt1FFWl4bLYsf{HCSKgMry@fMrnl#52;w(!tx!{Zx3;%~F=D86s*tnUu zr!;Qm-_Obmr(|JSp(O37N4A_fjTIRvUeUNMc`?zrBilReu3UE4HSWo8cSGa8wDzr8 zc%We9bvcx8dpv67jcZBGJEqZ+me;Y+RyZiJ@ug;LnGFJ|m`fHO?ws2)CHdk6GVL4r zVX78Z6(Y7ss(wS`k-YOe8joc(Sk>srry#cQM8T7K=t(84Ydn?pa7N>q{0cv7tjTzE zM1Dple_4?CJx1*P?q(YG?o$1m8;5GD1&x$n)L4W~U%`ik47<^VZd#y4>QbKu^Z+f< zGVP^@X&*gG`{{9df)3J?bchbq5jsjw(J?wsE2kMI7|zi;oun7(6rH9sbdJU}p;zfO IdL3Q=02FI@4*&oF diff --git a/ANTLR/src/Test/ObsidiCodeListener.java b/ANTLR/src/Test/ObsidiCodeListener.java index 18ba5ed..501045c 100644 --- a/ANTLR/src/Test/ObsidiCodeListener.java +++ b/ANTLR/src/Test/ObsidiCodeListener.java @@ -8,15 +8,15 @@ */ public interface ObsidiCodeListener extends ParseTreeListener { /** - * Enter a parse tree produced by {@link ObsidiCodeParser#expression}. + * Enter a parse tree produced by {@link ObsidiCodeParser#prog}. * @param ctx the parse tree */ - void enterExpression(ObsidiCodeParser.ExpressionContext ctx); + void enterProg(ObsidiCodeParser.ProgContext ctx); /** - * Exit a parse tree produced by {@link ObsidiCodeParser#expression}. + * Exit a parse tree produced by {@link ObsidiCodeParser#prog}. * @param ctx the parse tree */ - void exitExpression(ObsidiCodeParser.ExpressionContext ctx); + void exitProg(ObsidiCodeParser.ProgContext ctx); /** * Enter a parse tree produced by {@link ObsidiCodeParser#literal}. * @param ctx the parse tree @@ -37,6 +37,376 @@ public interface ObsidiCodeListener extends ParseTreeListener { * @param ctx the parse tree */ void exitTypeName(ObsidiCodeParser.TypeNameContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#type}. + * @param ctx the parse tree + */ + void enterType(ObsidiCodeParser.TypeContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#type}. + * @param ctx the parse tree + */ + void exitType(ObsidiCodeParser.TypeContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#primitiveType}. + * @param ctx the parse tree + */ + void enterPrimitiveType(ObsidiCodeParser.PrimitiveTypeContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#primitiveType}. + * @param ctx the parse tree + */ + void exitPrimitiveType(ObsidiCodeParser.PrimitiveTypeContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#referenceType}. + * @param ctx the parse tree + */ + void enterReferenceType(ObsidiCodeParser.ReferenceTypeContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#referenceType}. + * @param ctx the parse tree + */ + void exitReferenceType(ObsidiCodeParser.ReferenceTypeContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#loads}. + * @param ctx the parse tree + */ + void enterLoads(ObsidiCodeParser.LoadsContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#loads}. + * @param ctx the parse tree + */ + void exitLoads(ObsidiCodeParser.LoadsContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#roboDcl}. + * @param ctx the parse tree + */ + void enterRoboDcl(ObsidiCodeParser.RoboDclContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#roboDcl}. + * @param ctx the parse tree + */ + void exitRoboDcl(ObsidiCodeParser.RoboDclContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#roboBodyDcl}. + * @param ctx the parse tree + */ + void enterRoboBodyDcl(ObsidiCodeParser.RoboBodyDclContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#roboBodyDcl}. + * @param ctx the parse tree + */ + void exitRoboBodyDcl(ObsidiCodeParser.RoboBodyDclContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#memberDcl}. + * @param ctx the parse tree + */ + void enterMemberDcl(ObsidiCodeParser.MemberDclContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#memberDcl}. + * @param ctx the parse tree + */ + void exitMemberDcl(ObsidiCodeParser.MemberDclContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#fieldDcl}. + * @param ctx the parse tree + */ + void enterFieldDcl(ObsidiCodeParser.FieldDclContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#fieldDcl}. + * @param ctx the parse tree + */ + void exitFieldDcl(ObsidiCodeParser.FieldDclContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#variableDclList}. + * @param ctx the parse tree + */ + void enterVariableDclList(ObsidiCodeParser.VariableDclListContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#variableDclList}. + * @param ctx the parse tree + */ + void exitVariableDclList(ObsidiCodeParser.VariableDclListContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#variableDcl}. + * @param ctx the parse tree + */ + void enterVariableDcl(ObsidiCodeParser.VariableDclContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#variableDcl}. + * @param ctx the parse tree + */ + void exitVariableDcl(ObsidiCodeParser.VariableDclContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#variableInitializer}. + * @param ctx the parse tree + */ + void enterVariableInitializer(ObsidiCodeParser.VariableInitializerContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#variableInitializer}. + * @param ctx the parse tree + */ + void exitVariableInitializer(ObsidiCodeParser.VariableInitializerContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#listInitializer}. + * @param ctx the parse tree + */ + void enterListInitializer(ObsidiCodeParser.ListInitializerContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#listInitializer}. + * @param ctx the parse tree + */ + void exitListInitializer(ObsidiCodeParser.ListInitializerContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#litList}. + * @param ctx the parse tree + */ + void enterLitList(ObsidiCodeParser.LitListContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#litList}. + * @param ctx the parse tree + */ + void exitLitList(ObsidiCodeParser.LitListContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#methodDcl}. + * @param ctx the parse tree + */ + void enterMethodDcl(ObsidiCodeParser.MethodDclContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#methodDcl}. + * @param ctx the parse tree + */ + void exitMethodDcl(ObsidiCodeParser.MethodDclContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#methodHeader}. + * @param ctx the parse tree + */ + void enterMethodHeader(ObsidiCodeParser.MethodHeaderContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#methodHeader}. + * @param ctx the parse tree + */ + void exitMethodHeader(ObsidiCodeParser.MethodHeaderContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#methodDeclarator}. + * @param ctx the parse tree + */ + void enterMethodDeclarator(ObsidiCodeParser.MethodDeclaratorContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#methodDeclarator}. + * @param ctx the parse tree + */ + void exitMethodDeclarator(ObsidiCodeParser.MethodDeclaratorContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#methodBody}. + * @param ctx the parse tree + */ + void enterMethodBody(ObsidiCodeParser.MethodBodyContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#methodBody}. + * @param ctx the parse tree + */ + void exitMethodBody(ObsidiCodeParser.MethodBodyContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#hearDcl}. + * @param ctx the parse tree + */ + void enterHearDcl(ObsidiCodeParser.HearDclContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#hearDcl}. + * @param ctx the parse tree + */ + void exitHearDcl(ObsidiCodeParser.HearDclContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#block}. + * @param ctx the parse tree + */ + void enterBlock(ObsidiCodeParser.BlockContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#block}. + * @param ctx the parse tree + */ + void exitBlock(ObsidiCodeParser.BlockContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#blockStmtList}. + * @param ctx the parse tree + */ + void enterBlockStmtList(ObsidiCodeParser.BlockStmtListContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#blockStmtList}. + * @param ctx the parse tree + */ + void exitBlockStmtList(ObsidiCodeParser.BlockStmtListContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#statement}. + * @param ctx the parse tree + */ + void enterStatement(ObsidiCodeParser.StatementContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#statement}. + * @param ctx the parse tree + */ + void exitStatement(ObsidiCodeParser.StatementContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#stmtNoSub}. + * @param ctx the parse tree + */ + void enterStmtNoSub(ObsidiCodeParser.StmtNoSubContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#stmtNoSub}. + * @param ctx the parse tree + */ + void exitStmtNoSub(ObsidiCodeParser.StmtNoSubContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#signalStmt}. + * @param ctx the parse tree + */ + void enterSignalStmt(ObsidiCodeParser.SignalStmtContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#signalStmt}. + * @param ctx the parse tree + */ + void exitSignalStmt(ObsidiCodeParser.SignalStmtContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#exprStmt}. + * @param ctx the parse tree + */ + void enterExprStmt(ObsidiCodeParser.ExprStmtContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#exprStmt}. + * @param ctx the parse tree + */ + void exitExprStmt(ObsidiCodeParser.ExprStmtContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#methodInvocation}. + * @param ctx the parse tree + */ + void enterMethodInvocation(ObsidiCodeParser.MethodInvocationContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#methodInvocation}. + * @param ctx the parse tree + */ + void exitMethodInvocation(ObsidiCodeParser.MethodInvocationContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#ifStmt}. + * @param ctx the parse tree + */ + void enterIfStmt(ObsidiCodeParser.IfStmtContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#ifStmt}. + * @param ctx the parse tree + */ + void exitIfStmt(ObsidiCodeParser.IfStmtContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#elseIfOpt}. + * @param ctx the parse tree + */ + void enterElseIfOpt(ObsidiCodeParser.ElseIfOptContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#elseIfOpt}. + * @param ctx the parse tree + */ + void exitElseIfOpt(ObsidiCodeParser.ElseIfOptContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#elseOpt}. + * @param ctx the parse tree + */ + void enterElseOpt(ObsidiCodeParser.ElseOptContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#elseOpt}. + * @param ctx the parse tree + */ + void exitElseOpt(ObsidiCodeParser.ElseOptContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#loopStmt}. + * @param ctx the parse tree + */ + void enterLoopStmt(ObsidiCodeParser.LoopStmtContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#loopStmt}. + * @param ctx the parse tree + */ + void exitLoopStmt(ObsidiCodeParser.LoopStmtContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#repeatStmt}. + * @param ctx the parse tree + */ + void enterRepeatStmt(ObsidiCodeParser.RepeatStmtContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#repeatStmt}. + * @param ctx the parse tree + */ + void exitRepeatStmt(ObsidiCodeParser.RepeatStmtContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#foreverStmt}. + * @param ctx the parse tree + */ + void enterForeverStmt(ObsidiCodeParser.ForeverStmtContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#foreverStmt}. + * @param ctx the parse tree + */ + void exitForeverStmt(ObsidiCodeParser.ForeverStmtContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#formalArgs}. + * @param ctx the parse tree + */ + void enterFormalArgs(ObsidiCodeParser.FormalArgsContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#formalArgs}. + * @param ctx the parse tree + */ + void exitFormalArgs(ObsidiCodeParser.FormalArgsContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#argsList}. + * @param ctx the parse tree + */ + void enterArgsList(ObsidiCodeParser.ArgsListContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#argsList}. + * @param ctx the parse tree + */ + void exitArgsList(ObsidiCodeParser.ArgsListContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#formalParams}. + * @param ctx the parse tree + */ + void enterFormalParams(ObsidiCodeParser.FormalParamsContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#formalParams}. + * @param ctx the parse tree + */ + void exitFormalParams(ObsidiCodeParser.FormalParamsContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#paramsList}. + * @param ctx the parse tree + */ + void enterParamsList(ObsidiCodeParser.ParamsListContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#paramsList}. + * @param ctx the parse tree + */ + void exitParamsList(ObsidiCodeParser.ParamsListContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#param}. + * @param ctx the parse tree + */ + void enterParam(ObsidiCodeParser.ParamContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#param}. + * @param ctx the parse tree + */ + void exitParam(ObsidiCodeParser.ParamContext ctx); + /** + * Enter a parse tree produced by {@link ObsidiCodeParser#expression}. + * @param ctx the parse tree + */ + void enterExpression(ObsidiCodeParser.ExpressionContext ctx); + /** + * Exit a parse tree produced by {@link ObsidiCodeParser#expression}. + * @param ctx the parse tree + */ + void exitExpression(ObsidiCodeParser.ExpressionContext ctx); /** * Enter a parse tree produced by {@link ObsidiCodeParser#assignmentExpression}. * @param ctx the parse tree diff --git a/ANTLR/src/Test/ObsidiCodeParser$AdditiveExpressionContext.class b/ANTLR/src/Test/ObsidiCodeParser$AdditiveExpressionContext.class index 7e1e6c73ba64da1293da853bd3cf89e5a6cd1048..350b9efeabc56d7ac5f7008a77e1b204dc879d0c 100644 GIT binary patch delta 102 zcmZqXZsy*=&%(s>aZGE0k3~W4~85kKP7$kut9|Hq}G>~Ql u(#!%TYk(9Z13!>t0}1hbnS7qbjE(0zgCNh3$=s~=Y&^e#%s-O@Sd9T5*c4s> delta 102 zcmZqXZsy*=&%(qaGg*+ufQdzZvNMQMnq11Fth0FuI!?=ve* d-o-4$#!}26$Wk)-605 diff --git a/ANTLR/src/Test/ObsidiCodeParser$AssignmentContext.class b/ANTLR/src/Test/ObsidiCodeParser$AssignmentContext.class index 1ec204c3d7d755e987cd43e2fdb3831a63c138bb..3f7386666a5a95c3f8a9d4f366e39d9432da3f34 100644 GIT binary patch delta 95 zcmX@ad6;uUBQq11`s8M2112u5$y=GV^|^Ez*tql<7#Tzv#DF9p0|SFJkY)tZ%mSKg pfD|JGKagYt332I9=3_Bq<1%6pxLPwr;M1& diff --git a/ANTLR/src/Test/ObsidiCodeParser$AssignmentExpressionContext.class b/ANTLR/src/Test/ObsidiCodeParser$AssignmentExpressionContext.class index 05a6c8c6da54db5d4cc99ffb83850c3c5ece49eb..7186fdd8fcaee81c728a9bbad43b32be2c6b365e 100644 GIT binary patch delta 103 zcmbQiHIr+@b!H~ckCSgQ8!&Nxnas_iZOr+dfsOMA10#bdgBXzHV_;yA2GWc`npr?& y4Ul4F;0KayAR*45KvI12S{8-L9V|j@oPQVuIsZ;xz+%tF#lRrQ#W?vXi!lIA4io7B delta 102 zcmbQqHG^xzb!H|;mB}}m4VW0!Cv&rC8!>7zurX>gFfxcThyh7H1_lNxAk7G*nb_6< vNk#^KAjt+2VblSV;*;00C`|5T5n^N1XAopGn7ok1o{iBM$TXS!jKvrL>QD|j diff --git a/ANTLR/src/Test/ObsidiCodeParser$ConditionAndExpressionContext.class b/ANTLR/src/Test/ObsidiCodeParser$ConditionAndExpressionContext.class index 468a2805e1f19b090b4d6d541a37b4d13a0f0c8d..ee68e5c28ec975e799290d865354bf2686f4340f 100644 GIT binary patch delta 95 zcmcc4d7X2^TxKS2?aA|*4Vbv~CSPRM*5@{4VB7#J8C_<$rEkY?a| l3M9oQPh?S;oWml-#`S_hkn82-78ZLpt~WsD+sP+cv;hF37HV!Z diff --git a/ANTLR/src/Test/ObsidiCodeParser$ConditionalExpressionContext.class b/ANTLR/src/Test/ObsidiCodeParser$ConditionalExpressionContext.class index c5e84db720634efcb6ec670eacd56b3664306f28..e837efb4b9f5f70f60c3cbfe7394831d16d748ee 100644 GIT binary patch delta 78 zcmeyw@rh$Y7Bdsqw#hln+H71q8Q8dXO`gjvE~c}Ffq{XMfe%Qs0ci%V-9S=!GCzyL eY+U;o1iAK4W@52t<2nRn9-i#Zq74Asx)DqO delta 78 zcmeyw@rh$Y7Bds$%gH&++H8z(7}yx!PM*swF2=rwfq{XMfe%Qs0ci%tcR*5jGCzyL eY>Xcn1Q|a~W@52tWBdwaew*yhq7485@e+3c diff --git a/ANTLR/src/Test/ObsidiCodeParser$EqualityExpressionContext.class b/ANTLR/src/Test/ObsidiCodeParser$EqualityExpressionContext.class index 7b0339fa69cee31355e97928504fa0a1c1598980..15a868f5b62684d6e6bacd2130f0b00a16c8ff9f 100644 GIT binary patch delta 102 zcmZ3_y`Fo6H478>@yWI<229+iCg+2wvy&IHXzO!dU|{3E$iT=T!5|4F`4|`&q=7Ue vkY*MzSOcUO8Tf%D8%T)z(&XPPW^CM783ehnO*Ut>XXCyJWZs%w!)gowLm3o^ delta 102 zcmZ3_y`Fo6H478dugSJ7224zUC+7nxW`@ZNS+w<;nHkuaSr`}@Bp4)tBp(9WCIB?vrhiaV#dbI!63-YIoX`mo{gCY$mE?|!)gowV{#4; diff --git a/ANTLR/src/Test/ObsidiCodeParser$EqualityExpressionEndContext.class b/ANTLR/src/Test/ObsidiCodeParser$EqualityExpressionEndContext.class index ab3d65d475cbf50252ec34fb8977b6b6b9d5d10b..9cba14e4cdd742317895fe698bcba54208fafe3a 100644 GIT binary patch delta 96 zcmaFI@s49d8Z#4**yIdmZDSru1~wik21W)!1|cBH%fP@O4Wt=?G_!!=8X(2Uzy~DR oKtenqDdEZ7EDDpKF$=Nr$T0}=$WQ*qY|qA{1Y{~tc4pBA0BOApZvX%Q delta 96 zcmaFI@s49d8Z#5K=j04#ZDVF11~z7221W)!1|cBH%fP@O4Wt=?G_wHD8X(2Uzy~DR oKtjxZKvH-zH;cmLXUsxu%z+Go%t4d?G262-hXR>llbu<#0hhrIng9R* diff --git a/ANTLR/src/Test/ObsidiCodeParser$ExpressionContext.class b/ANTLR/src/Test/ObsidiCodeParser$ExpressionContext.class index 624944651f72cbb64ccf66fb2a0ff24a00c54b05..b8ae2756c0f6ed2dc2254e9ff927c9e4f1bb638f 100644 GIT binary patch delta 88 zcmdnSv7KXsJ~I>NsmX@S+WMSl8Q3__F)%U+G6(@lUIqpRX&}uAq?rZO*8nL-20kFk j1`^^tKe>z9jE(aWgCOVS$;X)O**LEOnb#+CvuFbVmW&UM delta 87 zcmdnav5jMcJ~I#+ASz$dx$Rg2kSVD+S0*om|Ue3;^gX4zd6M delta 94 zcmdnUxq)*-J~IFLS)H+easjhB>m&w2hRKuHFgvhL1G1)1{>ZEh02}TWL;wH) diff --git a/ANTLR/src/Test/ObsidiCodeParser$MultiExprContext.class b/ANTLR/src/Test/ObsidiCodeParser$MultiExprContext.class index 9902d9819b4a52e3e89c5e081b239a3dad2ceb58..2979ab95862f340fdb174385b13d42fa53c77345 100644 GIT binary patch delta 102 zcmZ3$wSa5G8fGTm!pZBH4VZXKCO-gC<&%Y2wDozb7}$8L85kKP7$kut9|Hq}G>~Ql u(#!&8Yk(9Z13!>t0}1igOwM63W8 vK$=-Va1D@RWZ(yqY#K$=;=at)ATWDo?BY#<@NfXNE1W^8=H41#0> delta 109 zcmaFD{e*ji9t#s|>0|>I118pr$w?rpdh!$yRX6zK$=-VWDSsFWDo?BY#<@l=E(}IW^Al&41%oflVe!z*;u=P%g^boPFfcGO@B>LU iAkDxNHJOvujEyIjL69eIvMZ}S8&4vTnKZeJ)ffN*7!YXy delta 84 zcmdnXy_b7~CkqpE(`0WJ119Fy$+aM=WAb_yZ8qj^1~%rN$q!h>g?QI6FfcGO@B>LU iAkDzsJDHQ!jE#8$gCO(7$*!#SY|K-D%&C*RSd9TXj1lMn diff --git a/ANTLR/src/Test/ObsidiCodeParser$RelationalExpressionEndContext.class b/ANTLR/src/Test/ObsidiCodeParser$RelationalExpressionEndContext.class index 573b7985d42bd0d4701d83bb150876b1fe4a9c81..70e6c9afd774740fce2fffd60c68e0bf9a77ff1b 100644 GIT binary patch delta 95 zcmeys@quGQ1~U`SyvbS2+QvK!8Q6FhF)%U+G6(@lUIqpRX&}uAq?rYb*8nL-20kFk o1`^^~3?zjo^Rg&Re!(on#;M1& diff --git a/ANTLR/src/Test/ObsidiCodeParser$TypeNameContext.class b/ANTLR/src/Test/ObsidiCodeParser$TypeNameContext.class index 71fbccdc932c33a373a577dd5f8828ccff174807..7212f69c0d364e097346b9c0806f3946955ecbe0 100644 GIT binary patch delta 83 zcmaFC@q%N6GP9Tw^EL*?4Gatnj0`+Lk_|{RFx;JN$!y4Ye{wdn4(lVJ*yG7_nAKUI i0Odp{^Rg&Re!(ov`kX#+%8mEXn{U=M;+o delta 83 zcmaFC@q%N6GP9UC^EL*?4Gatnj0`+Lk_|{RFkGK($!y4Yb8228wvCdV;rv+@3CVB=$$+|Mj7X0e8Wfq{{M4@j~BX$C$< kASpJPkwszh9cCdmJ{AT+KGw-!nC;p4IDkyf$(AhI04|>o@&Et; delta 85 zcmaFD@q}Z87Bds8&SV{C1147e$#KluY^+8MY^=tU`&A@5` kB*i8(vM5Zx!z{$cYR(|YYBBi>vppNDHIQjD*^)&Y0Fn6)N&o-= diff --git a/ANTLR/src/Test/ObsidiCodeParser$XOrExpressionContext.class b/ANTLR/src/Test/ObsidiCodeParser$XOrExpressionContext.class index 5bd74ab026db0da0e80db4a24e7b52aa9af2a4ca..f7cfd4b414bed39c6b40d1e8ed2eec2c8a34c31c 100644 GIT binary patch delta 94 zcmZ3(xrTE?5i=8a<>V4(119d8$;+6v^||XA*ti=Q7#TzuM1dqP0|SFJkY)tZ%mVsr ofD|JGACP1N32`@0VliXmZebAQZk=qyV$a6i0c3VgZe-C00Q{>D1ONa4 delta 94 zcmZ3(xrTE?5i=9hn#m>1224!rCof~x)@Rzpz{a$hfssLkK@>>xGB7Ym18GJe%`CvR p21qe7@Bv9SkPy?BNi1e;Oxqa*nRZOJVXt4FEI@5Lo~K diff --git a/ANTLR/src/Test/ObsidiCodeParser.class b/ANTLR/src/Test/ObsidiCodeParser.class index 463804bbeb75e2bd0d0434a2107637c68c0e20dd..65b1f19934909de0e4576ea1b461127ee76c3277 100644 GIT binary patch literal 55111 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 diff --git a/ANTLR/src/Test/ObsidiCodeParser.java b/ANTLR/src/Test/ObsidiCodeParser.java index bc31a42..ca37b7f 100644 --- a/ANTLR/src/Test/ObsidiCodeParser.java +++ b/ANTLR/src/Test/ObsidiCodeParser.java @@ -18,32 +18,61 @@ public class ObsidiCodeParser extends Parser { public static final int T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9, T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, T__16=17, - T__17=18, T__18=19, T__19=20, T__20=21, T__21=22, Identifier=23, NumLit=24, - CoordLit=25, StringLit=26, WS=27; + T__17=18, T__18=19, T__19=20, T__20=21, T__21=22, T__22=23, T__23=24, + T__24=25, T__25=26, T__26=27, T__27=28, T__28=29, T__29=30, T__30=31, + T__31=32, T__32=33, T__33=34, T__34=35, T__35=36, T__36=37, T__37=38, + T__38=39, T__39=40, T__40=41, T__41=42, T__42=43, T__43=44, T__44=45, + T__45=46, T__46=47, T__47=48, T__48=49, Identifier=50, NumLit=51, CoordLit=52, + StringLit=53, WS=54, COMMENT=55, EOLCOMMENT=56; public static final int - RULE_expression = 0, RULE_literal = 1, RULE_typeName = 2, RULE_assignmentExpression = 3, - RULE_assignment = 4, RULE_leftHandSide = 5, RULE_listOpt = 6, RULE_conditionalExpression = 7, - RULE_conditionOrExpression = 8, RULE_conditionAndExpression = 9, RULE_xOrExpression = 10, - RULE_equalityExpression = 11, RULE_equalityExpressionEnd = 12, RULE_relationalExpression = 13, - RULE_relationalExpressionEnd = 14, RULE_additiveExpression = 15, RULE_additiveExpressionEnd = 16, - RULE_multiExpr = 17, RULE_multiExprEnd = 18, RULE_unaryExpr = 19, RULE_primary = 20; + RULE_prog = 0, RULE_literal = 1, RULE_typeName = 2, RULE_type = 3, RULE_primitiveType = 4, + RULE_referenceType = 5, RULE_loads = 6, RULE_roboDcl = 7, RULE_roboBodyDcl = 8, + RULE_memberDcl = 9, RULE_fieldDcl = 10, RULE_variableDclList = 11, RULE_variableDcl = 12, + RULE_variableInitializer = 13, RULE_listInitializer = 14, RULE_litList = 15, + RULE_methodDcl = 16, RULE_methodHeader = 17, RULE_methodDeclarator = 18, + RULE_methodBody = 19, RULE_hearDcl = 20, RULE_block = 21, RULE_blockStmtList = 22, + RULE_statement = 23, RULE_stmtNoSub = 24, RULE_signalStmt = 25, RULE_exprStmt = 26, + RULE_methodInvocation = 27, RULE_ifStmt = 28, RULE_elseIfOpt = 29, RULE_elseOpt = 30, + RULE_loopStmt = 31, RULE_repeatStmt = 32, RULE_foreverStmt = 33, RULE_formalArgs = 34, + RULE_argsList = 35, RULE_formalParams = 36, RULE_paramsList = 37, RULE_param = 38, + RULE_expression = 39, RULE_assignmentExpression = 40, RULE_assignment = 41, + RULE_leftHandSide = 42, RULE_listOpt = 43, RULE_conditionalExpression = 44, + RULE_conditionOrExpression = 45, RULE_conditionAndExpression = 46, RULE_xOrExpression = 47, + RULE_equalityExpression = 48, RULE_equalityExpressionEnd = 49, RULE_relationalExpression = 50, + RULE_relationalExpressionEnd = 51, RULE_additiveExpression = 52, RULE_additiveExpressionEnd = 53, + RULE_multiExpr = 54, RULE_multiExprEnd = 55, RULE_unaryExpr = 56, RULE_primary = 57; public static final String[] ruleNames = { - "expression", "literal", "typeName", "assignmentExpression", "assignment", - "leftHandSide", "listOpt", "conditionalExpression", "conditionOrExpression", - "conditionAndExpression", "xOrExpression", "equalityExpression", "equalityExpressionEnd", - "relationalExpression", "relationalExpressionEnd", "additiveExpression", - "additiveExpressionEnd", "multiExpr", "multiExprEnd", "unaryExpr", "primary" + "prog", "literal", "typeName", "type", "primitiveType", "referenceType", + "loads", "roboDcl", "roboBodyDcl", "memberDcl", "fieldDcl", "variableDclList", + "variableDcl", "variableInitializer", "listInitializer", "litList", "methodDcl", + "methodHeader", "methodDeclarator", "methodBody", "hearDcl", "block", + "blockStmtList", "statement", "stmtNoSub", "signalStmt", "exprStmt", "methodInvocation", + "ifStmt", "elseIfOpt", "elseOpt", "loopStmt", "repeatStmt", "foreverStmt", + "formalArgs", "argsList", "formalParams", "paramsList", "param", "expression", + "assignmentExpression", "assignment", "leftHandSide", "listOpt", "conditionalExpression", + "conditionOrExpression", "conditionAndExpression", "xOrExpression", "equalityExpression", + "equalityExpressionEnd", "relationalExpression", "relationalExpressionEnd", + "additiveExpression", "additiveExpressionEnd", "multiExpr", "multiExprEnd", + "unaryExpr", "primary" }; private static final String[] _LITERAL_NAMES = { - null, "'TRUE'", "'FALSE'", "'\"'", "'='", "'.'", "'['", "']'", "'OR'", - "'AND'", "'XOR'", "'IS'", "'NOT'", "'LESS_THAN'", "'GREATER_THAN'", "'LESS_THAN_EQUAL'", - "'GREATER_THAN_EQUAL'", "'+'", "'-'", "'*'", "'/'", "'('", "')'" + null, "'TRUE'", "'FALSE'", "'.'", "'NUM'", "'BOOL'", "'STRING'", "'COORD'", + "'LIST'", "'LOAD'", "'('", "')'", "'\n'", "':'", "','", "'END'", "'VOID'", + "'HEAR'", "'END HEAR'", "'BREAK'", "'RETURN'", "'SIGNAL'", "'IF'", "'END IF'", + "'elseIfOpt'", "'elseOpt'", "'ELSE IF'", "'END ELSEIF'", "'ELSE'", "'END Else'", + "'REPEAT UNTIL'", "'END REPEAT'", "'FOREVER'", "'END FOREVER'", "'='", + "'['", "']'", "'OR'", "'AND'", "'XOR'", "'IS'", "'NOT'", "'LESS_THAN'", + "'GREATER_THAN'", "'LESS_THAN_EQUAL'", "'GREATER_THAN_EQUAL'", "'+'", + "'-'", "'*'", "'/'" }; private static final String[] _SYMBOLIC_NAMES = { null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, "Identifier", - "NumLit", "CoordLit", "StringLit", "WS" + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, "Identifier", "NumLit", "CoordLit", "StringLit", "WS", "COMMENT", + "EOLCOMMENT" }; public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); @@ -94,32 +123,2196 @@ public ObsidiCodeParser(TokenStream input) { super(input); _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); } - public static class ExpressionContext extends ParserRuleContext { - public AssignmentExpressionContext assignmentExpression() { - return getRuleContext(AssignmentExpressionContext.class,0); + public static class ProgContext extends ParserRuleContext { + public RoboDclContext roboDcl() { + return getRuleContext(RoboDclContext.class,0); + } + public LoadsContext loads() { + return getRuleContext(LoadsContext.class,0); + } + public RoboBodyDclContext roboBodyDcl() { + return getRuleContext(RoboBodyDclContext.class,0); + } + public ProgContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_prog; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterProg(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitProg(this); + } + } + + public final ProgContext prog() throws RecognitionException { + ProgContext _localctx = new ProgContext(_ctx, getState()); + enterRule(_localctx, 0, RULE_prog); + try { + enterOuterAlt(_localctx, 1); + { + setState(116); + roboDcl(); + setState(117); + loads(0); + setState(118); + roboBodyDcl(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class LiteralContext extends ParserRuleContext { + public TerminalNode NumLit() { return getToken(ObsidiCodeParser.NumLit, 0); } + public TerminalNode CoordLit() { return getToken(ObsidiCodeParser.CoordLit, 0); } + public TerminalNode StringLit() { return getToken(ObsidiCodeParser.StringLit, 0); } + public LiteralContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_literal; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitLiteral(this); + } + } + + public final LiteralContext literal() throws RecognitionException { + LiteralContext _localctx = new LiteralContext(_ctx, getState()); + enterRule(_localctx, 2, RULE_literal); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(120); + _la = _input.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << T__1) | (1L << NumLit) | (1L << CoordLit) | (1L << StringLit))) != 0)) ) { + _errHandler.recoverInline(this); + } else { + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class TypeNameContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(ObsidiCodeParser.Identifier, 0); } + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public TypeNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterTypeName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitTypeName(this); + } + } + + public final TypeNameContext typeName() throws RecognitionException { + return typeName(0); + } + + private TypeNameContext typeName(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + TypeNameContext _localctx = new TypeNameContext(_ctx, _parentState); + TypeNameContext _prevctx = _localctx; + int _startState = 4; + enterRecursionRule(_localctx, 4, RULE_typeName, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(123); + match(Identifier); + } + _ctx.stop = _input.LT(-1); + setState(130); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,0,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new TypeNameContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_typeName); + setState(125); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(126); + match(T__2); + setState(127); + match(Identifier); + } + } + } + setState(132); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,0,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class TypeContext extends ParserRuleContext { + public ReferenceTypeContext referenceType() { + return getRuleContext(ReferenceTypeContext.class,0); + } + public PrimitiveTypeContext primitiveType() { + return getRuleContext(PrimitiveTypeContext.class,0); + } + public TypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_type; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitType(this); + } + } + + public final TypeContext type() throws RecognitionException { + TypeContext _localctx = new TypeContext(_ctx, getState()); + enterRule(_localctx, 6, RULE_type); + try { + setState(135); + switch (_input.LA(1)) { + case T__5: + case T__6: + case T__7: + enterOuterAlt(_localctx, 1); + { + setState(133); + referenceType(); + } + break; + case T__3: + case T__4: + enterOuterAlt(_localctx, 2); + { + setState(134); + primitiveType(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PrimitiveTypeContext extends ParserRuleContext { + public PrimitiveTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_primitiveType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterPrimitiveType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitPrimitiveType(this); + } + } + + public final PrimitiveTypeContext primitiveType() throws RecognitionException { + PrimitiveTypeContext _localctx = new PrimitiveTypeContext(_ctx, getState()); + enterRule(_localctx, 8, RULE_primitiveType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(137); + _la = _input.LA(1); + if ( !(_la==T__3 || _la==T__4) ) { + _errHandler.recoverInline(this); + } else { + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ReferenceTypeContext extends ParserRuleContext { + public ReferenceTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_referenceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterReferenceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitReferenceType(this); + } + } + + public final ReferenceTypeContext referenceType() throws RecognitionException { + ReferenceTypeContext _localctx = new ReferenceTypeContext(_ctx, getState()); + enterRule(_localctx, 10, RULE_referenceType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(139); + _la = _input.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__6) | (1L << T__7))) != 0)) ) { + _errHandler.recoverInline(this); + } else { + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class LoadsContext extends ParserRuleContext { + public LoadsContext loads() { + return getRuleContext(LoadsContext.class,0); + } + public TerminalNode StringLit() { return getToken(ObsidiCodeParser.StringLit, 0); } + public LoadsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_loads; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterLoads(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitLoads(this); + } + } + + public final LoadsContext loads() throws RecognitionException { + return loads(0); + } + + private LoadsContext loads(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + LoadsContext _localctx = new LoadsContext(_ctx, _parentState); + LoadsContext _prevctx = _localctx; + int _startState = 12; + enterRecursionRule(_localctx, 12, RULE_loads, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + } + _ctx.stop = _input.LT(-1); + setState(150); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,2,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new LoadsContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_loads); + setState(142); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(143); + match(T__8); + setState(144); + match(T__9); + setState(145); + match(StringLit); + setState(146); + match(T__10); + setState(147); + match(T__11); + } + } + } + setState(152); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,2,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class RoboDclContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(ObsidiCodeParser.Identifier, 0); } + public RoboDclContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_roboDcl; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterRoboDcl(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitRoboDcl(this); + } + } + + public final RoboDclContext roboDcl() throws RecognitionException { + RoboDclContext _localctx = new RoboDclContext(_ctx, getState()); + enterRule(_localctx, 14, RULE_roboDcl); + try { + enterOuterAlt(_localctx, 1); + { + setState(153); + match(Identifier); + setState(154); + match(T__12); + setState(155); + match(T__11); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class RoboBodyDclContext extends ParserRuleContext { + public MemberDclContext memberDcl() { + return getRuleContext(MemberDclContext.class,0); + } + public RoboBodyDclContext roboBodyDcl() { + return getRuleContext(RoboBodyDclContext.class,0); + } + public RoboBodyDclContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_roboBodyDcl; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterRoboBodyDcl(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitRoboBodyDcl(this); + } + } + + public final RoboBodyDclContext roboBodyDcl() throws RecognitionException { + return roboBodyDcl(0); + } + + private RoboBodyDclContext roboBodyDcl(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + RoboBodyDclContext _localctx = new RoboBodyDclContext(_ctx, _parentState); + RoboBodyDclContext _prevctx = _localctx; + int _startState = 16; + enterRecursionRule(_localctx, 16, RULE_roboBodyDcl, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(158); + memberDcl(); + } + _ctx.stop = _input.LT(-1); + setState(164); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,3,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new RoboBodyDclContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_roboBodyDcl); + setState(160); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(161); + memberDcl(); + } + } + } + setState(166); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,3,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class MemberDclContext extends ParserRuleContext { + public FieldDclContext fieldDcl() { + return getRuleContext(FieldDclContext.class,0); + } + public MethodDclContext methodDcl() { + return getRuleContext(MethodDclContext.class,0); + } + public MemberDclContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_memberDcl; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterMemberDcl(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitMemberDcl(this); + } + } + + public final MemberDclContext memberDcl() throws RecognitionException { + MemberDclContext _localctx = new MemberDclContext(_ctx, getState()); + enterRule(_localctx, 18, RULE_memberDcl); + try { + setState(170); + switch ( getInterpreter().adaptivePredict(_input,4,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(167); + fieldDcl(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(168); + methodDcl(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(169); + match(T__11); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class FieldDclContext extends ParserRuleContext { + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public VariableDclListContext variableDclList() { + return getRuleContext(VariableDclListContext.class,0); + } + public FieldDclContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fieldDcl; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterFieldDcl(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitFieldDcl(this); + } + } + + public final FieldDclContext fieldDcl() throws RecognitionException { + FieldDclContext _localctx = new FieldDclContext(_ctx, getState()); + enterRule(_localctx, 20, RULE_fieldDcl); + try { + enterOuterAlt(_localctx, 1); + { + setState(172); + type(); + setState(173); + variableDclList(0); + setState(174); + match(T__11); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class VariableDclListContext extends ParserRuleContext { + public VariableDclContext variableDcl() { + return getRuleContext(VariableDclContext.class,0); + } + public VariableDclListContext variableDclList() { + return getRuleContext(VariableDclListContext.class,0); + } + public VariableDclListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_variableDclList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterVariableDclList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitVariableDclList(this); + } + } + + public final VariableDclListContext variableDclList() throws RecognitionException { + return variableDclList(0); + } + + private VariableDclListContext variableDclList(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + VariableDclListContext _localctx = new VariableDclListContext(_ctx, _parentState); + VariableDclListContext _prevctx = _localctx; + int _startState = 22; + enterRecursionRule(_localctx, 22, RULE_variableDclList, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(177); + variableDcl(); + } + _ctx.stop = _input.LT(-1); + setState(184); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,5,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new VariableDclListContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_variableDclList); + setState(179); + if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); + setState(180); + match(T__13); + setState(181); + variableDcl(); + } + } + } + setState(186); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,5,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class VariableDclContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(ObsidiCodeParser.Identifier, 0); } + public VariableInitializerContext variableInitializer() { + return getRuleContext(VariableInitializerContext.class,0); + } + public ListInitializerContext listInitializer() { + return getRuleContext(ListInitializerContext.class,0); + } + public VariableDclContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_variableDcl; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterVariableDcl(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitVariableDcl(this); + } + } + + public final VariableDclContext variableDcl() throws RecognitionException { + VariableDclContext _localctx = new VariableDclContext(_ctx, getState()); + enterRule(_localctx, 24, RULE_variableDcl); + try { + setState(191); + switch ( getInterpreter().adaptivePredict(_input,6,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(187); + match(Identifier); + setState(188); + variableInitializer(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(189); + match(Identifier); + setState(190); + listInitializer(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class VariableInitializerContext extends ParserRuleContext { + public AssignmentExpressionContext assignmentExpression() { + return getRuleContext(AssignmentExpressionContext.class,0); + } + public VariableInitializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_variableInitializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterVariableInitializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitVariableInitializer(this); + } + } + + public final VariableInitializerContext variableInitializer() throws RecognitionException { + VariableInitializerContext _localctx = new VariableInitializerContext(_ctx, getState()); + enterRule(_localctx, 26, RULE_variableInitializer); + try { + setState(195); + switch ( getInterpreter().adaptivePredict(_input,7,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(193); + assignmentExpression(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ListInitializerContext extends ParserRuleContext { + public LitListContext litList() { + return getRuleContext(LitListContext.class,0); + } + public TerminalNode Identifier() { return getToken(ObsidiCodeParser.Identifier, 0); } + public ListInitializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_listInitializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterListInitializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitListInitializer(this); + } + } + + public final ListInitializerContext listInitializer() throws RecognitionException { + ListInitializerContext _localctx = new ListInitializerContext(_ctx, getState()); + enterRule(_localctx, 28, RULE_listInitializer); + try { + setState(202); + switch ( getInterpreter().adaptivePredict(_input,8,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(197); + litList(0); + setState(198); + match(T__14); + setState(199); + match(Identifier); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class LitListContext extends ParserRuleContext { + public PrimaryContext primary() { + return getRuleContext(PrimaryContext.class,0); + } + public LitListContext litList() { + return getRuleContext(LitListContext.class,0); + } + public LitListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_litList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterLitList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitLitList(this); + } + } + + public final LitListContext litList() throws RecognitionException { + return litList(0); + } + + private LitListContext litList(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + LitListContext _localctx = new LitListContext(_ctx, _parentState); + LitListContext _prevctx = _localctx; + int _startState = 30; + enterRecursionRule(_localctx, 30, RULE_litList, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(205); + primary(); + } + _ctx.stop = _input.LT(-1); + setState(212); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,9,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new LitListContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_litList); + setState(207); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(208); + match(T__13); + setState(209); + primary(); + } + } + } + setState(214); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,9,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class MethodDclContext extends ParserRuleContext { + public MethodHeaderContext methodHeader() { + return getRuleContext(MethodHeaderContext.class,0); + } + public MethodBodyContext methodBody() { + return getRuleContext(MethodBodyContext.class,0); + } + public HearDclContext hearDcl() { + return getRuleContext(HearDclContext.class,0); + } + public MethodDclContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_methodDcl; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterMethodDcl(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitMethodDcl(this); + } + } + + public final MethodDclContext methodDcl() throws RecognitionException { + MethodDclContext _localctx = new MethodDclContext(_ctx, getState()); + enterRule(_localctx, 32, RULE_methodDcl); + try { + setState(219); + switch (_input.LA(1)) { + case T__3: + case T__4: + case T__5: + case T__6: + case T__7: + case T__15: + enterOuterAlt(_localctx, 1); + { + setState(215); + methodHeader(); + setState(216); + methodBody(); + } + break; + case T__16: + enterOuterAlt(_localctx, 2); + { + setState(218); + hearDcl(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class MethodHeaderContext extends ParserRuleContext { + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public MethodDeclaratorContext methodDeclarator() { + return getRuleContext(MethodDeclaratorContext.class,0); + } + public MethodHeaderContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_methodHeader; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterMethodHeader(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitMethodHeader(this); + } + } + + public final MethodHeaderContext methodHeader() throws RecognitionException { + MethodHeaderContext _localctx = new MethodHeaderContext(_ctx, getState()); + enterRule(_localctx, 34, RULE_methodHeader); + try { + setState(226); + switch (_input.LA(1)) { + case T__3: + case T__4: + case T__5: + case T__6: + case T__7: + enterOuterAlt(_localctx, 1); + { + setState(221); + type(); + setState(222); + methodDeclarator(); + } + break; + case T__15: + enterOuterAlt(_localctx, 2); + { + setState(224); + match(T__15); + setState(225); + methodDeclarator(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class MethodDeclaratorContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(ObsidiCodeParser.Identifier, 0); } + public FormalParamsContext formalParams() { + return getRuleContext(FormalParamsContext.class,0); + } + public MethodDeclaratorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_methodDeclarator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterMethodDeclarator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitMethodDeclarator(this); + } + } + + public final MethodDeclaratorContext methodDeclarator() throws RecognitionException { + MethodDeclaratorContext _localctx = new MethodDeclaratorContext(_ctx, getState()); + enterRule(_localctx, 36, RULE_methodDeclarator); + try { + enterOuterAlt(_localctx, 1); + { + setState(228); + match(Identifier); + setState(229); + match(T__9); + setState(230); + formalParams(); + setState(231); + match(T__10); + setState(232); + match(T__11); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class MethodBodyContext extends ParserRuleContext { + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public TerminalNode Identifier() { return getToken(ObsidiCodeParser.Identifier, 0); } + public MethodBodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_methodBody; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterMethodBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitMethodBody(this); + } + } + + public final MethodBodyContext methodBody() throws RecognitionException { + MethodBodyContext _localctx = new MethodBodyContext(_ctx, getState()); + enterRule(_localctx, 38, RULE_methodBody); + try { + enterOuterAlt(_localctx, 1); + { + setState(234); + block(); + setState(235); + match(T__14); + setState(236); + match(Identifier); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class HearDclContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(ObsidiCodeParser.Identifier, 0); } + public FormalParamsContext formalParams() { + return getRuleContext(FormalParamsContext.class,0); + } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public HearDclContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_hearDcl; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterHearDcl(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitHearDcl(this); + } + } + + public final HearDclContext hearDcl() throws RecognitionException { + HearDclContext _localctx = new HearDclContext(_ctx, getState()); + enterRule(_localctx, 40, RULE_hearDcl); + try { + enterOuterAlt(_localctx, 1); + { + setState(238); + match(T__16); + setState(239); + match(Identifier); + setState(240); + match(T__9); + setState(241); + formalParams(); + setState(242); + match(T__10); + setState(243); + match(T__11); + setState(244); + block(); + setState(245); + match(T__17); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class BlockContext extends ParserRuleContext { + public BlockStmtListContext blockStmtList() { + return getRuleContext(BlockStmtListContext.class,0); + } + public BlockContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_block; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterBlock(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitBlock(this); + } + } + + public final BlockContext block() throws RecognitionException { + BlockContext _localctx = new BlockContext(_ctx, getState()); + enterRule(_localctx, 42, RULE_block); + try { + setState(249); + switch (_input.LA(1)) { + case T__0: + case T__1: + case T__3: + case T__4: + case T__5: + case T__6: + case T__7: + case T__9: + case T__11: + case T__18: + case T__19: + case T__20: + case T__21: + case T__29: + case T__31: + case T__45: + case T__46: + case Identifier: + case NumLit: + case CoordLit: + case StringLit: + enterOuterAlt(_localctx, 1); + { + setState(247); + blockStmtList(0); + } + break; + case T__14: + case T__17: + case T__22: + case T__26: + case T__28: + case T__30: + case T__32: + enterOuterAlt(_localctx, 2); + { + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class BlockStmtListContext extends ParserRuleContext { + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public BlockStmtListContext blockStmtList() { + return getRuleContext(BlockStmtListContext.class,0); + } + public BlockStmtListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_blockStmtList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterBlockStmtList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitBlockStmtList(this); + } + } + + public final BlockStmtListContext blockStmtList() throws RecognitionException { + return blockStmtList(0); + } + + private BlockStmtListContext blockStmtList(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + BlockStmtListContext _localctx = new BlockStmtListContext(_ctx, _parentState); + BlockStmtListContext _prevctx = _localctx; + int _startState = 44; + enterRecursionRule(_localctx, 44, RULE_blockStmtList, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + setState(252); + statement(); + setState(253); + match(T__11); + } + _ctx.stop = _input.LT(-1); + setState(261); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,13,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new BlockStmtListContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_blockStmtList); + setState(255); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(256); + statement(); + setState(257); + match(T__11); + } + } + } + setState(263); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,13,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class StatementContext extends ParserRuleContext { + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public VariableDclListContext variableDclList() { + return getRuleContext(VariableDclListContext.class,0); + } + public StmtNoSubContext stmtNoSub() { + return getRuleContext(StmtNoSubContext.class,0); + } + public IfStmtContext ifStmt() { + return getRuleContext(IfStmtContext.class,0); + } + public LoopStmtContext loopStmt() { + return getRuleContext(LoopStmtContext.class,0); + } + public StatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_statement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitStatement(this); + } + } + + public final StatementContext statement() throws RecognitionException { + StatementContext _localctx = new StatementContext(_ctx, getState()); + enterRule(_localctx, 46, RULE_statement); + try { + setState(270); + switch (_input.LA(1)) { + case T__3: + case T__4: + case T__5: + case T__6: + case T__7: + enterOuterAlt(_localctx, 1); + { + setState(264); + type(); + setState(265); + variableDclList(0); + } + break; + case T__0: + case T__1: + case T__9: + case T__11: + case T__18: + case T__19: + case T__20: + case T__45: + case T__46: + case Identifier: + case NumLit: + case CoordLit: + case StringLit: + enterOuterAlt(_localctx, 2); + { + setState(267); + stmtNoSub(); + } + break; + case T__21: + enterOuterAlt(_localctx, 3); + { + setState(268); + ifStmt(); + } + break; + case T__29: + case T__31: + enterOuterAlt(_localctx, 4); + { + setState(269); + loopStmt(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class StmtNoSubContext extends ParserRuleContext { + public SignalStmtContext signalStmt() { + return getRuleContext(SignalStmtContext.class,0); + } + public ExprStmtContext exprStmt() { + return getRuleContext(ExprStmtContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public StmtNoSubContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_stmtNoSub; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterStmtNoSub(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitStmtNoSub(this); + } + } + + public final StmtNoSubContext stmtNoSub() throws RecognitionException { + StmtNoSubContext _localctx = new StmtNoSubContext(_ctx, getState()); + enterRule(_localctx, 48, RULE_stmtNoSub); + try { + setState(278); + switch (_input.LA(1)) { + case T__11: + enterOuterAlt(_localctx, 1); + { + } + break; + case T__20: + enterOuterAlt(_localctx, 2); + { + setState(273); + signalStmt(); + } + break; + case T__0: + case T__1: + case T__9: + case T__45: + case T__46: + case Identifier: + case NumLit: + case CoordLit: + case StringLit: + enterOuterAlt(_localctx, 3); + { + setState(274); + exprStmt(); + } + break; + case T__18: + enterOuterAlt(_localctx, 4); + { + setState(275); + match(T__18); + } + break; + case T__19: + enterOuterAlt(_localctx, 5); + { + setState(276); + match(T__19); + setState(277); + expression(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SignalStmtContext extends ParserRuleContext { + public TerminalNode Identifier() { return getToken(ObsidiCodeParser.Identifier, 0); } + public ArgsListContext argsList() { + return getRuleContext(ArgsListContext.class,0); + } + public SignalStmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_signalStmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterSignalStmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitSignalStmt(this); + } + } + + public final SignalStmtContext signalStmt() throws RecognitionException { + SignalStmtContext _localctx = new SignalStmtContext(_ctx, getState()); + enterRule(_localctx, 50, RULE_signalStmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(280); + match(T__20); + setState(281); + match(Identifier); + setState(282); + match(T__9); + setState(283); + argsList(0); + setState(284); + match(T__10); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ExprStmtContext extends ParserRuleContext { + public AssignmentExpressionContext assignmentExpression() { + return getRuleContext(AssignmentExpressionContext.class,0); + } + public MethodInvocationContext methodInvocation() { + return getRuleContext(MethodInvocationContext.class,0); + } + public ExprStmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_exprStmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterExprStmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitExprStmt(this); + } + } + + public final ExprStmtContext exprStmt() throws RecognitionException { + ExprStmtContext _localctx = new ExprStmtContext(_ctx, getState()); + enterRule(_localctx, 52, RULE_exprStmt); + try { + setState(288); + switch ( getInterpreter().adaptivePredict(_input,16,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(286); + assignmentExpression(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(287); + methodInvocation(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class MethodInvocationContext extends ParserRuleContext { + public TypeNameContext typeName() { + return getRuleContext(TypeNameContext.class,0); + } + public FormalArgsContext formalArgs() { + return getRuleContext(FormalArgsContext.class,0); + } + public MethodInvocationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_methodInvocation; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterMethodInvocation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitMethodInvocation(this); + } + } + + public final MethodInvocationContext methodInvocation() throws RecognitionException { + MethodInvocationContext _localctx = new MethodInvocationContext(_ctx, getState()); + enterRule(_localctx, 54, RULE_methodInvocation); + try { + enterOuterAlt(_localctx, 1); + { + setState(290); + typeName(0); + setState(291); + match(T__9); + setState(292); + formalArgs(); + setState(293); + match(T__10); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class IfStmtContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public IfStmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_ifStmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterIfStmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitIfStmt(this); + } + } + + public final IfStmtContext ifStmt() throws RecognitionException { + IfStmtContext _localctx = new IfStmtContext(_ctx, getState()); + enterRule(_localctx, 56, RULE_ifStmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(295); + match(T__21); + setState(296); + match(T__9); + setState(297); + expression(); + setState(298); + match(T__10); + setState(299); + match(T__11); + setState(300); + block(); + setState(301); + match(T__22); + setState(302); + match(T__23); + setState(303); + match(T__24); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ElseIfOptContext extends ParserRuleContext { + public ElseIfOptContext elseIfOpt() { + return getRuleContext(ElseIfOptContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public ElseIfOptContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_elseIfOpt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterElseIfOpt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitElseIfOpt(this); + } + } + + public final ElseIfOptContext elseIfOpt() throws RecognitionException { + return elseIfOpt(0); + } + + private ElseIfOptContext elseIfOpt(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + ElseIfOptContext _localctx = new ElseIfOptContext(_ctx, _parentState); + ElseIfOptContext _prevctx = _localctx; + int _startState = 58; + enterRecursionRule(_localctx, 58, RULE_elseIfOpt, _p); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + { + } + _ctx.stop = _input.LT(-1); + setState(317); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,17,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new ElseIfOptContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_elseIfOpt); + setState(306); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(307); + match(T__25); + setState(308); + match(T__9); + setState(309); + expression(); + setState(310); + match(T__10); + setState(311); + match(T__11); + setState(312); + block(); + setState(313); + match(T__26); + } + } + } + setState(319); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,17,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public static class ElseOptContext extends ParserRuleContext { + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public ElseOptContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_elseOpt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterElseOpt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitElseOpt(this); + } + } + + public final ElseOptContext elseOpt() throws RecognitionException { + ElseOptContext _localctx = new ElseOptContext(_ctx, getState()); + enterRule(_localctx, 60, RULE_elseOpt); + try { + setState(326); + switch (_input.LA(1)) { + case T__27: + enterOuterAlt(_localctx, 1); + { + setState(320); + match(T__27); + setState(321); + match(T__11); + setState(322); + block(); + setState(323); + match(T__28); + } + break; + case EOF: + enterOuterAlt(_localctx, 2); + { + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class LoopStmtContext extends ParserRuleContext { + public RepeatStmtContext repeatStmt() { + return getRuleContext(RepeatStmtContext.class,0); + } + public ForeverStmtContext foreverStmt() { + return getRuleContext(ForeverStmtContext.class,0); + } + public LoopStmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_loopStmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterLoopStmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitLoopStmt(this); + } + } + + public final LoopStmtContext loopStmt() throws RecognitionException { + LoopStmtContext _localctx = new LoopStmtContext(_ctx, getState()); + enterRule(_localctx, 62, RULE_loopStmt); + try { + setState(330); + switch (_input.LA(1)) { + case T__29: + enterOuterAlt(_localctx, 1); + { + setState(328); + repeatStmt(); + } + break; + case T__31: + enterOuterAlt(_localctx, 2); + { + setState(329); + foreverStmt(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class RepeatStmtContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public RepeatStmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_repeatStmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterRepeatStmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitRepeatStmt(this); + } + } + + public final RepeatStmtContext repeatStmt() throws RecognitionException { + RepeatStmtContext _localctx = new RepeatStmtContext(_ctx, getState()); + enterRule(_localctx, 64, RULE_repeatStmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(332); + match(T__29); + setState(333); + match(T__9); + setState(334); + expression(); + setState(335); + match(T__10); + setState(336); + match(T__11); + setState(337); + block(); + setState(338); + match(T__30); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ForeverStmtContext extends ParserRuleContext { + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public ForeverStmtContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_foreverStmt; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterForeverStmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitForeverStmt(this); + } + } + + public final ForeverStmtContext foreverStmt() throws RecognitionException { + ForeverStmtContext _localctx = new ForeverStmtContext(_ctx, getState()); + enterRule(_localctx, 66, RULE_foreverStmt); + try { + enterOuterAlt(_localctx, 1); + { + setState(340); + match(T__31); + setState(341); + match(T__11); + setState(342); + block(); + setState(343); + match(T__32); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class FormalArgsContext extends ParserRuleContext { + public ArgsListContext argsList() { + return getRuleContext(ArgsListContext.class,0); + } + public FormalArgsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_formalArgs; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterFormalArgs(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitFormalArgs(this); + } + } + + public final FormalArgsContext formalArgs() throws RecognitionException { + FormalArgsContext _localctx = new FormalArgsContext(_ctx, getState()); + enterRule(_localctx, 68, RULE_formalArgs); + try { + setState(347); + switch (_input.LA(1)) { + case T__0: + case T__1: + case T__9: + case T__45: + case T__46: + case Identifier: + case NumLit: + case CoordLit: + case StringLit: + enterOuterAlt(_localctx, 1); + { + setState(345); + argsList(0); + } + break; + case T__10: + enterOuterAlt(_localctx, 2); + { + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ArgsListContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); } - public ExpressionContext(ParserRuleContext parent, int invokingState) { + public ArgsListContext argsList() { + return getRuleContext(ArgsListContext.class,0); + } + public ArgsListContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } - @Override public int getRuleIndex() { return RULE_expression; } + @Override public int getRuleIndex() { return RULE_argsList; } @Override public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterExpression(this); + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterArgsList(this); } @Override public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitExpression(this); + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitArgsList(this); } } - public final ExpressionContext expression() throws RecognitionException { - ExpressionContext _localctx = new ExpressionContext(_ctx, getState()); - enterRule(_localctx, 0, RULE_expression); + public final ArgsListContext argsList() throws RecognitionException { + return argsList(0); + } + + private ArgsListContext argsList(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + ArgsListContext _localctx = new ArgsListContext(_ctx, _parentState); + ArgsListContext _prevctx = _localctx; + int _startState = 70; + enterRecursionRule(_localctx, 70, RULE_argsList, _p); try { + int _alt; enterOuterAlt(_localctx, 1); { - setState(42); - assignmentExpression(); + { + setState(350); + expression(); + } + _ctx.stop = _input.LT(-1); + setState(357); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,21,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + { + _localctx = new ArgsListContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_argsList); + setState(352); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(353); + match(T__13); + setState(354); + expression(); + } + } + } + setState(359); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,21,_ctx); + } } } catch (RecognitionException re) { @@ -128,72 +2321,49 @@ public final ExpressionContext expression() throws RecognitionException { _errHandler.recover(this, re); } finally { - exitRule(); + unrollRecursionContexts(_parentctx); } return _localctx; } - public static class LiteralContext extends ParserRuleContext { - public TerminalNode NumLit() { return getToken(ObsidiCodeParser.NumLit, 0); } - public TerminalNode CoordLit() { return getToken(ObsidiCodeParser.CoordLit, 0); } - public TerminalNode StringLit() { return getToken(ObsidiCodeParser.StringLit, 0); } - public LiteralContext(ParserRuleContext parent, int invokingState) { + public static class FormalParamsContext extends ParserRuleContext { + public ParamsListContext paramsList() { + return getRuleContext(ParamsListContext.class,0); + } + public FormalParamsContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } - @Override public int getRuleIndex() { return RULE_literal; } + @Override public int getRuleIndex() { return RULE_formalParams; } @Override public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterLiteral(this); + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterFormalParams(this); } @Override public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitLiteral(this); + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitFormalParams(this); } } - public final LiteralContext literal() throws RecognitionException { - LiteralContext _localctx = new LiteralContext(_ctx, getState()); - enterRule(_localctx, 2, RULE_literal); + public final FormalParamsContext formalParams() throws RecognitionException { + FormalParamsContext _localctx = new FormalParamsContext(_ctx, getState()); + enterRule(_localctx, 72, RULE_formalParams); try { - setState(51); + setState(362); switch (_input.LA(1)) { - case NumLit: + case T__3: + case T__4: + case T__5: + case T__6: + case T__7: enterOuterAlt(_localctx, 1); { - setState(44); - match(NumLit); + setState(360); + paramsList(0); } break; - case T__0: + case T__10: enterOuterAlt(_localctx, 2); { - setState(45); - match(T__0); - } - break; - case T__1: - enterOuterAlt(_localctx, 3); - { - setState(46); - match(T__1); - } - break; - case CoordLit: - enterOuterAlt(_localctx, 4); - { - setState(47); - match(CoordLit); - } - break; - case T__2: - enterOuterAlt(_localctx, 5); - { - setState(48); - match(T__2); - setState(49); - match(StringLit); - setState(50); - match(T__3); } break; default: @@ -211,68 +2381,70 @@ public final LiteralContext literal() throws RecognitionException { return _localctx; } - public static class TypeNameContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(ObsidiCodeParser.Identifier, 0); } - public TypeNameContext typeName() { - return getRuleContext(TypeNameContext.class,0); + public static class ParamsListContext extends ParserRuleContext { + public ParamContext param() { + return getRuleContext(ParamContext.class,0); } - public TypeNameContext(ParserRuleContext parent, int invokingState) { + public ParamsListContext paramsList() { + return getRuleContext(ParamsListContext.class,0); + } + public ParamsListContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } - @Override public int getRuleIndex() { return RULE_typeName; } + @Override public int getRuleIndex() { return RULE_paramsList; } @Override public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterTypeName(this); + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterParamsList(this); } @Override public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitTypeName(this); + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitParamsList(this); } } - public final TypeNameContext typeName() throws RecognitionException { - return typeName(0); + public final ParamsListContext paramsList() throws RecognitionException { + return paramsList(0); } - private TypeNameContext typeName(int _p) throws RecognitionException { + private ParamsListContext paramsList(int _p) throws RecognitionException { ParserRuleContext _parentctx = _ctx; int _parentState = getState(); - TypeNameContext _localctx = new TypeNameContext(_ctx, _parentState); - TypeNameContext _prevctx = _localctx; - int _startState = 4; - enterRecursionRule(_localctx, 4, RULE_typeName, _p); + ParamsListContext _localctx = new ParamsListContext(_ctx, _parentState); + ParamsListContext _prevctx = _localctx; + int _startState = 74; + enterRecursionRule(_localctx, 74, RULE_paramsList, _p); try { int _alt; enterOuterAlt(_localctx, 1); { { - setState(54); - match(Identifier); + setState(365); + param(); } _ctx.stop = _input.LT(-1); - setState(61); + setState(372); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,1,_ctx); + _alt = getInterpreter().adaptivePredict(_input,23,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); _prevctx = _localctx; { { - _localctx = new TypeNameContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_typeName); - setState(56); - if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(57); - match(T__4); - setState(58); - match(Identifier); + _localctx = new ParamsListContext(_parentctx, _parentState); + pushNewRecursionContext(_localctx, _startState, RULE_paramsList); + setState(367); + if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(368); + match(T__13); + setState(369); + param(); } } } - setState(63); + setState(374); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,1,_ctx); + _alt = getInterpreter().adaptivePredict(_input,23,_ctx); } } } @@ -287,6 +2459,87 @@ private TypeNameContext typeName(int _p) throws RecognitionException { return _localctx; } + public static class ParamContext extends ParserRuleContext { + public TypeContext type() { + return getRuleContext(TypeContext.class,0); + } + public TerminalNode Identifier() { return getToken(ObsidiCodeParser.Identifier, 0); } + public ParamContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_param; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterParam(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitParam(this); + } + } + + public final ParamContext param() throws RecognitionException { + ParamContext _localctx = new ParamContext(_ctx, getState()); + enterRule(_localctx, 76, RULE_param); + try { + enterOuterAlt(_localctx, 1); + { + setState(375); + type(); + setState(376); + match(Identifier); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ExpressionContext extends ParserRuleContext { + public AssignmentExpressionContext assignmentExpression() { + return getRuleContext(AssignmentExpressionContext.class,0); + } + public ExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitExpression(this); + } + } + + public final ExpressionContext expression() throws RecognitionException { + ExpressionContext _localctx = new ExpressionContext(_ctx, getState()); + enterRule(_localctx, 78, RULE_expression); + try { + enterOuterAlt(_localctx, 1); + { + setState(378); + assignmentExpression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + public static class AssignmentExpressionContext extends ParserRuleContext { public ConditionalExpressionContext conditionalExpression() { return getRuleContext(ConditionalExpressionContext.class,0); @@ -310,21 +2563,21 @@ public void exitRule(ParseTreeListener listener) { public final AssignmentExpressionContext assignmentExpression() throws RecognitionException { AssignmentExpressionContext _localctx = new AssignmentExpressionContext(_ctx, getState()); - enterRule(_localctx, 6, RULE_assignmentExpression); + enterRule(_localctx, 80, RULE_assignmentExpression); try { - setState(66); - switch ( getInterpreter().adaptivePredict(_input,2,_ctx) ) { + setState(382); + switch ( getInterpreter().adaptivePredict(_input,24,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(64); + setState(380); conditionalExpression(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(65); + setState(381); assignment(); } break; @@ -364,15 +2617,15 @@ public void exitRule(ParseTreeListener listener) { public final AssignmentContext assignment() throws RecognitionException { AssignmentContext _localctx = new AssignmentContext(_ctx, getState()); - enterRule(_localctx, 8, RULE_assignment); + enterRule(_localctx, 82, RULE_assignment); try { enterOuterAlt(_localctx, 1); { - setState(68); + setState(384); leftHandSide(); - setState(69); - match(T__3); - setState(70); + setState(385); + match(T__33); + setState(386); expression(); } } @@ -410,13 +2663,13 @@ public void exitRule(ParseTreeListener listener) { public final LeftHandSideContext leftHandSide() throws RecognitionException { LeftHandSideContext _localctx = new LeftHandSideContext(_ctx, getState()); - enterRule(_localctx, 10, RULE_leftHandSide); + enterRule(_localctx, 84, RULE_leftHandSide); try { enterOuterAlt(_localctx, 1); { - setState(72); + setState(388); typeName(0); - setState(73); + setState(389); listOpt(); } } @@ -451,19 +2704,19 @@ public void exitRule(ParseTreeListener listener) { public final ListOptContext listOpt() throws RecognitionException { ListOptContext _localctx = new ListOptContext(_ctx, getState()); - enterRule(_localctx, 12, RULE_listOpt); + enterRule(_localctx, 86, RULE_listOpt); try { - setState(80); - switch ( getInterpreter().adaptivePredict(_input,3,_ctx) ) { + setState(396); + switch ( getInterpreter().adaptivePredict(_input,25,_ctx) ) { case 1: enterOuterAlt(_localctx, 1); { - setState(75); - match(T__5); - setState(76); + setState(391); + match(T__34); + setState(392); expression(); - setState(77); - match(T__6); + setState(393); + match(T__35); } break; case 2: @@ -504,11 +2757,11 @@ public void exitRule(ParseTreeListener listener) { public final ConditionalExpressionContext conditionalExpression() throws RecognitionException { ConditionalExpressionContext _localctx = new ConditionalExpressionContext(_ctx, getState()); - enterRule(_localctx, 14, RULE_conditionalExpression); + enterRule(_localctx, 88, RULE_conditionalExpression); try { enterOuterAlt(_localctx, 1); { - setState(82); + setState(398); conditionOrExpression(0); } } @@ -553,20 +2806,20 @@ private ConditionOrExpressionContext conditionOrExpression(int _p) throws Recogn int _parentState = getState(); ConditionOrExpressionContext _localctx = new ConditionOrExpressionContext(_ctx, _parentState); ConditionOrExpressionContext _prevctx = _localctx; - int _startState = 16; - enterRecursionRule(_localctx, 16, RULE_conditionOrExpression, _p); + int _startState = 90; + enterRecursionRule(_localctx, 90, RULE_conditionOrExpression, _p); try { int _alt; enterOuterAlt(_localctx, 1); { { - setState(85); + setState(401); conditionAndExpression(0); } _ctx.stop = _input.LT(-1); - setState(92); + setState(408); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,4,_ctx); + _alt = getInterpreter().adaptivePredict(_input,26,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); @@ -575,18 +2828,18 @@ private ConditionOrExpressionContext conditionOrExpression(int _p) throws Recogn { _localctx = new ConditionOrExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_conditionOrExpression); - setState(87); + setState(403); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(88); - match(T__7); - setState(89); + setState(404); + match(T__36); + setState(405); conditionAndExpression(0); } } } - setState(94); + setState(410); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,4,_ctx); + _alt = getInterpreter().adaptivePredict(_input,26,_ctx); } } } @@ -631,20 +2884,20 @@ private ConditionAndExpressionContext conditionAndExpression(int _p) throws Reco int _parentState = getState(); ConditionAndExpressionContext _localctx = new ConditionAndExpressionContext(_ctx, _parentState); ConditionAndExpressionContext _prevctx = _localctx; - int _startState = 18; - enterRecursionRule(_localctx, 18, RULE_conditionAndExpression, _p); + int _startState = 92; + enterRecursionRule(_localctx, 92, RULE_conditionAndExpression, _p); try { int _alt; enterOuterAlt(_localctx, 1); { { - setState(96); + setState(412); xOrExpression(0); } _ctx.stop = _input.LT(-1); - setState(103); + setState(419); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,5,_ctx); + _alt = getInterpreter().adaptivePredict(_input,27,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); @@ -653,18 +2906,18 @@ private ConditionAndExpressionContext conditionAndExpression(int _p) throws Reco { _localctx = new ConditionAndExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_conditionAndExpression); - setState(98); + setState(414); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(99); - match(T__8); - setState(100); + setState(415); + match(T__37); + setState(416); xOrExpression(0); } } } - setState(105); + setState(421); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,5,_ctx); + _alt = getInterpreter().adaptivePredict(_input,27,_ctx); } } } @@ -709,20 +2962,20 @@ private XOrExpressionContext xOrExpression(int _p) throws RecognitionException { int _parentState = getState(); XOrExpressionContext _localctx = new XOrExpressionContext(_ctx, _parentState); XOrExpressionContext _prevctx = _localctx; - int _startState = 20; - enterRecursionRule(_localctx, 20, RULE_xOrExpression, _p); + int _startState = 94; + enterRecursionRule(_localctx, 94, RULE_xOrExpression, _p); try { int _alt; enterOuterAlt(_localctx, 1); { { - setState(107); + setState(423); equalityExpression(0); } _ctx.stop = _input.LT(-1); - setState(114); + setState(430); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,6,_ctx); + _alt = getInterpreter().adaptivePredict(_input,28,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); @@ -731,18 +2984,18 @@ private XOrExpressionContext xOrExpression(int _p) throws RecognitionException { { _localctx = new XOrExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_xOrExpression); - setState(109); + setState(425); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(110); - match(T__9); - setState(111); + setState(426); + match(T__38); + setState(427); equalityExpression(0); } } } - setState(116); + setState(432); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,6,_ctx); + _alt = getInterpreter().adaptivePredict(_input,28,_ctx); } } } @@ -790,20 +3043,20 @@ private EqualityExpressionContext equalityExpression(int _p) throws RecognitionE int _parentState = getState(); EqualityExpressionContext _localctx = new EqualityExpressionContext(_ctx, _parentState); EqualityExpressionContext _prevctx = _localctx; - int _startState = 22; - enterRecursionRule(_localctx, 22, RULE_equalityExpression, _p); + int _startState = 96; + enterRecursionRule(_localctx, 96, RULE_equalityExpression, _p); try { int _alt; enterOuterAlt(_localctx, 1); { { - setState(118); + setState(434); relationalExpression(0); } _ctx.stop = _input.LT(-1); - setState(124); + setState(440); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,7,_ctx); + _alt = getInterpreter().adaptivePredict(_input,29,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); @@ -812,16 +3065,16 @@ private EqualityExpressionContext equalityExpression(int _p) throws RecognitionE { _localctx = new EqualityExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_equalityExpression); - setState(120); + setState(436); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(121); + setState(437); equalityExpressionEnd(); } } } - setState(126); + setState(442); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,7,_ctx); + _alt = getInterpreter().adaptivePredict(_input,29,_ctx); } } } @@ -856,25 +3109,25 @@ public void exitRule(ParseTreeListener listener) { public final EqualityExpressionEndContext equalityExpressionEnd() throws RecognitionException { EqualityExpressionEndContext _localctx = new EqualityExpressionEndContext(_ctx, getState()); - enterRule(_localctx, 24, RULE_equalityExpressionEnd); + enterRule(_localctx, 98, RULE_equalityExpressionEnd); try { - setState(131); + setState(447); switch (_input.LA(1)) { - case T__10: + case T__39: enterOuterAlt(_localctx, 1); { - setState(127); - match(T__10); - setState(128); + setState(443); + match(T__39); + setState(444); relationalExpression(0); } break; - case T__11: + case T__40: enterOuterAlt(_localctx, 2); { - setState(129); - match(T__11); - setState(130); + setState(445); + match(T__40); + setState(446); relationalExpression(0); } break; @@ -926,20 +3179,20 @@ private RelationalExpressionContext relationalExpression(int _p) throws Recognit int _parentState = getState(); RelationalExpressionContext _localctx = new RelationalExpressionContext(_ctx, _parentState); RelationalExpressionContext _prevctx = _localctx; - int _startState = 26; - enterRecursionRule(_localctx, 26, RULE_relationalExpression, _p); + int _startState = 100; + enterRecursionRule(_localctx, 100, RULE_relationalExpression, _p); try { int _alt; enterOuterAlt(_localctx, 1); { { - setState(134); + setState(450); additiveExpression(0); } _ctx.stop = _input.LT(-1); - setState(140); + setState(456); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,9,_ctx); + _alt = getInterpreter().adaptivePredict(_input,31,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); @@ -948,16 +3201,16 @@ private RelationalExpressionContext relationalExpression(int _p) throws Recognit { _localctx = new RelationalExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); - setState(136); + setState(452); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(137); + setState(453); relationalExpressionEnd(); } } } - setState(142); + setState(458); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,9,_ctx); + _alt = getInterpreter().adaptivePredict(_input,31,_ctx); } } } @@ -992,43 +3245,43 @@ public void exitRule(ParseTreeListener listener) { public final RelationalExpressionEndContext relationalExpressionEnd() throws RecognitionException { RelationalExpressionEndContext _localctx = new RelationalExpressionEndContext(_ctx, getState()); - enterRule(_localctx, 28, RULE_relationalExpressionEnd); + enterRule(_localctx, 102, RULE_relationalExpressionEnd); try { - setState(151); + setState(467); switch (_input.LA(1)) { - case T__12: + case T__41: enterOuterAlt(_localctx, 1); { - setState(143); - match(T__12); - setState(144); + setState(459); + match(T__41); + setState(460); additiveExpression(0); } break; - case T__13: + case T__42: enterOuterAlt(_localctx, 2); { - setState(145); - match(T__13); - setState(146); + setState(461); + match(T__42); + setState(462); additiveExpression(0); } break; - case T__14: + case T__43: enterOuterAlt(_localctx, 3); { - setState(147); - match(T__14); - setState(148); + setState(463); + match(T__43); + setState(464); additiveExpression(0); } break; - case T__15: + case T__44: enterOuterAlt(_localctx, 4); { - setState(149); - match(T__15); - setState(150); + setState(465); + match(T__44); + setState(466); additiveExpression(0); } break; @@ -1080,20 +3333,20 @@ private AdditiveExpressionContext additiveExpression(int _p) throws RecognitionE int _parentState = getState(); AdditiveExpressionContext _localctx = new AdditiveExpressionContext(_ctx, _parentState); AdditiveExpressionContext _prevctx = _localctx; - int _startState = 30; - enterRecursionRule(_localctx, 30, RULE_additiveExpression, _p); + int _startState = 104; + enterRecursionRule(_localctx, 104, RULE_additiveExpression, _p); try { int _alt; enterOuterAlt(_localctx, 1); { { - setState(154); + setState(470); multiExpr(0); } _ctx.stop = _input.LT(-1); - setState(160); + setState(476); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,11,_ctx); + _alt = getInterpreter().adaptivePredict(_input,33,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); @@ -1102,16 +3355,16 @@ private AdditiveExpressionContext additiveExpression(int _p) throws RecognitionE { _localctx = new AdditiveExpressionContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_additiveExpression); - setState(156); + setState(472); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(157); + setState(473); additiveExpressionEnd(); } } } - setState(162); + setState(478); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,11,_ctx); + _alt = getInterpreter().adaptivePredict(_input,33,_ctx); } } } @@ -1146,25 +3399,25 @@ public void exitRule(ParseTreeListener listener) { public final AdditiveExpressionEndContext additiveExpressionEnd() throws RecognitionException { AdditiveExpressionEndContext _localctx = new AdditiveExpressionEndContext(_ctx, getState()); - enterRule(_localctx, 32, RULE_additiveExpressionEnd); + enterRule(_localctx, 106, RULE_additiveExpressionEnd); try { - setState(167); + setState(483); switch (_input.LA(1)) { - case T__16: + case T__45: enterOuterAlt(_localctx, 1); { - setState(163); - match(T__16); - setState(164); + setState(479); + match(T__45); + setState(480); multiExpr(0); } break; - case T__17: + case T__46: enterOuterAlt(_localctx, 2); { - setState(165); - match(T__17); - setState(166); + setState(481); + match(T__46); + setState(482); multiExpr(0); } break; @@ -1216,20 +3469,20 @@ private MultiExprContext multiExpr(int _p) throws RecognitionException { int _parentState = getState(); MultiExprContext _localctx = new MultiExprContext(_ctx, _parentState); MultiExprContext _prevctx = _localctx; - int _startState = 34; - enterRecursionRule(_localctx, 34, RULE_multiExpr, _p); + int _startState = 108; + enterRecursionRule(_localctx, 108, RULE_multiExpr, _p); try { int _alt; enterOuterAlt(_localctx, 1); { { - setState(170); + setState(486); unaryExpr(); } _ctx.stop = _input.LT(-1); - setState(176); + setState(492); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,13,_ctx); + _alt = getInterpreter().adaptivePredict(_input,35,_ctx); while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { if ( _alt==1 ) { if ( _parseListeners!=null ) triggerExitRuleEvent(); @@ -1238,16 +3491,16 @@ private MultiExprContext multiExpr(int _p) throws RecognitionException { { _localctx = new MultiExprContext(_parentctx, _parentState); pushNewRecursionContext(_localctx, _startState, RULE_multiExpr); - setState(172); + setState(488); if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(173); + setState(489); multiExprEnd(); } } } - setState(178); + setState(494); _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,13,_ctx); + _alt = getInterpreter().adaptivePredict(_input,35,_ctx); } } } @@ -1282,25 +3535,25 @@ public void exitRule(ParseTreeListener listener) { public final MultiExprEndContext multiExprEnd() throws RecognitionException { MultiExprEndContext _localctx = new MultiExprEndContext(_ctx, getState()); - enterRule(_localctx, 36, RULE_multiExprEnd); + enterRule(_localctx, 110, RULE_multiExprEnd); try { - setState(183); + setState(499); switch (_input.LA(1)) { - case T__18: + case T__47: enterOuterAlt(_localctx, 1); { - setState(179); - match(T__18); - setState(180); + setState(495); + match(T__47); + setState(496); unaryExpr(); } break; - case T__19: + case T__48: enterOuterAlt(_localctx, 2); { - setState(181); - match(T__19); - setState(182); + setState(497); + match(T__48); + setState(498); unaryExpr(); } break; @@ -1342,38 +3595,38 @@ public void exitRule(ParseTreeListener listener) { public final UnaryExprContext unaryExpr() throws RecognitionException { UnaryExprContext _localctx = new UnaryExprContext(_ctx, getState()); - enterRule(_localctx, 38, RULE_unaryExpr); + enterRule(_localctx, 112, RULE_unaryExpr); try { - setState(190); + setState(506); switch (_input.LA(1)) { - case T__16: + case T__45: enterOuterAlt(_localctx, 1); { - setState(185); - match(T__16); - setState(186); + setState(501); + match(T__45); + setState(502); unaryExpr(); } break; - case T__17: + case T__46: enterOuterAlt(_localctx, 2); { - setState(187); - match(T__17); - setState(188); + setState(503); + match(T__46); + setState(504); unaryExpr(); } break; case T__0: case T__1: - case T__2: - case T__20: + case T__9: case Identifier: case NumLit: case CoordLit: + case StringLit: enterOuterAlt(_localctx, 3); { - setState(189); + setState(505); primary(); } break; @@ -1421,38 +3674,38 @@ public void exitRule(ParseTreeListener listener) { public final PrimaryContext primary() throws RecognitionException { PrimaryContext _localctx = new PrimaryContext(_ctx, getState()); - enterRule(_localctx, 40, RULE_primary); + enterRule(_localctx, 114, RULE_primary); try { - setState(200); + setState(516); switch (_input.LA(1)) { case T__0: case T__1: - case T__2: case NumLit: case CoordLit: + case StringLit: enterOuterAlt(_localctx, 1); { - setState(192); + setState(508); literal(); } break; - case T__20: + case T__9: enterOuterAlt(_localctx, 2); { - setState(193); - match(T__20); - setState(194); + setState(509); + match(T__9); + setState(510); expression(); - setState(195); - match(T__21); + setState(511); + match(T__10); } break; case Identifier: enterOuterAlt(_localctx, 3); { - setState(197); + setState(513); typeName(0); - setState(198); + setState(514); listOpt(); } break; @@ -1475,19 +3728,35 @@ public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { switch (ruleIndex) { case 2: return typeName_sempred((TypeNameContext)_localctx, predIndex); + case 6: + return loads_sempred((LoadsContext)_localctx, predIndex); case 8: + return roboBodyDcl_sempred((RoboBodyDclContext)_localctx, predIndex); + case 11: + return variableDclList_sempred((VariableDclListContext)_localctx, predIndex); + case 15: + return litList_sempred((LitListContext)_localctx, predIndex); + case 22: + return blockStmtList_sempred((BlockStmtListContext)_localctx, predIndex); + case 29: + return elseIfOpt_sempred((ElseIfOptContext)_localctx, predIndex); + case 35: + return argsList_sempred((ArgsListContext)_localctx, predIndex); + case 37: + return paramsList_sempred((ParamsListContext)_localctx, predIndex); + case 45: return conditionOrExpression_sempred((ConditionOrExpressionContext)_localctx, predIndex); - case 9: + case 46: return conditionAndExpression_sempred((ConditionAndExpressionContext)_localctx, predIndex); - case 10: + case 47: return xOrExpression_sempred((XOrExpressionContext)_localctx, predIndex); - case 11: + case 48: return equalityExpression_sempred((EqualityExpressionContext)_localctx, predIndex); - case 13: + case 50: return relationalExpression_sempred((RelationalExpressionContext)_localctx, predIndex); - case 15: + case 52: return additiveExpression_sempred((AdditiveExpressionContext)_localctx, predIndex); - case 17: + case 54: return multiExpr_sempred((MultiExprContext)_localctx, predIndex); } return true; @@ -1499,119 +3768,292 @@ private boolean typeName_sempred(TypeNameContext _localctx, int predIndex) { } return true; } - private boolean conditionOrExpression_sempred(ConditionOrExpressionContext _localctx, int predIndex) { + private boolean loads_sempred(LoadsContext _localctx, int predIndex) { switch (predIndex) { case 1: + return precpred(_ctx, 2); + } + return true; + } + private boolean roboBodyDcl_sempred(RoboBodyDclContext _localctx, int predIndex) { + switch (predIndex) { + case 2: + return precpred(_ctx, 2); + } + return true; + } + private boolean variableDclList_sempred(VariableDclListContext _localctx, int predIndex) { + switch (predIndex) { + case 3: + return precpred(_ctx, 1); + } + return true; + } + private boolean litList_sempred(LitListContext _localctx, int predIndex) { + switch (predIndex) { + case 4: + return precpred(_ctx, 2); + } + return true; + } + private boolean blockStmtList_sempred(BlockStmtListContext _localctx, int predIndex) { + switch (predIndex) { + case 5: + return precpred(_ctx, 2); + } + return true; + } + private boolean elseIfOpt_sempred(ElseIfOptContext _localctx, int predIndex) { + switch (predIndex) { + case 6: + return precpred(_ctx, 2); + } + return true; + } + private boolean argsList_sempred(ArgsListContext _localctx, int predIndex) { + switch (predIndex) { + case 7: + return precpred(_ctx, 2); + } + return true; + } + private boolean paramsList_sempred(ParamsListContext _localctx, int predIndex) { + switch (predIndex) { + case 8: + return precpred(_ctx, 2); + } + return true; + } + private boolean conditionOrExpression_sempred(ConditionOrExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 9: return precpred(_ctx, 1); } return true; } private boolean conditionAndExpression_sempred(ConditionAndExpressionContext _localctx, int predIndex) { switch (predIndex) { - case 2: + case 10: return precpred(_ctx, 1); } return true; } private boolean xOrExpression_sempred(XOrExpressionContext _localctx, int predIndex) { switch (predIndex) { - case 3: + case 11: return precpred(_ctx, 1); } return true; } private boolean equalityExpression_sempred(EqualityExpressionContext _localctx, int predIndex) { switch (predIndex) { - case 4: + case 12: return precpred(_ctx, 1); } return true; } private boolean relationalExpression_sempred(RelationalExpressionContext _localctx, int predIndex) { switch (predIndex) { - case 5: + case 13: return precpred(_ctx, 1); } return true; } private boolean additiveExpression_sempred(AdditiveExpressionContext _localctx, int predIndex) { switch (predIndex) { - case 6: + case 14: return precpred(_ctx, 1); } return true; } private boolean multiExpr_sempred(MultiExprContext _localctx, int predIndex) { switch (predIndex) { - case 7: + case 15: return precpred(_ctx, 1); } return true; } public static final String _serializedATN = - "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3\35\u00cd\4\2\t\2"+ - "\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"+ - "\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ - "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\3\2\3\2\3\3\3\3\3\3\3\3\3\3\3"+ - "\3\3\3\5\3\66\n\3\3\4\3\4\3\4\3\4\3\4\3\4\7\4>\n\4\f\4\16\4A\13\4\3\5"+ - "\3\5\5\5E\n\5\3\6\3\6\3\6\3\6\3\7\3\7\3\7\3\b\3\b\3\b\3\b\3\b\5\bS\n\b"+ - "\3\t\3\t\3\n\3\n\3\n\3\n\3\n\3\n\7\n]\n\n\f\n\16\n`\13\n\3\13\3\13\3\13"+ - "\3\13\3\13\3\13\7\13h\n\13\f\13\16\13k\13\13\3\f\3\f\3\f\3\f\3\f\3\f\7"+ - "\fs\n\f\f\f\16\fv\13\f\3\r\3\r\3\r\3\r\3\r\7\r}\n\r\f\r\16\r\u0080\13"+ - "\r\3\16\3\16\3\16\3\16\5\16\u0086\n\16\3\17\3\17\3\17\3\17\3\17\7\17\u008d"+ - "\n\17\f\17\16\17\u0090\13\17\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\5"+ - "\20\u009a\n\20\3\21\3\21\3\21\3\21\3\21\7\21\u00a1\n\21\f\21\16\21\u00a4"+ - "\13\21\3\22\3\22\3\22\3\22\5\22\u00aa\n\22\3\23\3\23\3\23\3\23\3\23\7"+ - "\23\u00b1\n\23\f\23\16\23\u00b4\13\23\3\24\3\24\3\24\3\24\5\24\u00ba\n"+ - "\24\3\25\3\25\3\25\3\25\3\25\5\25\u00c1\n\25\3\26\3\26\3\26\3\26\3\26"+ - "\3\26\3\26\3\26\5\26\u00cb\n\26\3\26\2\n\6\22\24\26\30\34 $\27\2\4\6\b"+ - "\n\f\16\20\22\24\26\30\32\34\36 \"$&(*\2\2\u00cf\2,\3\2\2\2\4\65\3\2\2"+ - "\2\6\67\3\2\2\2\bD\3\2\2\2\nF\3\2\2\2\fJ\3\2\2\2\16R\3\2\2\2\20T\3\2\2"+ - "\2\22V\3\2\2\2\24a\3\2\2\2\26l\3\2\2\2\30w\3\2\2\2\32\u0085\3\2\2\2\34"+ - "\u0087\3\2\2\2\36\u0099\3\2\2\2 \u009b\3\2\2\2\"\u00a9\3\2\2\2$\u00ab"+ - "\3\2\2\2&\u00b9\3\2\2\2(\u00c0\3\2\2\2*\u00ca\3\2\2\2,-\5\b\5\2-\3\3\2"+ - "\2\2.\66\7\32\2\2/\66\7\3\2\2\60\66\7\4\2\2\61\66\7\33\2\2\62\63\7\5\2"+ - "\2\63\64\7\34\2\2\64\66\7\6\2\2\65.\3\2\2\2\65/\3\2\2\2\65\60\3\2\2\2"+ - "\65\61\3\2\2\2\65\62\3\2\2\2\66\5\3\2\2\2\678\b\4\1\289\7\31\2\29?\3\2"+ - "\2\2:;\f\3\2\2;<\7\7\2\2<>\7\31\2\2=:\3\2\2\2>A\3\2\2\2?=\3\2\2\2?@\3"+ - "\2\2\2@\7\3\2\2\2A?\3\2\2\2BE\5\20\t\2CE\5\n\6\2DB\3\2\2\2DC\3\2\2\2E"+ - "\t\3\2\2\2FG\5\f\7\2GH\7\6\2\2HI\5\2\2\2I\13\3\2\2\2JK\5\6\4\2KL\5\16"+ - "\b\2L\r\3\2\2\2MN\7\b\2\2NO\5\2\2\2OP\7\t\2\2PS\3\2\2\2QS\3\2\2\2RM\3"+ - "\2\2\2RQ\3\2\2\2S\17\3\2\2\2TU\5\22\n\2U\21\3\2\2\2VW\b\n\1\2WX\5\24\13"+ - "\2X^\3\2\2\2YZ\f\3\2\2Z[\7\n\2\2[]\5\24\13\2\\Y\3\2\2\2]`\3\2\2\2^\\\3"+ - "\2\2\2^_\3\2\2\2_\23\3\2\2\2`^\3\2\2\2ab\b\13\1\2bc\5\26\f\2ci\3\2\2\2"+ - "de\f\3\2\2ef\7\13\2\2fh\5\26\f\2gd\3\2\2\2hk\3\2\2\2ig\3\2\2\2ij\3\2\2"+ - "\2j\25\3\2\2\2ki\3\2\2\2lm\b\f\1\2mn\5\30\r\2nt\3\2\2\2op\f\3\2\2pq\7"+ - "\f\2\2qs\5\30\r\2ro\3\2\2\2sv\3\2\2\2tr\3\2\2\2tu\3\2\2\2u\27\3\2\2\2"+ - "vt\3\2\2\2wx\b\r\1\2xy\5\34\17\2y~\3\2\2\2z{\f\3\2\2{}\5\32\16\2|z\3\2"+ - "\2\2}\u0080\3\2\2\2~|\3\2\2\2~\177\3\2\2\2\177\31\3\2\2\2\u0080~\3\2\2"+ - "\2\u0081\u0082\7\r\2\2\u0082\u0086\5\34\17\2\u0083\u0084\7\16\2\2\u0084"+ - "\u0086\5\34\17\2\u0085\u0081\3\2\2\2\u0085\u0083\3\2\2\2\u0086\33\3\2"+ - "\2\2\u0087\u0088\b\17\1\2\u0088\u0089\5 \21\2\u0089\u008e\3\2\2\2\u008a"+ - "\u008b\f\3\2\2\u008b\u008d\5\36\20\2\u008c\u008a\3\2\2\2\u008d\u0090\3"+ - "\2\2\2\u008e\u008c\3\2\2\2\u008e\u008f\3\2\2\2\u008f\35\3\2\2\2\u0090"+ - "\u008e\3\2\2\2\u0091\u0092\7\17\2\2\u0092\u009a\5 \21\2\u0093\u0094\7"+ - "\20\2\2\u0094\u009a\5 \21\2\u0095\u0096\7\21\2\2\u0096\u009a\5 \21\2\u0097"+ - "\u0098\7\22\2\2\u0098\u009a\5 \21\2\u0099\u0091\3\2\2\2\u0099\u0093\3"+ - "\2\2\2\u0099\u0095\3\2\2\2\u0099\u0097\3\2\2\2\u009a\37\3\2\2\2\u009b"+ - "\u009c\b\21\1\2\u009c\u009d\5$\23\2\u009d\u00a2\3\2\2\2\u009e\u009f\f"+ - "\3\2\2\u009f\u00a1\5\"\22\2\u00a0\u009e\3\2\2\2\u00a1\u00a4\3\2\2\2\u00a2"+ - "\u00a0\3\2\2\2\u00a2\u00a3\3\2\2\2\u00a3!\3\2\2\2\u00a4\u00a2\3\2\2\2"+ - "\u00a5\u00a6\7\23\2\2\u00a6\u00aa\5$\23\2\u00a7\u00a8\7\24\2\2\u00a8\u00aa"+ - "\5$\23\2\u00a9\u00a5\3\2\2\2\u00a9\u00a7\3\2\2\2\u00aa#\3\2\2\2\u00ab"+ - "\u00ac\b\23\1\2\u00ac\u00ad\5(\25\2\u00ad\u00b2\3\2\2\2\u00ae\u00af\f"+ - "\3\2\2\u00af\u00b1\5&\24\2\u00b0\u00ae\3\2\2\2\u00b1\u00b4\3\2\2\2\u00b2"+ - "\u00b0\3\2\2\2\u00b2\u00b3\3\2\2\2\u00b3%\3\2\2\2\u00b4\u00b2\3\2\2\2"+ - "\u00b5\u00b6\7\25\2\2\u00b6\u00ba\5(\25\2\u00b7\u00b8\7\26\2\2\u00b8\u00ba"+ - "\5(\25\2\u00b9\u00b5\3\2\2\2\u00b9\u00b7\3\2\2\2\u00ba\'\3\2\2\2\u00bb"+ - "\u00bc\7\23\2\2\u00bc\u00c1\5(\25\2\u00bd\u00be\7\24\2\2\u00be\u00c1\5"+ - "(\25\2\u00bf\u00c1\5*\26\2\u00c0\u00bb\3\2\2\2\u00c0\u00bd\3\2\2\2\u00c0"+ - "\u00bf\3\2\2\2\u00c1)\3\2\2\2\u00c2\u00cb\5\4\3\2\u00c3\u00c4\7\27\2\2"+ - "\u00c4\u00c5\5\2\2\2\u00c5\u00c6\7\30\2\2\u00c6\u00cb\3\2\2\2\u00c7\u00c8"+ - "\5\6\4\2\u00c8\u00c9\5\16\b\2\u00c9\u00cb\3\2\2\2\u00ca\u00c2\3\2\2\2"+ - "\u00ca\u00c3\3\2\2\2\u00ca\u00c7\3\2\2\2\u00cb+\3\2\2\2\23\65?DR^it~\u0085"+ - "\u008e\u0099\u00a2\u00a9\u00b2\u00b9\u00c0\u00ca"; + "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3:\u0209\4\2\t\2\4"+ + "\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t"+ + "\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ + "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+ + "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+ + "\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4"+ + ",\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t"+ + "\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\3\2\3\2\3\2"+ + "\3\2\3\3\3\3\3\4\3\4\3\4\3\4\3\4\3\4\7\4\u0083\n\4\f\4\16\4\u0086\13\4"+ + "\3\5\3\5\5\5\u008a\n\5\3\6\3\6\3\7\3\7\3\b\3\b\3\b\3\b\3\b\3\b\3\b\7\b"+ + "\u0097\n\b\f\b\16\b\u009a\13\b\3\t\3\t\3\t\3\t\3\n\3\n\3\n\3\n\3\n\7\n"+ + "\u00a5\n\n\f\n\16\n\u00a8\13\n\3\13\3\13\3\13\5\13\u00ad\n\13\3\f\3\f"+ + "\3\f\3\f\3\r\3\r\3\r\3\r\3\r\3\r\7\r\u00b9\n\r\f\r\16\r\u00bc\13\r\3\16"+ + "\3\16\3\16\3\16\5\16\u00c2\n\16\3\17\3\17\5\17\u00c6\n\17\3\20\3\20\3"+ + "\20\3\20\3\20\5\20\u00cd\n\20\3\21\3\21\3\21\3\21\3\21\3\21\7\21\u00d5"+ + "\n\21\f\21\16\21\u00d8\13\21\3\22\3\22\3\22\3\22\5\22\u00de\n\22\3\23"+ + "\3\23\3\23\3\23\3\23\5\23\u00e5\n\23\3\24\3\24\3\24\3\24\3\24\3\24\3\25"+ + "\3\25\3\25\3\25\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\27\3\27"+ + "\5\27\u00fc\n\27\3\30\3\30\3\30\3\30\3\30\3\30\3\30\3\30\7\30\u0106\n"+ + "\30\f\30\16\30\u0109\13\30\3\31\3\31\3\31\3\31\3\31\3\31\5\31\u0111\n"+ + "\31\3\32\3\32\3\32\3\32\3\32\3\32\5\32\u0119\n\32\3\33\3\33\3\33\3\33"+ + "\3\33\3\33\3\34\3\34\5\34\u0123\n\34\3\35\3\35\3\35\3\35\3\35\3\36\3\36"+ + "\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\37\3\37\3\37\3\37\3\37\3\37"+ + "\3\37\3\37\3\37\3\37\7\37\u013e\n\37\f\37\16\37\u0141\13\37\3 \3 \3 \3"+ + " \3 \3 \5 \u0149\n \3!\3!\5!\u014d\n!\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\""+ + "\3#\3#\3#\3#\3#\3$\3$\5$\u015e\n$\3%\3%\3%\3%\3%\3%\7%\u0166\n%\f%\16"+ + "%\u0169\13%\3&\3&\5&\u016d\n&\3\'\3\'\3\'\3\'\3\'\3\'\7\'\u0175\n\'\f"+ + "\'\16\'\u0178\13\'\3(\3(\3(\3)\3)\3*\3*\5*\u0181\n*\3+\3+\3+\3+\3,\3,"+ + "\3,\3-\3-\3-\3-\3-\5-\u018f\n-\3.\3.\3/\3/\3/\3/\3/\3/\7/\u0199\n/\f/"+ + "\16/\u019c\13/\3\60\3\60\3\60\3\60\3\60\3\60\7\60\u01a4\n\60\f\60\16\60"+ + "\u01a7\13\60\3\61\3\61\3\61\3\61\3\61\3\61\7\61\u01af\n\61\f\61\16\61"+ + "\u01b2\13\61\3\62\3\62\3\62\3\62\3\62\7\62\u01b9\n\62\f\62\16\62\u01bc"+ + "\13\62\3\63\3\63\3\63\3\63\5\63\u01c2\n\63\3\64\3\64\3\64\3\64\3\64\7"+ + "\64\u01c9\n\64\f\64\16\64\u01cc\13\64\3\65\3\65\3\65\3\65\3\65\3\65\3"+ + "\65\3\65\5\65\u01d6\n\65\3\66\3\66\3\66\3\66\3\66\7\66\u01dd\n\66\f\66"+ + "\16\66\u01e0\13\66\3\67\3\67\3\67\3\67\5\67\u01e6\n\67\38\38\38\38\38"+ + "\78\u01ed\n8\f8\168\u01f0\138\39\39\39\39\59\u01f6\n9\3:\3:\3:\3:\3:\5"+ + ":\u01fd\n:\3;\3;\3;\3;\3;\3;\3;\3;\5;\u0207\n;\3;\2\22\6\16\22\30 .@BDFHJLNPRTVXZ\\^`bdfhjlnprt\2\5\4\2\3\4\65\67\3\2\6\7\3\2\b\n\u01ff"+ + "\2v\3\2\2\2\4z\3\2\2\2\6|\3\2\2\2\b\u0089\3\2\2\2\n\u008b\3\2\2\2\f\u008d"+ + "\3\2\2\2\16\u008f\3\2\2\2\20\u009b\3\2\2\2\22\u009f\3\2\2\2\24\u00ac\3"+ + "\2\2\2\26\u00ae\3\2\2\2\30\u00b2\3\2\2\2\32\u00c1\3\2\2\2\34\u00c5\3\2"+ + "\2\2\36\u00cc\3\2\2\2 \u00ce\3\2\2\2\"\u00dd\3\2\2\2$\u00e4\3\2\2\2&\u00e6"+ + "\3\2\2\2(\u00ec\3\2\2\2*\u00f0\3\2\2\2,\u00fb\3\2\2\2.\u00fd\3\2\2\2\60"+ + "\u0110\3\2\2\2\62\u0118\3\2\2\2\64\u011a\3\2\2\2\66\u0122\3\2\2\28\u0124"+ + "\3\2\2\2:\u0129\3\2\2\2<\u0133\3\2\2\2>\u0148\3\2\2\2@\u014c\3\2\2\2B"+ + "\u014e\3\2\2\2D\u0156\3\2\2\2F\u015d\3\2\2\2H\u015f\3\2\2\2J\u016c\3\2"+ + "\2\2L\u016e\3\2\2\2N\u0179\3\2\2\2P\u017c\3\2\2\2R\u0180\3\2\2\2T\u0182"+ + "\3\2\2\2V\u0186\3\2\2\2X\u018e\3\2\2\2Z\u0190\3\2\2\2\\\u0192\3\2\2\2"+ + "^\u019d\3\2\2\2`\u01a8\3\2\2\2b\u01b3\3\2\2\2d\u01c1\3\2\2\2f\u01c3\3"+ + "\2\2\2h\u01d5\3\2\2\2j\u01d7\3\2\2\2l\u01e5\3\2\2\2n\u01e7\3\2\2\2p\u01f5"+ + "\3\2\2\2r\u01fc\3\2\2\2t\u0206\3\2\2\2vw\5\20\t\2wx\5\16\b\2xy\5\22\n"+ + "\2y\3\3\2\2\2z{\t\2\2\2{\5\3\2\2\2|}\b\4\1\2}~\7\64\2\2~\u0084\3\2\2\2"+ + "\177\u0080\f\3\2\2\u0080\u0081\7\5\2\2\u0081\u0083\7\64\2\2\u0082\177"+ + "\3\2\2\2\u0083\u0086\3\2\2\2\u0084\u0082\3\2\2\2\u0084\u0085\3\2\2\2\u0085"+ + "\7\3\2\2\2\u0086\u0084\3\2\2\2\u0087\u008a\5\f\7\2\u0088\u008a\5\n\6\2"+ + "\u0089\u0087\3\2\2\2\u0089\u0088\3\2\2\2\u008a\t\3\2\2\2\u008b\u008c\t"+ + "\3\2\2\u008c\13\3\2\2\2\u008d\u008e\t\4\2\2\u008e\r\3\2\2\2\u008f\u0098"+ + "\b\b\1\2\u0090\u0091\f\4\2\2\u0091\u0092\7\13\2\2\u0092\u0093\7\f\2\2"+ + "\u0093\u0094\7\67\2\2\u0094\u0095\7\r\2\2\u0095\u0097\7\16\2\2\u0096\u0090"+ + "\3\2\2\2\u0097\u009a\3\2\2\2\u0098\u0096\3\2\2\2\u0098\u0099\3\2\2\2\u0099"+ + "\17\3\2\2\2\u009a\u0098\3\2\2\2\u009b\u009c\7\64\2\2\u009c\u009d\7\17"+ + "\2\2\u009d\u009e\7\16\2\2\u009e\21\3\2\2\2\u009f\u00a0\b\n\1\2\u00a0\u00a1"+ + "\5\24\13\2\u00a1\u00a6\3\2\2\2\u00a2\u00a3\f\4\2\2\u00a3\u00a5\5\24\13"+ + "\2\u00a4\u00a2\3\2\2\2\u00a5\u00a8\3\2\2\2\u00a6\u00a4\3\2\2\2\u00a6\u00a7"+ + "\3\2\2\2\u00a7\23\3\2\2\2\u00a8\u00a6\3\2\2\2\u00a9\u00ad\5\26\f\2\u00aa"+ + "\u00ad\5\"\22\2\u00ab\u00ad\7\16\2\2\u00ac\u00a9\3\2\2\2\u00ac\u00aa\3"+ + "\2\2\2\u00ac\u00ab\3\2\2\2\u00ad\25\3\2\2\2\u00ae\u00af\5\b\5\2\u00af"+ + "\u00b0\5\30\r\2\u00b0\u00b1\7\16\2\2\u00b1\27\3\2\2\2\u00b2\u00b3\b\r"+ + "\1\2\u00b3\u00b4\5\32\16\2\u00b4\u00ba\3\2\2\2\u00b5\u00b6\f\3\2\2\u00b6"+ + "\u00b7\7\20\2\2\u00b7\u00b9\5\32\16\2\u00b8\u00b5\3\2\2\2\u00b9\u00bc"+ + "\3\2\2\2\u00ba\u00b8\3\2\2\2\u00ba\u00bb\3\2\2\2\u00bb\31\3\2\2\2\u00bc"+ + "\u00ba\3\2\2\2\u00bd\u00be\7\64\2\2\u00be\u00c2\5\34\17\2\u00bf\u00c0"+ + "\7\64\2\2\u00c0\u00c2\5\36\20\2\u00c1\u00bd\3\2\2\2\u00c1\u00bf\3\2\2"+ + "\2\u00c2\33\3\2\2\2\u00c3\u00c6\5R*\2\u00c4\u00c6\3\2\2\2\u00c5\u00c3"+ + "\3\2\2\2\u00c5\u00c4\3\2\2\2\u00c6\35\3\2\2\2\u00c7\u00c8\5 \21\2\u00c8"+ + "\u00c9\7\21\2\2\u00c9\u00ca\7\64\2\2\u00ca\u00cd\3\2\2\2\u00cb\u00cd\3"+ + "\2\2\2\u00cc\u00c7\3\2\2\2\u00cc\u00cb\3\2\2\2\u00cd\37\3\2\2\2\u00ce"+ + "\u00cf\b\21\1\2\u00cf\u00d0\5t;\2\u00d0\u00d6\3\2\2\2\u00d1\u00d2\f\4"+ + "\2\2\u00d2\u00d3\7\20\2\2\u00d3\u00d5\5t;\2\u00d4\u00d1\3\2\2\2\u00d5"+ + "\u00d8\3\2\2\2\u00d6\u00d4\3\2\2\2\u00d6\u00d7\3\2\2\2\u00d7!\3\2\2\2"+ + "\u00d8\u00d6\3\2\2\2\u00d9\u00da\5$\23\2\u00da\u00db\5(\25\2\u00db\u00de"+ + "\3\2\2\2\u00dc\u00de\5*\26\2\u00dd\u00d9\3\2\2\2\u00dd\u00dc\3\2\2\2\u00de"+ + "#\3\2\2\2\u00df\u00e0\5\b\5\2\u00e0\u00e1\5&\24\2\u00e1\u00e5\3\2\2\2"+ + "\u00e2\u00e3\7\22\2\2\u00e3\u00e5\5&\24\2\u00e4\u00df\3\2\2\2\u00e4\u00e2"+ + "\3\2\2\2\u00e5%\3\2\2\2\u00e6\u00e7\7\64\2\2\u00e7\u00e8\7\f\2\2\u00e8"+ + "\u00e9\5J&\2\u00e9\u00ea\7\r\2\2\u00ea\u00eb\7\16\2\2\u00eb\'\3\2\2\2"+ + "\u00ec\u00ed\5,\27\2\u00ed\u00ee\7\21\2\2\u00ee\u00ef\7\64\2\2\u00ef)"+ + "\3\2\2\2\u00f0\u00f1\7\23\2\2\u00f1\u00f2\7\64\2\2\u00f2\u00f3\7\f\2\2"+ + "\u00f3\u00f4\5J&\2\u00f4\u00f5\7\r\2\2\u00f5\u00f6\7\16\2\2\u00f6\u00f7"+ + "\5,\27\2\u00f7\u00f8\7\24\2\2\u00f8+\3\2\2\2\u00f9\u00fc\5.\30\2\u00fa"+ + "\u00fc\3\2\2\2\u00fb\u00f9\3\2\2\2\u00fb\u00fa\3\2\2\2\u00fc-\3\2\2\2"+ + "\u00fd\u00fe\b\30\1\2\u00fe\u00ff\5\60\31\2\u00ff\u0100\7\16\2\2\u0100"+ + "\u0107\3\2\2\2\u0101\u0102\f\4\2\2\u0102\u0103\5\60\31\2\u0103\u0104\7"+ + "\16\2\2\u0104\u0106\3\2\2\2\u0105\u0101\3\2\2\2\u0106\u0109\3\2\2\2\u0107"+ + "\u0105\3\2\2\2\u0107\u0108\3\2\2\2\u0108/\3\2\2\2\u0109\u0107\3\2\2\2"+ + "\u010a\u010b\5\b\5\2\u010b\u010c\5\30\r\2\u010c\u0111\3\2\2\2\u010d\u0111"+ + "\5\62\32\2\u010e\u0111\5:\36\2\u010f\u0111\5@!\2\u0110\u010a\3\2\2\2\u0110"+ + "\u010d\3\2\2\2\u0110\u010e\3\2\2\2\u0110\u010f\3\2\2\2\u0111\61\3\2\2"+ + "\2\u0112\u0119\3\2\2\2\u0113\u0119\5\64\33\2\u0114\u0119\5\66\34\2\u0115"+ + "\u0119\7\25\2\2\u0116\u0117\7\26\2\2\u0117\u0119\5P)\2\u0118\u0112\3\2"+ + "\2\2\u0118\u0113\3\2\2\2\u0118\u0114\3\2\2\2\u0118\u0115\3\2\2\2\u0118"+ + "\u0116\3\2\2\2\u0119\63\3\2\2\2\u011a\u011b\7\27\2\2\u011b\u011c\7\64"+ + "\2\2\u011c\u011d\7\f\2\2\u011d\u011e\5H%\2\u011e\u011f\7\r\2\2\u011f\65"+ + "\3\2\2\2\u0120\u0123\5R*\2\u0121\u0123\58\35\2\u0122\u0120\3\2\2\2\u0122"+ + "\u0121\3\2\2\2\u0123\67\3\2\2\2\u0124\u0125\5\6\4\2\u0125\u0126\7\f\2"+ + "\2\u0126\u0127\5F$\2\u0127\u0128\7\r\2\2\u01289\3\2\2\2\u0129\u012a\7"+ + "\30\2\2\u012a\u012b\7\f\2\2\u012b\u012c\5P)\2\u012c\u012d\7\r\2\2\u012d"+ + "\u012e\7\16\2\2\u012e\u012f\5,\27\2\u012f\u0130\7\31\2\2\u0130\u0131\7"+ + "\32\2\2\u0131\u0132\7\33\2\2\u0132;\3\2\2\2\u0133\u013f\b\37\1\2\u0134"+ + "\u0135\f\4\2\2\u0135\u0136\7\34\2\2\u0136\u0137\7\f\2\2\u0137\u0138\5"+ + "P)\2\u0138\u0139\7\r\2\2\u0139\u013a\7\16\2\2\u013a\u013b\5,\27\2\u013b"+ + "\u013c\7\35\2\2\u013c\u013e\3\2\2\2\u013d\u0134\3\2\2\2\u013e\u0141\3"+ + "\2\2\2\u013f\u013d\3\2\2\2\u013f\u0140\3\2\2\2\u0140=\3\2\2\2\u0141\u013f"+ + "\3\2\2\2\u0142\u0143\7\36\2\2\u0143\u0144\7\16\2\2\u0144\u0145\5,\27\2"+ + "\u0145\u0146\7\37\2\2\u0146\u0149\3\2\2\2\u0147\u0149\3\2\2\2\u0148\u0142"+ + "\3\2\2\2\u0148\u0147\3\2\2\2\u0149?\3\2\2\2\u014a\u014d\5B\"\2\u014b\u014d"+ + "\5D#\2\u014c\u014a\3\2\2\2\u014c\u014b\3\2\2\2\u014dA\3\2\2\2\u014e\u014f"+ + "\7 \2\2\u014f\u0150\7\f\2\2\u0150\u0151\5P)\2\u0151\u0152\7\r\2\2\u0152"+ + "\u0153\7\16\2\2\u0153\u0154\5,\27\2\u0154\u0155\7!\2\2\u0155C\3\2\2\2"+ + "\u0156\u0157\7\"\2\2\u0157\u0158\7\16\2\2\u0158\u0159\5,\27\2\u0159\u015a"+ + "\7#\2\2\u015aE\3\2\2\2\u015b\u015e\5H%\2\u015c\u015e\3\2\2\2\u015d\u015b"+ + "\3\2\2\2\u015d\u015c\3\2\2\2\u015eG\3\2\2\2\u015f\u0160\b%\1\2\u0160\u0161"+ + "\5P)\2\u0161\u0167\3\2\2\2\u0162\u0163\f\4\2\2\u0163\u0164\7\20\2\2\u0164"+ + "\u0166\5P)\2\u0165\u0162\3\2\2\2\u0166\u0169\3\2\2\2\u0167\u0165\3\2\2"+ + "\2\u0167\u0168\3\2\2\2\u0168I\3\2\2\2\u0169\u0167\3\2\2\2\u016a\u016d"+ + "\5L\'\2\u016b\u016d\3\2\2\2\u016c\u016a\3\2\2\2\u016c\u016b\3\2\2\2\u016d"+ + "K\3\2\2\2\u016e\u016f\b\'\1\2\u016f\u0170\5N(\2\u0170\u0176\3\2\2\2\u0171"+ + "\u0172\f\4\2\2\u0172\u0173\7\20\2\2\u0173\u0175\5N(\2\u0174\u0171\3\2"+ + "\2\2\u0175\u0178\3\2\2\2\u0176\u0174\3\2\2\2\u0176\u0177\3\2\2\2\u0177"+ + "M\3\2\2\2\u0178\u0176\3\2\2\2\u0179\u017a\5\b\5\2\u017a\u017b\7\64\2\2"+ + "\u017bO\3\2\2\2\u017c\u017d\5R*\2\u017dQ\3\2\2\2\u017e\u0181\5Z.\2\u017f"+ + "\u0181\5T+\2\u0180\u017e\3\2\2\2\u0180\u017f\3\2\2\2\u0181S\3\2\2\2\u0182"+ + "\u0183\5V,\2\u0183\u0184\7$\2\2\u0184\u0185\5P)\2\u0185U\3\2\2\2\u0186"+ + "\u0187\5\6\4\2\u0187\u0188\5X-\2\u0188W\3\2\2\2\u0189\u018a\7%\2\2\u018a"+ + "\u018b\5P)\2\u018b\u018c\7&\2\2\u018c\u018f\3\2\2\2\u018d\u018f\3\2\2"+ + "\2\u018e\u0189\3\2\2\2\u018e\u018d\3\2\2\2\u018fY\3\2\2\2\u0190\u0191"+ + "\5\\/\2\u0191[\3\2\2\2\u0192\u0193\b/\1\2\u0193\u0194\5^\60\2\u0194\u019a"+ + "\3\2\2\2\u0195\u0196\f\3\2\2\u0196\u0197\7\'\2\2\u0197\u0199\5^\60\2\u0198"+ + "\u0195\3\2\2\2\u0199\u019c\3\2\2\2\u019a\u0198\3\2\2\2\u019a\u019b\3\2"+ + "\2\2\u019b]\3\2\2\2\u019c\u019a\3\2\2\2\u019d\u019e\b\60\1\2\u019e\u019f"+ + "\5`\61\2\u019f\u01a5\3\2\2\2\u01a0\u01a1\f\3\2\2\u01a1\u01a2\7(\2\2\u01a2"+ + "\u01a4\5`\61\2\u01a3\u01a0\3\2\2\2\u01a4\u01a7\3\2\2\2\u01a5\u01a3\3\2"+ + "\2\2\u01a5\u01a6\3\2\2\2\u01a6_\3\2\2\2\u01a7\u01a5\3\2\2\2\u01a8\u01a9"+ + "\b\61\1\2\u01a9\u01aa\5b\62\2\u01aa\u01b0\3\2\2\2\u01ab\u01ac\f\3\2\2"+ + "\u01ac\u01ad\7)\2\2\u01ad\u01af\5b\62\2\u01ae\u01ab\3\2\2\2\u01af\u01b2"+ + "\3\2\2\2\u01b0\u01ae\3\2\2\2\u01b0\u01b1\3\2\2\2\u01b1a\3\2\2\2\u01b2"+ + "\u01b0\3\2\2\2\u01b3\u01b4\b\62\1\2\u01b4\u01b5\5f\64\2\u01b5\u01ba\3"+ + "\2\2\2\u01b6\u01b7\f\3\2\2\u01b7\u01b9\5d\63\2\u01b8\u01b6\3\2\2\2\u01b9"+ + "\u01bc\3\2\2\2\u01ba\u01b8\3\2\2\2\u01ba\u01bb\3\2\2\2\u01bbc\3\2\2\2"+ + "\u01bc\u01ba\3\2\2\2\u01bd\u01be\7*\2\2\u01be\u01c2\5f\64\2\u01bf\u01c0"+ + "\7+\2\2\u01c0\u01c2\5f\64\2\u01c1\u01bd\3\2\2\2\u01c1\u01bf\3\2\2\2\u01c2"+ + "e\3\2\2\2\u01c3\u01c4\b\64\1\2\u01c4\u01c5\5j\66\2\u01c5\u01ca\3\2\2\2"+ + "\u01c6\u01c7\f\3\2\2\u01c7\u01c9\5h\65\2\u01c8\u01c6\3\2\2\2\u01c9\u01cc"+ + "\3\2\2\2\u01ca\u01c8\3\2\2\2\u01ca\u01cb\3\2\2\2\u01cbg\3\2\2\2\u01cc"+ + "\u01ca\3\2\2\2\u01cd\u01ce\7,\2\2\u01ce\u01d6\5j\66\2\u01cf\u01d0\7-\2"+ + "\2\u01d0\u01d6\5j\66\2\u01d1\u01d2\7.\2\2\u01d2\u01d6\5j\66\2\u01d3\u01d4"+ + "\7/\2\2\u01d4\u01d6\5j\66\2\u01d5\u01cd\3\2\2\2\u01d5\u01cf\3\2\2\2\u01d5"+ + "\u01d1\3\2\2\2\u01d5\u01d3\3\2\2\2\u01d6i\3\2\2\2\u01d7\u01d8\b\66\1\2"+ + "\u01d8\u01d9\5n8\2\u01d9\u01de\3\2\2\2\u01da\u01db\f\3\2\2\u01db\u01dd"+ + "\5l\67\2\u01dc\u01da\3\2\2\2\u01dd\u01e0\3\2\2\2\u01de\u01dc\3\2\2\2\u01de"+ + "\u01df\3\2\2\2\u01dfk\3\2\2\2\u01e0\u01de\3\2\2\2\u01e1\u01e2\7\60\2\2"+ + "\u01e2\u01e6\5n8\2\u01e3\u01e4\7\61\2\2\u01e4\u01e6\5n8\2\u01e5\u01e1"+ + "\3\2\2\2\u01e5\u01e3\3\2\2\2\u01e6m\3\2\2\2\u01e7\u01e8\b8\1\2\u01e8\u01e9"+ + "\5r:\2\u01e9\u01ee\3\2\2\2\u01ea\u01eb\f\3\2\2\u01eb\u01ed\5p9\2\u01ec"+ + "\u01ea\3\2\2\2\u01ed\u01f0\3\2\2\2\u01ee\u01ec\3\2\2\2\u01ee\u01ef\3\2"+ + "\2\2\u01efo\3\2\2\2\u01f0\u01ee\3\2\2\2\u01f1\u01f2\7\62\2\2\u01f2\u01f6"+ + "\5r:\2\u01f3\u01f4\7\63\2\2\u01f4\u01f6\5r:\2\u01f5\u01f1\3\2\2\2\u01f5"+ + "\u01f3\3\2\2\2\u01f6q\3\2\2\2\u01f7\u01f8\7\60\2\2\u01f8\u01fd\5r:\2\u01f9"+ + "\u01fa\7\61\2\2\u01fa\u01fd\5r:\2\u01fb\u01fd\5t;\2\u01fc\u01f7\3\2\2"+ + "\2\u01fc\u01f9\3\2\2\2\u01fc\u01fb\3\2\2\2\u01fds\3\2\2\2\u01fe\u0207"+ + "\5\4\3\2\u01ff\u0200\7\f\2\2\u0200\u0201\5P)\2\u0201\u0202\7\r\2\2\u0202"+ + "\u0207\3\2\2\2\u0203\u0204\5\6\4\2\u0204\u0205\5X-\2\u0205\u0207\3\2\2"+ + "\2\u0206\u01fe\3\2\2\2\u0206\u01ff\3\2\2\2\u0206\u0203\3\2\2\2\u0207u"+ + "\3\2\2\2)\u0084\u0089\u0098\u00a6\u00ac\u00ba\u00c1\u00c5\u00cc\u00d6"+ + "\u00dd\u00e4\u00fb\u0107\u0110\u0118\u0122\u013f\u0148\u014c\u015d\u0167"+ + "\u016c\u0176\u0180\u018e\u019a\u01a5\u01b0\u01ba\u01c1\u01ca\u01d5\u01de"+ + "\u01e5\u01ee\u01f5\u01fc\u0206"; public static final ATN _ATN = new ATNDeserializer().deserialize(_serializedATN.toCharArray()); static { diff --git a/ANTLR/src/Test/expression_test.png b/ANTLR/src/Test/expression_test.png deleted file mode 100644 index d7223898db4a21822d993f13693a10aa40fcc822..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56678 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

1~@a+AfKwK(SBkSunJ%e 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 RW$3m3g-hov&pQ70e*k6-7WM!D diff --git a/ANTLR/src/Test/test_decl b/ANTLR/src/Test/test_decl new file mode 100644 index 0000000..a800aaa --- /dev/null +++ b/ANTLR/src/Test/test_decl @@ -0,0 +1,21 @@ +Test_robo: +LOAD("Attack-bot") +LOAD("Bow-bot") + +//This be le tests con many! +/*Whattup maite!?*/ + +NUM a = 5.2, b = 2 +STRING string +BOOL bool +COORD chest = (5,1,23) + +VOID Start() + NUM c = 10 + //a = b + c <--- not allowed in this grammar, needs expression part! + SIGNAL guardian (a, b) +END Start + +NUM TestNumMethod(NUM x, STRING s) + RETURN s + x +END TestNumMethod diff --git a/ANTLR/src/Test/test_prog b/ANTLR/src/Test/test_prog deleted file mode 100644 index 515ad5d..0000000 --- a/ANTLR/src/Test/test_prog +++ /dev/null @@ -1 +0,0 @@ -a * 2 + 3 / 9 IS b * 21 + (3 - a) From 40341791c47019768771881763fc848dd4268408 Mon Sep 17 00:00:00 2001 From: Tobias Morell Date: Wed, 23 Mar 2016 13:17:09 +0100 Subject: [PATCH 51/55] ANTLR/ : Completed grammar, added bash files for run, build and clean --- ANTLR/src/Test/ObsidiCode.g4 | 6 +- ANTLR/src/Test/ObsidiCode.tokens | 40 ++-- ANTLR/src/Test/ObsidiCodeLexer.class | Bin 11466 -> 11466 bytes ANTLR/src/Test/ObsidiCodeLexer.java | 216 +++++++++--------- ANTLR/src/Test/ObsidiCodeLexer.tokens | 40 ++-- ...CodeParser$AdditiveExpressionContext.class | Bin 1411 -> 1411 bytes ...eParser$AdditiveExpressionEndContext.class | Bin 1090 -> 1090 bytes .../ObsidiCodeParser$AssignmentContext.class | Bin 1219 -> 1219 bytes ...deParser$AssignmentExpressionContext.class | Bin 1305 -> 1305 bytes ...Parser$ConditionAndExpressionContext.class | Bin 1239 -> 1239 bytes ...eParser$ConditionOrExpressionContext.class | Bin 1268 -> 1268 bytes ...eParser$ConditionalExpressionContext.class | Bin 1138 -> 1138 bytes ...CodeParser$EqualityExpressionContext.class | Bin 1455 -> 1455 bytes ...eParser$EqualityExpressionEndContext.class | Bin 1134 -> 1134 bytes .../ObsidiCodeParser$ExpressionContext.class | Bin 1079 -> 1079 bytes ...ObsidiCodeParser$LeftHandSideContext.class | Bin 1201 -> 1201 bytes .../ObsidiCodeParser$ListOptContext.class | Bin 1024 -> 1024 bytes .../ObsidiCodeParser$MultiExprContext.class | Bin 1312 -> 1312 bytes ...ObsidiCodeParser$MultiExprEndContext.class | Bin 1045 -> 1045 bytes .../ObsidiCodeParser$PrimaryContext.class | Bin 1508 -> 1508 bytes ...deParser$RelationalExpressionContext.class | Bin 1469 -> 1469 bytes ...arser$RelationalExpressionEndContext.class | Bin 1136 -> 1136 bytes .../ObsidiCodeParser$UnaryExprContext.class | Bin 1124 -> 1124 bytes ...bsidiCodeParser$XOrExpressionContext.class | Bin 1196 -> 1196 bytes ANTLR/src/Test/ObsidiCodeParser.class | Bin 55111 -> 55141 bytes ANTLR/src/Test/ObsidiCodeParser.java | 151 ++++++------ ANTLR/src/Test/test_decl | 21 -- 27 files changed, 228 insertions(+), 246 deletions(-) delete mode 100644 ANTLR/src/Test/test_decl diff --git a/ANTLR/src/Test/ObsidiCode.g4 b/ANTLR/src/Test/ObsidiCode.g4 index cd58da8..3bd8742 100644 --- a/ANTLR/src/Test/ObsidiCode.g4 +++ b/ANTLR/src/Test/ObsidiCode.g4 @@ -89,12 +89,12 @@ variableDclList | variableDclList ',' variableDcl ; variableDcl - : Identifier variableInitializer - | Identifier listInitializer + : variableInitializer + | Identifier '=' listInitializer ; variableInitializer : assignmentExpression - | //lambda + | Identifier ; listInitializer : litList 'END' Identifier diff --git a/ANTLR/src/Test/ObsidiCode.tokens b/ANTLR/src/Test/ObsidiCode.tokens index d5c8d38..43f4fd5 100644 --- a/ANTLR/src/Test/ObsidiCode.tokens +++ b/ANTLR/src/Test/ObsidiCode.tokens @@ -68,26 +68,26 @@ EOLCOMMENT=56 '\n'=12 ':'=13 ','=14 -'END'=15 -'VOID'=16 -'HEAR'=17 -'END HEAR'=18 -'BREAK'=19 -'RETURN'=20 -'SIGNAL'=21 -'IF'=22 -'END IF'=23 -'elseIfOpt'=24 -'elseOpt'=25 -'ELSE IF'=26 -'END ELSEIF'=27 -'ELSE'=28 -'END Else'=29 -'REPEAT UNTIL'=30 -'END REPEAT'=31 -'FOREVER'=32 -'END FOREVER'=33 -'='=34 +'='=15 +'END'=16 +'VOID'=17 +'HEAR'=18 +'END HEAR'=19 +'BREAK'=20 +'RETURN'=21 +'SIGNAL'=22 +'IF'=23 +'END IF'=24 +'elseIfOpt'=25 +'elseOpt'=26 +'ELSE IF'=27 +'END ELSEIF'=28 +'ELSE'=29 +'END Else'=30 +'REPEAT UNTIL'=31 +'END REPEAT'=32 +'FOREVER'=33 +'END FOREVER'=34 '['=35 ']'=36 'OR'=37 diff --git a/ANTLR/src/Test/ObsidiCodeLexer.class b/ANTLR/src/Test/ObsidiCodeLexer.class index de9893a62bc0d09cf1493a2b3ddc420b7ebdad35..74a81b3a63277a83d1206967f9acb758c21ae7bb 100644 GIT binary patch delta 1437 zcmZuxxsDuF6qUL_Pty_*FpL2)fNX==H?xB=#)dIQAR8GQOJoEP5gv-b+PRAba?~cd3 z$D^GOoO1p>k2>~vm!eO3-$l6rPs>g%@Q^;boaocvY4ZUYAvc^RlDxmgE%Pk*dObh%0=6VTB8r zP`HSBg-f8|GFbLg)co%sx)pIRMj}D(X(a^tz&AY>{h(m3TPy@c^O?osX{Jj-*?eoS z<)C72SgZt9^M%D~P$R8&mb7}%FxPCj5j5%63|i*0y|;q4xoNTetkNVVaZS4tmxNZ6 zge28Ql9Do~Ev6)`K9ZJRB}%XKsgLwYzxqi3bMzUIL371k2W5!iAsHrpSVl-6kx}!d z&5yo7`k0K9HZBvSxf3#JZrS{#c;>c6Po_wil4-Uz{StLEk}==dbVg=%XqlBc^SQ-2 znI~;t7FcdU7R^^SzW54dOR`M*vaFb^HoWp0!>h8!>TBYzQ@$=69DYMKIsB$_qZfVZk3RIPKl(ACbuoZJ^~E5D z=sWa2eTOl^^aw^N8^su9V;E9>nL()X~>cK2~WzXKeyk3$@hcZ6g1af}n*PmpCFS>#wI z_ldQ2Bgn(&_Iwodu~9&gK1GzMD}ldzlu_Zmf-3XXD{QNVI>U7|*j58gw$%h5A1$@tvfGtIbF^@|HQq{-*L+M zf86K%8>c-d`uM2_o&Ux|jt%d8^fB*R^z0pvI5s>tdfLlGANF$5Gv05}F7H;f%XB*o z|Ig?jj$3phk;oH4P2s7at?-QWD?BG73NOf%!b`HK@Ur9-&da94YjUjchEx; z?0)81(nn;Jv{4x&ZA`|^b-O(-6Xx4U#FYt|BwOL|t8%qKRzbdKqqEVKHutWdoot2#nib!Cl*Uz2s} z)@6gbjaR7Klr8gv*Qu{amB*+`jfbvDokOY%uU;C` zNkVDIku7t7AX{N!1|}%qW)njOq)x7&;7R>ulLd4Z@cK9 IJCnWZF9?6|_5c6? diff --git a/ANTLR/src/Test/ObsidiCodeLexer.java b/ANTLR/src/Test/ObsidiCodeLexer.java index 72bf106..e7bd88f 100644 --- a/ANTLR/src/Test/ObsidiCodeLexer.java +++ b/ANTLR/src/Test/ObsidiCodeLexer.java @@ -41,10 +41,10 @@ public class ObsidiCodeLexer extends Lexer { private static final String[] _LITERAL_NAMES = { null, "'TRUE'", "'FALSE'", "'.'", "'NUM'", "'BOOL'", "'STRING'", "'COORD'", - "'LIST'", "'LOAD'", "'('", "')'", "'\n'", "':'", "','", "'END'", "'VOID'", - "'HEAR'", "'END HEAR'", "'BREAK'", "'RETURN'", "'SIGNAL'", "'IF'", "'END IF'", - "'elseIfOpt'", "'elseOpt'", "'ELSE IF'", "'END ELSEIF'", "'ELSE'", "'END Else'", - "'REPEAT UNTIL'", "'END REPEAT'", "'FOREVER'", "'END FOREVER'", "'='", + "'LIST'", "'LOAD'", "'('", "')'", "'\n'", "':'", "','", "'='", "'END'", + "'VOID'", "'HEAR'", "'END HEAR'", "'BREAK'", "'RETURN'", "'SIGNAL'", "'IF'", + "'END IF'", "'elseIfOpt'", "'elseOpt'", "'ELSE IF'", "'END ELSEIF'", "'ELSE'", + "'END Else'", "'REPEAT UNTIL'", "'END REPEAT'", "'FOREVER'", "'END FOREVER'", "'['", "']'", "'OR'", "'AND'", "'XOR'", "'IS'", "'NOT'", "'LESS_THAN'", "'GREATER_THAN'", "'LESS_THAN_EQUAL'", "'GREATER_THAN_EQUAL'", "'+'", "'-'", "'*'", "'/'" @@ -123,110 +123,110 @@ public ObsidiCodeLexer(CharStream input) { "\2\3\2\3\2\3\2\3\3\3\3\3\3\3\3\3\3\3\3\3\4\3\4\3\5\3\5\3\5\3\5\3\6\3\6"+ "\3\6\3\6\3\6\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\b\3\b\3\b\3\b\3\b\3\b\3\t\3"+ "\t\3\t\3\t\3\t\3\n\3\n\3\n\3\n\3\n\3\13\3\13\3\f\3\f\3\r\3\r\3\16\3\16"+ - "\3\17\3\17\3\20\3\20\3\20\3\20\3\21\3\21\3\21\3\21\3\21\3\22\3\22\3\22"+ - "\3\22\3\22\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\24\3\24\3\24"+ - "\3\24\3\24\3\24\3\25\3\25\3\25\3\25\3\25\3\25\3\25\3\26\3\26\3\26\3\26"+ - "\3\26\3\26\3\26\3\27\3\27\3\27\3\30\3\30\3\30\3\30\3\30\3\30\3\30\3\31"+ - "\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\31\3\32\3\32\3\32\3\32\3\32"+ - "\3\32\3\32\3\32\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\34\3\34\3\34"+ - "\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3\35\3\36"+ - "\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\37\3\37\3\37\3\37\3\37\3\37"+ - "\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3"+ - "!\3!\3!\3!\3!\3!\3!\3!\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\""+ - "\3#\3#\3$\3$\3%\3%\3&\3&\3&\3\'\3\'\3\'\3\'\3(\3(\3(\3(\3)\3)\3)\3*\3"+ - "*\3*\3*\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3"+ - ",\3,\3,\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3.\3.\3.\3.\3"+ - ".\3.\3.\3.\3.\3.\3.\3.\3.\3.\3.\3.\3.\3.\3.\3/\3/\3\60\3\60\3\61\3\61"+ - "\3\62\3\62\3\63\3\63\3\64\3\64\5\64\u01a3\n\64\3\65\3\65\3\66\3\66\7\66"+ - "\u01a9\n\66\f\66\16\66\u01ac\13\66\3\67\6\67\u01af\n\67\r\67\16\67\u01b0"+ - "\3\67\3\67\6\67\u01b5\n\67\r\67\16\67\u01b6\5\67\u01b9\n\67\38\38\68\u01bd"+ - "\n8\r8\168\u01be\38\38\68\u01c3\n8\r8\168\u01c4\38\38\68\u01c9\n8\r8\16"+ - "8\u01ca\38\38\39\39\79\u01d1\n9\f9\169\u01d4\139\39\39\3:\6:\u01d9\n:"+ - "\r:\16:\u01da\3:\3:\3;\3;\3;\3;\7;\u01e3\n;\f;\16;\u01e6\13;\3;\3;\3;"+ - "\3;\3;\3<\3<\3<\3<\7<\u01f1\n<\f<\16<\u01f4\13<\3<\3<\3<\3<\4\u01e4\u01f2"+ - "\2=\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16\33\17\35"+ - "\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63\33\65\34\67\359\36"+ - ";\37= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]\60_\61a\62c\63e\2g\2i\2k\64m\65"+ - "o\66q\67s8u9w:\3\2\6\4\2C\\c|\4\2\62;aa\3\2$$\6\2\13\13\17\17\"\"))\u0201"+ - "\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2"+ - "\2\2\2\17\3\2\2\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2"+ - "\2\31\3\2\2\2\2\33\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2"+ - "\2\2\2%\3\2\2\2\2\'\3\2\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2"+ - "\2\2\61\3\2\2\2\2\63\3\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3"+ - "\2\2\2\2=\3\2\2\2\2?\3\2\2\2\2A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2\2G\3\2\2"+ - "\2\2I\3\2\2\2\2K\3\2\2\2\2M\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2"+ - "U\3\2\2\2\2W\3\2\2\2\2Y\3\2\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2\2\2\2a\3"+ - "\2\2\2\2c\3\2\2\2\2k\3\2\2\2\2m\3\2\2\2\2o\3\2\2\2\2q\3\2\2\2\2s\3\2\2"+ - "\2\2u\3\2\2\2\2w\3\2\2\2\3y\3\2\2\2\5~\3\2\2\2\7\u0084\3\2\2\2\t\u0086"+ - "\3\2\2\2\13\u008a\3\2\2\2\r\u008f\3\2\2\2\17\u0096\3\2\2\2\21\u009c\3"+ - "\2\2\2\23\u00a1\3\2\2\2\25\u00a6\3\2\2\2\27\u00a8\3\2\2\2\31\u00aa\3\2"+ - "\2\2\33\u00ac\3\2\2\2\35\u00ae\3\2\2\2\37\u00b0\3\2\2\2!\u00b4\3\2\2\2"+ - "#\u00b9\3\2\2\2%\u00be\3\2\2\2\'\u00c7\3\2\2\2)\u00cd\3\2\2\2+\u00d4\3"+ - "\2\2\2-\u00db\3\2\2\2/\u00de\3\2\2\2\61\u00e5\3\2\2\2\63\u00ef\3\2\2\2"+ - "\65\u00f7\3\2\2\2\67\u00ff\3\2\2\29\u010a\3\2\2\2;\u010f\3\2\2\2=\u0118"+ - "\3\2\2\2?\u0125\3\2\2\2A\u0130\3\2\2\2C\u0138\3\2\2\2E\u0144\3\2\2\2G"+ - "\u0146\3\2\2\2I\u0148\3\2\2\2K\u014a\3\2\2\2M\u014d\3\2\2\2O\u0151\3\2"+ - "\2\2Q\u0155\3\2\2\2S\u0158\3\2\2\2U\u015c\3\2\2\2W\u0166\3\2\2\2Y\u0173"+ - "\3\2\2\2[\u0183\3\2\2\2]\u0196\3\2\2\2_\u0198\3\2\2\2a\u019a\3\2\2\2c"+ - "\u019c\3\2\2\2e\u019e\3\2\2\2g\u01a2\3\2\2\2i\u01a4\3\2\2\2k\u01a6\3\2"+ - "\2\2m\u01ae\3\2\2\2o\u01ba\3\2\2\2q\u01ce\3\2\2\2s\u01d8\3\2\2\2u\u01de"+ - "\3\2\2\2w\u01ec\3\2\2\2yz\7V\2\2z{\7T\2\2{|\7W\2\2|}\7G\2\2}\4\3\2\2\2"+ - "~\177\7H\2\2\177\u0080\7C\2\2\u0080\u0081\7N\2\2\u0081\u0082\7U\2\2\u0082"+ - "\u0083\7G\2\2\u0083\6\3\2\2\2\u0084\u0085\7\60\2\2\u0085\b\3\2\2\2\u0086"+ - "\u0087\7P\2\2\u0087\u0088\7W\2\2\u0088\u0089\7O\2\2\u0089\n\3\2\2\2\u008a"+ - "\u008b\7D\2\2\u008b\u008c\7Q\2\2\u008c\u008d\7Q\2\2\u008d\u008e\7N\2\2"+ - "\u008e\f\3\2\2\2\u008f\u0090\7U\2\2\u0090\u0091\7V\2\2\u0091\u0092\7T"+ - "\2\2\u0092\u0093\7K\2\2\u0093\u0094\7P\2\2\u0094\u0095\7I\2\2\u0095\16"+ - "\3\2\2\2\u0096\u0097\7E\2\2\u0097\u0098\7Q\2\2\u0098\u0099\7Q\2\2\u0099"+ - "\u009a\7T\2\2\u009a\u009b\7F\2\2\u009b\20\3\2\2\2\u009c\u009d\7N\2\2\u009d"+ - "\u009e\7K\2\2\u009e\u009f\7U\2\2\u009f\u00a0\7V\2\2\u00a0\22\3\2\2\2\u00a1"+ - "\u00a2\7N\2\2\u00a2\u00a3\7Q\2\2\u00a3\u00a4\7C\2\2\u00a4\u00a5\7F\2\2"+ - "\u00a5\24\3\2\2\2\u00a6\u00a7\7*\2\2\u00a7\26\3\2\2\2\u00a8\u00a9\7+\2"+ - "\2\u00a9\30\3\2\2\2\u00aa\u00ab\7\f\2\2\u00ab\32\3\2\2\2\u00ac\u00ad\7"+ - "<\2\2\u00ad\34\3\2\2\2\u00ae\u00af\7.\2\2\u00af\36\3\2\2\2\u00b0\u00b1"+ - "\7G\2\2\u00b1\u00b2\7P\2\2\u00b2\u00b3\7F\2\2\u00b3 \3\2\2\2\u00b4\u00b5"+ - "\7X\2\2\u00b5\u00b6\7Q\2\2\u00b6\u00b7\7K\2\2\u00b7\u00b8\7F\2\2\u00b8"+ - "\"\3\2\2\2\u00b9\u00ba\7J\2\2\u00ba\u00bb\7G\2\2\u00bb\u00bc\7C\2\2\u00bc"+ - "\u00bd\7T\2\2\u00bd$\3\2\2\2\u00be\u00bf\7G\2\2\u00bf\u00c0\7P\2\2\u00c0"+ - "\u00c1\7F\2\2\u00c1\u00c2\7\"\2\2\u00c2\u00c3\7J\2\2\u00c3\u00c4\7G\2"+ - "\2\u00c4\u00c5\7C\2\2\u00c5\u00c6\7T\2\2\u00c6&\3\2\2\2\u00c7\u00c8\7"+ - "D\2\2\u00c8\u00c9\7T\2\2\u00c9\u00ca\7G\2\2\u00ca\u00cb\7C\2\2\u00cb\u00cc"+ - "\7M\2\2\u00cc(\3\2\2\2\u00cd\u00ce\7T\2\2\u00ce\u00cf\7G\2\2\u00cf\u00d0"+ - "\7V\2\2\u00d0\u00d1\7W\2\2\u00d1\u00d2\7T\2\2\u00d2\u00d3\7P\2\2\u00d3"+ - "*\3\2\2\2\u00d4\u00d5\7U\2\2\u00d5\u00d6\7K\2\2\u00d6\u00d7\7I\2\2\u00d7"+ - "\u00d8\7P\2\2\u00d8\u00d9\7C\2\2\u00d9\u00da\7N\2\2\u00da,\3\2\2\2\u00db"+ - "\u00dc\7K\2\2\u00dc\u00dd\7H\2\2\u00dd.\3\2\2\2\u00de\u00df\7G\2\2\u00df"+ - "\u00e0\7P\2\2\u00e0\u00e1\7F\2\2\u00e1\u00e2\7\"\2\2\u00e2\u00e3\7K\2"+ - "\2\u00e3\u00e4\7H\2\2\u00e4\60\3\2\2\2\u00e5\u00e6\7g\2\2\u00e6\u00e7"+ - "\7n\2\2\u00e7\u00e8\7u\2\2\u00e8\u00e9\7g\2\2\u00e9\u00ea\7K\2\2\u00ea"+ - "\u00eb\7h\2\2\u00eb\u00ec\7Q\2\2\u00ec\u00ed\7r\2\2\u00ed\u00ee\7v\2\2"+ - "\u00ee\62\3\2\2\2\u00ef\u00f0\7g\2\2\u00f0\u00f1\7n\2\2\u00f1\u00f2\7"+ - "u\2\2\u00f2\u00f3\7g\2\2\u00f3\u00f4\7Q\2\2\u00f4\u00f5\7r\2\2\u00f5\u00f6"+ - "\7v\2\2\u00f6\64\3\2\2\2\u00f7\u00f8\7G\2\2\u00f8\u00f9\7N\2\2\u00f9\u00fa"+ - "\7U\2\2\u00fa\u00fb\7G\2\2\u00fb\u00fc\7\"\2\2\u00fc\u00fd\7K\2\2\u00fd"+ - "\u00fe\7H\2\2\u00fe\66\3\2\2\2\u00ff\u0100\7G\2\2\u0100\u0101\7P\2\2\u0101"+ - "\u0102\7F\2\2\u0102\u0103\7\"\2\2\u0103\u0104\7G\2\2\u0104\u0105\7N\2"+ - "\2\u0105\u0106\7U\2\2\u0106\u0107\7G\2\2\u0107\u0108\7K\2\2\u0108\u0109"+ - "\7H\2\2\u01098\3\2\2\2\u010a\u010b\7G\2\2\u010b\u010c\7N\2\2\u010c\u010d"+ - "\7U\2\2\u010d\u010e\7G\2\2\u010e:\3\2\2\2\u010f\u0110\7G\2\2\u0110\u0111"+ - "\7P\2\2\u0111\u0112\7F\2\2\u0112\u0113\7\"\2\2\u0113\u0114\7G\2\2\u0114"+ - "\u0115\7n\2\2\u0115\u0116\7u\2\2\u0116\u0117\7g\2\2\u0117<\3\2\2\2\u0118"+ - "\u0119\7T\2\2\u0119\u011a\7G\2\2\u011a\u011b\7R\2\2\u011b\u011c\7G\2\2"+ - "\u011c\u011d\7C\2\2\u011d\u011e\7V\2\2\u011e\u011f\7\"\2\2\u011f\u0120"+ - "\7W\2\2\u0120\u0121\7P\2\2\u0121\u0122\7V\2\2\u0122\u0123\7K\2\2\u0123"+ - "\u0124\7N\2\2\u0124>\3\2\2\2\u0125\u0126\7G\2\2\u0126\u0127\7P\2\2\u0127"+ - "\u0128\7F\2\2\u0128\u0129\7\"\2\2\u0129\u012a\7T\2\2\u012a\u012b\7G\2"+ - "\2\u012b\u012c\7R\2\2\u012c\u012d\7G\2\2\u012d\u012e\7C\2\2\u012e\u012f"+ - "\7V\2\2\u012f@\3\2\2\2\u0130\u0131\7H\2\2\u0131\u0132\7Q\2\2\u0132\u0133"+ - "\7T\2\2\u0133\u0134\7G\2\2\u0134\u0135\7X\2\2\u0135\u0136\7G\2\2\u0136"+ - "\u0137\7T\2\2\u0137B\3\2\2\2\u0138\u0139\7G\2\2\u0139\u013a\7P\2\2\u013a"+ - "\u013b\7F\2\2\u013b\u013c\7\"\2\2\u013c\u013d\7H\2\2\u013d\u013e\7Q\2"+ - "\2\u013e\u013f\7T\2\2\u013f\u0140\7G\2\2\u0140\u0141\7X\2\2\u0141\u0142"+ - "\7G\2\2\u0142\u0143\7T\2\2\u0143D\3\2\2\2\u0144\u0145\7?\2\2\u0145F\3"+ - "\2\2\2\u0146\u0147\7]\2\2\u0147H\3\2\2\2\u0148\u0149\7_\2\2\u0149J\3\2"+ - "\2\2\u014a\u014b\7Q\2\2\u014b\u014c\7T\2\2\u014cL\3\2\2\2\u014d\u014e"+ - "\7C\2\2\u014e\u014f\7P\2\2\u014f\u0150\7F\2\2\u0150N\3\2\2\2\u0151\u0152"+ - "\7Z\2\2\u0152\u0153\7Q\2\2\u0153\u0154\7T\2\2\u0154P\3\2\2\2\u0155\u0156"+ + "\3\17\3\17\3\20\3\20\3\21\3\21\3\21\3\21\3\22\3\22\3\22\3\22\3\22\3\23"+ + "\3\23\3\23\3\23\3\23\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\25"+ + "\3\25\3\25\3\25\3\25\3\25\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\27\3\27"+ + "\3\27\3\27\3\27\3\27\3\27\3\30\3\30\3\30\3\31\3\31\3\31\3\31\3\31\3\31"+ + "\3\31\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\33\3\33\3\33"+ + "\3\33\3\33\3\33\3\33\3\33\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\35"+ + "\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\36\3\36\3\36\3\36"+ + "\3\36\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3 \3 \3 \3 \3 \3 \3"+ + " \3 \3 \3 \3 \3 \3 \3!\3!\3!\3!\3!\3!\3!\3!\3!\3!\3!\3\"\3\"\3\"\3\"\3"+ + "\"\3\"\3\"\3\"\3#\3#\3#\3#\3#\3#\3#\3#\3#\3#\3#\3#\3$\3$\3%\3%\3&\3&\3"+ + "&\3\'\3\'\3\'\3\'\3(\3(\3(\3(\3)\3)\3)\3*\3*\3*\3*\3+\3+\3+\3+\3+\3+\3"+ + "+\3+\3+\3+\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3-\3-\3-\3-\3-\3-\3"+ + "-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3.\3.\3.\3.\3.\3.\3.\3.\3.\3.\3.\3.\3.\3"+ + ".\3.\3.\3.\3.\3.\3/\3/\3\60\3\60\3\61\3\61\3\62\3\62\3\63\3\63\3\64\3"+ + "\64\5\64\u01a3\n\64\3\65\3\65\3\66\3\66\7\66\u01a9\n\66\f\66\16\66\u01ac"+ + "\13\66\3\67\6\67\u01af\n\67\r\67\16\67\u01b0\3\67\3\67\6\67\u01b5\n\67"+ + "\r\67\16\67\u01b6\5\67\u01b9\n\67\38\38\68\u01bd\n8\r8\168\u01be\38\3"+ + "8\68\u01c3\n8\r8\168\u01c4\38\38\68\u01c9\n8\r8\168\u01ca\38\38\39\39"+ + "\79\u01d1\n9\f9\169\u01d4\139\39\39\3:\6:\u01d9\n:\r:\16:\u01da\3:\3:"+ + "\3;\3;\3;\3;\7;\u01e3\n;\f;\16;\u01e6\13;\3;\3;\3;\3;\3;\3<\3<\3<\3<\7"+ + "<\u01f1\n<\f<\16<\u01f4\13<\3<\3<\3<\3<\4\u01e4\u01f2\2=\3\3\5\4\7\5\t"+ + "\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16\33\17\35\20\37\21!\22#\23"+ + "%\24\'\25)\26+\27-\30/\31\61\32\63\33\65\34\67\359\36;\37= ?!A\"C#E$G"+ + "%I&K\'M(O)Q*S+U,W-Y.[/]\60_\61a\62c\63e\2g\2i\2k\64m\65o\66q\67s8u9w:"+ + "\3\2\6\4\2C\\c|\4\2\62;aa\3\2$$\6\2\13\13\17\17\"\"))\u0201\2\3\3\2\2"+ + "\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3"+ + "\2\2\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2"+ + "\2\2\33\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2"+ + "\2\2\2\'\3\2\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2"+ + "\2\2\2\63\3\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3"+ + "\2\2\2\2?\3\2\2\2\2A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2\2G\3\2\2\2\2I\3\2\2"+ + "\2\2K\3\2\2\2\2M\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2"+ + "W\3\2\2\2\2Y\3\2\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2\2\2\2a\3\2\2\2\2c\3"+ + "\2\2\2\2k\3\2\2\2\2m\3\2\2\2\2o\3\2\2\2\2q\3\2\2\2\2s\3\2\2\2\2u\3\2\2"+ + "\2\2w\3\2\2\2\3y\3\2\2\2\5~\3\2\2\2\7\u0084\3\2\2\2\t\u0086\3\2\2\2\13"+ + "\u008a\3\2\2\2\r\u008f\3\2\2\2\17\u0096\3\2\2\2\21\u009c\3\2\2\2\23\u00a1"+ + "\3\2\2\2\25\u00a6\3\2\2\2\27\u00a8\3\2\2\2\31\u00aa\3\2\2\2\33\u00ac\3"+ + "\2\2\2\35\u00ae\3\2\2\2\37\u00b0\3\2\2\2!\u00b2\3\2\2\2#\u00b6\3\2\2\2"+ + "%\u00bb\3\2\2\2\'\u00c0\3\2\2\2)\u00c9\3\2\2\2+\u00cf\3\2\2\2-\u00d6\3"+ + "\2\2\2/\u00dd\3\2\2\2\61\u00e0\3\2\2\2\63\u00e7\3\2\2\2\65\u00f1\3\2\2"+ + "\2\67\u00f9\3\2\2\29\u0101\3\2\2\2;\u010c\3\2\2\2=\u0111\3\2\2\2?\u011a"+ + "\3\2\2\2A\u0127\3\2\2\2C\u0132\3\2\2\2E\u013a\3\2\2\2G\u0146\3\2\2\2I"+ + "\u0148\3\2\2\2K\u014a\3\2\2\2M\u014d\3\2\2\2O\u0151\3\2\2\2Q\u0155\3\2"+ + "\2\2S\u0158\3\2\2\2U\u015c\3\2\2\2W\u0166\3\2\2\2Y\u0173\3\2\2\2[\u0183"+ + "\3\2\2\2]\u0196\3\2\2\2_\u0198\3\2\2\2a\u019a\3\2\2\2c\u019c\3\2\2\2e"+ + "\u019e\3\2\2\2g\u01a2\3\2\2\2i\u01a4\3\2\2\2k\u01a6\3\2\2\2m\u01ae\3\2"+ + "\2\2o\u01ba\3\2\2\2q\u01ce\3\2\2\2s\u01d8\3\2\2\2u\u01de\3\2\2\2w\u01ec"+ + "\3\2\2\2yz\7V\2\2z{\7T\2\2{|\7W\2\2|}\7G\2\2}\4\3\2\2\2~\177\7H\2\2\177"+ + "\u0080\7C\2\2\u0080\u0081\7N\2\2\u0081\u0082\7U\2\2\u0082\u0083\7G\2\2"+ + "\u0083\6\3\2\2\2\u0084\u0085\7\60\2\2\u0085\b\3\2\2\2\u0086\u0087\7P\2"+ + "\2\u0087\u0088\7W\2\2\u0088\u0089\7O\2\2\u0089\n\3\2\2\2\u008a\u008b\7"+ + "D\2\2\u008b\u008c\7Q\2\2\u008c\u008d\7Q\2\2\u008d\u008e\7N\2\2\u008e\f"+ + "\3\2\2\2\u008f\u0090\7U\2\2\u0090\u0091\7V\2\2\u0091\u0092\7T\2\2\u0092"+ + "\u0093\7K\2\2\u0093\u0094\7P\2\2\u0094\u0095\7I\2\2\u0095\16\3\2\2\2\u0096"+ + "\u0097\7E\2\2\u0097\u0098\7Q\2\2\u0098\u0099\7Q\2\2\u0099\u009a\7T\2\2"+ + "\u009a\u009b\7F\2\2\u009b\20\3\2\2\2\u009c\u009d\7N\2\2\u009d\u009e\7"+ + "K\2\2\u009e\u009f\7U\2\2\u009f\u00a0\7V\2\2\u00a0\22\3\2\2\2\u00a1\u00a2"+ + "\7N\2\2\u00a2\u00a3\7Q\2\2\u00a3\u00a4\7C\2\2\u00a4\u00a5\7F\2\2\u00a5"+ + "\24\3\2\2\2\u00a6\u00a7\7*\2\2\u00a7\26\3\2\2\2\u00a8\u00a9\7+\2\2\u00a9"+ + "\30\3\2\2\2\u00aa\u00ab\7\f\2\2\u00ab\32\3\2\2\2\u00ac\u00ad\7<\2\2\u00ad"+ + "\34\3\2\2\2\u00ae\u00af\7.\2\2\u00af\36\3\2\2\2\u00b0\u00b1\7?\2\2\u00b1"+ + " \3\2\2\2\u00b2\u00b3\7G\2\2\u00b3\u00b4\7P\2\2\u00b4\u00b5\7F\2\2\u00b5"+ + "\"\3\2\2\2\u00b6\u00b7\7X\2\2\u00b7\u00b8\7Q\2\2\u00b8\u00b9\7K\2\2\u00b9"+ + "\u00ba\7F\2\2\u00ba$\3\2\2\2\u00bb\u00bc\7J\2\2\u00bc\u00bd\7G\2\2\u00bd"+ + "\u00be\7C\2\2\u00be\u00bf\7T\2\2\u00bf&\3\2\2\2\u00c0\u00c1\7G\2\2\u00c1"+ + "\u00c2\7P\2\2\u00c2\u00c3\7F\2\2\u00c3\u00c4\7\"\2\2\u00c4\u00c5\7J\2"+ + "\2\u00c5\u00c6\7G\2\2\u00c6\u00c7\7C\2\2\u00c7\u00c8\7T\2\2\u00c8(\3\2"+ + "\2\2\u00c9\u00ca\7D\2\2\u00ca\u00cb\7T\2\2\u00cb\u00cc\7G\2\2\u00cc\u00cd"+ + "\7C\2\2\u00cd\u00ce\7M\2\2\u00ce*\3\2\2\2\u00cf\u00d0\7T\2\2\u00d0\u00d1"+ + "\7G\2\2\u00d1\u00d2\7V\2\2\u00d2\u00d3\7W\2\2\u00d3\u00d4\7T\2\2\u00d4"+ + "\u00d5\7P\2\2\u00d5,\3\2\2\2\u00d6\u00d7\7U\2\2\u00d7\u00d8\7K\2\2\u00d8"+ + "\u00d9\7I\2\2\u00d9\u00da\7P\2\2\u00da\u00db\7C\2\2\u00db\u00dc\7N\2\2"+ + "\u00dc.\3\2\2\2\u00dd\u00de\7K\2\2\u00de\u00df\7H\2\2\u00df\60\3\2\2\2"+ + "\u00e0\u00e1\7G\2\2\u00e1\u00e2\7P\2\2\u00e2\u00e3\7F\2\2\u00e3\u00e4"+ + "\7\"\2\2\u00e4\u00e5\7K\2\2\u00e5\u00e6\7H\2\2\u00e6\62\3\2\2\2\u00e7"+ + "\u00e8\7g\2\2\u00e8\u00e9\7n\2\2\u00e9\u00ea\7u\2\2\u00ea\u00eb\7g\2\2"+ + "\u00eb\u00ec\7K\2\2\u00ec\u00ed\7h\2\2\u00ed\u00ee\7Q\2\2\u00ee\u00ef"+ + "\7r\2\2\u00ef\u00f0\7v\2\2\u00f0\64\3\2\2\2\u00f1\u00f2\7g\2\2\u00f2\u00f3"+ + "\7n\2\2\u00f3\u00f4\7u\2\2\u00f4\u00f5\7g\2\2\u00f5\u00f6\7Q\2\2\u00f6"+ + "\u00f7\7r\2\2\u00f7\u00f8\7v\2\2\u00f8\66\3\2\2\2\u00f9\u00fa\7G\2\2\u00fa"+ + "\u00fb\7N\2\2\u00fb\u00fc\7U\2\2\u00fc\u00fd\7G\2\2\u00fd\u00fe\7\"\2"+ + "\2\u00fe\u00ff\7K\2\2\u00ff\u0100\7H\2\2\u01008\3\2\2\2\u0101\u0102\7"+ + "G\2\2\u0102\u0103\7P\2\2\u0103\u0104\7F\2\2\u0104\u0105\7\"\2\2\u0105"+ + "\u0106\7G\2\2\u0106\u0107\7N\2\2\u0107\u0108\7U\2\2\u0108\u0109\7G\2\2"+ + "\u0109\u010a\7K\2\2\u010a\u010b\7H\2\2\u010b:\3\2\2\2\u010c\u010d\7G\2"+ + "\2\u010d\u010e\7N\2\2\u010e\u010f\7U\2\2\u010f\u0110\7G\2\2\u0110<\3\2"+ + "\2\2\u0111\u0112\7G\2\2\u0112\u0113\7P\2\2\u0113\u0114\7F\2\2\u0114\u0115"+ + "\7\"\2\2\u0115\u0116\7G\2\2\u0116\u0117\7n\2\2\u0117\u0118\7u\2\2\u0118"+ + "\u0119\7g\2\2\u0119>\3\2\2\2\u011a\u011b\7T\2\2\u011b\u011c\7G\2\2\u011c"+ + "\u011d\7R\2\2\u011d\u011e\7G\2\2\u011e\u011f\7C\2\2\u011f\u0120\7V\2\2"+ + "\u0120\u0121\7\"\2\2\u0121\u0122\7W\2\2\u0122\u0123\7P\2\2\u0123\u0124"+ + "\7V\2\2\u0124\u0125\7K\2\2\u0125\u0126\7N\2\2\u0126@\3\2\2\2\u0127\u0128"+ + "\7G\2\2\u0128\u0129\7P\2\2\u0129\u012a\7F\2\2\u012a\u012b\7\"\2\2\u012b"+ + "\u012c\7T\2\2\u012c\u012d\7G\2\2\u012d\u012e\7R\2\2\u012e\u012f\7G\2\2"+ + "\u012f\u0130\7C\2\2\u0130\u0131\7V\2\2\u0131B\3\2\2\2\u0132\u0133\7H\2"+ + "\2\u0133\u0134\7Q\2\2\u0134\u0135\7T\2\2\u0135\u0136\7G\2\2\u0136\u0137"+ + "\7X\2\2\u0137\u0138\7G\2\2\u0138\u0139\7T\2\2\u0139D\3\2\2\2\u013a\u013b"+ + "\7G\2\2\u013b\u013c\7P\2\2\u013c\u013d\7F\2\2\u013d\u013e\7\"\2\2\u013e"+ + "\u013f\7H\2\2\u013f\u0140\7Q\2\2\u0140\u0141\7T\2\2\u0141\u0142\7G\2\2"+ + "\u0142\u0143\7X\2\2\u0143\u0144\7G\2\2\u0144\u0145\7T\2\2\u0145F\3\2\2"+ + "\2\u0146\u0147\7]\2\2\u0147H\3\2\2\2\u0148\u0149\7_\2\2\u0149J\3\2\2\2"+ + "\u014a\u014b\7Q\2\2\u014b\u014c\7T\2\2\u014cL\3\2\2\2\u014d\u014e\7C\2"+ + "\2\u014e\u014f\7P\2\2\u014f\u0150\7F\2\2\u0150N\3\2\2\2\u0151\u0152\7"+ + "Z\2\2\u0152\u0153\7Q\2\2\u0153\u0154\7T\2\2\u0154P\3\2\2\2\u0155\u0156"+ "\7K\2\2\u0156\u0157\7U\2\2\u0157R\3\2\2\2\u0158\u0159\7P\2\2\u0159\u015a"+ "\7Q\2\2\u015a\u015b\7V\2\2\u015bT\3\2\2\2\u015c\u015d\7N\2\2\u015d\u015e"+ "\7G\2\2\u015e\u015f\7U\2\2\u015f\u0160\7U\2\2\u0160\u0161\7a\2\2\u0161"+ diff --git a/ANTLR/src/Test/ObsidiCodeLexer.tokens b/ANTLR/src/Test/ObsidiCodeLexer.tokens index d5c8d38..43f4fd5 100644 --- a/ANTLR/src/Test/ObsidiCodeLexer.tokens +++ b/ANTLR/src/Test/ObsidiCodeLexer.tokens @@ -68,26 +68,26 @@ EOLCOMMENT=56 '\n'=12 ':'=13 ','=14 -'END'=15 -'VOID'=16 -'HEAR'=17 -'END HEAR'=18 -'BREAK'=19 -'RETURN'=20 -'SIGNAL'=21 -'IF'=22 -'END IF'=23 -'elseIfOpt'=24 -'elseOpt'=25 -'ELSE IF'=26 -'END ELSEIF'=27 -'ELSE'=28 -'END Else'=29 -'REPEAT UNTIL'=30 -'END REPEAT'=31 -'FOREVER'=32 -'END FOREVER'=33 -'='=34 +'='=15 +'END'=16 +'VOID'=17 +'HEAR'=18 +'END HEAR'=19 +'BREAK'=20 +'RETURN'=21 +'SIGNAL'=22 +'IF'=23 +'END IF'=24 +'elseIfOpt'=25 +'elseOpt'=26 +'ELSE IF'=27 +'END ELSEIF'=28 +'ELSE'=29 +'END Else'=30 +'REPEAT UNTIL'=31 +'END REPEAT'=32 +'FOREVER'=33 +'END FOREVER'=34 '['=35 ']'=36 'OR'=37 diff --git a/ANTLR/src/Test/ObsidiCodeParser$AdditiveExpressionContext.class b/ANTLR/src/Test/ObsidiCodeParser$AdditiveExpressionContext.class index 350b9efeabc56d7ac5f7008a77e1b204dc879d0c..39d856066cbe29b108689853dc59173ad118dfed 100644 GIT binary patch delta 61 zcmZqXZsy(~z{2=uvLK5gO`8n{dDp5K$X QSshsa0a^bi2e29g0A`C5{Qv*} delta 63 zcmZqXZsy(~z{2=)vLK7$WC0eI$!;uqjPECxvgojWVqoL>Jb4+52IH5>=UL2IzcUE( T{Fuzm>cILN$oexmfYlfPU{4dB diff --git a/ANTLR/src/Test/ObsidiCodeParser$AdditiveExpressionEndContext.class b/ANTLR/src/Test/ObsidiCodeParser$AdditiveExpressionEndContext.class index 1642e72622a53ffc1841c13ade4eb9f88df7dd37..faad8f5c1521bf1d1226b37c6972cd42535e06fa 100644 GIT binary patch delta 57 zcmX@aafoAsH8Z32WE*B3RyzhZUi-U^JS{&tlGM${@&PHrboSfz=Yo KvYI@B#TWpNWDKkT delta 55 zcmX@id6;uU6Emaw1=VAP+?&tlGM#30CJJlUJYfz=Gi KGM_ww#TWpKy9|*4 diff --git a/ANTLR/src/Test/ObsidiCodeParser$AssignmentExpressionContext.class b/ANTLR/src/Test/ObsidiCodeParser$AssignmentExpressionContext.class index 7186fdd8fcaee81c728a9bbad43b32be2c6b365e..76c6704075ceb8c17493bf94aebc73318c2d19b1 100644 GIT binary patch delta 63 zcmbQqHIr+@4Q9qKlW#H`GJc=T&7#Bli-C>v_hcIu4c0#lj11zF*Rd!}?qm^W{m&rC T#V~mxivue&ki|0j8H+IhmN61g delta 63 zcmV-F0Kos53YiM9*aHFali33?0rZm#1S|#j00s&8lRN|{1^EC002h<41R#@%1QP}P V01*lOlc5Aa1pojM3IUVm1T&%l6Epw- diff --git a/ANTLR/src/Test/ObsidiCodeParser$ConditionAndExpressionContext.class b/ANTLR/src/Test/ObsidiCodeParser$ConditionAndExpressionContext.class index ee68e5c28ec975e799290d865354bf2686f4340f..74ca2b5de7ea5472047181e490d99110a3552d62 100644 GIT binary patch delta 57 zcmcc4d7X2^Jm$$4m{}$-V%B3coP3d4ht-6EjoWlG6N?6;*<@`Nb5=_RL2j$b=`0Sc Mwm_EM@llL$iGCrRCj#-EG83P;F^U3lo8muoE7#YMSPh?S;oWml_`kFzI T>&@gA76;b%K-P!JCt0)s+cOnk delta 63 zcmeyu`Gs@CZf3^2llL$iGCr96j#-EGF#{XdlgaWd8mvzl7#YMSPh?S;oWml_`hr1_ T>*eGY76;ZhK-SyICt0)s*b)^) diff --git a/ANTLR/src/Test/ObsidiCodeParser$ConditionalExpressionContext.class b/ANTLR/src/Test/ObsidiCodeParser$ConditionalExpressionContext.class index e837efb4b9f5f70f60c3cbfe7394831d16d748ee..297330b26b8a6b77017bfab03acd5cf25bb74613 100644 GIT binary patch delta 57 zcmeyw@rh$YHZ$YS$vMnAta}*Pxb{w-%dEk=kAaavcrrhW!sJ)X!mI}w1i21PW@2$* NJqlzUo9xb_4FCZJ5JUg~ delta 57 zcmeyw@rh$YHZ$Y4$vMnAtUDRlxOPpR%dEk=n}Lx*crrhW!sJ)X!mRrk1iAK4W@2$* NJp^POp6t$|4FLXn5G()y diff --git a/ANTLR/src/Test/ObsidiCodeParser$EqualityExpressionContext.class b/ANTLR/src/Test/ObsidiCodeParser$EqualityExpressionContext.class index 15a868f5b62684d6e6bacd2130f0b00a16c8ff9f..b1a4d9c5b2320411a772476a6932991a2ab5baba 100644 GIT binary patch delta 63 zcmZ3_y`Fo64GZI`$+j$plNYeCOfF*4W4thVA&U;{Wd=6xE0Zs=XfR%#{F}v`^#+3= T_sz-XtPZSqfULWdYgml|p|}*w delta 61 zcmZ3_y`Fo64GZJ($+j$pjHf2&1Ie?K7qaNEUSMG3zBu_3iw5JR$-i05S+6n(a$lQl Q&g#H=6Ue$XxrWsk0Dl1#KmY&$ diff --git a/ANTLR/src/Test/ObsidiCodeParser$EqualityExpressionEndContext.class b/ANTLR/src/Test/ObsidiCodeParser$EqualityExpressionEndContext.class index 9cba14e4cdd742317895fe698bcba54208fafe3a..7999e2ce08da48557f41ff4b718d0d8f8807e37e 100644 GIT binary patch delta 57 zcmaFI@s49dIy0l>(^b delta 57 zcmaFI@s49dIy0l#7}&VtCtqRKU`&|&m)V>(nL&^%WwIrU18X{v Kl`*-F#TWp%Ob(|2 delta 57 zcmdnUxsh{20W)LhOPS0M@k+l>h($ delta 57 zcmZqRXyDlJlZml$@-HSG))odfuGY!g%o?n142%rIljkxkOs-%SX60FqUcg;;c0YZ=&h>n1z1XfW1K&S5cUZDJ7QZJxY> P#euaA$ZDVbmct0`5221Yajy~U(n?5EEt6`5221s~-a!pa10VEE delta 61 zcmdnXy_b7~7Yn2RWN#Kj#-PcyKr(dldKMkl2nIHu$jJ{_G#H~MbF!MV#xe-<#7%Z( Pbzn^dvXUluu^Iya`M3`t diff --git a/ANTLR/src/Test/ObsidiCodeParser$RelationalExpressionEndContext.class b/ANTLR/src/Test/ObsidiCodeParser$RelationalExpressionEndContext.class index 70e6c9afd774740fce2fffd60c68e0bf9a77ff1b..936050bdeb781471e63364453a69c0f6e8f6e301 100644 GIT binary patch delta 56 zcmeys@quGQCNty0$yv-gtV4I0N!B_cK`qY delta 56 zcmeys@quGQCNtx_$yv-gtP2^~cot2b&8)$?n1PW&crq`G!sHjs!mP^}1bLQEVsT(y M1!SzA?8>4I0NeKuUjP6A diff --git a/ANTLR/src/Test/ObsidiCodeParser$UnaryExprContext.class b/ANTLR/src/Test/ObsidiCodeParser$UnaryExprContext.class index 3b10c9149643a55ef55ea3af15ae9c5558b6e8fe..f28fe3a26605e9de8bde11ea53829cf786c5e402 100644 GIT binary patch delta 64 zcmaFD@q}Z8HZ$X&$vVu2jQ=OcF>AB&F)^_5F;DJi)?j5}U}O-R%*diJ`3|!%D?5WA TAIIb`%nq#FKo-wrOBQVa4MGjj delta 64 zcmaFD@q}Z8HZ$YT$vVu2jDIG_F>AB&{%2t0W0>5}tij62z{nsrnUO_d@*QSjRu%?9 TKGw-!m>pO-fGp0*mMq!;H17_y diff --git a/ANTLR/src/Test/ObsidiCodeParser$XOrExpressionContext.class b/ANTLR/src/Test/ObsidiCodeParser$XOrExpressionContext.class index f7cfd4b414bed39c6b40d1e8ed2eec2c8a34c31c..37011496a63edddeebf72764cf72aa9a4d9030e3 100644 GIT binary patch delta 54 zcmZ3(xrTE?F*9S$#`?+2m~~j27}&U*CtqjQU~HMhV$RymAjsV@*@ne|wHwIl JncT>t4FI>U4)Fj0 delta 54 zcmZ3(xrTE?F*9T3#+u2?m~~j|8Q8cRCSPaPU~HVkV$RyaAjsW1*@ne|wFAiN JoZQHw4FI(i4%Pqw diff --git a/ANTLR/src/Test/ObsidiCodeParser.class b/ANTLR/src/Test/ObsidiCodeParser.class index 65b1f19934909de0e4576ea1b461127ee76c3277..5dda1b22c2a38d782691f04123cde2c02d6e9a33 100644 GIT binary patch delta 6677 zcmaKw2UJw&)`s72=JYw|P(%Sm!EVGBLyUw3dq)uyQLh>mqsCrhBd7z2idayOh+@Tt zy^R&I0>)@^)g+eW#&%;*Gl@pi{}+<=-}SHcue)5cHv9c%_I~#Jo%zmj-rwcEyUV?2 zP*j`ZbUDn=b^7?}6Ka&pb^1hcsv6*O6{k|K=I<&_JAKUUVxD&TczH~(QXXa&&z5`C zcNJ$8&sL+HjZt+(pmRRzj;P@5dAUFTwwqNFK~C*vuZW7i{>>@~y^_mSvaBRm4R(@W zi4`Hv;a8@KQ0L|5jhj^F%AS(FY8A%4CHvGc#(gnmT}pfD$omDzpjc}?&_Y~Eg@zIU_Yj7>6O`lO=nMZu&Cub8$DKt0AKT%cLUt+y01H1;_mvKu6^n{A1%})ar7W6)IW&9y$bMR z{Yd#B0_z8$s7&;4dJy${F*{bC`8g4j=KCeNdtr#X4@SECVuHJ$b97RBS5QMIU{=K- z*F)DMxLi8`(G?Q^0Xv)qlVe0Xr*L6dFi!o|=^b_o{@+fgoo_c(ayCqE;7vvCza1ODz=2zAdvggX=6-C0O<&qsgv0wlS!Nw=7E4(XO6 z*}WFi-RqF*UV$`s9%j2&VzGM_R#9I^eFNh*cfP9-Fi`=@Z|JVNz6z>PHjguGN~-X8 z9!#0u=P(-{VZ)^Urk$~p3-OX0iIRkYl8nicf;36R97)3xNyjqDM80HUyJTaZ*$< z8tcpd-qL$cR!ZY`soadR4G!e1^Z)ZorS{)mWuF=8{E{-o>qBArw)=3MS|P5K$LqLJ z9{<|*p}Z_0wSvFY8lh5KL`dy0QHsNRQa2h9kJ(apERYgt!W+nudSa#23+tucD3Jbv zZBjq@q#-yY4Mm|e07s>PI4KRnc_|53q#)GFz^|rq~c0Hv-pw!_8R7_pWZ|SIG;>^(|Zgh<+C2ceSWG0 zx60#vJSdNU%{m5EIBP0rP2;RHIco;SNm<lj(xjUDUMSTI|Qt7G_m^xnf|NCh9y8P?EJ~gq^x9s;F`+d)T zKeFEwL`qN5RQidR{xh_co}+^-&_#B!=db)4{DwEB-!VY?10$%9p+25*s_b@Jr48Y+ zT#(kEN3@(i)LRw)ay5j?5eS!SppIM<4dq&hl4~PIu7lQcU38M`p}YJ7ddl_DPmaW3 zxdE#-WW`3T*cj90CdiOq#60;`WXmyFB1gfIU&eB|88*nTU>Eg$)DJKg$*+}L8Vr7G zm%ybukJ9senF5f6kXI-3=yfA zqLETrL@8k+MyV=VD&eAyQeAXXYKrbkEzwh{BYG<@h_{qTF+^z~MktNMXr+mmtVE0V zlvl-cg(hM{4Ew zKS6=_zlzR{c{9Ad;IH&XsPYd)D1FJwd%iMIR8*2g73FPFLm49KD#Jv5WxQyjyenQ& zCW_aT$)bfaRkTyy6LCt4cte>k5*4rLr=*F&N;+9*it$PYS!au6B~zp;i^XhZiI}U* z6Isf9k*zEcdCEeuiTYN93p@CSPjQ^P^M{B^PL~C%`)niBc0%n$xUw5{ls#yu>_wEa z4>5`lt(E=gq#QtZ}<*YE+G*9Y6XO<6%nomqmCMa25Kl?QY+(CwF+9PVQ8;bMOU>N z-c;+Nw^|Q<)#~V{*1#aOCPt~XFok*w^%;z_)EArwi-w3`r`zKAsv&6 zJup^%1C!M^FK?^ zbsRWrm&6IL^YxN@qKfm06R(H;&Dg@ZG%M5@I2MIA91`NY5EhaQoo_`-(tP`9d@dZahQ4$^%IO|)TjTsrL|Sv)nhfSz3MuaAP%QuvS|HkLLFlYiLV^~IL@gA3v?>^&RmD)P8b)dn7^Bs| z6fF`dS_90`YQwA5L55Zr*;+m1QC~wnpK*)U(8*q&B*L8^mdA?-r}c`V!`rh{2X^X& zaIFjKXmMz$bw!lc4KZ3gT5H|WK}$e4tp|E)Z=j#{CI)LgF+xkkSgjW(YrQdD8-z41 zi5>f5mevnhT7TqdZ($wvjnoSmcWHy2fV?66@4%G2x}t`&Hg9M`GCRM=&ePa=20MG% zIhCE$*g2h@XR>n!JI`Y0g`7E?-80c&n~NkZ3!}Apm`Z&bbuZ&=ZILf=WfzgKnPm%D zb}OyhMyUM+I*7&EA>?XDXva~49mfXkBz9;YV2^eVKCKx0wGtfBN>QSn!3FA{P`|=> zT|4jmuqs~M@wHyfN8tyMwTCdYM+nirLYVe7n|y;v?J=5aKO$Otf>`Y*#B0yEPtP$> z`yzIVS(Nm%k?hUK)rzaHpabrcjt$7@nX2I zbv_3l4Ot%pLm!I}eH_B{@oX{yk@_Sw)u$p_Pe!bsf_Qxz67}gAsL#M;-HS9ml}*yH zL{I17vpD!{4nBv2XL9hl96XDI&*R|pIrt(DzL;9sMY=iimZLSZDCM{ytjjC(%kjh4%VsB9_c zQ4JYJII@ihM^PWkIN5l^X|&~Pt5K{rn$^a#+IUu*fCk39 zc*&TE=EiiqX3RhfV+yNIWz}R(@*et9A3!~cak%02wclDt^vPkFWh}Ft1FzuQR&wCg zY`O+-8*4f2I*c>&IqZ54x)Eu{X3R16VV>c`LSqL9-if8gF03_nV;l8d)b}zTHugKE z+un~p$Li-<{UbtNAml|teugH-=LG!(QO2hn{W97bR}fGA4eE)E{f&P)rQ3UmC%%v! ztAzJCWaDQT#xDplenpt^8&Q8pqz7o~aUCUmp1LB)Q%?kYs*6xh z4G~evQ&TkX)Dq3P@H!V-GIsX7;Cz1|*crGhPPF#z+(pXvkUbq>cse4)(+Odo&WP}I zA!RpGCXliRDc>YzPf{k5vKJ|Pld=yf|3S*WqndOTUw|!TA3xxMBDesZ;J}DoN z@*yc7k@6c-J|^Y&r2LVTPe}Qcls}R387ZHW@@G>1LdxGs`3EWggwF)dnF5zg7p|BJ zuA3_Eo0@PQTU0gu#0xeT8gb!8#uzim_x*u(Vt9S{n~?}L8zRDN zgtlfAbT*qJ!Q>HbMqz;YGKQG1;2kp>W6T&#GGD_q^L5NLV=>okiTP%0Wz zvmI8O?XlkMfSqPX9Hw4G{RHC~v#YcAP}y<)-60ymXdXs4 zvk*Paqv&TAVX%1&!_5;IWuC$Wvlz){2~y2c%rVbkfq52-%yU>~en=BO!bbC-*lu3H zUh@+6o1dW2yo^)k6`VD%;(~b%m(9;{&HMtl&AYg3-opd)CLUHcZ{b_>Hhwn$EhO_U z!S4wVW1xB8d8sHtxP7yV=$;DM(qLFRLM#Je77umHM5N`1rdA-LtqN#iRYZ5I5_(y| z7-aEKw?dI_RYs;&1&$SlTq_*wtqAO}s>5g1z&WcXE?Kp3#j1zv)(g0A)fcd$glxSm zG^>#?ti~e1Y9gvyFVa0OG~&XGj4@WTa`z4%ZzP7t!QbkNP%EB1-O<+SfzH;ONU(aM zx0Q$i7JmS>`rsX_FUDB?G0A!h)2soQX${0&D+%+hw~=Fw#tLf;R$0Ta+IokK!?DvE zfy2~`sGndwV~usXo{Sgse5+5+7v5}|v500YrWs3UhQsDdX+|#1$fFr65o@hRytM|2 z)>;g-)?u=hk2GsN=2#oB#M+2uRsr&@E!b{t#Xf5rKCrgqqO}8;tv&d{+KYSEKKyAF z3CTJpRO_J7twX}!IxNDhBch(og@#;c!uYCnoWJ@7`#w6|KzKi;8JB6sRq|Y;8K2XP zFKEVfnsI|>+{D|~Z49%%#Axd-CR+E9V%_H^Js{U3WLaNxqn>i3enOu09adV8vCjIQ zj6dKY^+M{$7)z{Y|L387QjHpaJ+%9#mJAhMfB4%02(>F9!VbbTyAsmv5X`khvB<8B zT)PTZ*;TRD4#y_DI(FDK;InI@(5{6Ob{(9y8{w?o1Q+ZV@u~e1uG%l-mK}>bb_?9M zo8y5Ujc@E%@!XCPZaY?}b_-!J2G}jjq4=}@nTf(XfDi)-kwl2W7-bK~1bZZs?NOLv zk3pI}4s+}YSZKeC9D5>xCL!ORj4k#Q?6#A!&rZQ%dpdz;pw#x_Lpv3h>~sQU;JUp4 zx9x=lnuEJ`CLY;y@zl-|uono)UPzz?!gkr&z8+^U^2c<(F9+Y+xddJzT=q&~+N(t+ zd##AD^F@7ogNU*>iCDWpbhNjM9`<(8&)zA9+PlR#d#`xU_K6JpfHUmeKt9R^*@dWP z7daQt#p@@Sonlt()H@%~N46mQEVFY?DzlH6U0`;}xyI~MW>=V9bDDe@um6kLb!Io6 zOlJRPc8A$L=N7Yv%)Vmwjnn+2c>OW6ADBIH7BPFq>}O`bIuDrrfgnGinxD&Q`OkPh zs0aC}%yeftGn1Lk%-?y;tOB!&%z~Yc7vlBG%)*#ebJj7d&a5W0+P>!(TFMo_kT(0> Zl=k`El8*b`mOf^@=J%zq>*Zg>{{Tvrw%Gsx delta 6557 zcmZ{od3a4{*T(PXoIRhtcY?@3BtfOEn3|@@o7POtNtB>OVyt;ci6JwISwglXq^6)~ zjd4&h1~F6zL#gVEs-apPwRm;@Zs~hn-#_1XxwiYP``Om|t@WHdd&}J&?$bNmyM{(} zJbpxta=DHlIWb!f_Hi9QdLsL2d?K51h_CBJ&hf);7vr4cN2_&q-D;V0Vy@h$vFk+c ziMei=2rY9j)i z{jJhPpz~7e<}HG_va70GtwSxZ+O5{5?v8m{rOI1%R0|cZsy$VEO^NZ|s(os(v%Gb4 zQO~Jr-6kl+uihWFo$hK(cSe{MPa&n-^aw8cIn+zA-x?vKgtfq2tB$T>Kzi>pDXQ-5`BKi4;| z`*69o0iqQo{sGoFO;Te-E9dIedfKsnQjd0gX81ehsZFxRAq9a5!Z;N1))eGdYY~d8 z)#chww>N45?m6&v=OV~G7h&#sh;uJMf_o7X-HS2IosW_3r9@hVN$%B1aTgP-1T)+# zFvqi&p@KE^utIc%lBlm2dM zh5M3oX-04Hy|>}aQjzrlvioNk?q3k-eu!ZABNls%2=}jubpL^9_n&Cv{u{BJUxFl% zEV+;>xsfADm?z07loS+8I?5yiTO|*6OD5izES#5YT#tv=|Ged@PZc!jTG5DmmQX<=7$>VY^gTg>I@l9QqD-8uP1X7dDb?ZJu0gXeC4_blItN<4n?>ehNg0TM9B>hBR50` z`5APR8zD{(M?d*l43?k6aQS(Rl^bJ<9KnoDkRdlkuG|cZB!sOS4DUT5~<#8fN z9xp=WiK2m=DxQ;PiU>JPM9I0LwVWqn~;UJ!GXNRh9+C|1&6O@AGAvrB31 zyuR?LQ*Y5|Cuh;{z*hyrDyC{-4Tx9PuQaA6xic$KA&d&x*q z+ZnTD^}x-9+Cr#z5vpuMxUwBhl^uvub|OaEg$_zNx+%L6r+AT|>_MWk7bBD-7_A(| zIAuS^D;1cc96-8q5cB9SqMuJKQYyVk`TipQD${??^w-$)b*A}(X})BdTNtL?!ARvR zruiBv$~Ty8H`pq~@vN zj9i>(*%&-;jIR=sn9|BaegM?ubK%SL6jW%YKf-htISv3h4TRl6WceHAfk zS9DOj;Z?OedaFIqPwmO7y)azujj?JhCaG~qRpXJN_Cc=t8WyR2QK+qdghF{e6_)Xm)gt}2^>f6FnHwnL%>Sj?_-6|TW z+e8y}yXdUGC%UWqMK85n#HzbRg6b8+)IDM%{Ws~SQnS?xXIW8!2zKfh*W%wV6+g?@ z&cx!hG3Pkq^BnO-Ht`8Msh0_V1@Y=<+{~*;Qa{Hi_1~DFUPFp{9W&J%$X0J+j(Q6V z)Vo-$-eW^QajXxpO1;m~ev9?$ci66ekNxxy(LYK(rT*-+FPWl;@CjOnSD16KWaU5) zd^Hn6nvF2c2c5JU=&sd5yyk}l%^w4`KqP5(FiNY7aaui0)Iu>`dk$&Z^T^a1AWLhA zTK3iBvwg)d5#so+j1{3y^2$+TISxEYtR& zgy&(Ywx3`Ju|YeGZQ3d9(oVyxRbr2J3>DgORB0!0j{Ya~Kc!yR&N#lSW5t)=qO}KTqy2(d?IHK+5t6mXoX~$bohO*5{fa{E zHxz4saxebER_$->)`9nRf%CcxS9CXS=n`)08t&^l9_og$bU#s3uPtipwg}LD`0}dz zipF{k(UJ=>Txdh>s{4Bj*0vDwP2j6HMUdVcVR{P;&|6}N-WntIXpGZiFj0R6Q}uS3 zu6IDT-UGRMPt4OhW4_)6OY~QOACEwN z0)q94EHViZdI}=-X^7TS(MF$vSbZiE^jS#O(~zpCBS+6*kxUfoSt!-&jSL97GBI)PX8DzwuNqrH9vUG$@f*DEoYelq>x)UoLb&rgDj&ia*bdV81+y}e+~UI z>K3Dc({S?y(ZE@@Ii*_+bHB{oZ4hd-L%7i%5k?0@8XXaBbV56$Gddf+(anfOPopb( z8Qsvw=+4?bFq-~&`je=sMx4`g%a!(Hm~AYxjc2xr%r*&4jLCS>n1a^EEWB)_p{+5M zS*I~;Dm$5uLG+X852KDT(!C?z2^RwknZ{w7A~syi+g7mQQWkv+BaBsSb~Pp&YuM~s zHd=-pV*}vg?!^3HvBG@8(Xo~*oJrM@1S2!-EWjTx8FS-eVWB^m7*_~-9#O^xwtf+vj870t|26sv)I{Sm=l0e<;(@p2wpAkQ5oF^r4C6ltG@c;X z_?4)?adv+q(gQ?$1loGsi1SG3?~yUoqhPv6#cYp;`5qmP$3Th4!g`O5Z5|(ZJ-#^W zseucgn)u993txEraMu%v?>s?x?5QJsJkJO}Pa_fF2@ye_P!Z`ls8QpS_A4=GIJVwe&QXVJeaB;)?$h$;j-6G*_65b)_yY-lBH;rP z{!GGONcfP1k4X5Kg#RJoZzTMkgny9mPZIt`!oTsU>BebD%X)H$TQ6^E?ii7jew| z1ZT`kIA>nQW%CL?Gq2)H^A_%!xAC=k4d2u;uj2>v27Wca5R!R|;J1Z`TGPDa#2<@ldyPL|7&wEgwW%zG!RJM4VL%{VhKXwRoso{+MkAV7?Uy z#|lD;6^!*(J#4c=;I%?=)(XP~t3E!p8sWMXj(gU#0@e#cwjzaQMF_)cB5GJoMLnw- zr^kh6TzG*RW4%~Cy-P>f^SYRb#u{9J$)>y2x#$lB;0;{c&WE_R<)*IMQ{}BD7)Kk`YXIy2h znD0GUxmaW^<}j9U82KDV0f(`a#g}my%Q=h^4r2w{Sfz-y-a>-43dz=Lq*`l`W39zJ zYaI%$G89`IQD(i3t=1;&wl?E^YYWa>@8Ghv9oMWK_{!RezpV-(SqFq_d4+E65x&-5 z5p3-f&)HmP%7qrxe_03ld%6Jcx5t}^F&8+DiyX!!@?7RHu5cJvIgHOajDK?&*D%7m zfj6w1m|)$)RO>d2@v5wrgX7?T@8)07~pYtg`E1tsRWF?GS9UL*ccm8lh(tmp5h5Am?NLavM`NZv2ATFaM3b=bE(J=el&n=Z18V`kBv7@3_mqiT?pI C#*>!- diff --git a/ANTLR/src/Test/ObsidiCodeParser.java b/ANTLR/src/Test/ObsidiCodeParser.java index ca37b7f..12d773e 100644 --- a/ANTLR/src/Test/ObsidiCodeParser.java +++ b/ANTLR/src/Test/ObsidiCodeParser.java @@ -58,10 +58,10 @@ public class ObsidiCodeParser extends Parser { private static final String[] _LITERAL_NAMES = { null, "'TRUE'", "'FALSE'", "'.'", "'NUM'", "'BOOL'", "'STRING'", "'COORD'", - "'LIST'", "'LOAD'", "'('", "')'", "'\n'", "':'", "','", "'END'", "'VOID'", - "'HEAR'", "'END HEAR'", "'BREAK'", "'RETURN'", "'SIGNAL'", "'IF'", "'END IF'", - "'elseIfOpt'", "'elseOpt'", "'ELSE IF'", "'END ELSEIF'", "'ELSE'", "'END Else'", - "'REPEAT UNTIL'", "'END REPEAT'", "'FOREVER'", "'END FOREVER'", "'='", + "'LIST'", "'LOAD'", "'('", "')'", "'\n'", "':'", "','", "'='", "'END'", + "'VOID'", "'HEAR'", "'END HEAR'", "'BREAK'", "'RETURN'", "'SIGNAL'", "'IF'", + "'END IF'", "'elseIfOpt'", "'elseOpt'", "'ELSE IF'", "'END ELSEIF'", "'ELSE'", + "'END Else'", "'REPEAT UNTIL'", "'END REPEAT'", "'FOREVER'", "'END FOREVER'", "'['", "']'", "'OR'", "'AND'", "'XOR'", "'IS'", "'NOT'", "'LESS_THAN'", "'GREATER_THAN'", "'LESS_THAN_EQUAL'", "'GREATER_THAN_EQUAL'", "'+'", "'-'", "'*'", "'/'" @@ -819,10 +819,10 @@ private VariableDclListContext variableDclList(int _p) throws RecognitionExcepti } public static class VariableDclContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(ObsidiCodeParser.Identifier, 0); } public VariableInitializerContext variableInitializer() { return getRuleContext(VariableInitializerContext.class,0); } + public TerminalNode Identifier() { return getToken(ObsidiCodeParser.Identifier, 0); } public ListInitializerContext listInitializer() { return getRuleContext(ListInitializerContext.class,0); } @@ -850,16 +850,16 @@ public final VariableDclContext variableDcl() throws RecognitionException { enterOuterAlt(_localctx, 1); { setState(187); - match(Identifier); - setState(188); variableInitializer(); } break; case 2: enterOuterAlt(_localctx, 2); { - setState(189); + setState(188); match(Identifier); + setState(189); + match(T__14); setState(190); listInitializer(); } @@ -881,6 +881,7 @@ public static class VariableInitializerContext extends ParserRuleContext { public AssignmentExpressionContext assignmentExpression() { return getRuleContext(AssignmentExpressionContext.class,0); } + public TerminalNode Identifier() { return getToken(ObsidiCodeParser.Identifier, 0); } public VariableInitializerContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); } @@ -911,6 +912,8 @@ public final VariableInitializerContext variableInitializer() throws Recognition case 2: enterOuterAlt(_localctx, 2); { + setState(194); + match(Identifier); } break; } @@ -957,7 +960,7 @@ public final ListInitializerContext listInitializer() throws RecognitionExceptio setState(197); litList(0); setState(198); - match(T__14); + match(T__15); setState(199); match(Identifier); } @@ -1093,7 +1096,7 @@ public final MethodDclContext methodDcl() throws RecognitionException { case T__5: case T__6: case T__7: - case T__15: + case T__16: enterOuterAlt(_localctx, 1); { setState(215); @@ -1102,7 +1105,7 @@ public final MethodDclContext methodDcl() throws RecognitionException { methodBody(); } break; - case T__16: + case T__17: enterOuterAlt(_localctx, 2); { setState(218); @@ -1164,11 +1167,11 @@ public final MethodHeaderContext methodHeader() throws RecognitionException { methodDeclarator(); } break; - case T__15: + case T__16: enterOuterAlt(_localctx, 2); { setState(224); - match(T__15); + match(T__16); setState(225); methodDeclarator(); } @@ -1264,7 +1267,7 @@ public final MethodBodyContext methodBody() throws RecognitionException { setState(234); block(); setState(235); - match(T__14); + match(T__15); setState(236); match(Identifier); } @@ -1309,7 +1312,7 @@ public final HearDclContext hearDcl() throws RecognitionException { enterOuterAlt(_localctx, 1); { setState(238); - match(T__16); + match(T__17); setState(239); match(Identifier); setState(240); @@ -1323,7 +1326,7 @@ public final HearDclContext hearDcl() throws RecognitionException { setState(244); block(); setState(245); - match(T__17); + match(T__18); } } catch (RecognitionException re) { @@ -1370,12 +1373,12 @@ public final BlockContext block() throws RecognitionException { case T__7: case T__9: case T__11: - case T__18: case T__19: case T__20: case T__21: - case T__29: - case T__31: + case T__22: + case T__30: + case T__32: case T__45: case T__46: case Identifier: @@ -1388,13 +1391,13 @@ public final BlockContext block() throws RecognitionException { blockStmtList(0); } break; - case T__14: - case T__17: - case T__22: - case T__26: - case T__28: - case T__30: - case T__32: + case T__15: + case T__18: + case T__23: + case T__27: + case T__29: + case T__31: + case T__33: enterOuterAlt(_localctx, 2); { } @@ -1547,9 +1550,9 @@ public final StatementContext statement() throws RecognitionException { case T__1: case T__9: case T__11: - case T__18: case T__19: case T__20: + case T__21: case T__45: case T__46: case Identifier: @@ -1562,15 +1565,15 @@ public final StatementContext statement() throws RecognitionException { stmtNoSub(); } break; - case T__21: + case T__22: enterOuterAlt(_localctx, 3); { setState(268); ifStmt(); } break; - case T__29: - case T__31: + case T__30: + case T__32: enterOuterAlt(_localctx, 4); { setState(269); @@ -1627,7 +1630,7 @@ public final StmtNoSubContext stmtNoSub() throws RecognitionException { { } break; - case T__20: + case T__21: enterOuterAlt(_localctx, 2); { setState(273); @@ -1649,18 +1652,18 @@ public final StmtNoSubContext stmtNoSub() throws RecognitionException { exprStmt(); } break; - case T__18: + case T__19: enterOuterAlt(_localctx, 4); { setState(275); - match(T__18); + match(T__19); } break; - case T__19: + case T__20: enterOuterAlt(_localctx, 5); { setState(276); - match(T__19); + match(T__20); setState(277); expression(); } @@ -1706,7 +1709,7 @@ public final SignalStmtContext signalStmt() throws RecognitionException { enterOuterAlt(_localctx, 1); { setState(280); - match(T__20); + match(T__21); setState(281); match(Identifier); setState(282); @@ -1858,7 +1861,7 @@ public final IfStmtContext ifStmt() throws RecognitionException { enterOuterAlt(_localctx, 1); { setState(295); - match(T__21); + match(T__22); setState(296); match(T__9); setState(297); @@ -1870,11 +1873,11 @@ public final IfStmtContext ifStmt() throws RecognitionException { setState(300); block(); setState(301); - match(T__22); - setState(302); match(T__23); - setState(303); + setState(302); match(T__24); + setState(303); + match(T__25); } } catch (RecognitionException re) { @@ -1944,7 +1947,7 @@ private ElseIfOptContext elseIfOpt(int _p) throws RecognitionException { setState(306); if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); setState(307); - match(T__25); + match(T__26); setState(308); match(T__9); setState(309); @@ -1956,7 +1959,7 @@ private ElseIfOptContext elseIfOpt(int _p) throws RecognitionException { setState(312); block(); setState(313); - match(T__26); + match(T__27); } } } @@ -2001,17 +2004,17 @@ public final ElseOptContext elseOpt() throws RecognitionException { try { setState(326); switch (_input.LA(1)) { - case T__27: + case T__28: enterOuterAlt(_localctx, 1); { setState(320); - match(T__27); + match(T__28); setState(321); match(T__11); setState(322); block(); setState(323); - match(T__28); + match(T__29); } break; case EOF: @@ -2061,14 +2064,14 @@ public final LoopStmtContext loopStmt() throws RecognitionException { try { setState(330); switch (_input.LA(1)) { - case T__29: + case T__30: enterOuterAlt(_localctx, 1); { setState(328); repeatStmt(); } break; - case T__31: + case T__32: enterOuterAlt(_localctx, 2); { setState(329); @@ -2118,7 +2121,7 @@ public final RepeatStmtContext repeatStmt() throws RecognitionException { enterOuterAlt(_localctx, 1); { setState(332); - match(T__29); + match(T__30); setState(333); match(T__9); setState(334); @@ -2130,7 +2133,7 @@ public final RepeatStmtContext repeatStmt() throws RecognitionException { setState(337); block(); setState(338); - match(T__30); + match(T__31); } } catch (RecognitionException re) { @@ -2169,13 +2172,13 @@ public final ForeverStmtContext foreverStmt() throws RecognitionException { enterOuterAlt(_localctx, 1); { setState(340); - match(T__31); + match(T__32); setState(341); match(T__11); setState(342); block(); setState(343); - match(T__32); + match(T__33); } } catch (RecognitionException re) { @@ -2624,7 +2627,7 @@ public final AssignmentContext assignment() throws RecognitionException { setState(384); leftHandSide(); setState(385); - match(T__33); + match(T__14); setState(386); expression(); } @@ -3948,11 +3951,11 @@ private boolean multiExpr_sempred(MultiExprContext _localctx, int predIndex) { "\1\2\u00b3\u00b4\5\32\16\2\u00b4\u00ba\3\2\2\2\u00b5\u00b6\f\3\2\2\u00b6"+ "\u00b7\7\20\2\2\u00b7\u00b9\5\32\16\2\u00b8\u00b5\3\2\2\2\u00b9\u00bc"+ "\3\2\2\2\u00ba\u00b8\3\2\2\2\u00ba\u00bb\3\2\2\2\u00bb\31\3\2\2\2\u00bc"+ - "\u00ba\3\2\2\2\u00bd\u00be\7\64\2\2\u00be\u00c2\5\34\17\2\u00bf\u00c0"+ - "\7\64\2\2\u00c0\u00c2\5\36\20\2\u00c1\u00bd\3\2\2\2\u00c1\u00bf\3\2\2"+ - "\2\u00c2\33\3\2\2\2\u00c3\u00c6\5R*\2\u00c4\u00c6\3\2\2\2\u00c5\u00c3"+ + "\u00ba\3\2\2\2\u00bd\u00c2\5\34\17\2\u00be\u00bf\7\64\2\2\u00bf\u00c0"+ + "\7\21\2\2\u00c0\u00c2\5\36\20\2\u00c1\u00bd\3\2\2\2\u00c1\u00be\3\2\2"+ + "\2\u00c2\33\3\2\2\2\u00c3\u00c6\5R*\2\u00c4\u00c6\7\64\2\2\u00c5\u00c3"+ "\3\2\2\2\u00c5\u00c4\3\2\2\2\u00c6\35\3\2\2\2\u00c7\u00c8\5 \21\2\u00c8"+ - "\u00c9\7\21\2\2\u00c9\u00ca\7\64\2\2\u00ca\u00cd\3\2\2\2\u00cb\u00cd\3"+ + "\u00c9\7\22\2\2\u00c9\u00ca\7\64\2\2\u00ca\u00cd\3\2\2\2\u00cb\u00cd\3"+ "\2\2\2\u00cc\u00c7\3\2\2\2\u00cc\u00cb\3\2\2\2\u00cd\37\3\2\2\2\u00ce"+ "\u00cf\b\21\1\2\u00cf\u00d0\5t;\2\u00d0\u00d6\3\2\2\2\u00d1\u00d2\f\4"+ "\2\2\u00d2\u00d3\7\20\2\2\u00d3\u00d5\5t;\2\u00d4\u00d1\3\2\2\2\u00d5"+ @@ -3960,13 +3963,13 @@ private boolean multiExpr_sempred(MultiExprContext _localctx, int predIndex) { "\u00d8\u00d6\3\2\2\2\u00d9\u00da\5$\23\2\u00da\u00db\5(\25\2\u00db\u00de"+ "\3\2\2\2\u00dc\u00de\5*\26\2\u00dd\u00d9\3\2\2\2\u00dd\u00dc\3\2\2\2\u00de"+ "#\3\2\2\2\u00df\u00e0\5\b\5\2\u00e0\u00e1\5&\24\2\u00e1\u00e5\3\2\2\2"+ - "\u00e2\u00e3\7\22\2\2\u00e3\u00e5\5&\24\2\u00e4\u00df\3\2\2\2\u00e4\u00e2"+ + "\u00e2\u00e3\7\23\2\2\u00e3\u00e5\5&\24\2\u00e4\u00df\3\2\2\2\u00e4\u00e2"+ "\3\2\2\2\u00e5%\3\2\2\2\u00e6\u00e7\7\64\2\2\u00e7\u00e8\7\f\2\2\u00e8"+ "\u00e9\5J&\2\u00e9\u00ea\7\r\2\2\u00ea\u00eb\7\16\2\2\u00eb\'\3\2\2\2"+ - "\u00ec\u00ed\5,\27\2\u00ed\u00ee\7\21\2\2\u00ee\u00ef\7\64\2\2\u00ef)"+ - "\3\2\2\2\u00f0\u00f1\7\23\2\2\u00f1\u00f2\7\64\2\2\u00f2\u00f3\7\f\2\2"+ + "\u00ec\u00ed\5,\27\2\u00ed\u00ee\7\22\2\2\u00ee\u00ef\7\64\2\2\u00ef)"+ + "\3\2\2\2\u00f0\u00f1\7\24\2\2\u00f1\u00f2\7\64\2\2\u00f2\u00f3\7\f\2\2"+ "\u00f3\u00f4\5J&\2\u00f4\u00f5\7\r\2\2\u00f5\u00f6\7\16\2\2\u00f6\u00f7"+ - "\5,\27\2\u00f7\u00f8\7\24\2\2\u00f8+\3\2\2\2\u00f9\u00fc\5.\30\2\u00fa"+ + "\5,\27\2\u00f7\u00f8\7\25\2\2\u00f8+\3\2\2\2\u00f9\u00fc\5.\30\2\u00fa"+ "\u00fc\3\2\2\2\u00fb\u00f9\3\2\2\2\u00fb\u00fa\3\2\2\2\u00fc-\3\2\2\2"+ "\u00fd\u00fe\b\30\1\2\u00fe\u00ff\5\60\31\2\u00ff\u0100\7\16\2\2\u0100"+ "\u0107\3\2\2\2\u0101\u0102\f\4\2\2\u0102\u0103\5\60\31\2\u0103\u0104\7"+ @@ -3976,28 +3979,28 @@ private boolean multiExpr_sempred(MultiExprContext _localctx, int predIndex) { "\5\62\32\2\u010e\u0111\5:\36\2\u010f\u0111\5@!\2\u0110\u010a\3\2\2\2\u0110"+ "\u010d\3\2\2\2\u0110\u010e\3\2\2\2\u0110\u010f\3\2\2\2\u0111\61\3\2\2"+ "\2\u0112\u0119\3\2\2\2\u0113\u0119\5\64\33\2\u0114\u0119\5\66\34\2\u0115"+ - "\u0119\7\25\2\2\u0116\u0117\7\26\2\2\u0117\u0119\5P)\2\u0118\u0112\3\2"+ + "\u0119\7\26\2\2\u0116\u0117\7\27\2\2\u0117\u0119\5P)\2\u0118\u0112\3\2"+ "\2\2\u0118\u0113\3\2\2\2\u0118\u0114\3\2\2\2\u0118\u0115\3\2\2\2\u0118"+ - "\u0116\3\2\2\2\u0119\63\3\2\2\2\u011a\u011b\7\27\2\2\u011b\u011c\7\64"+ + "\u0116\3\2\2\2\u0119\63\3\2\2\2\u011a\u011b\7\30\2\2\u011b\u011c\7\64"+ "\2\2\u011c\u011d\7\f\2\2\u011d\u011e\5H%\2\u011e\u011f\7\r\2\2\u011f\65"+ "\3\2\2\2\u0120\u0123\5R*\2\u0121\u0123\58\35\2\u0122\u0120\3\2\2\2\u0122"+ "\u0121\3\2\2\2\u0123\67\3\2\2\2\u0124\u0125\5\6\4\2\u0125\u0126\7\f\2"+ "\2\u0126\u0127\5F$\2\u0127\u0128\7\r\2\2\u01289\3\2\2\2\u0129\u012a\7"+ - "\30\2\2\u012a\u012b\7\f\2\2\u012b\u012c\5P)\2\u012c\u012d\7\r\2\2\u012d"+ - "\u012e\7\16\2\2\u012e\u012f\5,\27\2\u012f\u0130\7\31\2\2\u0130\u0131\7"+ - "\32\2\2\u0131\u0132\7\33\2\2\u0132;\3\2\2\2\u0133\u013f\b\37\1\2\u0134"+ - "\u0135\f\4\2\2\u0135\u0136\7\34\2\2\u0136\u0137\7\f\2\2\u0137\u0138\5"+ + "\31\2\2\u012a\u012b\7\f\2\2\u012b\u012c\5P)\2\u012c\u012d\7\r\2\2\u012d"+ + "\u012e\7\16\2\2\u012e\u012f\5,\27\2\u012f\u0130\7\32\2\2\u0130\u0131\7"+ + "\33\2\2\u0131\u0132\7\34\2\2\u0132;\3\2\2\2\u0133\u013f\b\37\1\2\u0134"+ + "\u0135\f\4\2\2\u0135\u0136\7\35\2\2\u0136\u0137\7\f\2\2\u0137\u0138\5"+ "P)\2\u0138\u0139\7\r\2\2\u0139\u013a\7\16\2\2\u013a\u013b\5,\27\2\u013b"+ - "\u013c\7\35\2\2\u013c\u013e\3\2\2\2\u013d\u0134\3\2\2\2\u013e\u0141\3"+ + "\u013c\7\36\2\2\u013c\u013e\3\2\2\2\u013d\u0134\3\2\2\2\u013e\u0141\3"+ "\2\2\2\u013f\u013d\3\2\2\2\u013f\u0140\3\2\2\2\u0140=\3\2\2\2\u0141\u013f"+ - "\3\2\2\2\u0142\u0143\7\36\2\2\u0143\u0144\7\16\2\2\u0144\u0145\5,\27\2"+ - "\u0145\u0146\7\37\2\2\u0146\u0149\3\2\2\2\u0147\u0149\3\2\2\2\u0148\u0142"+ + "\3\2\2\2\u0142\u0143\7\37\2\2\u0143\u0144\7\16\2\2\u0144\u0145\5,\27\2"+ + "\u0145\u0146\7 \2\2\u0146\u0149\3\2\2\2\u0147\u0149\3\2\2\2\u0148\u0142"+ "\3\2\2\2\u0148\u0147\3\2\2\2\u0149?\3\2\2\2\u014a\u014d\5B\"\2\u014b\u014d"+ "\5D#\2\u014c\u014a\3\2\2\2\u014c\u014b\3\2\2\2\u014dA\3\2\2\2\u014e\u014f"+ - "\7 \2\2\u014f\u0150\7\f\2\2\u0150\u0151\5P)\2\u0151\u0152\7\r\2\2\u0152"+ - "\u0153\7\16\2\2\u0153\u0154\5,\27\2\u0154\u0155\7!\2\2\u0155C\3\2\2\2"+ - "\u0156\u0157\7\"\2\2\u0157\u0158\7\16\2\2\u0158\u0159\5,\27\2\u0159\u015a"+ - "\7#\2\2\u015aE\3\2\2\2\u015b\u015e\5H%\2\u015c\u015e\3\2\2\2\u015d\u015b"+ + "\7!\2\2\u014f\u0150\7\f\2\2\u0150\u0151\5P)\2\u0151\u0152\7\r\2\2\u0152"+ + "\u0153\7\16\2\2\u0153\u0154\5,\27\2\u0154\u0155\7\"\2\2\u0155C\3\2\2\2"+ + "\u0156\u0157\7#\2\2\u0157\u0158\7\16\2\2\u0158\u0159\5,\27\2\u0159\u015a"+ + "\7$\2\2\u015aE\3\2\2\2\u015b\u015e\5H%\2\u015c\u015e\3\2\2\2\u015d\u015b"+ "\3\2\2\2\u015d\u015c\3\2\2\2\u015eG\3\2\2\2\u015f\u0160\b%\1\2\u0160\u0161"+ "\5P)\2\u0161\u0167\3\2\2\2\u0162\u0163\f\4\2\2\u0163\u0164\7\20\2\2\u0164"+ "\u0166\5P)\2\u0165\u0162\3\2\2\2\u0166\u0169\3\2\2\2\u0167\u0165\3\2\2"+ @@ -4009,7 +4012,7 @@ private boolean multiExpr_sempred(MultiExprContext _localctx, int predIndex) { "M\3\2\2\2\u0178\u0176\3\2\2\2\u0179\u017a\5\b\5\2\u017a\u017b\7\64\2\2"+ "\u017bO\3\2\2\2\u017c\u017d\5R*\2\u017dQ\3\2\2\2\u017e\u0181\5Z.\2\u017f"+ "\u0181\5T+\2\u0180\u017e\3\2\2\2\u0180\u017f\3\2\2\2\u0181S\3\2\2\2\u0182"+ - "\u0183\5V,\2\u0183\u0184\7$\2\2\u0184\u0185\5P)\2\u0185U\3\2\2\2\u0186"+ + "\u0183\5V,\2\u0183\u0184\7\21\2\2\u0184\u0185\5P)\2\u0185U\3\2\2\2\u0186"+ "\u0187\5\6\4\2\u0187\u0188\5X-\2\u0188W\3\2\2\2\u0189\u018a\7%\2\2\u018a"+ "\u018b\5P)\2\u018b\u018c\7&\2\2\u018c\u018f\3\2\2\2\u018d\u018f\3\2\2"+ "\2\u018e\u0189\3\2\2\2\u018e\u018d\3\2\2\2\u018fY\3\2\2\2\u0190\u0191"+ diff --git a/ANTLR/src/Test/test_decl b/ANTLR/src/Test/test_decl deleted file mode 100644 index a800aaa..0000000 --- a/ANTLR/src/Test/test_decl +++ /dev/null @@ -1,21 +0,0 @@ -Test_robo: -LOAD("Attack-bot") -LOAD("Bow-bot") - -//This be le tests con many! -/*Whattup maite!?*/ - -NUM a = 5.2, b = 2 -STRING string -BOOL bool -COORD chest = (5,1,23) - -VOID Start() - NUM c = 10 - //a = b + c <--- not allowed in this grammar, needs expression part! - SIGNAL guardian (a, b) -END Start - -NUM TestNumMethod(NUM x, STRING s) - RETURN s + x -END TestNumMethod From aaa78e649e0a25492f70108900c0a0ff07408934 Mon Sep 17 00:00:00 2001 From: Tobias Morell Date: Wed, 23 Mar 2016 13:22:43 +0100 Subject: [PATCH 52/55] ANTLR/ : Now actually added bash files --- ANTLR/src/Test/build.sh | 6 ++++++ ANTLR/src/Test/clean.sh | 4 ++++ ANTLR/src/Test/run.sh | 4 ++++ ANTLR/src/Test/test_decl.txt | 21 +++++++++++++++++++++ 4 files changed, 35 insertions(+) create mode 100644 ANTLR/src/Test/build.sh create mode 100644 ANTLR/src/Test/clean.sh create mode 100644 ANTLR/src/Test/run.sh create mode 100644 ANTLR/src/Test/test_decl.txt diff --git a/ANTLR/src/Test/build.sh b/ANTLR/src/Test/build.sh new file mode 100644 index 0000000..ecae7b4 --- /dev/null +++ b/ANTLR/src/Test/build.sh @@ -0,0 +1,6 @@ +#!/bin/bash +export CLASSPATH=".:antlr-4.5-complete.jar:$CLASSPATH" + +java -Xmx500M -cp "antlr-4.5-complete.jar:$CLASSPATH" org.antlr.v4.Tool ObsidiCode.g4 +javac ObsidiCode*.java + diff --git a/ANTLR/src/Test/clean.sh b/ANTLR/src/Test/clean.sh new file mode 100644 index 0000000..6ccaad9 --- /dev/null +++ b/ANTLR/src/Test/clean.sh @@ -0,0 +1,4 @@ +#!/bin/bash +rm *.class +rm ObsidiCode*.java +rm *.tokens diff --git a/ANTLR/src/Test/run.sh b/ANTLR/src/Test/run.sh new file mode 100644 index 0000000..0535141 --- /dev/null +++ b/ANTLR/src/Test/run.sh @@ -0,0 +1,4 @@ +#!/bin/bash/ +export CLASSPATH=".:antlr-4.5-complete.jar:$CLASSPATH" + +java org.antlr.v4.runtime.misc.TestRig ObsidiCode prog -gui $1 diff --git a/ANTLR/src/Test/test_decl.txt b/ANTLR/src/Test/test_decl.txt new file mode 100644 index 0000000..a800aaa --- /dev/null +++ b/ANTLR/src/Test/test_decl.txt @@ -0,0 +1,21 @@ +Test_robo: +LOAD("Attack-bot") +LOAD("Bow-bot") + +//This be le tests con many! +/*Whattup maite!?*/ + +NUM a = 5.2, b = 2 +STRING string +BOOL bool +COORD chest = (5,1,23) + +VOID Start() + NUM c = 10 + //a = b + c <--- not allowed in this grammar, needs expression part! + SIGNAL guardian (a, b) +END Start + +NUM TestNumMethod(NUM x, STRING s) + RETURN s + x +END TestNumMethod From 71ad76689713d89029afac156cfdfd1ad3a23b46 Mon Sep 17 00:00:00 2001 From: Tobias Morell Date: Wed, 23 Mar 2016 13:24:51 +0100 Subject: [PATCH 53/55] ANTLR/ : Added ANTLR jar as a test --- ANTLR/src/Test/antlr-4.5-complete.jar | Bin 0 -> 1543365 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 ANTLR/src/Test/antlr-4.5-complete.jar diff --git a/ANTLR/src/Test/antlr-4.5-complete.jar b/ANTLR/src/Test/antlr-4.5-complete.jar new file mode 100644 index 0000000000000000000000000000000000000000..5d07a7f9729dc3158eaa356ac827fffd0bb9017d GIT binary patch literal 1543365 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�d78+YUWckvT8U;bc-%nByM-X$FV>%=^ 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

2V!1g`ta^DOCG!?PeN1VS)Y>VLBM8< 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


M%C;Qf;c3q3cTZ$|}eGp|nUqHI5md#yz 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�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

  • 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%0A;13(HI0BR4hD(|+6 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%0D1tjvOa4ZkymQB~qfQg?(KFmFv-q;@p#2C#Z z02RrWBVH&@C(HGwQ}IRNmH=57@ziQmQo7bUk*R3>NPS?{!5D)WrCZLy$b9(gi8yB0 z&PK%^(!mTy2_D+t^M_jGDH?1&K_22um!7~{k9jv){~Mi~iLEoga`}K;^vcJy*0+U7 zbfhyo@g`oBX@K1^7S++6A^0V0y=7pDw3v_#+H75udU40`^-9JL1~-1d)NMr??##UFShMI`Z5sI+7QUD(ON;nccy=6Syf zx6OSqn6SPmGVT?Gvjm|k2C!mB8n$bqHAjA_5n~cl5g;Ec$mkCv0VpzA6!uAf>sD*Q zQT+tmiGsr@H%4au(BB4g^w(LbY$kEuQH#AJbnhXGrk8~ z%g2fGqRSuml5K{h%ez}*E0g26tY1Y}dUzvKZAHDi?JXz5HJ(ENSlWn8xeePoF2^9s|35BYjtAHXoz4vnWZ_jBf6>W}LL9&g3n< zVzz2A>araU&Wkz1!w5-6(Ws>g0@7y|I56mxpNqKFN;jWu0uO$7%T4M7L%O#x!f@St z*lOX$BSD5yiwHCQZZ2z3QSTPYln6vae7h+1?c#m13nX3ITaFl(oSza^Y-m?GyhxCci_kiQ=#3u^#C#?O+U16@A9{1!BJwVqmbw~psD zG?3t}H>9z}SN5ks6e5j_ZW?9!gE7tnC7*SCC}jkA+y-k3rplV^zN>h@Qz@_j0iqJAynexITxUeG+^AAlf%!`J=N( z@`7(ClE(78zi>Ja#=a$*-82t>9^InsX<2ZC!~Bm(!&+^|lp?V@ zsf<*7>q@O~f_{buzzKgPE=coulx3l{CbO{$7&#wnJM&oM-AMFyld25FCf9SwT0g_G z{~Gy2&rMUpLL1dMz1S)~o_txX@tC4$aLVw^eC;;3SEz6e?&GMnv8a>t6=}j1%|aQv zRFrT1?r+*PzS7QUI5F#?jDi{@d6ff?iM%hOh|KT^)@5wEq%bOtF7(slJ+ih9+XB56 zAr_~wy({o;XXF=EzVQ}(B<+Z}!&*(g@pK~Yj}~{+Pp&mFc%r~U%0I>0ynJ=KKOeU( z?(#(&lW*dGg8FB3Jqo<(xC2JIJkoHBj)~^K>K;%wh?lIsd%%K&(GsGG)3-Qj@d1EwdSV zEcJGz@B(aV-+fvBuIZ0paHw6pjz2o|v^`e?t|MqkymtMI^H2CKd})q0{{C9ALWi#% zf~{+QY*I;kJ1V~9o@wT7Db}hU|4M!SA{S^!-ZkH~t!^W}(B1g)Zd-dgsjQi>!^ zPWsGd>_)B;oNA!#=NtxV&x~2%>uIb(bt@?FUi?517;*O7by>GBazjBxH~$h}-UySv z!ervBPyCC_rUrjPoWuncO6b)gip4oe@W{g)O7*rkzTmi!(*3_lq+lu>{NgbF;D;@= zV8(tflxji+1|RLV>T?=79P8qFH6u*hgdUhm%}rg~9P7^Qf>^-EmK4~Glt_7Jik1c# zq&XC$Bmg=`12s|kSP+vfz|`i8ux)N-au0tc8iCc7QCSlb%QQi6<1$W*Sb5M>V^NJt zc?ewt=f+ptFKq>tzquRgHv~?B_nJDe29`FC@B+D>4XBz)ZdAvGdZWe-GL8(L5$Fq5 zMk)<9OE9NiO_DkjRWpDZ-cy3x0yoAdX;Ab_sjX?JO=in1;EMj#ZA}jph`9jWYxL~pl_d1W;h@gvx# zgHDmN+Qz^`XxYrVZn45VCAv9@d)6zh1|=BTkDk1m4K|t!7{0uVJM=BE`#T=!>UJ;BV&m0L~I_~h7-)g0G$uH023AHmuQ#xvW?j$kK)$|r)m za=BHu;NGeJ&uutRB@ZFqy1S>BJmjP0i-}47C-_Ip&H_poJaKFPF1S;oN6`TzUX+SB zl37V)3rX_vR0Q3x0uIq=fyZWWtBfnXFLlf(N#xH}+miHHxeTF>Fj0iLOQ~K*WPYlo z4$WuzYq;Cv(%FOXkE*#(Iiau2f3rztI&1-C%4D**chV>FWDvQNQ7?P5pLGAi8#T5~ zJLzJk>F)p$9M4ZRn@yC(OQdy{E0o7kxvDFaq(7f(zBFL!SbqA-6+eoxl{fFrryN)R zXB{KnuX*2x{BC`Hd0a-P^GbAl1gl?6YUF|awo$efsNK3I+*yxqvEmkRabH;6Mw6p(FS$<^GzCCN* z&S@#K&$~F?BV)W5hjo4LE<)FWsvp{0ibNt~=qTK&?M=ZaA(zM<*?aVP+dWufQB?#G zZL8!#_@uST%AXV$dh!0bdTI22dw)eKx$H+_ynjGhaQu>LzX8G%95hh8r+(Aiq}j<^5|0g%u|g&yE0-(dTDd#d(c~UgP?u6>pbjLtsvq z87oq9dpF~gFy9g;?+DQW-P3jh=ZBENfH)S!AC*yoyBr_Y2Te7)(x zZS4S4SoZ7K>!Rcmua87j(9%nGUY} zj9;bxyQ{ZF{Z9>;veHL$X?GFPSMtd{qIoCKn)n|~&xTzX&YP;mT=ji>EXc6sQtmUS zPZ=HUmajb%mHr z+o@&)fpCR(T}&^UcnO8}jw6!U34H@gU;i=vBN;mNAaeL;*5G%+n-Uuw;-z*y5dEWl zViN=2b@bIjhuWkMF33J_S~kjoOHjd7W2&sSF`-tbA`xEP-d~4iI$wtJ>6kJQ>oCWP z+Bn&F)uWONx7>;5@8nEP5lSuu0AdeJV%;}1jY6qhMS2^>2jMB3^HwS4uFN8i5qmfuKy^2`rbbJ;W0)oa2q0lzC@+ zXXfTQppaI|CpoD~gH|YCW6|+z7eLVA$fWyrmeTHwrxD=<4JZsTuoSLiuKk1I)>!({ zxP?qf$e(_}1Fk)8np%8j&-7;rEmT0jk_(!@5goZg?E6kjJvBbzR^E}ynV7QBTT0Sk zTkvlKfqpE*k^B)*=X)h+BR{Hm+canO)AS2<-Tcc)8l3|s;|ed{AVFbD7RYlzJQE(| zyMzl4=a<=p)7?i(J-@=M+9kzX>v3nO*slKSll@kF?v5=@-}BQx*thTfY1@w%tkR#3 zq7lZ3r~kEyVU?Cb<-Wy3bTe}+tfx?$C!ZkyMr~1nG~eNmTVT&khIOcViErsS&FTA{ zZE7L1Bv#BgnzW5%>%Zfs8Ri%p824nD=!4Vjif9<>gF=yjs73gIcKjvRqU;hLpxx0& zJDj@2v&; z?yP0p!FFrp@2;95)~P-|F^8BoA5j5Aq2>w)`6s_9#{CxBPlDDmPz53+4s1On1TyH3 zvhU&AIdd!AH&w2ye5%%>S*Ji(jb1{2krchh*RRh;z90N$DF<_B5HA*Px}OCEQvCl6 zT-aZGyn=E*^;}aG#0sjSErf=bJvy+#}_D5eo;R-+>-WfTP(H+AGkr@lJhON z7oH%XJpR7LC!j$#ch!L8`*&U;w>Ww>vcbi-I3<5#`to{dnWacjP@a`0n3v3R~dfY@$ z&Ut(DR8Gx$pfoe=IN`doAT#DT-ZiOiMhXUL|K0Eiw$q>cZm&)nI^O5(2exY>pz%N+ zm-EXYj#_UJy%*vv#1GpP_qg9mf@x;i&)y5Kzyk!m z^)3j3j>ihROR$K!5A>x(0btj1rl(8w&nLm{CGGLg{cZ~H!_7jLjeghudw%rx`?GDa z7-Qa)bR_PB&+BfIIbNZrff$D|7>7^tuj(MtE}hf-Xbg;lm3??a$bitv%Aw%2p;ppu z9Zv(sEkIMWqY3x&cw-6yIrPPQZ$SHKmfx@LN$1CWbHroFsg0Gu)0>FEcqVz}2G;Y3 z^(p>|9Mh*{Y;wHbIKkd|+&a=FLX^&(uR;9D3d%g`sf@aP6KWn58V?WA&)C7<4~!_7 zj%qpnLkd_ZSP=YMtTL3)aO}T=$CDRoPHs1RzmDBSm>$tYZ*1A5J4rciyf;7k^6{6R z{j#{uc92|$KRdweS$MR&mwzLDE)xQ$b>wCdklRv+2dFI>AXWj;Qg$h^SbhQ4C+Rr!yCj&iS5Uu<-h{B|O* z*B?9|vHc4DlI&;SHrx*e?lE3?*2~|9Fo_fVtqx$&M2SMau7=1oaEkoI>}8&gqGumH zk8mlBJ}aQ{Iqkgk9~9!l42IpJ(q|zg8%}mHO|qDEG0>XEBNM?d{Cu z(X~6@O$=#Iet-BpL}Dkr($uS0l2I9pu;TW5^v=9+cBBBGBC`TWC^}*m;mVIKXn7qQ z_d4q2AH~19XISfI4;FnJT2;7MtS$7HRvn13Mz|p7o5pi;|0ab|YJgC=evf*?&42qX z>xOiU(%TK_a}usTM^54wdqDj>nQV~y=5QXKA`h?d8eF!~l>Mp^iKwkTq2ixUv91pH zbmbBlB!7d>Lu8szS7jld_mBn8=xDhXXyTw6z4}?68$jFpeimz4f+`rx60`o`1f;po+G_5}Od=Y2RwfocE2*zp|BSLW} z>NU({hoJz7_iT&53$B8@yuq6HqeO_E#99usX@eqB`~=oJ^;O~@BRPv};7oWKznRy4 z0W&qtr;V|&M=ark$(p+9jogWymkPzddqXt)IyeaGDWg$t%WH#B3ll<#)!IsGvoN{G zw^X8C+Xgj9EJz9OSH*dH-LXQpPxz3I(eSspxx`-f6nrOgy-15+tBOlo9!)s(>0>kp zO!;NV8e@h$YE2?C;IdzXI(XK9T6V{F#{3ASouQ@yEz6s#f@mgL9E=}({iQ(Q4*k1A zY>#%kBwOHj!>f3Ji0yL1Oc}_gy6#S=nJB8 z)L2fd6BF|2K&B~=5IMFSv&87m`mbPTVATcxI6CXbszVyYxD9+1wXoC+COu)_mb=Zm zAQ(rt-(EdOewx2WeCocReN%TU+ZI_T+)DG!Ka&XEbqj17_%!#fo^vt_u@Cd3%-=*^ z-hR!j(z*?X(!UW77`&nqwxaKYE8#!^jJ>R{+dL<{#1(l|BWScG z8dN~Zt_%w!=WMjyYBO9?Sk!SbLKuQ&Hl>0QH++LB+1>}nEGqHN?uT101X?MCx(v7J z!Z`gxjKHjMcF!op;4?M|4}y%`$GKvR5n0%AF1eOLm+qosL_j)r%^VQ^E+hV&dj=J8 z)a|@&i9(Q#uZ!DU;(qM}PAENlQ=^{oD$Q4`Wht`}@bu8>c^Cc0al^r*^ISF`?3}Ni zRl}mv3o1oF;^1m4U~eQ*?Hwa&W>t~+-cU~WbJEP3)ueJo+XCkFC>HLwUQw}-{p=1m z0>;}wC;R#G+x9w<$IJRNSa{(>|LeMsNtf*JTXPOHfC|;PY@pE|7LhGRF#DcEnq9GI z?ROICF*Mb4_L|`=r1CLco`KQ8kx{9r%*6C>s9Jo^yvN1_wG?|+O!HaYAsNn^AzD4f z8O~biTEhexX29C-xoR1xOAmX>Zuwe6ESw6MuhAdnu6#{|6FcnDEL+b=VKX+Lz`x92 zEjrkR{j)}uudpD?HiuPVzeHI(Mg-q1qc@+ryj&$x)ejO-^wje;+^$K&^}E{xtI#{^ z{oGBnNr&D}|HbqkltzEFd9)%eHW{>;cKnBUT zY$Ps24ldyUaNrzh(tP!RB6`*GeQ@JlSiXd{te*b40z83!|A6b-&g?fo8J_r-JxMyI z3*Me+I*>^>e@W#qA(1Woi&2lU2GkYo8cXv@$VK)zuFhU^?ClKo0~K{#^Ofl1uc&rv z_&5LP3BK{Zxzk?$b@wI$+d8{&^&=1tB2Ql#h^e#uEA};71-oLO5*=rL3AyrkV_U_$ z=t;_OL{Q*HqZM6VthIYTilynpO7EI!bs?2*&)Mcm(r|nEj7;3!qML{trGe<+#AY=E zKNA90M1XNZ&(Ib_utsDoz8|%phR07Exv&hf!kW&MLN*OXH68^%nN90cuV8M=JBHP& z_CM!lrz*j@Rs;C2Uste(o0R8R5r_GM6HU{59xj2wHaqWI4nN_ov0^g#i2LQA%Xt1) zBy3fEY0y_)``|)oj*oQ3L}XU=Lt|5S@Y_VF)E;k|vHpjWbi!_xz5a9eD<_YMHW)$f z>fdLh<;0xTW*MFWR~g*(fW69!Oi$9|cgpt5*w~5Jm780=Cn0EJb@(>Tz5ZoS;6%-t z&l}Q~>uU`)e*5NLPdO%V!hL0b((-_0U-j8bx9UcBrX`7QcH`&)N(3vsXGRF2*C319iL&pr#w0)%kj_k{X@S0?Ne&p$`G zg>Wr048qFC&iY;7Rml<`3Ky+kKSSC5v7g3hwurAvJ=UH@+sr6%b6Z+?ws5x67=K1O z{cC(>i6uBgnM=?!(hgzN9dQ-2ywbI8oU4*wMz0!QcGDoVO)W2P8km#w9-he`ZqPTIgWOji}i5&hZ{Lksv3PmoW>O%-cX zS>am+b>guirFtQXGG6XGEOkMf+l7*bY`zykH_}TIz4|VPF@)xFqUC>k!k8Lm+o*N| zjr7If!x1TV*N`f`*7M4Q%%&Vf;6-YwH9v0LOl2i~4puyDn9=h zh$kUuZoPM)O+=6=T3kpF*dsXPkX4oVf{far^hVE5R|7#H7YIW>|W^-75nX z7vLx7U9nwU^iZ<(2t^4OzQi51qJcpyp*{=viYKi&1T9s{zERy(E&;dNq?MJeL1#~3 zah<`1<*zeDn2?6sEorjd<2k4ZUx1pnbcA;n#;K?TJ6Tvv2?v(Ys{+E7Hd)xQ!za70 zfEHv#V*!l5XdW!?ZDHVh8Xj>=oh)qSwGbBDmjU)-=FRjIU|V=K2G)@dqwl?hnFq^# zQyADA&_as1ML`zk?f9wb4H2j$Mq#Pw;zUPg zwMe~fOc+Kjsr@uj=XG#F@%kxYY{Mf7SkvuH#6}INMW0MPv>1AbSY<>9uj{CgOxl6; zJv^+WA#7_SAvC6*OGrV;`T!iGg4Ae{!P`2QATn0c=(uAuVkA#}0D@6Msu{KHZCx$W zgFXNwziR|cgXg71(1XXC`HO9CgqB+Nsty=*sGkz3xMTJYsl-!@q6dvNGl*?wgqCLX zvd$-HNnib!;`_`EBoLJhi*$kF+JJ73}<@~3t2E(zLSZTe!8wo>Y>X>ll zOU@1?efcF{$k#uO+^ zy-Rc7G-Njgnxfh29a03c&~63wOhb}WpjCA)cT6(w8al1sO+_FZCWyemG{l)1A}}!x zdEYa~{t(I_K*XD+k2E>1R~UG1uafP`rj*Va&fOM0^z4X)iwWP&3{^cw+l2l z4Uu^_<=xPt6sW%WA@sdz{dZ&E8`L*DgwDN3?}zwazrMx))UWYg@?Y+VGVy*uh z!GjiW^xb;b7a#Rb#0@rRSwRo>z+M)&$W+K*m}bu<@#Kb~5kPs@sq4w(K&YEX6r?s1 z@-@Wu#DTA&%*5TT?;z$Pt#HE!+>~>F^mcsywy^mYfMI`82G#56QqRS(zdAgJ2$FXU zl=R-s*D?!|uR#|!PfL4svUuB4AsT-Kj#zLimtGQYYsf*Lei!_~Z**3UpU*h0!zmy` z#{7=U3x{%e61Hq2=88Nz$IPa2*QF}}Q|R@*fTF3u3vu{pJ8aoT>;`?5s|))k4WDZe zyKy2S0v-6%$B+gGrk@UhKo(^*nJmpF$)x43bkna#S`rher*EkG!*F)CtF)lY%YwH6 zLsO}qOwLoAYnPZYzojhbUrbPEdC-1kkf+?2B={y%BbDiqOzBcPX)ieyzG7F4od zyK-tCAvBv}7Cq?!P8#37n3}1GsKcXtAHlw4=6+WWzmvM=J~;rrl|gZ9E&#q7dDPX`u<975-+)r{96@5% zh|${Dusah5b?qd~3lg!6wHT)Jo;V8gnu%y-uGs*0{mz8hFB=Phx5s4i2&Fl)Wjq@1 z`mF;4^3}+zunmAe!x(jq6-8fDvp(-gcCa_RI1T7Ovl;GzVlur78(xsh;ja^Gwz1UQ zvq)TEX7fH9ZXlgvL@nbI-8dM|(gY}Z!xmDY10f~>z8?H+3msj$Pq5Ac*lEW@UAl-c z&I0(0vn8;F7zpA5xb&}Q0b9AKqc=W=RfI6k?L=wEMP0hAPn0zy|0p`AXGMJJ75g@e zRZkj==YK802Df1=ZVFWdal?Wx)D171VV&D?dA80F2z*#;Hl70Dg^-x;jSRbEVNhRb zYBmPs&==?eaD>p4?zIeO_XCvPu5-1oNDWa#3h!AKJ}$AF2AvRdC}W@ze@PUb-W`ma za`KT3$s*&Bmq#aNwFovH@}$DuISjK1QYEDf@iBR3+|k(%jXR4fq*~9U-a(wfy(}cg zzbs#(+TpI(89XyzkE1ci*-~^5Nijp6d{M{31h^yNIXaDN?*Z2kdE#mHXFb4fS`Lr6G{{&GH!333r_(5|By!r$LMz>i|j<*Dv znbrhom}Uexfvw)^i^g{+HT95wBMs1g5af^rd1X6?^fn9h?F9F(t;PUiw#jn$d=7=e zZ%RRfH@6|Xn_r+}n~l)^O~O{j9`1jsL1#`HA(So}!JVi2B(IH6*XOvl0?QpZYAuKH!AklLq_mT}gC`&iyDnuk}RX~Je zwO!U8N)(=AP*jhQuy_aG|ms4O4a<&~wP5#t z-Bxr1b6wAmEO7tPFDXq=!0TLqXbp`M_Uy{$ z>f;8?)7Rxixti2GnJ~m*dVe{~yGL9R7aNO&$+6`4yE!KYNScDHB8C%VOO8W{^(&+J zt5R}M{c0=xHrQrhJ{8!n_f?B(M1uzGW@(OjRWN-iu5;ldCMnV6B(hf4x_Mx~@_=h_ zg@(-=^x8Rs9O@clWk*m^8l@rg-3QxgH<^n^oRME2GZ=mD<93&3Z@~B=-vKij^XHG- z;{4s}T_*#-Z2!pllsKBL|EC|3iG;L{-+M{ronZL?21|ba-}_O;#NNS7@jrxUr~h_d zr3R{xszvf!E?+F)-JU#$RErcCF3m8WA4!E-mdYqTZW3BS)j(?tm`ssPkl|oUN9N=P z+AOp#w^YSe+UYe;A|@>(FgL+d3D0P^s!z?kK|*!hU5`zkG#k}z=A_}b9y<6Eg*o8; zn&Q0oefIg@L)KXvG_i#8mE_mmBo4V+i>L%6RMjyRBei}}?H8m4^ugO9*27n+zn$dU zYKgI|#K+r+g;coBRQQn>hTB6Vq%LwWyvWJ$&`@awpRtNku~K|MFCsV0V0BTW9G?^pI}r zDBQ9lkGzP|d@ldh!FW&Gce&noyw0V5Cj@tmp1m z&waqBhkTEh>dCk7jvKKqf-eI->_SQxD&%jW`^ZIv{T#%MwgW0dvNrs<$8wr4aLdBy zRZ(=?w+z3_i*K!egTBn!V@E7+NtOGWmM%!UqZo@w>HK9)Y2i(YiF746Y(m^77Aa*; zra&4-fe`CSy_IAYov=*edetkXEGjr`sAE@P@ktae0e4v!-$nD9D#A9b`hx zx4KG)XA3<5TCd=&P@vKo4+S`cX2;MWW?a_j=ER_*_fN~c1DrB!&5y}zE9X6O$GkjD zlmYpVZ5H+Z96eAihI8tfAp z#&L24p=w*2%x^0R%}iu&ec@kO`w_3Jme}z)`*g#1DH}ffB$KIIX?e_WkfB8RW3LYR z*u~v)WdMhj)w&^*uNVU^;nS39X1&^{nkmyx*LKarExQH#wXE8-6*>Z2WxpYyzWk7C z$|SkT*gaiNRMTZXF<**#MS2V-+Oo|PV#Q6Sj+QdZDoTYdP3=$doFQ3aKCX(bFVGJR zueqoK%^&b-$nwcA0!&9Kq^_jA*XpWSzoD)5Bp;-2{#>P#zSJyScB+fc6Z-N_ziApK6q^`4*w|f>F?~7#+bcS_AzVp_*9IaInk% zg3nHSU$L+2?4mV5Xd@_qd(vtnmZxkhDPSgTCyQh8=1+ogT;wW)C)#C#bsT1PmK%cA zpWLGU$2Dg4+)Cwu9|#ZV45s0#LGmIGvT6%aeYh{`%XuI0NmZ$5*XT=Shzq{=v~FqL z8O05yC=n-@s~RaPGOYzHw4BN5q+O}WSX+k4Xjzvhe=Aj1RG-rApvbV8^g$t39b?rE z89~<;KKraHn>(MCnK55HQ*cm`bE!VKH%&B*RxFP5lAoUj;U=m>tekWJlN>5=EpD-e zel`#7OTr_O?@zqNab#+qnLfm_l`k>j4&&iExAF;rWg=VifN%}j93!z=Qng2(1rrdf z21*55m&r?(?jPf2jPu>C7EK!mlALqopPwXc{LF@oUxgfM&BbH+%(Q|d21?+P=VteE z31_=Ci}h~tD7ZZzUFdd=CarkAZ!<(%A7Dbv>tyB3*MgGCY7mQjv=kma$Mw>y zp$ZGDS8AqeDTOzy6%Z~ZDz%ZQYxAA(o>|Lp)wCIuGzI~C@*m#vx{ zfKPN+{9k@3ht)>bR@+~eI~_Zow~J`9x7J&kPVt}5 zO6Zoj2RMfVW6^8*V@J_2{xmIlGH^CnnX67rryHX2u&2rmA7AR7T|ewUhwwa|MAyU0 z`{8{lg4*e{_K}iOG$oL!qkAq-oG1>eb8jN>&BaHPBL^tYW|^`m`xy5+Dw)Zh ze$P^UrPYZ6TGVmWM?3HJ?OOPRrd8GTs!&xI4sBwK7grL|Y0#fdi6n_meWpuvR(7C_ zL0K$3At(Na#h*^6Q;tNNfPzXtpwTe_x!yzjb<Bik+l*W zrF*f@3?J}Hu`0u<@IQ;A_`Ts*_dJh~!{oH~=DncNdr)?^<9L2uzPIIp(+qWcovWeH zFimF-C1nXHFUMrk_kkN0<%DaH{74mwq_Oq#D~NaU>m8SFaCy2Y?o~8R(%*FL?e;3< zmR8JO$U#*#FN{JV-NAPh*8C~bYl>j$#egE1OYE2*HmZR~KMn>I*)UAVUO{XnETsUl zA4Y|&2N;iFrCBb(LuH;$=|Ktu%P)oHyjnh(lQ=dLjrty?rfcb@y2MkwBZFQ%rQ%aC zf?sI5J*4uB?n_tcbFm)_Gf~M0_NE}j)8j*3PuZ2xqLt1*`S z5ajnGD*0jIBVw5zkh>x(9s1#^L8=~O97okO@fCh@a?N;Ss_zHc{M%-j=nLC+QHi_< zE7B6V1wPz6te1+LB*w}SL$QZz|6Mr|r5?tIJrpaDsR#vNc{j8g_5K*89QgeXXsrf? zA`^4Pyi;pM13$CD(Nn$2-;+o()$@lsC_%WbydgXU0P7#>({EvGrTf2NH2NIGo~tDD ztt3||m@tltjUE>eQSVC}d=)v-jnc=Pq8_Ef@nT56X%FuCaMOLJ>&{JfP>Unh5+T@x zt_R{Xfm!>4+zWqn^`QOB5b8JIv%J>3EUg_%y=RUkK_vl>gJO)Pc&t-?K35d1UtcqY z0(+9SLWORE;yr~9fl9iu`^Lfi2i9Yf{6rWpMK$g)A%=P zJhR?A3Z+22yde|6$6_(>)CUrf_k-{y*&OiBlpH>!p8O2MzJj}?Pr(7#0_mP{!(38z zy@*CAZPKKDrfWks?c}r2>G%F*_8#hvm$k(uKH$hN?`HkU&MGG5`7TE7_Y3#ptOnlu z`yque&J(de(aJf`vLug2gX>GrT6 znHoiZ?{H+AqJBTkuoVAM#ze3RUQ43xaFvPw=lCs{I~gbu%=7_|y5wNqyX!2QsGnDc zKtpuCNWY;%xL&7n->VEN8F?O+>7qM{oT8AoIUKJ*_pO~psqj=OntyLxH_6(_D^6Qs zOLjZ$4kW@q$pWu-oV$KP1*rzy-V&d0thC|uC51}qmz0S78@(I+d9#lJ%c$eS#gC=5 zVLe_uV|`45x<*Rl!AO}TjeA-ZT~q&Jrh(9+cJ-=$sehToIA-pw!;MmQ9|Z9!l^p9M zl<+CPywa`i792&c{~9P2>_-o00T8{?RH4Z`VY6mPDKNb1_Yd4Fa4fuj?3kfX8j;*Z zzNf7v=(iu=IcMMgjF=0EjNy7gTyho~pBklnlUM0dZ_>VAokp(M7@ljX8ZT0H3bZ@Y zW}5E$@??;P~9F$#sQy-U|{J1>a5cujr!oP`g7l#_Y z7gh5sPseQ7Z}C(#kz(1fycYmk5c4T)a5~V(Xh9f%$ygmRo!NYf@Re=44 zcL%QzAM&OL_}latv>X@ug0<77&k;&h2Bn~&q{YA68G94(ynin0kywW_&838vmdN%w zjec5Y{q`Iw&T$!8&A|hIUZXS{avf!=O~j5}`VA@#!Dw8efr2IsAf{|Lbz~*DrP6!r zF_jfR1{cYPPU}&HS}7C0P+*pg+fr61_SlcKk}4+dbDoafk+qEt$}?7eaRdGVBJxNi z%@Yjs8e%$6kpG3hhv_w;yyr$+M)#LkYum=q{GHSzIR2k!N090*MDIuvS2VdD_J}t; zBi(})55G;D%a8biZB(q30!e(EgIGcMKe-Qa(F-xM79%;b*Gd>@SEfook(H(Ulm*$9 zD7`X9%@7i2bzx@SltmDxwB1ukaf_dBQ3DS-%Zd(;h}~1ssqo7bJe8?YOcN}O{DiKv zjqh;w@$IR}qoM!}c-d%9LFGqOtta`#pT!r}Si(A8K|%HrWt1s?<^pl?f@~>4;7Fp9Ci8cRy|D0{g-u9ps7})D=@14?yDP3u`H#{?CJ#RH;m-HY@X8KscrC; zd9scvd6{kFBPkQS>mCjltlA8$Mlg(QHGIde*U>4VuF|SWxw&F|vC*sm^ERLtgf-foR#& z@)47xfa-p)AASCqF=Im5_=9|{Jb60`63;0Z*?qfI_vNmFLZu1nVdT7z9k0AwJxa)& zr3Q$Qysj($raYK&YI;-Rua;l3`fjkhLg;~yOuCm_)QX4URNo|;^ycLQ`{M2`sC460 zJ1VwMTt)iWFULVWVK1G6Hn`wJf zC1*=4Sx|Y?5w?Mu%nejlQIVL4RhCtnsw`i*HkeleZf`Lc6n$R-vFiQ0L=4onxE1GvTpPQ{6B2s)ySky7GWGzE>{;sKFb9+6Cc2r-0_KgR*8fL&9#W~(8Ra7n? z=*aP>N}U`qA-gRcsjj9X*~e;EK2&4zvO2EIjU0`n)L3{aAF1qtntn=LOQ&lw;dGPO zX%hd_<0o>2sztc{!W4y76ztIf`9b9KY@6R{fxhSO-v4+f#cfIh$Z6 zV^FySU3G>uD^OCn%1|x5!K%%H(qxK~jkGk;iDgs9Fh};{Qj5YtbD2*Z83jOmfG5CO^{csC-Cghyq60Vs8arwoE zhIR6e3W5jMR&yUvh0(rB~F+lvE^jQ*UJ;i-AbX!VYEVSnVwOim1=j9sbNj(1oX z)i8?3c6qQyB{(%<@X{#dF}_HsPkQgACkPSmxuu7>Hw9`jWF%qV@g6QfI~wrKCUnym3Fh8$!Iy4F^bwu*kZ z7oVCY__3Cd&sx;r zceAzqAMOwdbg00L6tQvjWUzxqv0X2?%*{|G3nMEh8H$c3R+5;E;))md`s(N|WOWzM zhq=8&+TEw$1B3ne_OI+lMm*NV8q?=;ST$=5dnNl% z#pT+@QS6R6)a=#c0+(&Zu-kbIgkOxE4lcpVeKwAdZCi3v@evk{-LsK2lxDGEnyaiT zs;aB46X?}BK{M3~_|_nmQawf_f=xIc2ARz>eu57w*;|=?&YW%}T5D_T`n;lPGSOm0 z37;R^lolcaVRs_AppiX-1YA;F^{nTgF&$&~;4xrc7n@>8*PCH}N*%YR-t<~)Z9&+6 z)1Ev4!lS-_(HtNY7THsh&)Sj@z*`jD0X_H?NqV{SNgvKa8W_od4Pr{(dcE#<_Xu(^ z%6&Z68k=uK@4W`Lx)MDC87m3>z^Va}chAi=gN9ks6|fOQ{N%X2 z@1Wns^Ezhua|=RPCJi#BJOgA2Jt^}p%@FA1}a#Z4`BbOO?x6hptG~U<;P++XxR3fy? zfvrHggCbl1Z*kn?^r3}cDWr^Oa1!Hsb+Trxg~?BOV`W>sJtGp4N#a+7Q0%#>)iWd* z$PaOdE&+&-GhpvK2hmQShgWpZg9>)*P`I(S^~Ln=G;;4w+%Z4!q}(D zit==Riv*`2C@JSE(Fis}5ffL5Xs-q6*1|U+aRc|9?bw||ifyTB8~d3LQG%az9;uLb zSSZdP7ShD)wELG=X*i=!%NuWJ8ZoINc9!uB}2Hq7>xlq^5in zoy(~r7JOPN5q9D=9ad0}@0~XzLCMzP_RmfCTs&aBUS8`?U4Cx4*oWH6#IHKJ}#!g-F3B8@PPy$16Ch3qqPe&z-G#`E@)#p z6m^TpEsZd$0Emi6Xd}v4jLTwyl+Qd*kTXPUHwK7e;PoFrKS|7;3U0is5qGHb~L8v0S5b+Hv%V+#V|IrbQ z7WGoSzc+;U!gt00*NN2ib#@{97>ITQg@ z-dXg;q(DIdBqXp{%@sir`6=QsD04+gOB`ax9ymZ9O;h{0qtwBa9gkI7cO+3fDFHxOHdYQZTaggm@ZMA{KTG6pPR7?;n>V&YV@*d~H4 z(U9h;^9;q?L_)u6&ya=W29rd?v}7fU?oAZIxulu3)7WWeHS|+L8`s9t_EG?!|7Dx$ zLcC`Th;VY{WZz|M0~=&J*dW}bx`ABxt69em|N=pUI z;+|ns%m|>rD@M3-yn%`}*x=C85YB7Wq)~APl2f4pK5Vd|5m5Ya=og(K+VV!=Be3GcYx!@S0H z=j!czlpNlyM;LTDZ{G_PE3c5Ll_Oo!si5zIw>uA0)-AbFy4qi~kEou9Q{zy7M*p!m zv}xNELj3Y9x;r9__ip)$*d+wUmrtuZRQQLe!FY?C&gPN)+6hdKSWY0HKZ#MgefTP< znB)&dmC-Mes2vE15yd_kxarAggnoyD5rgM?N?o^3(7IizQQj68YdT^;nV$ zC~Jecfv}R`p7|)mb3FD;#>L4;o4@RcA*fU0=99CI4)X8ph~ocYNB0MLw(ye#Dru-$^|H% z7q!_z&)TZh)e}i+mARIi1OVS{N6FgT$GQ|9AMbL>-b}$gV*L7qXdP5b4s@LY%%H%Hj_4d_WM| zh}&ku)w21$A4Q!oa`mcRWvkM~g{mEFu;LVLV4FULc~6U7rL#v3uFymUHeBkcv~O}(Go z5Tb1Y(BE!Hr*s{t;dn)&lP@N0wMe7G0&=^FJ51bBJFvFfIs}^z{3Bl6))<#^ehHEF zwJr@?>us(fOy^2vDR7{Baoz0#cA$`fW_5|)F1Y$KEKNCtZ$H25OQL88hB&Z zmt9c~t{$1;Ca2i=hw44WaDC~y2bFH~p}Q*81Fb=mj-FBUm_a)LVy=mGj_BmdG##|8 zkanjbXE?QfUTV7XE%hIZbkR?DEhb7s7UD;b$OulJfnr>;yB2lbUVY5C(1@Dk3=Qis zaZWRD9R{I0X7Sr?rpnCmJGwfm;uk?AlI`2F^OiP&n)HnJ{>Odje&TEKn9x*+aYX!? zYfXWz!whLlYn?M$c=0v=WG`1@qAA!hn|k{zKM zfwc+QINjbJW%4PsQz^NrGZl{=$9F$hpwlpLj#f}18Mmua@O`$T{cW1DAh}a##^2YE zgjWq?PB+a1kO&fB_k;#mmphbE`?Lm-hxI1Yus#$IYM;jPSyO8#^*~xP5j%&VsI}u;RIoaw6}cBOdoZL{l1k6`4}4b9l40MGi3>89alH z9X3ZUQCF6yY!0b-1za0^#VgX2d=Y8k4;2fo(0KU`)araUZmB*eqjr;MniJ5nA;$MK zmFpwq#4j}GOpBlNVcGj6y-)0N(UtrfqKL`I{DDk4`XzAAPhJo^A4U+G9LgGJnPQkz zB1vurh_S?+F@Km$9RCoCa7OSpKQy)^5WhuHt@g}G@I1NOi-Saqv( zsx!dHbtF-!1b=FyPssl)1Urn#2}VW{A|cEu^3*B(lu`7PjwGDgktrWUhb)xh*-r8c zHrbiUaIqFQOcl62wvD2F$_lH1?DU623{pe1a5fQ*0Ut4rsb@+vRDrbG?*pPjb;7i7 zJk{|~yaJTrc_qYBY^<7HM#93XPf;W73KByhX|R9NxA6d`um4C?IFENtVZlK_qCb;rAk#F%y2g92jl5~)0w&DtSby$F~2{psqtetz05YYvM|?Du-0?E#xq$l0z^3ZUstEf)+}ZnfQ&CT;7daiToKQ zY`}yjlO?s$N2CvbP8uHHdZnQRYmdRur-^!#GY4(Q0XXmXwM~1eqrcMj2kuMs-aQ$8 z-=9xv2y@Cr=R#J};5>bk#aX|JTV<#P7=hD5JZz$14)V8bvXe1|ca%$VY*QiIY5Q17 zEI6(qLf&fmdyi9?UFI=O7p)Poi1>rnK+x;^Z!=@d1z^`uxJba_#%&N)g{ug1>sc}y*4+ukOs|9gaUX8C7m`*+zZ=tzNnCX4x1+387% zUO)5^4a{l9ZA9r65XF^)F7n}5113f}Bz?+*5#0|VZ}aoG^J55=X);=w57rzePd&Xm zeL&3g*d)wx-cLhP#_@5QEZ~0>iORQ)90At<1qT}A z#$`bnQ3Gv|1O&j<(jGymVAC;OjKoC)1C0HGi0IZ5Yv%E1Jf^4t3yC!zw##xTaCOmBI7RUqvYA z7KA$}jgr&9cCW*8X~cX@B~)9>DAfCI+u^vQ#_4-}Add!xI4sb1?FNby<8oJ2ZZB`^ zgw&+nw}&CQtQ&;4NK%tddB5=w)i&3H^~rpy*5>Pf_k;gG^rYlyZ{P?pb^BMNX6(3Z z?+?_#$pJw$VFecJbxNF1Jyodd8-lU^&~Cvwk)d6{vgby0W5wY6i2%q@6^vlpq1ivk z;M~kicl&Vl`f3~IMbOTd7Eot9nq=#`#*7Ruxhm|ptU;(`wQKs#I-!8(Y=JhH4mS;J zEKt^PJm5Y|yq23uu3|O7{DJgOXk?_U*D2B~c&6)9WOK_4=T+>F-PJ4JhI={d;J_3{t&kMul=dXbzcqec;N^L0{YRj;Yu~Jw9Zz1h)^+NQ^k%L!+=`LN%X>7Hz z3&U(B`_)NodtXt=u$e4V7;Go{iLtrT$TVwY8m1ZTP}1SbO|jw(&OQL^m$n(NW%bJS z#P)5IHGmsyrTD&>@EM(3w&p8 zOPGzPie+OA2Q5qB6^KR6S+#P8yAL(~;(!Y8wB{?iS{kb}7G!2;=PGm$!cIDR4B`En5u|yhCe#$(CtFIbr`ycQD5kr3_mD2!wu%c%aNYv$PDW7nOe>N(PTl zalu40MuS;fQ6m=+f=#QIJ&D!c}{Uhsd~_LR3z5M{4H{ z0IwIiQ|>C+H;dg>l;dq^Z2LGo^}gONMiwPah7d&|9|vQO+-kYOSU2&7M2UeK1PvxF z&S<3c&(`7H(0s!-CX8S(GV1ts_i$rHtv;0*F0XY4gFCaRbCb(VZRP2yY@Q|4wcD&S z4HKM}n-Q5&5v7y7K*8py=EP6Guya~SsJP)mXhn8&z<6zMZv;>-v=5XmnTZJ!ZWYlR^m67GhZrRgOyR}f-8k;l}j(nOc5<3YI+v!x;!EtXCf0u z;U0EZRn8NHfrL8knm$&l#EEx(iRo4hkBSiYOlYg1^9JvtCJzRSGOiV6dwx!3M~KDU z$5MQ{IhiSg88$D8+QdgG?Vg3y)CoipfTSQX{GreaISA6fx;Fi#n}pi&2;d)?2aaVD!}SL6a$wlk`XXjP7V&H5`d(kR z{+<#`ALAK{sL4T+Jx~MawhF`Mg@{Ns23m`k8yIgi5v;_CUw}|DZd|2b{F_k&YzlJ~Yii!VN^1Mk{vN^%z%nDS@)M&YESJiUiiY99oNh~_*z%DyVtAFJTbDb{s>=}AA5j_1Nhd%}u1)k|uT$ByWEy6Ad7gcsThNx0UC z^k4>HkSoaOSzPj8|!Q zz*Mv2T97W@<{&t@%G>W3%X4GrAC{d}Tl)yg_t+a#S9o6#b1<_xt&1>Q?f^u>t)Ddx z=gr*RFC-S#^po>O$R6es6Pb=U%8l_T>bjfq?ad)USR*OR8m87N*?vX<_dV#QI&rGz z78dV_CtB`Uj;fWql|OzJ8MajMD2WPM1#6~I9bw?%Wr6MMMwuV{xf+3|JEIZN6N0l9 zufx50_1|HybAECsAf7mhGzkZ-Yxkrzq&8bJpB0A;2MA^@PKxUK(omY2^^Gt6w!^p> zL~P^Sv|raoONFzWXNcZ=QGHSsUh{ocjZMth>_W1?V z5xFZh!fY1ONX?+g6=r`)^fPswMez`8AG2WdK1ecQSfau5ZtZvAq^|DsgLo2rRmbEE zO=t120{;k^yaGDiHG9}l%oa8n*I=Rq$-3>3A& zJf{j(D#K8>{i7su@-HJl7ZeCMkBPz+1kJs8hiZll>}B@aiMFcMhnT3sl_Rfzc~5FU z%16tIkG4=BDzQB#z~dKUM%pSX2zITKZ0>Sa^Lc}-%<@u)NHUj8jq`+X;lgm#Y#dY+ z%M!Hr_0^RG9`%jhl&7P}evUtbKwl;x6Q)dxkK1(vmxV4iLeR0Dlk_ z-ynj3bRUS@x0}ERk0U3p22UuM3Ks6bY{yMWl9o)d*>Ta;k?rP&9(mH$anR+3TkVg& z(D0B;Ejh$GjmR1S#8g}2Vp-F2%M9l~Xa8lT`!yngg`Yh|P9eDXYb5;+dlxjpw#0RK zC($!Uzt0~u%jYl06E)nWV}=IJd&kGiHzlER4m5^@%Q^(r zq$rngTBG&1pOZ+A=;NMfocJ-OOonGg)d@sJOjVeZpO&{N?|FIxkhoVS3AOEN-)PeC zl~8-uyp?6LMK~PooOa62=t|1NSLvRgElm=7s^Jm|u#mikgzbD8eefz>{oA~w)utbo z`8MH{FTU|xb1$j%i|hfhfMo}NepUmrT|T)j&u$k)_(70>JCYzwJ3^v7;(;>9dny!dmF=7n$M@4*e_Oa6)6Y6MtBXjd(|!?S99S5cxRz4h zQG?s7UT*a6v+>`ogYyxK+k`|tyhc0B>;9TsQCYF~hvB8Hd<;MrmUedH23y(wXohoW z%S=tBYwn&yl4NqCV03O?V0TtXZI+ELfnlMbhS;vG_{E2CgCNz)XXl_Nd%5+am*%Bh z*(!bPPx(S{K0}FE$_#TIxA0R>eB8Rh*XfzMdZ>YNBzFRW{PL3vp z?5ONIh9}LzHjI*kXDLI)xrsNHXB>}>&8MEr$sZ}JpsXVv)dG&m8rg>Ji`2I&^=dWS ziV~+EXg{>xLQ0Ig*N@2~iD|7Zdj|oIS-wTOTeO#C$CC9Wi?GTi`_=}jq|MPE7=NWj z3$vp=U7rY6AL*Z<=bw1?-_s(j|CAOPI9mS=rsev(Wdeo{pE$|LQQjV43^e)#Ov?5K z)(*h`uY8m#FC*3W1JMh|D6dxYtf!t>yj=fBShA!5m|QLte5c$@VO0UnlJs*o4;s(o z*H?v|?=V?3J9NLh+-|P$U*4~tA-1qPp|lQzIN}wegraG_<(lW?&)Y1%(N=-mJ{_U? zdPClAuS%}h>*EUcBC?Ci&AAJuGpV)LVx6i{&kkf^Dt3h2pyDMzh3`& zv5mRg+vfvXA1NKEEyNj#^t*7l42qFHAo15O3mnb&T8i5^#4!mTq-P-LB(l0f3`|>< zkq4x#oUb7@rb%SXi!LtKcIH{l!wiu7j|WlVDK*1F>rkHzc)iIyLK^ywAbU+zQf1Cb zV8@<1&20rnJ9lGD;6$3vno^F<3uKhvG}S{!rgix_SbN2};&-h(oZst4UogCJ=lX;; z6y)FKT%hgQ^>u?`Eh6OuY0S95YHh*gVZzjUtuJ72QRbTW5rva|4DB!N()GjmR`U~28ohtsy+eN&>PClHvzXDY zSAQFhO4(zo28t;7WmP?`=WKWE`<0IfQ0{FQ{vJ;w1U{}!ciGZWs5Hn+p zgsG8CTo-vgF{2;4VC8m8kYt6>)eV9hDWU)i;HNklB$&iDwBQuzVyF^t%A6tgs5z;M z#ET^Smn3`p;p@&tLR&($el}Q>$XNxDik8-0Ij*&cy(1oJmwG}pCh+^Jrt$gerp?JQ z+`350nj}h0O!vb$rIFhvWwhWr9m@T_Bj4W%?L|HT&LG1c-+Dv37@?xg5bNPE^F4@R zGc|k{GtN734G@&th?Y9oQB)zQ(B@Pty{9I~K~(D^stjkhs<9VRP0Cw**QCOqfl+7{ zyV9gG`J);3sJ+{D@qOUOHe|$uskm``v17B%lx*z8H?bz!drBrf2nd@@f9*pdy3vXm zg1;Qr$*Zbm<0p>u{j6C3XN#cuThC)<2sCv9I=V?%o7ntUk!I|#Vp`CL|1ZJ~g^nu6 zT(dce2=0hbfyj77BhWg1wH$pXvk~dwEu&T@yX~)!@`KDII4Cw&E8e_s4iita%@4_H zAY$s1MxfN+RPid1>c}OjJtSKw-BeI+wR0;8TKYb3Up1(BeNM1luYYzLIIKFJFQE0I zFHeUowP1_M)4T83xAu>zN{RaZTO~1RQK6gEzs>9kmr_|q>k%HQj_WA6)JaN5NqV-Vhpt6C0%fPcspH-t}0LUSqRy z{ok_e*Kc8fJhCx!GMJTXMN-vn7B5%&AVX}RG1ThEjl|N6f-B#>4`ag0prIx4KsOG; zIcZg&N0JQ*2aoS^XXKl|VOt8NNw$C-t_0~7PxcQy<`$8tqhqB=32y;GrIdYb#_>x@ zQkLMSf)yHc#P+b#UkMUsNK)GA^3r8AKL6-b78+7aOD_)jHfs%oiyp6kBLA~PAJ*h1%+)hHIQ8WRhkTAKZbR519}%5V!n(!NOA0hY@!hU!W}} ztg$lWFqJE29b-JZU7Kh)(~M#)FJ>K*%x<`=h_#EzV2!EAeQT>%`%&vO)L5w?=HSSM zpMr^Ob~*(EzHTzqo1-vQB+W}rH~}5-0yk!R4|^)x!8KlDAd}t}Ur%-86a^gsVXvW+ zW4%;!i*kONV4b}W2U@$WEy_H^vbyCZfn{$3S7z~2K8sgpbv9^T2`!WJ5IKr^C{Y1D z6iReXBS~RWg}ZpId&UBUK11d*;}PAywA^SVLX>tyj>z@1Q+i+vaK39e&$t~VkCBCQ zs8=ad~4+7>5RsBTM>pkN~pqPK9+T$!slx*eVa@CuRSx(i25 zS2I8hXRMVNp~!>EgiZkPyOIRhN}?$r;(i6eICNX2XsmBY6%@&PVbu%cAE!^ni8)kd zPDf+%>^~kWo$kbdj(i}5255kz+rwNRD%GH^!&LR|s|fUPyQ<~v0WyP=T)mf?9I|E^ z!EN$&deF19+#?H=w)C69)Os`gzP1eRwE5|t?xeF)*1V%3B1NIVSZ|R%6|R^q_O#1s zcoyk{__Iiju^ttLOF%cHdQK3zbbM(Jg?~a`RdqdGI$@7C_V~jti28zOE1Y!^aBxIT3C~n0mJth-Gu(E ze54BvIxe$;JCFhNb}a?&4U`dInSh7^`&r{&wI`MwiZ+Jz=XZ(ao6|uE%V5cJr+0~h z8u&|99dRY?s7;-)4_+1I0#hGF8D5cjlmMTfjs!Btu)=c(dO7=8#Jh6xZ{^jpv0RPX znaTu0vPJm$COs!qM|;rmYZ95adGPI*_|EwV7rTh}u1<|lSYu9i9^z0o1L|NU-Z@yg zA`OHTxnjNFLU#np5{DzJv`QaI{)`S`$3@GdoQ6^A3BmCGpy1G}B0c5Ay}hRDa-gI? zC=tv#C;Zw=`pnqQ`}2@+$dgYGViCd7RU^liGA3u?K0)?^)CNK)Z`Qu!U^{GgC}~`T z>VbZ`mXH37?^KUeUZ%qWfJgFybO_RT3aLp*5ahv7>K$A*)$z=o_n?55A&0I|j;`>4 zW;3^m$U9N0c|wV5&5WF1q^}c3ef6jsfk74|E5G7EAzWf^mw0EY23n);WK5J- zy~;L5d`d2{akegFAPp@l9edj=jirpDuTYb0B)QtF;6`{P= zNu+`wWo_{|@>naw<_)<=FGSJBAM0USSzn?5Fpw>ieck5o7m#@{oI^&uUcZH8_;eJaOuMQpff ziQ)Arec;+8V={5**3$>yI`@(p!i>UN<`2eitf4D0-SB%L!TOz}o8n&Ck4bUSB4x}U z<^1^khzt|>_jRMu9ZQg=iC4~($?i!C0@3D{>-t|yAn$^++#dD*3cdz&uz|Xtf%o|n zCj95%OZ>METv_&?-nvrlMGJKi%R5-dc^MER1=9Z050m7SYE}IVJc5=gbPlZy5h`vW zqMan_bRurq_ou|_cQ&9yqm{LahZMcU${>Ui9T8@H(n9gs>_>^0<)(wll1|Ln`xF6( z$AnAQ#oPHN*1Oxmt`^Aswko2B{tF|%Fw!XqaSGxXinlbxwgZKdVJk%v`M`Ao!R9x? z0hj*kb&#grBf^nMu-dPaVY`Kjo(Pkn>o8=jngRkwt`laB@oMJ2$7S-86@J z!RuDqwBkd0vXA_mOQvFuBQ*tg92;|!$;wwvd+moQ3yRBF!xJoUv|8Ae0Cc?ONMjZg zi~Rq zCef8sIjKCq``*~7wmQxh7z>_KDT*=YtKPnouNlNHQEDmmG}-tL16u58E*g|NnUdtU z__U3qe%CzFvSvocry3HRhq&=+oXBVOw0*co>UuyQcV%{FH&xhfDKQ$_#F>isQbsDv z4TeX*U}AI0^aS;&h!Z#bLbDW+T(Ucf_2Yip9aUgyQTGQ^VOL$af)bCLydoanqcjmB6r@q`SV$C zB4#*)$#~5;(lEhzkjn~O`o+pI#r{DG=fMb zK~fAM)Mij!@HYP*G`wnnN~dyLX5}mzvf{1PZm&%`|1bq4VeJdMCwyM_D;PEmwcHAu zny~?z4BDECmi`Xe^#k=;tNn>E-s;Gd>g_jttLBn{{&G-^fI%ns_iosQ~2w9 zbErW64pGN=zj64dMdQ(AzhR0EoC&hr@tES=! zZv}HsTObgyuUGoW>aOw%;ZNn>f8OjWHqg$oJ>)^<4XHCgv7-En?<0T3S5+PozDscB z8wOm{C&EzudV0BbGMy=XOrlvgi;X3BM23RDIAp1T%eqd60{EV09FZ=K^@q*iC>X}s za)q%sSWNj9ni<9!O&Jl?U3CC=U&S*3yhv)mZF_r2{m&nY8Y<aU_Ej&ZLe>Q(e4OQa1i^#sz-)Mq8BIxd>3}n50ty|)nZ55Shjd2 zV=GSD?>wk#HGsX@q16aG1&roUu=rVIEh`tX6W|7NOs!%1hL;z6D6Nrko1)Qu!mapl zG}IF|qx`~_ZtncsIU;&;$lxp-BT)w`sjS^tji;PfLlg5z@XjMwt|lEQBO(j|E}tnV z_i+iCnd!}>LEAQmHYa}u=XO(|jdcCe*Vp^V%UL`M5h#!8!RQqVIgv*mssYTcC)n$b z?1Qgv2lVz2q@Ehy5I*2%ua&4IL>?a?lelnk6U&58Tz2a3_&o{|7o&Y1h+obLdKs(M z3p&0a^s70Gx#CN@B8dpyT>kD&UqyE~*#3dJt&qrp=KqPovgT_E@MUh3dn*{EqnZ>oIbkB#&2b-B_ zOl}NkaasZ&f;wh3*0sJDNj%Irx=9}|Ukn58ly`ABC_g_@pDD2P1)r}N0Mt+HKLu9k z9Qk*SWv{jSH#1|g5;jFcA5)_ONJep~Ocdy%HaL|fnU;BG5~yIlD82fe5Sw3p|3Gn< zOjA1f0T^FCN@M;`ik7%Ki|Nc-JVLXS{z){B0zH{Wg`DN<^5uadMWk^_3|(F+pa(}| zpmAoixbz*%{hnrWvi34-QfVVYWg|lDCUMdJWxV3r=sWa1OsNUP{3xh7Zxj{znt~jkz#C6eHHO|q>lgBcTR9M1PUw!RSm9Bp#5pACi279}N<`%hL0w0Yho zWd``GeCx9$hhzAbHV;8UG@XO@JMwk|nVc*-f%M8eogsKaS?N7)EX^;1-+vn%=ns=) zp09i0czKxCoM0PP4Wr?rr}(7=-UYvAajrdJIX5Q<2$3?I*(Fr;rU_U~wtu`4!lFVw zh3zALd$PB~`vJd*b6SC*FqyVKXzGfvk5v`DbODR2#Eumrx8&8VPLsW3cibJo&%Ef< zgGMv`(!Im`3cqNVzDewJ5dVf?|0)%9tq^pA-0L|e*DDt)irGR~JgLZLDz!5!8sr)3 zMbqYmvk~ick&9zxY;$VZZY4h74elL135x;21`xGsf8Dyh3tvV2MA~Q0cGQRF)ybSEvfj z!y(s+zwVtMpYxrno~>gL+ygoj&KIio7M?9bKYZF|v4#Tz6vu)&5BQ5eZr+k_-ab{vy=BI2K#Al!ourAs$=yh+Mr$;~>KW!uOB^KTg z72+#aM=~sNbRSO&52|a;qY&fITEZm5m|#d(4#mKH9{%AzAr;pYfhZM&jQMD_ZLkXh z*exVznbLNb)1~=%N%)zi_4>x*?sijKEt}2rEFI(mUFh&O2hkoyc#G&XT61J$O?8&) z<4PLK-X3cY8DD&e7(_9nNfCs-pDb>Ya#=l1g;k zG(=7Sz0-_)T^Wew3!_c0<6e~U`wMOPAdD>%e+eM;LNmCllilfSkO{Rxl-EP9GTFe< zMc?K8p2a8 zVzX*LGfi7zs)9Q6TI9ao!0q?BBeK9_W1k4CRG_C!!9@&L5m|j1V;n9fS3%*3lwyqi z8ibw=xff!4u7|)i8Hw^+Pt@74Yc&Vs3*~&mgY+>2bW< zAc+#$Ba$F!<*PQfnS%RZ5Kcx??p!1^nc)#1Co(O}JK60L~8FB33!( zR~iVu(j^D|!nO&%b)xP1D@JJ!#_CsB!JhaCySPOcsuuY5FFb`?zzoGpxU9WxPVmY4 zhOf81beSZ%Fl3jY2=vGUJ2V~rePhTxS00b2vMc;KIj~wG%~yu+=+Jk`_40FHkhtom z+DJ;?ec$nkhdKi3b46c~YV-u%y)ZT)4^=8kc*-zlM$SYW8q78X5`Q!g+cZ>}9M!dQ zc(h)=4ZPMc(2Kbbh#D0%3j*r)1-K>{yjims;mR&-3q07gOfWM_ly_j~T}oU?-xx#~ z4ooWwx=qTD2yzHy%=)n9A#)QUS|GTja)5I(WA~<{i|3TY__>5(*}S}+ z>|~1QdKek!0qRi}@?A_;6b+J3;fqJcjAI8)VOV%&%Tk#CI5MO`@omzw0E5ete1~7| z5M>DYKD^)d86le*6fvWipR5Anq_zkmb4Sa3Ez|a8p3Eh&t}Y1kTuS&0eatjQC^5Z) zZ>O}jPvGMR)zt?%fCcEFWB#uPII}-h;EU6=yXGE?oI@pfFVu5YU**-kLN{di zX)n+Ru)=*f^D`COHHic(!tdvM@Ys_vuMQQzmg@$mcF2msn|Hs}^_X~F2KarSeK~A` zYF7$0><+wE8s4a%Ub4was4*i;(2N~)aAZ_+B*hr52+*b`S_|YGg1O4k#9ThdbX#SN z3mx3}dCHCR;?E#F#}~Yk!kam$)36N)%MewYqtn?uQ6Jp7sC9NP4rr5Tn2|KuPm<>k zm2U_L!hDmRYzq|aNzj{qw6OocBfe`_57~Z-b6+j5GkK8s2ervq$SBM9d zyWQ#VhW7hi;;2EbCnQAdh-Y=wr^y=}f;z?i zHhFJ^{~avA|9{lv6^)&U{%>mVzuLZ-zN6Xi)Bo!JO-Yjf;jKn~T5gsVASB@3$z(s^ zK;Yr267>333k$@-F%9;w*pmERG)fc=5T%{+!!cQ}KapDf2ZjD=@+RGFp2K-<(Q30%#FUGXICU4iySf? zRZecXWFRxQ;$F>1x|Np z|2QbVeNQWCuPuYsfFqLZb; zz}r941(Z9ETG?5>tt0}%h1qvqk-!h{@2Mf$8)LNorb>E1TJI8`2tCRm9E~Tv?7`LH*s|aS9`^+)yvEb~x_@M`TrP2=umBA{t}GN3PQSgv33BIUQyF5- z2D6h_N{pJeKo5E_EMTJpi}^>4Icx%GQ^4~RQTiFOgjeVT;ieVu9rW~<2oSzUKvzE4 zcK^&avoWTH5PUx}6r$=qL8@so<~-n$hn6gSA{l!G(A)Ks zFbB@65S@X-w=98Fc7{ja0qG#^@BfCw@$FQ8{QVU&mi{vL|7#ph=>NFj{;SZ0?Va_l zerYj5TWdT0UkS7Ae|JkQQqug-;OTd9%aw5?Ffc%cgL2*ya-U^>{c=HaWVp2y6AxRJ zrMh)XYc|0*9In@axUL&Lh7=P$kNJKqL(W>YFmT~qXf`{eMiM9HF|LoyWkbo41dy*^|&OA8Twj`0Wr?$Ly2nu!E)02;AXUS1^d`Mc5mSjGo9P{ zMB?sq6A^c=V@s_HyNb#!3LX{-f+j~%0=MOv(eq2TMAAg4t&TrqkAaLu5t?su+fa^w_bu?Bw2%I!twX!OAhQBY7PLz+Ie}U_+ zxn_w7@%IU*+1Q9VZ8`Wch+e{)43~CuW?{yEYrJrMhS zfcSmy+J2^oXGQK@#goG^BdQ2DyY8Sjfw_>n6Zf|Gw|XqyYXoQbe0ZXJtndSW`Dylv zQn32{NlGQjstCgni%?0!KFRRu)(on{P^-bXCGIIdx208O>e;RJ_#_IF zZ2`9w6zAuPI)nB-p>tIu9ys z06T+kuk*O2OHj;4fuRj5m!Jk>VBy}vMz>z%b_m{w+peu^D+;YQ@zePF(-W0&*61Fo z?82|>Zb1Lj8LzL5`B{Gp74v@>Uj3gLPxk+xh5A2q#B7ECKIv0YQJkJpqyo$D|1>M0 z3ztF^8IRXZ)*ah?HrTG&@NageJT))WhmV({y#m;qOpVd*Wczp6htsjG#&(AG&vPC8 z5P|}|nb?Kea=bBEE`(?)gJ5mzg2}AZ%eaBqaO-mb+&nJLI zIW1R6&>6={f$Lb8&w>KfUB-dhd}G^*x|6q(tMSZkOnnhO2h-uKyn!CN7Q0B%Qkt1~ z%M-O^IR3IzXuYL2SdY>rn!wD#M|PuCPV4NyR)}1=NY}`PGfl;&I~sBNpJEbM(xPwEX)) zJ-4c}6@eJz39Sfc5S@B7Sfs355b1E%P@Oaa z3=)|q96A-8;y*{>hY_wotoxh)yvHy>FJb*(=KB4A%Uu62)#Lw7hodC(U%%P^XDu_O z=IMpB;{1JmEzz)!%^eRUrq}C7d?f)!XlMw>AOJ!|*jr~rw(1U5!H=PKHU5#e+vt3C zyjFNkDIJm7UMP(xUS?>}$UstOk9f)A%?jHwRpD|$Vw16Kp4sSJJLYO4@^8rkSTf<; z=j&vf^Tqz!b^Bx*b=&Qp{Ey`#A6TGU_g`%{{(+s~-I1M%5!Ir%jF6hpJobs5xZ_NG zmLI&S$osbhrXR8?Uh#)|s?UZHTj0AZxbs^HV3d7bid*bY%dmepA$F+W(gQsc)HUPl zF9NTypCwV>ltDKKp!F9$MQ^y!KbZXtT(p|HkO!fyWK$RQPtkNCx8)&{_>B;a!4O#F z#G1LVl(;%aVsGy05J5`m6tI-gHSie_7UcrV0{8GK@ifv!OaRi#z{<{GtOv;K8idkS z-d$8HW2V`~$HB9drR_@Gz$F;3Wf*}L-H(s~7Wt3T{7Y0{1$i1&-ho+NB8rlQx)iLd zKq=F1G{XN~F0ixR=W(=pU9 zCef|Q?CZaqOI8IDl5~YqDmE;s^kF*&c;527=XjM#9UL(dSmP0778oK$!fX)&L|JE? z?tI2%X`@Q|hJ{fg4$n{*jzTdLVR<7=B&JZUj9pL|jL_(5tKkUO=VFE7IRHv(P708! z_@MZ)VyR&0p=YPmKl*~Pa^obGo((3pSz2X2!4_?tHbV?520@8~a;c)e4axR+%h4ET z{EktmYV-;dX`*i3KC2kAFQg1(+G|k4oXl0&qr(T@>4Xr<^n@%HFpwqQWBLZPH_Zqt z#iIDL?KRe{oTlv_y%K4h4Tc|6i*a?lHV|P(lVLY33MpP4iT;zN!hY06;hCjhRSx2X zO@n~-Yq?Rd4a^~H%}EY+f|$?+o4@gg5ehP7mlWX+cie_59Lw&O43hCytg+X0!`49g z^o+~~&*7cO$9X&-MAREx0uTB3WmQTH>1VPxb^8OqCP&{B))`ohGttj6N$gb1iBhfa zq*KG`-zOFDNc<9$)^oI*k@fKe?O?J|24ywX=+ynD)4WM;!t z^o;tT{>#msbh{$?&J84zu$+V@A@!4Kh1#5fQ3qud#k&n?-4_oj@94@zIF4OhS2)!< z&W|DKjH#hUhIj;=nvGB*w){-Z?iR|YZ5Y^7#eK7^1mHDAO+8hOa>Y~>#O%||7d#EN6!F^l$1oa(Ypqop z;cfbnDJcdh1{E!KS zN}tyX;Hzr`NeDvoJ(83*L?RrnSG-~h&mhT<^A6t#(&Xvr$mziI!)ap)Q9NAd#F{2O zKI#QJW;H4v6RU2=rQFor(^1Lvl|t)fCYO6EgxT>>tv`4x)GKdf?dT-QCrMkvs1h;Y z#&xacaXzCGJ7>wNdyVPo-w-AVf$2%v*<7p*#JiIbZPzn6c>t3d>siJajEYVX?nXR` zjg-W77tI}#4HwJH9g$@JMzNL*$tEe=5n4UX!nWqG^Pd`0JvEG*rq&d47)BC8%SvyP zSgousV*eEwlWObyyCKqhX=+dQ!CaY42 zzSloFER*3D?ZL>gT@P@^tHt;yoR^9Zs@yVT0`;Khl{KQd|1~e)nRE(=274a1x5mWo z1;wC+IH$4Y8496@6paN8*BNEJ_((VohHc#WOvIg)_lOt@8 zD0h)|KD9`;SWza$Sy{4h?&@z+9j0E%onOM(oVgcJ)jkK&t{SQ>wpm<~w#crw5s^{7 z;6GZDi5x$;6VEcFSy%#DTdHC?FBjeFe^f|Ia%u|Cs?b>)mdZbXZ&Duta>zJeSgNv! zEN+H~8-SpcL}-fPC9>ce(!4XTk7RVqf?=T^=s-BTe05_;rVn+EmbA(PdoXhEqMo2< zWX!-qu_sALI$v#73`iT0ge6kU2@^g%Q|2H!8YV4#qe5dpp4ofi*ba8RV2d?%YLea( z>1vws>9I;;1{t;Mcp<7Uu_;N~fYcFw?ssXI_N*g~je&e67*bI%il3Shf4EGFxX+3n z>W8vDu)HC4)2PR2#V8?vhKotk5n>RYk^%8jo~#r(JX@g^_Z6vj9B7+VErHBUkDrG` z3%OEwK^UFZ=4_c|QM)~~d{DtSB~y%*D)BhNcGIqF)S~hj7u?SObq35v;&D#rI3=ZA zdrAJ}=xiU^@OsC>jThd2QeMEip%W7NrVot$tY7~2A!kBSH=mD8A28{M`QYLZ`;kpQ zYwW~FExDp_n|6-IXYguF5kYhXXFoeMtaC&hr};Keb)AA`*E1SR<#RA|EPn~ zMhohPqkxNJg1wDAOY^QOboN2V`l!t%EH;V(Oh~@+CcOTZ@2E+Jvbo_lyV2}NE_Q4- z{N(6&Uhm^^w23$BD9G!TwgyqTLn*g%?}(s#5L0YiNNy1d zmVjuRh=2twu?7t(f$1)1$hc$ah9;{m!jmkb=RnEaD?Je5qAW9d_D>jN_1-pw4=r14 zFehgLDcy|xHhPkMv$^apQfPi?KCleIZV&yeJ;+qy@+O>_@88JfRA)N_dQuc#e@ha! zas4rRAkM$+R99+hEdIy6_XJJ_%rX znWTj7YbuRjA;SH<zgsSK7)D6g%Ymwu z;<o6bk7}z@^S55rq;}#TuCYNg&c_d6oIhxOpMfFQ+kWskKLf(X z=eazVz&{}sB;yn$M`_{CEaWmifTJ3sb(058RbTUr5%U~qnfopYTL=@9%Av3!dxL1h z{+slr@W9dL6q=mrZ=QG2+-JoSj1@BS36A*}IUoT;8T&7JfC8pMMvp#p2}=c66g!j| zYZ=Rx&~0X4F^4A$=vlBG2Y(-$W14u8j2A=c4`KOy;-5bEO^v9DSOgEiiYQt8>5=xn z&=EB4FP0vTzZ$m$Axv4@L?%P31VH6098RC7($j?9dA_ z(B&{08KD-+u_Vm6l1hp?Vb=D0+-8*XD@ePS=r{Y!Hia-8NwySXwHD$yMR}@Zx5+x6 zpY8n*lo2_(k4&E`tUavZA6%s0P7mAdPl>CyjhUVuCGJ%QuuCF3gr&;Z?mQcZWqD)D zeSy#9$`gBtI`sBK6D%k?F5I-50~5>B_G{{#HOJb|L<_YwX+|Cp1~D4CLJTpmULlUT zPY`YL_|!3qRQqwa)QZgD|7MEM-1gCisRz5kA(d!RDyAOqyE`RSkI_RSzsY55-q1Hy zOBbtz8Cv@nbbvdjpxgAzti9ofC|uhaoPazz#}{3K7Ws1Y27V70e;Tmq1N79>6RiT! z>HO3+^9R19?)lV#Dt4o1=DHU$Y#1_s(Wp=C7 zu?#~n;R}!;G-&-1r{^X>|8_wBCz8bq&beZcxql&arPl%ZE+>1uyG2zkyRqS}6r;d2 z1=0g27Z;T5&i=q*1G5^cgZiSboHK^1`O%&1va|ZKv#4r4Y%I+a$>PD5J+4v%E?}24 zfvS7qEq{Fjc(dV?jgKL>Ax~%6-W_LzJGLYP_GuE`78ZcLIso08sAfEXOvTSCfc~?S1<6#XxBvBucKpps`hTIr|9Rkt?f(Oj5HkMFQZoNV3qADzBg2;cZ>}$n z|6PWyZ22F!uxr7!1+wS}A41GKHK3BuT|!I8@Na-a8(_mw|M zlpx&aMHKx;YNXjbLZo{$y=&8Ry3N#Nd`5St8?cv7ihLFdP(Q3!5C_D4*3GR@4{cwc z4U7<9j1n$j4ln9%@ek|)e;VFw=TNixm|X*CwM{yVzteDiBnGqgz%tB2hBkw?cdq#& za}()XGW#)|W=Y7m|GmfBQySl>i4&zIhA7Y|i2p5qiZ$-b zt5aH9G&RcKd~0zF{qMHX4hF!EqGcp}n2A$jRnjwSdUi=Bh{-;B1z$9C#OEt@B9E)6 zXw==IvXNtZ-jnIQT6~+MvrQE7NA+=N0cQoWs2$y-&{m0OWk%HLw8j$AlD^GU32j^7 z(9`+!{?3%7-VU!s!F7yvm*#r40_%~M#;Rs9==|WUQ(v5E-eF~ewjLzM%uc6Mf1kF8 zn6g0{zP^WXJ=`r||r zIt7vZ4fC#79wA&-$9Q`JQwALjUcrgSlZH00l@Fw37pD%G;#$daXordd1HI zvJwlo;EkB~_}w(*orD3zXZN+;?HUz@P|mz7lJ5Q};nSv0FH7yG2GL)4TFFQ{{@q0L zRc0) zKe@ePCE;RiXa;^^1l)o=bymrvr>=_2OB%fL7S#OZCOWkbf()z74SZMLOl36VsMbnn zaDYgDBAotXqG(X?z4M>qW2Jr#LH&gT^FjW1#YgvlTztk3MD+hvbjga=vI}xZKG!VE z)+l9R5n&Mu`jdRXAl-gM6J-9iEwcgiUbEF5{s!jaE7FgN;qRKCl_bMx1Fm24!;YXf zuNYG6Cr8&=3ywG3AMaNS0Dk0Dg?7NIiKoMI35(47HIis3BFJ`vy zEEfH**Q#}0JF5s_TfQ=Yr2DDS6Vnpr0ELH{>KRPvCg^ToK#Vp~^j(2Ak?mxAv;5ov zUgC{MXUoj16c;kouTB@4IGC?ew-?1h=te1XMglu6mo7S|^PG5etFP@ijl^;r_j?3< zJL=sQ95DAI56#CL!Iv6R!51 zEP4uUhm*bo)TzBe8&ptZl5Q;3A*{KLkc>)TXA)(et|F-)sXdbK#RgCG;|})}Ehn4~ z06XR54xr)V6#bk--BCHH5iQI6^IPrHTkT^!%aOv|{iO~6mjpXFR7{|27xRdrd_~G5 z>&*Y;Q@YkXzcFrAp`jUU{Zw8h)CH9Uia=BF3QG0`wYc=hSjY}MaFAY$1gnHq*xLoN zgsA(!k-+f*SL8mw@Ms3m|L)tS`Ty~4|98gM6Wj|)dERX)Gv_RQ>~Nasj7Y4Nh$x6L z2o7c{Sj3R;@0=Z&AOkqym{eA}UF-I+rM%LnHt>uv@pdE}0$sqaM@Pkl|3&-7-C29b zby4nhK2@6U(nSs-IF!BbPOffo$9q?~$J4p;QiaD>=lj+ID1cr@>p~3cZnTRVvaeaF z+ol!aDM|MxR;cDJ3g>o2OBq`-e6z#DmCGmm_iDs%`W+0Xlt{r&$cA#K{ z!##cE+y;L7Z>^ydYqQ`6fp4tJ8&xGXL9v6$Z2;q+m+@Jh?-t=AF&f6c8Q_PTVV`?npoFDnS zG;EgIAk14-7X-!ecSs+u$qL6T=7(%#bN>XO*+4#JFi!J`LTY#t5)yAJIEWT(eHc+C z{pNw_R&`_)POD*9GY$db^q^!SI2O*S-%#UE4P=*`^O-BA3D-8-m_}kh{Lpl&luH4P zkT6x@0PJgo@N%*G0d9gd7-j-tom?1+x?+Wd`*W#dv=L z{;gj)e^6>@`}=YF#VM#Zm9|$FdzdR9jlY)*J1;?6z}I5nS9MlaTNo?dBoHqpgNZX+ zYF}t4at7oqk8Ltw;+Is`C%mK5l$V#5SC&_mYP7k@t6OV78SE>E#+AFSC~2!TnHj4G z&t<5!813}~N1|XxU4S@L-vI>-uBn`u-?ax|`>^((@^3kUKr+~}IAT-TdL(l0K6`3a z6=3A{7}rl=T0P0?=rXPC>_L01ZzgK<-yGHtH6@c47Qj{$}*Ay{(hxLS*DShV=oSvpfT6)wJFXjeVa7zoUW{6o+>$j^TWWpCV& z1)QGzumv(++rJ2?9(F!yTR%FT2P#g`%jxxMSv1!c_3W6zbz;Sj8pEud>YG7KAt;@) zF{Hn&9@Y!3a25{@4Z{|3Y-$`<)b<~;%)D57Ov2RZ4LQ#E#jKEv2mJ0Sho`Y zZI)dav_!3wn~U0q@>u2Qi8=wk8XnF|HV1ETY70NrKod1ig9!G%4&9EH@^1k>t)Xb2 z2)w$et_z1&+O(@8nTQ#9lRxN=UP-|kZ>4R`_yEIuJ8$9uTInq#d`sbY*S64dc1K_U z=;=vb>pP|F-8#c3b2{4x)$_PDF|sR-o~x1rV_YICI-OuFt=AHVpRH&e6Vn6XPm5=EnoYYi%3Fo%)y%Vri(=1p+E%wf8xI)kbD{-cOIfhS~>G?A4 z)CwqYu1flPSTR$esACQhk6lp7WsAj`GYY=kViR-gyPl2)Q$CUMG{a)kT>C(SkPNH@ zHWC>UE^6LME2(5q$?s5pj{kTEWf2y_}%{)O;Kpf?@=lDNPaQ)SHWqs>oaoUu8;@~3c7h~h(bDd3hF6@c~@Iy7zD=RCe74hh6}g%;=gxJ13)`pe{6d7%|l1Bp16mjwkMCLiZ6AM z7fSb)hMdapmE?t(v60P`!sP%&oRN{`%G3Cppq6~V&<{l}2&Prh>AU6Y64}zL*G6-> zr!r6Dp?LLz9w=;Qd&a>21ee5o!#icTdMP>?mE6ZbD6W%WuC!vVD8F_}i^R#_r;P7m z5=x)BONNr@M-?`=0RpH-X0lr1o<)>VlE^jrH4YI1lPI&umh9T*57uOKP<0=hqzkD9 zbYtYU5HC8z1aGPAgaCh&OefxAh3Ao8$%NB2&f7IA#Gn-xSh}*1R+JE2gOJeP&;92#&FK)nqJwnb((px ztCYo5(v>!_mRCQ78!{*c^nuL1J#vM4h3>rZbKM1F?-oo7Q>Q?XDNDP`Q!uUq)Cpx( zq94IOhQP=#>|dE%Pr7&lcKj!itA#<~8c5nova(v@IKq5%+{W76fmwD~5DK11))eKo z7O-SlHiAD5XIfq`i9Zh9w(u(UgJ6rNR6}icVi2gNVr}KrazVo>VBq1^Sl(EeL!!Pb z`gAg=L7=R}A(WgZn}}+9cVq=>yoe1WPd!R~l55~|nbmgicP~n`7`}#Zrl6bn3!BQT4D*$km!lrZ=K}uv9yEn_i0(f7;E<3=Kpc2X6hnZDi=PU6 zb}c2xE+>50khj>LsIjcnA%2JlyvY!To>-X}=KRa(@4~KG5NPd^Q%&A56fp_gfcrbq zf!O5*8m1G3(-3`NS9{j~z<_ov?mSl2Fk8@y2oW!gY9HYaFtk-kOJum#%55VIF!cZ; zv^8rJo7UhI!sU~44ATxpQt`D*LNK&dLhA}{r506XJnS4Bck)TD7_G39wq@$uU2`X_^7ocUK#GkM+ zAFpwE_A@AK9clDZ;Pmn1b5TW76_DVevjtNWS?XLBb+(4W&d%D>N;40A@i(M^;~BD= zatdCcn135E8?8%~!~6YND)R7*s+0>55QYN%J7YWv*EwtUG zhWd4t89Ujd$ES@vyuZ|AQ4wL~>3C9!w@{^m15o#*<(^7(sBhOc76*I{oU)n*DR+4U@ zK7cVj_1ZOS@KD_}S)tK}+ym^!6r&(T42j>ith=885oRBs0esZabtI-l4YRHwpvu(W zg2lJlPv~CMhH;wYqCCFIcgRDnD>;TCV8T*PpiN)(a|{`J&I~VD+#sPF59Zx)k* zKl!H(vh4ot&N2Y&vXzv!ES%#_zwgX1M1n_8R=r1BA~FuwtN^6T4>j8S91deXs?)uy;r z658m9f#e=$RV!j<2__JDN!StS@!~@w`_%NCF6P~)m(brj3zg1#PukF-UV=vYxf5Q4 zG@RLcpGkl#D2=#vlk=8D;p<h9LGOHJ#Xqw%kIROf*%3hGtKA0H!OZ32)3vjejW9~W0i zasazL{cJI{;DzQDcnpZ0)F7tDV+rthVY2l zhy^F%h%F`Qh+P1mGyt=I;B_gTA*p0E7GH)!0c_}VJd7{8n@1cLinAQ^TTOywes0AT zk#omsTanO-f>M9z38{^n7g?auG(Yo81Qv5tb=hf@Rl$m|JPO#9aRUts(_t6yyP0+_ z)B(B(VIXFKZ}jD_)q;vR_c6!E2$>p;pMIDhMIb(8gHI3Qpebe?N{Kma!oI;*8bym> zY~&GR2iQ*=&CAhdb>j|0w&p>SSc-?@+hRt=io`l!MA~puuq=^AqG~19JhKh&kIlxM-!72jlOKm_dbiC`%?}rQ! z-4IDdJoiHxAi#5P54JlD--PAJ78JUWU!huv^C`N`m~VqP7A#sB1alyQ$dR7? z;$hC<@-ydBM(1P#!{l4g4X*bT?1(vaH^J;sSbhmzbgYxl35gBV(#Iif(?Zm3H2qZs z0&)9N^eG&{A181lNx=FW8!+kci%O>D{uva+T`H)?+d6E5G36Cp@{&wSI>T{FZ;kUr z&7tlaee+8{;F`T$+O>?0g*I#pan{vdX~o1h!S&VO-DJ|45s6vi(}UP_L8)1e7i)hiT4aU3en}g6P2Pn7yiQ8 zG6`43)!)yE5id54ZWW}9XS>}cl&M3$fjl)USyWF_n|stnHo={V<47g6WYBPbgGEbh+FN6U#*)-YWK zFJ+q#-n`XH9zc~CV`>$w^=HBG9q5=b+`&aH31#jCfAnHE#j_Fqn`eSrk%?t8VPlLM zj`GUMV*Cf1A$hdU3coPPK|TPeUCVoDVJ=^Bx|lUgp)(X$7jZ^nQc)yH=xCX6(l*HW zK-VZn$f-KP1w_47Tdc;2Cu^^QTWO8wqux~;1C<%}o>#;_L8P4cl{lrCVtF3ijB{&Y zuF(t+#30tn+5Ya!*CCnVFT}A1%d>3Bc@~0I21+x10}|onb8q#AHJcl_G1wO3!08gf z7!IoW$&czJO7FZ zqC2Q7DpOrWVTx?3tmr0K(z$TLY;G+mC9nFUZJKH8;F_PIF|40inh|MxFfRX=iaIiD zD%}M)bUU_*s$LR3IMz%Z3wK&R!wg{6gj^3R#J=9PCuIvd)fP~Cg5|6WsiVbTdxB!> z)F6nnDJm5&$1yF5(qnJjv?$$mfTF*dQ%KS0h zc_My9{m_NSt_QU?tlIrq2v2K#%5f-GQ<_;)@l)S12=$iQjd+(GVzBBIxjB=#BX!NE zYfK+X(VELxRQkNmLg=k+fNkNSCu313t2{*qx=25@lG-K&upOpUU{x)gO^MMDX;Q`x z0O~-t9sAh<%s5GIkf$E+CgjY(my*$E((6@TR14%c0PKLh8&K6PS#hr++uxktxm%*+ zzM0xTF2ATyU)yZ7sQ_&b;K!}kYV5?G`K2GvCfLkwvfUrn0e&wym_5V619CSUUtrqZ zm0N;uNF5XzH{qn-3Imo;fyq$ah~V3HH4s}c+CF|aNvnVsVbV^*=3aPydQC2wTboxt zEI-(xiQ9NLL>~B_VA&zlThBXUFB5^+KysLGGl@{%bdkQ3Vy@SQvOnJ@834LzDzoAXWmha zUxB;-(kj#FgvEQ6h!Gc(w45jm>9o_M(8sA3lQ1R~rbn!f{&Gp%?}-tIwT*)W&=P)H z+I7|gKO}M52RQH^Q^p$j&qpIB2db6+iYSs=?CS4HsT8`0&`o*`8o(bWS*Vy%cdZ=3 zr|DDov>chI8CUeu+h8W9p49YpB9l#cRnlpPEFPrYV%~WAy}>LeVGXO^l(qDHAZJ*8 z{URrG^}F6IJ9|HIwJgF1kW-X8M-zf6sSoUvjXBz>8tj{jB64PgTZ&LJsh?I2)cq}~ zEawc>V=bvu4>%^EA3K4)Q#R<#+Auk(IPJTR$T#)eVOTY`d!pLEegAD0z)@ z;JRvF*u^ddZ!Q1XV%4vC^4K)(LVnS_=`E>x*=Jm);nMR)fYo@}$G>27TYcyH-h9XC zHuJ{Tt^bD6t@8=0S%=eY7}}$?0)Gvm#`ZN{xV6^g={C#^5w&8x<;MK+tq*?fu7dG3 ztr&r|p138<#N@538kwS^{4`KkAg z{%IaLV0~u#T+Zfa9OdiJB+phYbI!hjzku2cZGRx0G! zvsEgDxIcz^<@DnJ_6-F{ANyc>P4Gw@yJ33O1&{WlzD4E-Kdiz2%myb)XlWnq_z{1y z#=1=U+#h2c>FptlAlhA^1MT*=#n0hlT3p7p(F7^8OKJj1wvaR+nGLCdQRFjzqWFa{-9kOzSp$swl zX99t68!pD2h+M`!8B<<1UdcQ(q!{7k5uQ?hU>?+waa!~pkTHcVd@4`?(~)dkba)z& z`gn`ph*1KqW*an%#B|v)Lo1kKDeIOND05nbd7OTAsD%>)>VtG##910ZhC6~)9FmM9 zfEIyix`~TI)UkT8MzJ7-uQ4Ec3VfmXuw;u-JP?M7|3W>_W(UP)hrqK5Vvj2M{P}15 z9$?^(BAt%Kl({?1JbmaT!IlGV7QXqyA{HB>>_Ggk(#QbRq_NLA*65IYC7?6>lmkMW6xc;+|TDaq&9nL!q|$Ii%d6ZXRFCJ4zI3!~(u%7q$kmaEJ%xYoXHFIk8<} z(s-GNxhy)YDBhHYY%>Y_#=ZH>v|;u-9Ex}Z)rGEJcHwL#ZXY(Azp0I9j*36=XdO4W za6RirbKo&PxfLsapp1SjsPeu!5;#w<*Lp`55~$8#xEk15Gv%Hw2X6$x%N|iqd{>r2 z(AZ+JI_;3}g~DCB?CI^O54KESnIGNw^|1LoCgkOWT{{=o{W@bE*fvqmrtJsuG+qVc zz(ey%Z5keAr}f5wZlpg1?mEu#jiK4dcjOff)zF$=pzmt)KGu8)cFcxNVb>GbVE&Q| z`!pd}XqqiI;*6dyGU%eJ*^2RwN1p@Q#HuM$;t>WFX#^2*Up+kKDsK|?v2ATa)s{oc z*^JuIa`=P!--q6U56&FnZOSgJnGhgv=GqJsO5%JreX)QOfh?ZC%W^(<#f z*dWYD_NWF8>2!x4-u2n*_6E2p6GpN}QZ?SGytt z{gsD=MfF|K*ktg-(@t` zhW}xQrU!MtN{PEe0R`91#bHSD*u)tiI0kNn7{ZALVv$OYJcLhxA*W)6j!`Tp!u{(3 zevpUb7^hDYAe$aMh^yQOX3KdG3Zfmn+Y#dmJnA$=s*V{TLdGnldB@M>I$t!1*BT^{ zZiYcRCCe(3bU(*Al8nVxtUtK%yi0E-7O6edAVAimpT(Jvq08{~LL!KmxdG^M%QM6TiIRwB>+0v(?B3PC% zBcXx3lsPlv-;!|?+bH(5MY7c5j2T4=MEuAlLwXvr(IR@=k;fJhgkoUCG`36^E(D#s zhcy0>LjUG~BmeINH3ZeRh~|^cP~)Io|Gn2d8I7BGOOBf<$^}a8P!1IOJY0Dk{VO;MgWbNBtBd^ znB9OwDU6^Ll~EsfNjusA1xT1&i}biRc1X)jY%=g`U#fg!e3x5ZhFKZ;GuffDW{ABs z%#mJs(I7?5FW3McC7gpxa?!A=^^djzc{TjRE$BW$r$*%<<{-r;zSe7;*&twlbf{1R zlm5D69=y$9a%;ro4alef>JgsNq?_+(S{>={mF+*L!Q?BQ6c~Dg$Z)4$R!@M>mllX4 zp5BVC5cYjAf{xog&7AC89eca>(2^fWUmT2h1D#0?t4U2d3uV*w;XM&;IR3>?Y_|`a zb!}<1!#6T%j_5xb(T;ucB$^gH7&_@wmhFRVe#;2}iK&@l3obB zLkbqf`Je>#$UZAzdd4|!d{0ic)lAaoe%YMpG@rjO5iD{+sR%_bW2~wrU=PxCuMCYL z5Ty8oMc`yJsXz8ZXch!{LI~=yp~B5}kzhhy49Kl8ns4E}Q_N%&qt)&dcW-OLZ)@Y_ z1%-vtsxT(?_!iT54EaFdZ)DPfaky_7mnrgI$1SNEKF>U@2kT6&4-xg7pH>ePJ`&?w zPD_Y^O7DPSh^Zpd+K>$^P|x;E&b%OCn%}4>hIvgy8Ns>?4}2RF_YKMz1|L#Iu-6uO zceJAfqNe88U)6Tm|zNK@~rzL7WwvN_YJof zwpqiPaf;wQR<%c56oz~uUc^%kfNA7UkV<`jwS;>_Phb9ixtae!cZU3V869BMq}6Jf zD6}};2fkG2;s!-C zfV*2{#H-s&)d@vQN}J~l`Rny1(r9uDp^i>(l$Z=JsAWotuz$Wzg z6J!|P&(BOlPXp56dUm5U+0RzWknZrt2x?*{znTPRza zr;GfBB5`su!}N!yc&F&GBgaQ`ZTRek?(2E>2Jf07CfTxMx0;6x{}%kOEwc_RoSQW+ z74fb3U)r<4DxmKuK3!ZTxYo#C5{d(GuZUidgC_w0Chyv;-Yp=N$3BU_FK}w}pie+9 zh-#~#2Vk3$yJp`M`J(Z<#73gttG8x=zSFm_4Z-Z5dz1azdve||XKB3RWk?ot^6N5ah{Fk8{Lko5_r-7n_jI-1*aZ5Nv72H6$;RCmAZaCjGI$)$@ zxbi4X4j=;A!7=q9jD$pcHdBPqF9HI+DRZkTG=z8FdDl zE`qlFu$P&Iv{=H@bUZl#X#zd!!w}18l&xwunn-o;dcJ}(v|L@0JDf*Rr@_uZPxcFp z9WDa^@7RSQrfqw0+*rk-C$D=a9cm3T7a7!OmCLm}r17c&Zom?QmU1LIp^pC-Y47~q z*|%+rR&3k0ZQFKIv2EM7Q?XsK^@)>;jf!nMdD;8k+s=Ncz56{syw&Dk&}Uy`j`0#?_T==4*EQRB%ZNIX;^ zAreFF@ak(4F0< zx0HV?`A#(@Ck5!yInV`F#gW4c=n$zR-^&CT>I;1ct|oL@a;t3cL5g)P;hDD7n!cEy z`>*?+vz>G&2q6!+pJ0*=pZ~VKq5-{J{{5}6b(j19BZgA>-x}Nhl=)eI%lt6?rv5GS z^AHggtEe~32L=&KFu@{2bc3P81VCJLpirizxonCGWR~|1OEmf2QJh|8o##>?_fw3~66F3Yk22v7c6cRJlL1BOs zkYd&4BJAC1aZ%w{U!wi<7~G1b3LK8X#jV{cG*^53jdyglV9)!oif;;WRo75*a=mts zYX?|__1CIF#K8yl$BK#r?@z09bx#9rwRCwem>%199QAETe;3T1H&~ERyedn}+5=ll zvMr01bs2bfYcIs-eq51OB<)9-(;Bqz=;;LJcX5L|va(c8^E6m_OT8mDgkdrI$~y0s zvt>N{s!@P#FS$^%gZ?lmx#_)NB2#E}jO8Tb{a1Ha48-o52v8$1K2!z@Bf~aR1FU6M z=F<0?w31+%w=i3)m|B4PZxX+#^eUbWc&xDLv@88ke{Zdu(gSwU?%ytEjSfqkSv@KG zQ>oHkfrj_J1Mm5V9%<{^Fl)&kew&OFVr%h6o=Wz!*h+=UwY)sMQtC^w2PAkb>KfFd zhx1Xjuya;YO?7glk|6i>BUjn}&FDMUHF=Pj| zUXHs%4=M6wSVmArLBbJG;^lH6R7lEx2gx5$`OKsun6hTOlb}LMT5zY8<eI5hDZm}MI3BQT9Re^!uxpz{@N;d;(!t?yE*K#J@5o9& zxOv!Y8UTpA5`c0%XhyRUPIg8^7LKZO5BgfO*=5cfUS54bGd$%G3~Sd6Jjo65rS1sI zS5zm%;j)b8y|$gUX3K*c@`rL5{obJyoc~3DQ&&(nP3A2%9LLIzXjfLYwMUON+j}e= z2e$$A&$1o+3r4uQqeE>w;*E{`omjVw{^_mNf+(IU2NaHMwyrUF=W8=NyV+}X9@RZt z?7w#5FEQ){SKDSR6AhscbA2#@Vf^cMeBmLtKQ?&tcY@)| z0Rk4!2_R{A&Q&1l+W`2Du=tgFIe-M716qsq%1!`dbkAlO5AICJ@^5y0=WTf(U4Ri> zoArMPAtRv z7VWgY-wN3E>>YYTd}b_|*di4dc~j3K27 z@x?J!(IS`9!3J)^ELJOjo6a6O@GfA|7X5A*yEBWGa2O;phX6DJ$I9+iYGY}lQCi1^ zV~Avov#Q-ui;+8Ci>R%NxH&KkEYKoi z>yJEJ53wlCai+a%f(5ql5m*tanYb&jqW9yZVDi4;D+P)$rYq_g{34>vT3MB#brx&^ zYaryjA6BoO+PL$IG1MwjRCH9Q`5I=_VwzgmUjM7X!iE4+^iz52se#W=R>Zhak50%u zTufLVW-km~o%-6J^y#D2Cm2Rddx0K>@sGw9({KHwv?k?0h&bfXQf~}c5#z7fO~tcu zfr(YGfF^Ci2a>OP~=_>mx)}n-0>GO4Dk~*z#&CP>>+j zd`Fas5~s z{+@fg^See>8?w7Lm_ua3)-b6~Flbq#%lL&H6&T_}N(_{V2KRTcDO;XvWha#;9yf$( z`63(GA{jv8?87S;7C3uxHJ_29cv;q1MzN<8``$r?zhwXY&Ev=mrkRD9rAWy-7b2Yq z8H$f8r0A004F`__U&sh3J=JIrBI!tK{3=to*r;x8uytqbYv@5q$U=X4tI0} zi)^gU+z5ZFN0YaNXImJX0Lvad*8nSGvRtupb}p|yd*Jr>J5c49jSXB3%h%>K!w%!w z*x)=<1Q{=w;tF3u91_l|SKbg#_vd@L8I+6Lrm8$w{~Cwp{}p%WP_E9cs9Y3Infzq5 zxt|dj&G>4e;o|4skc4}ZLNYO7O5?*Dwz-<^vG)hY?X*K~J?7%HOq3+w1#p%}zEC1L|zX7$^SfzLO|s-t=5 zpbr}pLM2Eu*U9YWhJF+Velf{CNhi@KcHOehL!22AcF867BPEuxiWYy#Pccg37Df8# z!J4tbB8i-2&4>Xhv&h1hO^9HG7E%^0-&aXt4Dm7a%A`~RAg&AOr9QgfU3O zuB;MfUv40~C4yrU)%rVpJgH)e0fh40 zYi4DZlCnXqu1uL6>tFsDHN+{ONsMY3Dw;rO*QyHWEa@q8p%&CAa%Zb?6eA?DC#)1K zUXFD|hIl=DQu2X%9U1f>XnLwqSXrEE7-~kiFTZm^LZC_3*j7%B$Z@R3lq9o^Nu7g? z(DTApW!+4MBpWhagvcTe89x)<1$U<{$;(oTxv0J2S&+{aQ0V0*7sZ-0!X3`L(E8ss zQ9Lsah#EMt?)Gt*RQV-TUjRlg1)BUiw5#6bcBEp=R5*FvHm3Dy@>4!S^1h>nEdpHH zTN{|LBlDBJjG?RoxYl-7QKEbO9jkIVx4#t>4AIN%-hG@>UvSe7AaH^v83pEKdkVru5>Nl&j&y`=G_*CbML6mq2`6K613PLs+}A{PX6Hjj9+xzhj8G^cJ8A z2HJ`wM>M#vq_Ql28?B-83?&VRofOK0wii&M;oTSIdO4B2h!=D+nK0vl3{1Sm3-*%&E#+!x{ zPc~dsuZXhG3?MFyCU=Y@w~#R+p4w$QGeS#x;!9U0QIBRD>~)Z0k<*aG&jr6G%^5u9 zt}BZ!l))8RxsHLa>#O3HA4Fku?4e(Zf@ymr!|Ptr$H0h+cHsppJ2S!)VM*v3s1x1F zg;zHE9snPh`MIEp2@z`Z;E_dE zaw&8m5FCqGUAb>;42gnmxSlPMu!2boyfHLs{9HwK!}mc_2PxtYbZwkWn#=8Cz0Vk( zG(sC32K(R9!b%k|T5smqG7yxgl1rH$Tg&Xu{d!$^7Lqdj2`XkQ=|Rms?}h{Vj3#m9 zsZn2Z28B$>beLUBaFxMK{i|{J%fU2oWGY6c##!3AUrN>MVp0vsDx+TXS#S*8y8fG$ z3*u0(z(uD?v^~GDbpcdX9N+d2OOq>&>35}WQbs7Iu(bd-XS`Y*@NU$o*p%~$A$!;fX1v)V<{wh=MF!uV)FZl-EyJ}fI!lQI&AGjP%dE4`OoJiWALl!!E%t80lf z82V*UI8e_!vypJAJEz$8*vyM;yRUp%Ar_86&|@F%-Ev@(*r%*Y6}zgujtB+O4vn68 z(yp!Aze(X@jNEPd%XRdGBgH^9qr+>4RLYQJ-qk+&V~**lCPIAbz@FS`6gwW%J*>>a zQOxwFU=darGIyRfKALT2a5##wkZ0nmfS)736Ijb?1wEd0ps@Dm+`A%setGt*S=0u# zuV%~;^`&0y8tdmfYiu2)C>3NGqH&K>P4Y63md&z8KLK-?D_WVi^5;8~sgtYekd|8V zk=oR5c|Hay*XDKtVu7aV!#T8**{o!+p>?!JXGh&D_g>;j{~}cA+`7+NvxOMp@F&Gm z7p+;`y`jqG-(d`mdP7|2eHS18ObJu1PB0Mg^WNU>y{L@ZX*BPI~{qT z3t}mcH&V08D{1A7h4R8znFDHr8#HrxTNCue&*2fOIr%YhiM&;0;H%l-7pKipz7SX7 zM(bgS3kxj3tH9?A%YF^~jwC2d3qBAHY7XRv+%U7Pfc=goD1D8LR1eBAuTo$xG>x2+ z!VirdT_DZ$8W6g+cX9!`t1E956JEe56qRIuEfb||5H)~!CfYXvdN!8Jw{Taen}w>v zG`O(MuwZU+RTm;t&|T1YZc{I;|KsB3mjMaTg<6m8wgrSa6yF2<=yhsSU~1Y7eCC36 zk10~Q>;@El;b?9%%EtX9m4+PpK^mw5+l{k(07PIr`Oi1P6ziY15Q^jVPzpxn1WDI_ zowAq3Pj6>Krk19jx?0?huUfrr6@>qiA0IVe1a`4w)A_#DQg_)F}{fre6{D9wh;@Wvqq^ zqmXJ^@8b&SA1FaV>jms3T%$*L*y7I_D78D|pnCthP;3D4F=4)~+Eul8qI30R&ZtgBMBK)V%B{3?J6I_K|h-_jIZ4Mg6x zC*1{On)_g#C+kZCm{Y}aQ8R$^)P5H7&Ny#5E6z+VU#qhai)Vl9VA+RPaD_eoPmygP z*I~p6d&kD*-5MNO=F)GtxK4TfmOLwL% zV7Q{9iRp0F#kJ*31Qp{#pj367gIPnO5NCU#COCk}o2ophT! z(~d1$;ndF@b&q6yvy>w*=k;w>e>a-lcdyMlf=kglkzsu^R|XfT(%Bb z{Tcb~eytSQDgIoMbpyo#IPckioCgh`m1Qy_N}Zys+={lJA~BPXKguvA8Upgox`X1 zB(ub04Y5r?$5eJ%U@m+CkFlH}ix>*S9AZ-bUY^xd(VXL4a3|HN<<{?>m$H{PVZuU%Lf+r;neCIGho3 z7U5++w3_T3aaMS>Y77$j2YBK1nWgjb(q8n)RnMl$A0$mQkTYANc^XjgzBM^T^M-J* zo5ez0r~DyL;xDZFOJ%*)X1fO$ivA|MFDK9QSpH%>A@5vGO2`67i0_8$h9z${4^S56 zO0uD9_Tj^~8@~{1Zw}oAP26R`FD~IKw@w^iiz#xC?`8t=+)+%h1H7;GeAu(CHjZ2b zU0P=?wNCMU3iQh`_~(Dm>*VaqJUzFN6GPo}^Sa+za2%@SHw4%{Vq=0wZ)fK-R*Y}>3z-z*y=7POT@{VcnChi3)&8=$>o zEcM0Lql4)Nv^yZd2e=*w%Q)axk3>3fO$F#1v*`xXY)k8cY3zX21J#98-MBlz*_GV5 zwZXgh!9AmHMED18?PTBkAlMBnY@@&9+o3_WDjK+kkA~3|GHg(R1N4kQH|X9S;>!cn z9kDlP(EC4(z+yuUt2AK{qN5G7+hFmLogxfE~Ue|c>`IP;I-KugQKse>QPJSgkS6SaSkIH$hVi*8=AUjsoFUvmi z6@4HhEIvS^ZS0C1 z(f-@-n5Hmm|AHUi=ymOJrpVjhfjXk2u?u?k!a3Ukuh8@}D7gm5A?iWAy8dspN)3-g z)`Me?oi991P2C>s*}6yNLmubEE6`MnUyyTko^kVob&mN5{*jLVKxkGFn>IcDTvwYW zPJp>p@C~gkC;ej7Z*`nt*ELmGtJF5#s(}RcaGGXD{Ia3nQaa&B7QI8|ZZz!HPkYog zv9I_5He9OcSqI+Lbkow3eHF1NcF7i)7I(VVx z{TiSLlni??PIw)2@<*}DXR3B1d9YBlbu-*OVfKP$eVdx$$!|OiGt`As>tp%bY`?diB^thqG>^xs>?3TCR}h04qW*Yc zioKx_MY{lwxl)GIWFuuVvE*laz!JMC;QWIT72>}6;DJbT8wj(kAUnl-Al_gV!bo6s zoB!CJA3gxbQ6NXutVfSneA{b$YOnwF^qrec}Om&X*SI(Xr3m365Gd5Y_ zeFuSN?uTNbVXfI2DIa&dBp6|+lT1(`Y50`#RX7u=E5#;UJKtn_Y!~Yb!nP(dTONF* zIWnC(-rN--S?&GW2p5z;XtRE=JSBe?CWJwK`*W~jwV}THA7Qx21(4cHDWyUrc&)Gn z#7AHiYD)r6ZmLvw0x+GmoUwL}wxp+OeQCj#{^&_AY<>w1C`+$U+IIIOTXQ@#o#n5u z=sslJ{@uCE(#RQ}bA3V(ErJVhf*_zr-~H=E0Y~fuq;-G+8IX`|0VQ1zL{`;8B#2LE zOTaouABRD8iQV2ix)9S!I**~697GO}3fC-0y;%S6b;D-;hw}A4N1W$PYg%UX`|^}- zjb#T0ko6s2`c&4%^N>4hCj(m^-R)+VzEC`eS-Y*ii~8D)xx$sMG+V*`zjf>YOn4dw zc1=&ZqNlv#)FK3D+hh`%lnmfJLL@QWjVGshNDc$(}#=eGpDGC5ByFy923v;mi2&VZTs+` zBIQ&kC4=ra=+g~w4X<;vLO--_oQxF6nj_lQAP-l%z zYU6XUBY(jrsG?~sHQ_@^T;q*lMCbP98T_7AKCntI;b`+%hmK7N2Yp9p|VFW3`8nf8da4gwdZk@GHuf+ ztWiu-(jwg2(!$YtC-!bl>;k27tN-LAY(mE=KiPYfHw|(mykKQq#x5wvcd#zHdqop# z>ypl1Dmyn)ex1aW(uv)edolB2>1<;MW0XXaL-bB?%oqu-_5`YfIK6>efv4=@Sg_=8 zD9e{Gch(upwINe)f%iU`5Sa1U;rHYgOgs9PI{O~a zxZZQ^E!d~bOO!*;2!iS$f*QrA#6>VcMG0v9u);#}wTdgaU+ENJdQtmb7;Z296x*v8 zvNw$i!k@=s=HogHRvtt7Jxv0rK6Jnrq+!?LSVW4Mfxe- zY&jL%Sh6qHE^^Y6B(Q2mR4`XDMqQ#F>`t+;j|dbB1(nt=)^qIOgkqsXfh<=;N;6_Q zRk%z$s`{>?JaCHj7_{fl)&?x}(G(Jic9=?&@x-cy0oNp%(zS5m^H!6j!U4(E^l#e| zc4!C85*kD835U$u>Vjr8W(-&Im^2T1SMV4Bap^V>=M9pmZGlC8hTXC711zl&!AXy% zUQ9_yS)ZmWe2I%URe*kp*{&pQ(T9h$CvpFVW=)lXB-T zqi$IoT%%u#rfb`zZ{FIaaNJrdfwCgZsv$Baz=>1>%{BpsZZlT|1-iG?>=Dtn2uJ6>kwds_cedT6G zuH>gCNU!>C$-og!VfS0l<^~frMG1MrPC%cakD75Z?A){-+J%6@&WKy*$i-bzGQh(#H6kk^x3fhxb75KuY!f zZb{j$LaMB!TL8Xz4qxh82Ii|ZyyS6-ci05)E_Zk3zrM2n?(pK5Q=J4rtnVO%-(s%O z#V0!?jTy6suiJo=0z}pg&kF8CE$>@MKTL9r{J{C*n+D95<4?@fki)fa_6@*}6inhW=Rhbe2?XB8;`0tEjB=!VzlQ+r zx!8&ax%(;4qha_b0qjt`(tUuj60E`);7&|9J0|jrGi!M#8t2IHn;?TSNM7|84!y&fQ( z_Cwyj1Mc`hkt0k6$5&9NBb50=2ePAotugGFd=jNlmOos>V@O#75cn41aevGdpCKa_ zXy;J#WwV;WM2AV&uyV+n1#s|_2Vhp<5oTc7-w_4SW4Ay4EmGM_oIG+R_|9e%{7;d} ze>bQ9pG?hFENxwF{wplvm&TdOcL?{F-mNCGx)3U=B96~+fcTIE%t9LQ(h4NIkam6z zeKuKj7~G{DViUi1Gs9bpKKDiI)V<6)77bbsvx@m?xZ7)mztTm!dom)iC<#mZ(|PyN z`&4@`-_gcF-k0AONT1)vV-ePoFJ#|-Fj;@C=r96DDXH$Y$bhFnDHF*~A%WlL_6Qk& z*F^Y)PuoCvl~3Dn_|x+>KSAxAMO(k2y~7E4x}Eg1;6S(^t5Y?&&me|?o1X9eabi5a zK%#@pKpAZF&0o!88f>h~3ogDDoM?&HH%!ft{;eXptgOlv?VtjpG$tEgVVngzU)B;= zEb%pU8$Mf2*oWE1@f2ivDskp6i}`*R_2!%BZvyr?HNB**4)q8~;uTg2zh zn5!|}#$grkAhY9o9gJk5o^UUsk~w0V^rCDTZGQete;m*Q@hw)jj-@G0JC?_3VYhXs zIc*!Rw>PayF0QV6=M5zX-M?6X+vFcWgh_kUVt=d^0(W=k77A38a1}Y5kd3iA3=lq7 zexGfsECxqYIhtM-Yvrp&+2oM{M_#62rW%sZ&e2wBWX+a@aWYS}l2(!3O)8+TSiLdD zw1TWC^@{6?;1oUZ6Ca}4aSp2l?KX*GEzvKAYz39* zkeNAA4d*FXffgB(iy}yTCbIEyP)<&p=VzM|CvEXCXym`j zQE1{h5~=AD7viX?4?bW4qbOEv#GlZLg&k_lFc7js^`KZeeA&oBQRB=fwDjx6f}2s9 z8%MHlzbazMxnr7}4xj{J8BpnJ5_nKLO2Q(^{^TetJN}UZ)7MqNj{3z!6@oMEG*#yQ z*c38~Za?Mu=nhVjI7gLXeaO#}JVz`poLzdkP*K`YvqYd^E~~~13BHAW9|>=|1p z&mheoB4sw(=P5pSQI&diW}bsJtU3A-WY6q1XkOo32bjOY37fxVw-ZpUbIU18~LOw|HK4dG zxP3x99olV%!n<+Q8?fOH8M#=wWvh)n+S9yU2)DUiMkC0_4MnM9WlIr{ zw89x?Jx5R<;LE>=_h7(=bGsZNxEqJ>_Wz1F!*G1UZa(c; z`+AgZZoby{e+1wzAim^m+lsQ~Z4Q`r2Xu&5>ypRPtOQs$dGk$AfkW?$;Ue)i?|WMH z%XnlCoQ#8?T67C*ZvrMCf`xJ74i*qc_xBa5`7Q21%5|$QL}(| zVnS+#j!1CCt&2R4Rv8?@kwb6phHQ3(uR?F^Q($qxQF}Inaw2%u5arJlyDZ7nsT(J1 zoiuc1x_1YC><*}PPidUd^}=Hc(wl;E9jQ+C(PsTC@h~lB^IlI%CvWHwno%*0Uf&P6 z4$HbMD#g4i3li+sa%*Q5^=$CTU+78~`FSUUbZfIZ>Ow*ruB(%S1Y=4v&nA*NmDpQS zCY`l>#9V8+SIX`Ft88kW@Q)##`vJAXL#qRtvuwj=xQuxS4Lwz1wxeYVX?lWc(uS~f z!ah=xc#?*svE*FuKzpI1`mp5?lrBa%pN`9q4&ufI7ql{idE6y5miw!u`@Med6OP}& zBB_kGzBLLV@aJvO9a;-pL$6vknu35CVC*r&d0zG@qj^1>%FXXk?wfscFg_Co!?M9uYV`5*nDzE_A-p+@mP*wCrC7`mALFL_$5#+&!L8JZuO zelg{EiCq?A2U@F+#)z%)G52_uVpjBe7Pni(2576Gq7j*rwM-_hxt!q!2fcA$TRPBL zfD-1WW=Dw}_nIqCa6dqS7vT%ufnO@|K!(UO*JqCFb;|qi)duO;$5!j*56+M$QJ1}m z8pLa~7N1l){k@yw2*g~Yfn`r0kwM>QGn}5#GEbjuy}X?pyhMDzbf_(q*)VgR8{c=q zL4@xha)HAe6eNKmQzQX^v(5DM>McymdlKC=%RUY7PsD2)AOsi>(LN-gcxX;)1Ia!n zppkEtCnk!6a32*?@36gSSHu=GpbFPZB~z82Ehl#@2P=-|E;@ zX10c^L{kaGWrh%fDm4>ZzHHdc=_QhMK2XHML{mPNIdG3qK39sue1GHGB+gQsvnjT? zv8b%7@<(`Wa2W+!=hT8NT%s$zH+N=59>ywE>9*8P1{sU7ERn-;egE9* z`QYT}^|58C?ZJ%JA~{R@7_Uln(<-@2V|#4y_GKdx8GK@cm6fzoXR&5hfq6=jHu>Di z-FQP%xu!N#;?npMp<`k*nBH&d((#@CjuDYKUDf;05Sz@b9!8HC*$xh4>31iow3x(w zlWl?f5u$ue?r=RzfUcw>b(ERWi^D+mahkd^$~`Sp&IF<;4%xUe%Xi?p6*5GlvZ{)g zQ1@togdVlEn8@_$P-;%av1#lL#pQ+;bK`p!37pH-NpqA*o;#jT{ z&Jsm(Nw-v?Tgh{R=RBq)EuYck`tlSEJday3HGFk~DoU}2Eu=eB3LfvDzZ${csKj&n z-`RN!KM5z>VfMz8CW>@u%wa!@D=I@%_r?A+=&jj7iq*qX>@_hgZD~TNhQU;-CFg5a ze{G~O3rdmeP$;gxV8^(XD3()W9;P8`A#?8bxJQ4!8CTHlg|U_~idBVaRQgBvaK^@| zJ&r`Z&Zx=^H=Jrnp(68uw5O7BOXUeY_)Ak!{IV;DN)ok5UW|i6#@MBT{e!kyiE3J8 zG*v;tns)g3#|qm(D#Zc)h*WkP1(}?QkSLsG;oE~6n_bQ{)D>m@B_xC@=dk|mE3GnQ zYv+mgXVNvqq_U$u5j%42jww8XZH)yfCZ&uASXPLD@ZL>jh??%vP1d*MaM&=RT=e2M z@}^FN^17%woHf&FTyl9KMqx(*!A6R2vPnRgm4+|ix~+f8C3&PH1a2eg8vK)Vhy7C0 z1I3-JYv|Ghc45Wt5%wxh65n3N1H%9CrZ%K^yAGLuYIlsGQA5=&*VVDo(|s|HecVZ_ zQ*?Eo4lspC)9)+?E{KAMWqDv?IYwNhZrfOBWm%U(*DTsym&F?A&WV|om_f+??K@DJ z0?q-4D{oVagqK+9Ci_c+T5N)Y(nn|1MrRQryAZ}^_h|uteG$P<-KfSI+v_e&OL$HSb36-}#rBFzR)(Sq*s%|s)a@=dWnu5G*5!P8QOaQyonLhxf2s($|P zYoR28{bYp1_j(0>*;^9+7XT^2%@_gE%PeE=B!JT0IH?nn#OAPTy?QEM|NcH2kWLU zvS-ItAF?I_S<7jCH*y3C!o3Iw;VZ-J%a1?c$F{Jqp80A79*Wn8{1kNtF8_Il>wD z9OFy$g7!=JHeDU;h@NATwOu5>c$nG)qGe?R*yY(*t6v{7{NDYI42An^@pE>M)$!+^ zkG=gp#r8$EAj&Y8h28kqXaoj%5ar&60_VuceD$v+dQU_V_(6eW7(1k3siAc&mqO>g zfpJ!RoU`O;cCUq-Ct{r_@%>GfGug9XzF52~2my`|jmZF0mqCOLL5$Q*HC$5H1gUA` zX;&K^3DO2W51h@H0F-6CTey2!9yaM8JP0=V906)|KirUb9bnE)S7dh9gLxLZ?3Gn| zk4boX?mw5c64qlxg6L0Y3VJmU0r7|V&O+c zAo1(`oVxeIiDdXOQg4S+ufQ3#@t58%DZMWit=TtMsBTy-Mvo4D0=<^Jp!htqpd%g^O9)VN#iVZW+em%eTjp}b879vzD6Bz*dD z^uSHSKjhq-w}yRR1o!>82x88Y?g~aB_I)^!Q}29CT5~Xnz4v`IIB$Q{`0NX5hmQW# z)*(Tdr51mjT|*=(s1$tQn?VcVep%J46x`mn%y>+kQ(wSs@_ z0?7Y|Euf>ZXl$NVk!>tFWjaQ87%Lu$YZp@_N}XO{vMV1wv~AYo~`rA9Q9N!XT=_t z#jA%By;iyzMOm44so@DI3mA;* z&fl8$h*^9E%gqnTb)Gp1Tt`TaM~YUjIg)R8Q`v07c`ar)<10EZoe*mwEwxJ7&KMyi1I58){Sig@H$9KTtO5{D&nM$T_ZMf(z$T0PA@?A*5+&G>Vw=Y z@PQ}+PXJ53{1KzIG;Wx=BwwVL3a=sN9N;7UT*Af#V`?&(I1F9RB9^^Bq$FXWU+(~R z!XgISIwlU#O*>_2W2x905%$Q|4Agy&8bvb!(#!zbAghXc>p`$wv|*xRZ) z8QM8p{>x1Nf47~=6L#~0sC;|8ImMU3{2tAM1x?Mr6h**bR8<2L5@<`rD3#F9$qgkT z-pg~OL|?GoY%~Kvfq#Gh*QOlA8;P2mDYW5rzwAERaGrjC`p&rhac)!=L~NI$)aM1p z;aC*}x556~(kQwB@wx>PGhvbzG~Eaj@O2= zb};v<3G-HAPb0{%hn~c71!0}o^43i-bI5CBM<|*?d8^UnC*Bx-@Ew60TKJz33BC#w z+>1o=q2yXcSR55eBhAvkVfh7tKGSSscl#OOM>gS)&gahL;SI|-?~;)weZgUhq9$Rw zu5q9hbZb3VJPcIFzd|lDy0TzQ7YZNNVwHk=c~UdT_gn=FuplJ3G0 zI52E0E#sJ3{wzUyN{;g&cYT|)#Bp=!4P|bj%b?7xr{i>xQ>9yQ2>)v>Eig9Z%rny2 zQtIjd@t&=+I%Y6fho!ro_xCGQD*jlidfye(p}tV`L%lkg4i1 zk4P&9V?vShaE%{?^KwuBv#`fL3!t2;q#Iz%=Z6288C4LFHV4%5c4#hBQ~ey6aFKM7<{G%*CDzPWt@n1FQgXEfc(>zs}|FNj$E zj~^^wNH00+i8#id84YcKsabjFHqji~So$)alVfNxE?qe~*6QyGH}%p~T6SJar+?{& zwdL|d@4reP9Bhvs)#FNjk^PmMX{MVw?@%zP>-4GM;lgOtiq5dJGBaX9dT=rXCe!9ai zZrPx=aJKN5xd2y_I4B&Uo1I`aPU&2K(oX%PS#u{A8y$jwfeT5>4*C8KUCVbCXlK|mmA7$6rhrr^$N4v8$_&}g=vjizib@QSEWX8i%42LI30;Oi5O#-}1IACA`UwU>W~k$3@Q(VoA-O8iGS z|M5cEziBFFXY!wjCj5~G2%?5gvsx+}H#NTkcg$$dC!Q2< z^RzpXwOs@GP~NyRwKBJ#|j5zfI5th}eKS)E^dI82=*5z^s)sYD0qEY?~>H zph-Tn@IpON#^ORp;-Kc9jy|W?vWUm(La8X`GIikY^aXz^#GH#VqfI?d-3y$dBG_NB z91$D7<6m}C*N|J@7=;o!Lf9_B_S+pu%qW@<_ckn8cJWnC;YQJz3+mB&w0}tnzusoC z`HCN?f2q2rz0iV#S1kGh!Q{hm9k)tB3Ns3>9F-67dcry%i%X~UYH1G*Fyh28$ZS|G zM5|Um>>fXF!j2cH=FzX78dz(pT>AGR)&8jMg76LU=05`ckLLXUpYT)owHmj z6}z~!i*PJtg+L#{5e-q38t0Y)0J#-?kHhZ6oD7XH=LC7LL z?kMDVoX%88z}VVuVsYS^r<-yR%Zz?`NY}g8#aMhNa5?0Lz;*5b;BLt6Tr&L!P6OuA zegyHJSZ*clH6&$MvYJDa0Rl!RZG1TZSmK7V$DJr^5+? zJ=yDc?KAX3z8Iavj)m@`O1-GkL?1RwHyvYM`!sW+)Qt-#6|ZcCTvKgvFT_Sq@^3~A z_lE87sTmI^*F{qRyR(?V^sh8ORQw$qPn1%SKV=u5>POnD`S zhUo@hN;Cyc_rni9;2iwvUgAAp%M`wpEx+RVNi`cOX&Em1FLp(gpq(k?TyHew| z?ejJEA~Jp?FjFXsV7E$Qs%9o8vLc08EDlnNVpWHp!!~FlM4Q$J8W;eLW1*sM!aCdg z{yVIKf~>dF=z9YfzYog)s^kBC6aO)YMby;T()qhx6LT}QbNR3Ri&fUMpJznnvzs@e z3v3RKiw9bVev4`m6YdI3Py|A%z?P%~dp#_*yOI1wa3e zi;*c_d}teh2q;pt&PtdR!g!O-^vLl(q~@G)Ki7w%Z^88GLkqLzRGk0#Wtso>Ad`!J z5TK4zcu9I|3)CZk)4ll}cE+zArU$5uFE!+^Wd==8H?_!WF&tQ=^{Xf$HyUR;>NQS2yPZsisrA0W{Oe7>XYBYj@=X%7|5s=K-%0Y1^U?o9 zlKgvchMe2DA}EL&!SDB=Xyghgz)~ zRVY*pzaPuE?M@+;q7@0$m2J220o3{4?j$w(R0Inj56di@ESr2)0$(2&?msYQV|UQ1 zMHOQWL1~n70CMP6w06HWjc=+D?0{u&ezuf%Ly!+FWDt4U~;g4Yxh)lTLvqQWEL8Ktq2 z;x&`e9A?q!RGzfK#4lAY^0-bQi7z%#isxKpkHc#3=9-g%EEy?e#f6qR(r&~?=4l)X8Z+wG-SbwKW2Ku> z6xOw2Q|&w>cwO58q9N6?PN?Ck zf79CxwJ3z;z=;V>5%^Sr`Conz&Er)au8iBv&zO{T?P3ntVDP4?4_c`&+l`YA-Kg|m zV0gF!FB@8LveR0xwhZ~!+5+3}7y+ki=^8qw4pn)`0me2X?Oal4lh{k%E>|aL$?L(A zL&b1zGe68aF#Fwrw*uJ3@38D|qZS^0$QeaMN$;@i5^v6bDV@`jbFr(PwH&kq7-96xpc6zO~GCX%|pK<8hKEr-ejr2gl7;j$RLyZ_#zX0L!%cXn7$!1i1=6o z*NEayWduTBi?JLEx3t8hU&4?AMz{zL&;m-nex;osa!=0?F#CKvrUS%jKQJ80PI_ZT z#s$8ULhxhngUce6OEtOwN)SIGdJ#y>8{@f-yqAmVJ3Qh2TN-6)yW&eA$_+PlJtYkkw{NQ$h<@|tI<5%mj{{k*FGTdLn zkUa3*v$2>Iqel2NFQoA!k;_WOYXqrS~ytm_*6%;tq;)s>*E)IUdSgpbSF5? zMZgM7t>{TYUJO(zir*D@?A+NBxI8bHx2##VB*~A%*CJmU;z}YdNN&0$$?r!m(usg+ z%HszI?Hh}+NUMi2qbGS<@K3Gu;0P+sR4ezmf8E8&X1(?N@L`Jd#2FgV}NpPQclvP(R;!E|d8N3=g-( z@4ti68=ftJIjxNEoB?FjLi_qN`=T-liE)y)^Zf9`-Ki5op=@ebw$I6O+f?JcdYS><&X1e!-TB8I?E_`?l)&3Tg}kofPR?g zuZv(oz8!8huQ&1>uyv3tm)84?+35c|KZ8-)W)SU%a0(u)1I`2alY*=@NU;a&_bx-8 zOP|A*H;&pjt{oTevzwbmM5|MM)by@CWW)4>_%qpLUuC%cGhj716Uv6^j~5lf#1oJM zRp=qP_G+0Aq2|dPCQl^n>{|nV$|E0?+Mh9o#x3qSc_N(;fv^k6i)F4U0BjRn6hXeh zVIm%i>M7G8pXvu@lk-=wR(F52G80!_)pSRj<#HPNQPuL+D8mjCNu7;MN9Jt%ttMIo zmky|p9rLDs#~vokNhFBcUv!TpmX0w-k$Kmb@P&J?7HdT&+{as0FmGW~&YIt|BQRYJ zMM!;OU3|i9$mladkjCrD>?uXK3$hfIsp-CgFTVnl{avM4=|rwb=?PAd;B;Zkyq8}L{5PSWIhtG9+WbFj ze9}L!9CAjZBA0Fhe2yHs9C^Zkw54B5P97n@5@Z-9zC7#(>nWwSQ8ksPqP!0hSPXw6 z`wztBLz-pfIVG_4Qst=5iTRx3`?{;r0tM&l1As z3wK8iid}%SAle3I4TSkQqi2vQh;#AtV#3{iP6;F8=fak|F8F{nF{PzfnRHu36 z?6%@c4fJ`XMzEePxJJpmhV&_Es3yCp881~o_0b>X%wZ5l29wB*3z)@~hf4SI;F^v> z+nQ)-)A>r)Lv^D2#|0+}Dmp34)=~k|N|BYp!Hq51bpWO<)s<{WLoyP);-JS0e6|8h z%7IHQt3(+}wrGk5zC=|!7S*mi+tG_miS|UwPOE10?LI)5%vNp5VYU-a zg7g)UjS=tVJ7Jgnht~l6XEoyX5GSU}wnwagMZWi$vr*!oH&E|?c?17@GH2d7z_=cV3FeY3-I;w%U}nEuk|gM{+m<~ECqrfZlQWuSDc$O^!D z|KU|~a*fXlOEWg{bv(Yv@=W=6-HB{v!VuIFcZtUezRpyF%2lRi6Ap9e$vaou?DMwN zmgsVU|Esjc`;`m~I1T;oXmtf*cAx=g^%b%wOSvWN!TCPh93GJJ>39IkKo^E7fm#9aRf zg3A}I@JMt<4eg9J2f@MbDd^&h$2|H94$?M5^?BhYqH3j#l9$b!+kEtJz`2o{&Fxq4 zL|u{O`Hjcg1zJ=?EQ+pKH#@jmuxj-!>7833WGc;I(L*N=#i_18S*>vrXYM{g$tj{Z z^-{~a76&iD5R2fk!DtrL{Iy4&RV<_F9 zROS4SS4_%(Iy5O`H)98Zf2XSd6a}JqAp7{?1GmvxzW(k2SWzRwqYX?+z*7kb)YfS3 z!>jE5UWzB(*D`U{BJd%>F-d@|*dy^eCR{5%$-6F;Mn z6jfn;Amm;yMM~3IkDwBjsjKF7hDcB|6ZKU5FdhO={aQ`)FIoWB-|G|d`l$w_k0-D9 z$Uc_bCMhPQTO|@$Tkp@)>qB+Kwr?YcWDXj{QbUIAD~>v2z}!C_9eGeeggXrZcbeWx z8$oi;oqyK;eXlAWKWXdx`Q3Q`n8+FbfBrKfZpMbrPPPvJnZ=d09g&qWeWs+IolJ^^ z;2Bq?h@rsuyn4l0x!OVXA>@si2~PA9;1Z__ggB*4hO%&>uRM%5Hp?n$D(foNYS1*) zg0N`qRPg~K?Q$1v64}}dl`UR@KEO~(297f@`a}T(!tZBoyN`LM?|m}Ab-4JTa)4|D zX8soY)89yecb>%0+i?7}LgE5VW4h4}Skne{x^3}WqQjum-w1-!8R&vXuHX#;U?;RE zA6yx?dWu-!#EDV^`2(8t;{FuXJB|~=Q2az;ACflu&C5?vHXdfD8Z>DCi%3%495$v@JL9ON#peJcIi|<( zPV2`Y(S-!QR9dajf`Lg5o=u%Xr`mK2sGy(*0Vn&X+`ez@2A^D3`bn0r>N~h!t)h&t z-vM`HoWxi6tQYTM4p)Ubn~4?Y_1D{#5u*o_GxUNgX$?2puXhv*eZjzx4Oj~uD*o~s=qqN=^%l6k2GpzA)U7w(UsdP#! ze6U8a&<#2<@o{{qX`zDNRQz~D2RuY8^HtjPP~eK+!9*`Rnn|YizvgyIr~^RwLhBA9 z#Taw7O3#iiGovb^mPGa%#Bo_~@q?s4AS*#()6sijkzjvIV+-^OBU=NOzC(2NycL#= zTdHE9Gsz2&3S(3=&R+S*ag5`hmCiXDvQS-El4>axutdu+%O}1>kDanaq_YPtOFQjF zlX~2c`5iX5OXgfoA)u*wN3%0E+p2AF?Ir1yKN5o4@5n@B##Zh1sjXwsF{&q z=?aTc${5R*?um8t>W{k^qw$CYo)#TL6%xv`4DW^GNW)*mt#g)(p@_u5yBn@zc2;V__&EMEcUv06c&wgO=a7`S{_?q*MuTkD|GgE$vbexA2A)&jy;-q+zzZ9dbso1YqzZ9S4KY zMkfX|MB%dt+V*?EY76%Fuly>>Ea)SHOuqsDeuK|%KgV-kbcOAm50%}CH&o$bj+_w*cvmP@we~%#)*#o&uC@rJfE8w)*!*tXR`07FwvpWWNN@1x z3b$-E#GA4iBV>BAu3wd6E>L%=qO_y2T}XtPZ23n*3ZTS`taG-yV#zk)%9oEO7j@OG zPkbGP?{CRTy;lC;tEZ5{K=l~?+2$e4!VyU5QJ{n{INH5tF<)uIrp#^#k*2r&qzM+$ z0kD&LfpE^NV^ulGA`j2{W@Nny#~YY1OPgKPD6@&2hqHPPpp(2(%rour2-b*}Ro^_J zVybEqeaj@XH^+GKn&`H3;X7`!m5ty(6LCP_d&}LW_CW~jlEWGOhAAey6ZC+`sd{L3 z;MoSq*|&iyhy8XCwsOzXUcGAG;+DEQ?90(Nc!!OQG(1Cbu?P^edw(Q4@o{&|)wKXf zuTm&!{R0`w!X#187rdB@QvkXZyR!SP&Bu#fv?_If{v6*P>>Jevbb39?k^|mNgV9Kyk_CK35@terg$NPjK zGumikyEK?%J#K_QZ}>`R6kC~6Q~p+EO6dHx$8P&px+9F>HD?&S1t4T>Z!wmQkXk}I zSnxt$cf-2j+q&^J_)632($Dk_2k&Yx#d4bBYKh0OCqoc^d8Qb%I5enJ!Sor@aM+}! zxKz-p>;5S)gMl;HeH$hGw53wP{8M${9|f5I!Uq0lV@jgZk0GcYvQL|{C0kI$yY&V_ z6Tt#RNE=6rq1N6CDwi0hv{b5dl2s-J&Me-6D@G`KWYF{%*mu}%2VEop3257a`%}ic z=hW%pa5ddFz(&8zFTyLZ+P`3kMa10D2EU@wiH)H_M^g3^g3t>$oR)>j3EQHbojZqYs$lHI9N0}G!!n14pW?kW^p7(v96)H z6zzYit3KaLVvskcu8R)#qJLTxwWjSoeiJ8$6(%1i@tdn|I(&zp&0iwQt5eky6+bh+ zZe~#GUA;z5anD&w@5}XgF}vgoGpxHAgP)9~C&`;FJ;StDTrZCh-i8e>1J2EU`1ur2 zv22!6mKmn2uwb;0Vrakq7OB2GZ5owme-x3d#+rDRwN4{7)+mZcopBwUU9aUCbJ149+N9*f>}S+{jq0D6ZOeOiKeVi!9P+V3k_3p4LTxs&E32zgSI& z)CWoj%v+|x6GYY|m@w=O6o3w-pTO_a3+N^HX8_%YCZ#9dSvvFsexYm(8e9t>qJ`Gn z;G?I6jjZvq_g+o&aZBkqQ_-nP(~_LQqUWzx*Rzgk1cird$F_GLIFwHw*1~ml|7-6S zVjV&m3a*FQOrRIEK+Mqomj*n0hr|DwhytKKz~?Hx@P*vK=7W)YV{HkB;R~aSDTKP$ zk%B-5ofEDf`^t`wCOIZitVfcMKWth=W|!|vwhcJ&F{+)L6d;wC4WcSwEIXYjLO=pS-6pAFJjz? z9tw!jEnqr3e)%wtM{Gw#vhTk|nWq9ux{)8YYzOjB82QIen*YFvlFUzK$Hd(9KPX|R zisla`g#Vh-sUPL9s@On8;$OKSr5;3}O13mW3C$MEJu*i*Wfid*pEmsIdq_jI7cvISROmnHg_kA zcqTmQeb@KGpV4MkmGa!MtB`Pa7-Y7P8AN60P_Dff@4P_1Jjk3a(5B*28I?Md;ox}8 z^O4B0Rj*c=+|cT+TDS|8D)bsd1YJIp{C8Df3n<4qprY%?sH z!#bZ>GnrCACZ#kU*0NXdX9EUAO3a{`;WbX2l&WO5U2}Z%isjN)L=mFfnz8=ra!dy( z)>8%nZ4Psy6^a0%n#T867MI#NVO@cGdCco?nFrMGH>RL(h))6T+Ir-^ywEaMF=gGI ziOIE&NyH5#u(MU|yy7mS`y%@|O2nK@mq9WCEH=CHu(`Ru5zi>aKL`@RlOV^{)WR7k&ekbAd303-UkNEPOe{a zrFxfL#;oPA>qWR+fTdRd|PXNyFifFF@2UI@RHP+^7oUYD^{g>*H)2`Li={5JbO3~A{kmUpwL z8c~~7+d%;#mhKlmbiJAcBOi{`grx8J4cICk#omap726rSvadv z%^Yd(;SE{h_uQro#r0k_jni88H7oW zu6YU?OV-+xO-W9qTx?mXdLWUkvcpBN3KpcDJ>?LJteyoOtP1o!+qvZ5WnL$7lai&9 zE{xZe@E6xA#H|)wBe0c!t_KGUUfP3YuQ-5X$ZtEptRBd9 zrm<|F@4R7#!*;eSAzp-^gAVNhje083bskL?gcyx*fZ`Emm*F}{#Ly6yM5;AZi*|f! z|CgJVoc6OSn={$R#F*dyRJFnjl5KZ)>j`md{SQ|MhFMyU>P%!gcXO$8=yj$4(~^KE zj~vBl&E^0ciyz*W%|yLfKTDr3nU@RLjm;MqLqt5TSDb4pN(9nfF{hN6^_EfI2AZeT%#~y*j*V*u&`PilwilZU@VC#pJR9slIhs>Lc#* z4F0{?Rwlbhg&)XvLmE12!`IJ~9aaeAXE(lmLi|k&c$3__?-TBt`j=Py9>8Oy^O%=& zwBwlJsnYm^gXcM>TRpjhHwqZ7E!uy#B)J3r`y_&;CQf2^PX`>ZJO&(nWVIWpsPWs&|>j(UKDGDZ*~&l%ChbHdvYeh?QDoFOzZ z7hk*KwH8IM%akrs>|4IeCD`qS>j@^zTBSDY0W)Cba6P)>>Gq7x-a?X#atK5Idxs+2uZ077!`Ban?pO=i}&-!Ov4Yduugdbw0~ucayrr+JL{mZ4-rV5)adnXbK@c-n%(g$xq%?h$o-%05T)(Yh%&hj7IvI^Ci?y7X_O)+t+{o>OAc^WVUv#Vxx*&zKKqdXuY5tX$|1TRQ{(DaTABX>+X;}lpOKGw7+t<~^!IYE@ zJ_!I65ZD+ZKHyhk34pvXe@x{cwV5zO#+X=QBvVpqR1vDe$}Zl@%BG#5H3@6;a7cjy z$S{M&vcx5oOH0dS)%CT`r$xe%ci-bJDbzUl#_qfK!=K()o@1`R;CTb?5ulhDAID1wyU0V2#)~UswN5MvZ)C;SkLM6!}oSGHzNhcSAI7yTd z;Z9Esn{`sAXky7G>-&I;{G(H^hIL%U0N7JdgA9Xv-j$sGssCSbt1hm`ONz>yrOuO{@LCxax*3tC zNPwm;LPCT*owQk_#EgIWrT6ZNlmXRg$y2f{MvV4hRts<2ihx%k!39~U_Nh9gr#e>e zRWsNe*TOK4C)0YF>YdHkh8-k5jEMA$kQOOy=+e?9s>|>@+MEW{<|*f-VOEX2^9*bZ zvZpqPJYtnbNK$#E-p8fB96E<$3T!192{Cdh+Zl^5H{bjnCF|`t?}wTXO*3lL zkt8riI#a!gqJ`$=;9tUKi7nf6yRRjZLbmIRn=enAW@W^|%Ny)bN>Kh(v&eRwo! z{qnae8akWxs_2igX;{-5JkR-o@beDhp(O5V-PlblDO1+Op_Ew$Pz$S}HexkQ?!YlGCY=i>QMK!k>tVHAq`|zm;|u)B+O}wjxgBlf zS(sjO&??!c94>O%RAyXm?6S|Sje@Vco?(C^_9R(aD%Zwz-$Z}_jmL$PIqKEFAizl z5reV0gNAW9$n$Zyqp#&5+K?*ztM_~~vm6f0ISNwv_D5U~)itvm58QW85y&FPV84R8 z>!<7vKsI*7lt8)e@}@k*ZAEqBuDRSWf^j~6@i`qB6OtQ}9PQ|`pX`Xf)Di_Bf<-j` z4F2G2$LC;KS>nO!49jA_=639f>0*=!@rk~X-&XIjFbZ>gnd1CxN#OihWcK-EG=KM6 zT39sN18hCSIXO~dI0m)%RMs(+F&Vq;j*^v>4KBmc3c_{A=dquH3rZ>KQx@<64Tk;7 zAwpq0LWlhU;_G~nd`D#x7WJX=rHb$t>A$_BExJ`;ci4Q#MH(0Np|j<10|-lhX?Fm3 zC%XAU)_Y<@q&)@2erMXTKcb85-#xbdaI=l$t~vVxCPMa2_U&|l};f6Vntqg#W1RaY}mbNae>xqMvyIWiqry?+2Y7*PE8j4Z)imBVrZJMkaJ#3 zElGw+*#4=oy%42l2A5`r6*;T2tO>Sw%}l1CGhz!4guEtkg+Gk|2tkywI&TrQ_W1gN zuk{}_pR8s;l`QMkD3k_4?NnJ!zN;OX4Se*4u{d)Yo;HkAC(6o}0351q2Xe6To+gi3 z#>%ZIWwS^7iY^tt^|Na=1j|1}MAT`0YTOcFT!y_;MbJ1rYpv3wZJ3j=MiF})V!yUi5h?^$ZT5Hgnn zTdSE_P6}$y!$n9EfTT;6!Za-(VZtoQsF?-BZ+@6wNl&^LPIae&`#f@4`;rRQlKca$A&*)o^qEy{y9IGr1I2x0IT-co5BVa=WSm5+o~Na1rdhxP zv{;x+Q(2snWtos5Lu5JE3=pL?)`GQQnzkONQ(LuQG16sU9}1FaQ_gl#P6WJIs2NJm zXsA11$vNw0Y_;hfOPqk6madR0M7rNNdI+$oJ;h#F6I@WpZ|If5jk<7pr($ zYmgp$F~?JAlxnlo*ettnCs~8ns8XS~-HkKe{HoAj=&b)5+Pl(T79X!i(r@E%4}aub zkbJ&#Yf?#UEGjzhYxTyH5q}@>6${9W-<>9|&Rg+FebPuzk_>@@+F!F>*w$%NoS0I} zGM$J4j3~l9Tgt|>HTP~}8vI%VkS&P6Z97mV_0_2Bie)>lmReja)F|uo0vcsGyn>7! zltMZ~TvZYx+oi77(5wMgnTIKtCC=x{Ywwc5njs-uG8#Jv`Bo995-ye=&cMc*7qL3g z>wSB-=vb>1la3~(+geF6%UQDFqzJmy=AW+e+}5$STc#aI*nY&EXlr7SK5!Idz9L%M z2L(-CTX))4D4K9lo@;Y!`dV1W>^K_43N;aE2T7tOAp@!f5)CE+9-@N7rg4*sC==zV#zFm{;h|^3PjG2oIMCb-EMP` z9{9cYe$3hN&1Pfq?BkgJJe}YD#KQh;xj(>d`klD^N{r5*B1)=pJQVtnkGAD4M~v!7vtY$gQ1YM?V?a3it>PIva3t8Z1+ zp0D>rs=8^yimMAWyLAuXI_&)gcgIn%g8FP5h|1(Li0)_`#&@C_3jpWN;9ZYy-G9f1 zP@xNJSMAj1pgE5*?T=q$jXeXlmW0MW`XAsR{88I;xv)p{=yK?^;@0HDnGC%bQj;QZ z&7bf4gcQQl{rmDQ4BRg8^GOv#?VL6^d6*Zb*Xx9$)hqE*mkKagiexoub(H`Cs{wqK z2tySUIEM@B?1+RBdp8d#iODM8;*jRgNJDl5#;~wP3nmi<93zTua1N#lZC7Z&n4VlhX|Gk#@979pXmsx7j>D8i=mYTc^>sH}YdAx=^L1JW%+> zdsMB3;FHa!@x%}(q-2yHF&tmeFi#~of{|RL65U3ifY-sL$U+|gbXGB)Qe>S8v^`61 z2_yVt{8ygZ!gfTivU_Zg%7c7?^Z5WdOLI(EY_W#E=mic(gdwx@4CI?4PCoJ`IAnRi z9;WC9WvNU2Y{Y6pFX07S0<}Zz7{s%nY|AG@Bo}PV7`gI31knb9QW%+ij8UQ-OIF?; zFt{Uo))0Y%8-go$zjxDapWcYQj#2wu^R2eTxB3^4X~)|AOV)7GX+W++XO|UPkhOq- zl(PT^L&ril+8}CClJe_lK<*^EJW2>?)^3u*y+>FVZ-C;p=$1>oeo zok z@6H{coOpB&RE=LzI^@-L0+e5Pmp_6^f%Kj^f@lBm2yjYNqldr9+_vYZd3;5nf`H@FwSP=}=V8``A;TYJhEIJX2=2F(t^Zg&_8O)y8TQ6mX3TOdr~upg=LKi$#XVf)r9F z$@g30>E1eF()t$)$Jhgm2nii9gT{y>;+W`ViuCd_=1DcArgFJChF3;G-Nz@ihJxr3 zs?oKlRxj8sO75zdu>zyb20_A^AsS^F;Lmae%IIjQ{Z}?WU!?R~gy(m2 zE8rQ|EP7;0l~~dhtwYpVTUPPSvYx{tc-WMyNms-k}j}r4g?TDk!@w>akN< zg2+qd4wDhBG$O}RaoB;01ikTz1orGyirz0&4CRO87fzo&1+&PV$CvVG(Fy_l4 zq0u_uJq9J7^}{?#&xE0#b~^6FX7ElIBQPE?K|9BKTmo1FPkZ?qKVJ@1$htzNpzrKo z4iuo1QPAmplbqv$BqY*Ck!Rj8UCJ%@2oT|R<{(TO6Ozg#8JQ941HMYoDj|zeJM0~M-FFghL zd#OIgH)6?Pzgg72EOI-ONOV>=su#f>?s)Bm$Ga}FS@3v-3*9p#*rDo8{c*tq-pLdd z;M=ciiY3JMPFgWt%{-vWsVGp5IA@o$&kdQJYv3XfQl>bcGfP*3DSMF;6sg;o>F=HS z*ejFp5op-{?})@{4415H!6^isaReMD>ZXZ{@F5T9Co-XiDH|5y^NZ<>LyWuBrl`Z? zAMX*|Gy8smxAr+g-R*k};AVU=&&+y7jZ7)JO@eIEt_?x1j>R11i>$HS#pMx|iHS%5 zE$6_F9ov_7*GKRZjhQ6?3U>ox$oH%2q=XoU}LA`-0GrLTIKyQbsb9csOagD_Dh z@?EKO;yR@}AniH*lg8^gIQotbUU8^v!8*FYzCzYzI>GnHW^eo3>schT%^=aw)VuBr$Ve$jv8`#{!YZlc8^9 z73gITy*hxSjr>e!XAN7t;x3Ittq{}g(Yix$9lXE5E@vmGo|NkJOA5l#@%7Rj9J?uQ z^{n4PVaMx+5p~D$-dSQ0*p8sTT2F;r_hGP02!NfY2koMBARA~ank|q-pgfp;(}!*{ zl+8;ne8sR&Tx?c%7h9aDDvxH|N=&(Nct*cdGrcFD*Rm_Zov_vKlSVG2dQ5YB)SUkQ z++cP|H9AC~aeZXdkiGwXze!MFP+B*hZhyPXftNG# zi(7V$f7%d7l-!Q13I><*}5NVgS)?HKmDmy)NgHeVnjpEvXT%!0;`#C10; zG+NJD+2_3RHNwrq#Y0pNiHkNO0t^X!QIqbNCvBM^Dzjz6_!&rJCyFvoHQD)fQ zGVG!IY@&k(nnh)m3!DrL)(pas!&HGFLB18s%$E-26TOp4j?fW`Ixzcy;xw7 z1BQ}y?U;#a8RxV@#6OG&=8nPN87I?1jzCb9VKAwqHupBLwy!UD0Ymez&g-l&x(1f* z(w|3YK%XNU%~{Fqf{@#C8?a(O3F)VgM0cAY1@rbsuR=}RhO0{GR6BI~-5FiXTImq# zNZ`#po(BJ@qI8(q8y^LZP#HD=Ypn`KSycr`bZb3r(Dg7Pqs5%$#2l*fK|88Y`6U$c zW);IY|kX<&ZcPhb9E zw0qnw)*&;L8M>j+SjW=H%Y5R&jPxY_BTY@C3u~W~*{lKvTvIjPc3H2cF*c&5NqRL- zkqDWIwtdvzo|c1l>6<&>IPOap6AtPU%Y2TdOe@^hx3#o$yzv3H9xGC&+YT??u& z&5%Yic=Ft^v?UF*b7wEbpJk6Q-DEXKSCxH2)PK69t(|@0>|j0Lmfpg2411@vUXk5= zI=#jrY(1a5K&&5-u?LWr?_6_5!$Q(w&-s-mYPYDSXZ(B0jz%yfA#&B#Oo@dRTzTx>sKr9e^vRCqF8_bsJj2-!|?ND>tIT! zZ{uX;KOS-!#8$JOGzzp_p~k1_Q<`qy zg}aiaX*83jBIlv`GsGc}^FF%h-TgKW${>r?3K#Q~A8NmFwei5&bfeYCO5LpADj@6~ z4J$SKNRK~9VQ4!QQcWI}Z5J?V_wWsfp+K``?wqI)AkL`~Ep!!w8XPgkxqVR7zgg6( zpxJyTAg_e*Y;i6)n49eMWYKdTo%9l<#De0s*weg8+K)auBkI&C*i(k~=4{!Ex*HtK zl7)bdgP}ER4^KoX!CAGJ76yW|%ur?^FN%T0Noub&EZf)S7ZydLgbtZKBNgQBkP)#T ziQV73IjmS)VF<#eyfJ5wr5toI+`w{%^Vt8gf|0|TjC!1$Ts;eLm(9q5bZyIgx`Bbd z&Vpk2rkP{_OoCgdi+dB!07jF-}2yD_@LU z6C_>kXOOU$$5G-DXwSU&)a3XZb0@xNmMJTL-{{Mcyxyhk&37~L*`J`JIdi*%hYc= z$?I$f`_f1(NTyO9Br(zRJ(dCETWx>Lz>zmp_C)oMFgW*veH>KqRV|oFt0B-I%~p}f zSwCky=`N|=Z}ZxbXPDL^G;Hi9BfVRvGk(uKwF54iAXl^7qyX1C?l&M6|8(SV4@(Oc zpH_O>^IVe3o2mdT17D!fwbo5a&`HNFgJ;(JFFZZsgtIM&DAP!PflatD3&6f@KId1_ z@f>%uM6>h@>wDwtF}5X=QhQW1cuFf*lY)$b%ps?|H1qrIHmzGfH!u~5n|I18u;p+D zOH3+12b}}kwCri=Xgq3&OV`ch7b=&Y6VX9nl2}8u*%H`m;!U?(O4zz6_h^L7wH!{q zDty<99%RNXT4DF7V-bUb+MU=}OE7lV^A zv~};=5%+K7KeD5zOixFSDj$CryRrFcjYmLbZd8>EEg%?FdV=`oT^|zY)+;dMrO-CPk z>s1{!=!$X-s*sKu8jd6!50$CbBjA2Un;3YZs^cIq5QWi;J9?gdz_k#*Q*h=Zt!WO7 zMAD3%3?6x6S;wjA^+9_syH_q33;kXisEZFU-=*{dV+Uf&V4qSAz0C%stgz}5QqMY+ zX*;iJqdL=8HtUkUDedgSGLK}4L$kllEr;_ytH#qMOy_cyI)!;qfSe-7`7vT_#K}hq zUJ7l(vCV*)zEH>|G%JUKBF2%;3lzr^Mrh*0OGY+BT^5=m>*-B0(i7~jb}{90pP?96 zJ+{FK3vf^w4ZBum$8^!F^>s|l5`aVMe2{lj49Q%LSF({Oh6+fN>}Ccan9|Jpg`v)B zws}zLPS}k0=$E8H_5qV2q4L-WC*Rjm=_^46{PTN~;7)YK>UBi>zL2!7haD`aAcf@Y z1S~9WFWT)VTRG#)!u9d2Yz(mzChjw9C*mJf%zX6}eTh&fV0dz;Lq&7j{_@}po(JBW^1>M6CR76v&rTbT@QY^D8gF`?EWaVQ9*Czr5NOu6s!K}1~ zt$13KgqiY;ht=<9sm?;m{lb(Q$E+_rF12y@6Nmh%e3ud;hUhk35fu&B^b4G{fcAvl zt-n&4_N0*)Dyy8mM7X9NnA0MpnI545tjS-H`y7a8T5nJh3{xAD-DqZq8x6|a`Ck}L zmnh7MRC2~3m&C|+*_ijgIC1Afxbt@1q)cT|q2-G_j-fqb@*p+DznEW<5wk&-9@ef; z=4wCbRaePu%|8EaZ-&;-@K^8$rX~Lf)Bp3(hqSGc@qf*`kxH7j^J?&48SM536NTpF zl28efzsM+9s4pDEDQFr3`R4!y5`RIkOK&U;)`lCZ*6%7<`} zkwQ?&As@P#Oii#kcBMM<`no>@^kkQm%+RO(Y~BuyXD^JqYzSj|ktA8)rd*wJc*NG7 zqH2lZ7wAn13rAPAhd_cPB^iNfHj#)4L)oC1vmnQ!k$ zwW=$Sut{9KpQvxa#WeOEwU8J|)T*|jA8zI`e2mxyiLzyp@_&tzXUtC1Nu?(%?>giJ zfsojI7$+20npOZ=7q_+Ea&Hn`Lf~l!(Hc(Qd8<5eamGnWUH;LyF0XKtm-`g2HxFb`&wVInQ$ub@vN~ zLTjl8${VuEETymEFGkffRZH0}CMXNEes&OHa@BrN5TcFPjBj(W5@|Nxrx^{EzUp-; zastbQflRM7OtYP);E`(^g$8T4G0LVtVe)ZNQ8RAWb&>JS@qZ)jodPTGwsh}`U9oN3 zwo$Qd+qP}nsMtjw(YvFmoih#q6g3O#!Lwk2~-J5;!T_=odr!;TDj% z;fK1!4a=cXF#GBLbDG}?qXA(ouy}AmhiYGH$q_l1ktrMXZw>^}xKKvKbKBL8ItdA` z2Mpgs6Ostw#&~Kya2> z==)1uutVVPVyV)`!PD%enAXUq?pj~$HkqeRjYO*!BT<)}H`rec4W;%Y(e^8nKmLD5 zvg1ETvXYk4f;_^fToxNC9D2KQI|W5~i8fK7zar=Xk&C81MbKVUQcFEtsidru*oWZj zUeF0F1J^$MwK(UcB(qHo5zj$3ua|4@$8>8}UT@FGH+%Fr(k8<~uq1hs&HiMO9t$WW zQ6t(2N2mr(WjhPy~huFx8sX$sdN=ljCa z^4JQJ=GM%d25TGA^OMx}K7{D=uPt!nYjN=>j9?Y&GR7uy7p09#6z0tCDpS~7XR?}V z%ZrMZ>6u(5duY#$0@hkimA)-EQpY%P@tFeoI5KD*&zB07<#sb!Y70|2X56$H81RI` zM$|9?h@wBk&NpZrPyYR~p#guu5*5LkwafXEEJ?oJKlk^I!dlu`iPw;&6&!c4h4Taw4h{Y=`T z%FwJCF2~H3z1br1c)TrG4l#-e&rlN35bfcsn{Wdu%tW^z8LeVlW1uq(ZjKO4B*-8_ z&-I;YeXf6Y?wunvA*$(aQ!0j;sJO+Aj-kpAR_fQ94{wyA0=-#^@(`Wsg>35t61uh; z+y`$00xfr0R;6G}ZL%X3exm?O!j3Saw`jm2aB1HknNYS@&vw51&d{CxDS{v9Ii(h6 zO%R6U`r^jVv$9np+zc>4PA7!YKfww2gc!CN;PvN05PJHa+EekJeWc;qg=kyReRMC| z($4SvEXOykNAH)I-WYdG=;o&}!G~ja?Ml0ahvw-7im?uW?9Zuwwu?eA9ti%HhmDKO z77BkFiACfPyGAkW(&G>J)yzYDbQ0RI>x*-L2CneLW!HW;h<1Pe!SjBtegPt~ zOAPwd{N=LOWBmtFAo|9g{3-p>AC3u4MY zhY?CUMR|D%*k57PJ}P>aJRuJbKqs>y{-44KLS&cl_+qW`Eyu2R>;3iPgWNyNovr|J z5Dp`NXctI~^fpE^o`Ejm3Xxy#+Jq^X5;5)tPE^{R$WT)xkT6+W+HR_rmWC0wjK)h( zL3X4rWzb=WE-O}d7G;SsCHYaVk-d7aGG*bYG1fL?0k%Kb_G}t9h@Y!%ihyR8RM<(1 zy}8+uuxL%oa+u(U)%bYjaEs;n`voT$d2Jd7))Q+PaN9$V#AU(Bj-UEsVT4eY?s}aR z*AtDU=+vY|>He+95P_m|%LRhD-u+cN-8RcH9z)yM>|3n>5_N6rZ3@$A42eoVE^PE< z{$oouma?Kai%ULUWn@9-+qmbEzy#MqcHFOV9DBxTokVC0@u?mSm8e_}!VxL%7TZha zrX+&q=*To?Nn^MlK9n{ozpGoS?j!bxjd!yyF z)9U+bL}|v*#t%qc zK#+R7Z;Dg!9X)Fu+69>#A-42xqZ1D={CQ*A6%+R=%wDtSCeyQD@w7j3eU*LKEh)1= zCsd4dNN9f!Zrf4&Snz9by%+-zl`|y%Bm$S%K6-}|AQEREDIcSO{N8jaPf8DE)B2r% zZx@E-oOaXo=1RYB&~JA)Y`;DZA>;?brsIdp;pI|5NR{zmTa=fx->;PI6^4GU1(iO_upvUmdBwTq9_4zc=r3qP#0TJX0p(KAGv%k5V{ zJ^$N)`rmalkU?22ntjlMH6j`OHg|_KP!8d+YM-i&==+EfVg@=Y^1W3ydmucPn+&b4+-MA- z6Md%6rqCZ8A(_qY@IxKH$g(h$%Hj`Gw=o0vxPgu(8ipJ$UqLJ?a+Ugm!!H1NIrD*D zabtteBGS3&h(BTHqlJ%0QAP{dq0H)gzWS_L`!gyEVol4;JVZf=i4J;FCP$ePQ$;V(Udsv2(UiP_IB@H)?fz z2lNu}5}lxO3!X@l9tsw1u{2wP`%TzaqWiGZ!1G_7+dn%vWGH2{PXd+C%t&579Zk;D zQdo`X`R3^ux?s5q`oGCZ{5XPja0V=WF09;j49Za15_qy*OdvB(h|BB+36E1?*AmM; z@Ye;vgnQg2I(V@Z2{zOSqS&uXWxVTa`$7w|xCAU+8`|RT`R+lCN69=bioeI>DrXek zealivs*Z0Ls;YPgZRh+6U~G=zD9U~nYdL1N;Fv+%1MN{7x5Y|NA+hLxqC4i;EV!WJRLeCo^2T089FRkGbUW?KimEf@KMzfjA)?Y8K zcXunT_}?z~>Vr+ASq*R^gSpe=N7*R_2foz!jNEd#++bn}=Ug?2X}oDMF)2vM=hSL7&g; zE-Hn)Z6dFUw!EnP2X)?hMig+CaiaF+xQRN(iG_VpXA~JUuBXKW)#+wqAu20#RYvT@ zF=>#*TtPl3QHQ%zwpZT{neeYaz>*bRn&WD@lB`Jg(3kr9#^BBDCQJF`E}}_q zX9blQl^II8B~Q)K%p+gadC&I`>O3sZ2!d-q`HMP}zo;{|APKa>M7isWI*q=lld{U% ztcmrDI@y{mvj3t^SH!z7>J$VNMr-)$Cf-1T{7s!Ewl(@H!&qO`iS!@TsW~@1yZp=% zTJSe@K73JUF4>p*`Vv2Q$?-)`u4sLJ8q>Jg8eQ^lmw&>}s=u(49=-9uuv0dmgoo@e z>_mI*_%G~)$RYc0*eUrJcESNMpAbp^1pQC!-24Z2W`1EOj7z%^Yb!Rd?q&Jk*g2|Q z`*)d~J2shK_$rfPU)WjPEjy(6g`G(MiJf0iDrlqhAJ{qkpV+DPg`Hy6U|-mY{0Jko zQ8oBq*eM9>@i%r#{9o+sSm~(*fl(X#FYIg@{i>3W_9I`|`CB%o!|ePY*jXuy@B9z! zl=~0t1ZNaH4~OA?{Tn-N*{%;x|5xn%--GBc&5eHwB4sTlWDSH*vJB(IwHu-Ew!p|L zL2{@G_l*Z6V*^nZEKqioX7k@2VaAX_NtoG_@@GG8#>jnk1!+wxYUbzF{F0k}byYVF|8&vSbOZj65PpqgL!!xTX*MKb&Dna3WM|xv4o&4BGRs1PB2iB`GYe6 zf2mQqA8$S@OZL1jcZ*PGBWwOaGe)D;z+s}e-I7aX;YReV6I66NrLU|w==G6Pv_D)&u6t)oh-Dm^vImv63g#(7 z&yff8`-pmu-CRYIy~TF8NnRVUd#d#Bpr4tuCSRQxcvxP>uTISTS0@Jg?@o-KM0-GM zcoz|EAV|}ts4|Zv(=?%Ett`HUkE|UIAkIJDUDeaV9`eILPWVKC<_SFELA9fe0Zjy} z<`khc;khlepV*-89cwO4r#=a{-jVtdGB&h+(7>8xJ%(!w5z|8S`<^-mC*pkksNekRrpBI8aF)&(v@@Unbl%~WHshQt%hW730ocxj9xmh5%sGl&=5 zrV#VHbg%KO)r~Dc817dmMw5}I%l8xiubLRWULNoCRTClpZB6|5vU)O%g0=?M9-b!u zAsV-&=HaY-i2BE;@xa7%n}kMAzcPXbC`o1jBYqVe%Q!`XAVCD7t|V?u+Wndd*-RI> zp9+PvCV^i z+Y5zjAbM{{54uOG;jBZWy!ZF~uxjN7Y<$IQ1A4N3Vm@z_R*BHKvBNm(HkBT`#~tK0 zS;f421Ae}e9aqX%i;8FF+Z&DcCr(Kp-9l-qw!t97hzWQ1nm&ysrcf%(E^uBnUJ99VGB z>`YWtipr=Vt-(#E{oUz_ft%QJlcrOH%Mf(-8V!Q@#@TQz)tJ8f#2XFi6{xn<;Y^o+ zcP`?}+Eeq5!jY^dS~4}Vr6HoscDX3*Tkh_Yh88TSfVGT=iM)k@33KO`{Mh|3 z#5c4!D||`$L*_d2!Xdtf5!QM&%^RL5)r!|}z*SYXdZY+bWVuF-)xQ~BGVAYimILRj zx17YPbAXwrYZdkXXpKC!^goeQt9RC7FhG}#whAJK@dZQvhC=RodYmFls=--U{yIIJU7mUVof2PaHms zcIw(|YB1^wkt$UIq)}U8o|CyWr5wO<`o(HB7*KG}bcU zAOJ4y52>y(p(!(NHm`?LR7>c2tMvl0HT);yDXn~}4;YjT-u%cLUkkCz?(}5gZk=$- zXduN-TOwBAnO3MP@*`UqliOISW~XhnK_V$>GbUZGQ>JEY$&glw*5zRpb|xF7vMHMO z_Oh)@&IXzLA$hcpGd24F>QwxWwn$$ASuZJ`6}BsWt{aW}x!Tz(txP^+*09D~?@98m zYr_}}sMML*@dWT`%YCj)WI~;=X&!1CJr+D<91&qXiSY)uR67?jVfW}hW(}@yqa-rV zXIDaYlQF)j09haBta}jvb9CLjaawW=m(eAL@~S{22yLY(873}^!zhG3ZC+ZIR&X^* zI&`B6{m^+HiFs-@mc=^nw-Hqy*pUg#lDUYM>{g`cNO?uJgm!BRYn)Tlu_5kE91*j*;}`1NXXB7BE#40Y6o-2D92_8%r%` zOIq47-C^vA=H@I<>^QuI7cXZ#zd23>fJyp{o~z2^%3(T1t=7ElPZcAeJeU`iL0*Vo z+YQ19CIw+TC(SRvrp&&32-vWCqZPN+L8^`7M;8~f$?>R1lTzv!vhgGX85WT5qVX2^ za^QzrH8+;ZCqmfUcu!+z}=2v)dqR&AOT4EP>Ae$Dy(Tf6LSXI)_V zE-Qgr8}WUA-V@VXAiq!l5Tc|dT560iaJ?2Euml^aZdl6h^)5A8|)%19dVE?|rFHDD%8 z6C!6|jR-p4t<=Zb4&t4rvg@1py#qut{G}X8KeRo$v@WS%A(6OFoGL?;vw7hH~jK)6bmt1b_9|MDy1?wN>f(dG#%r zH_#Oj;&(9b>I6&H@<*d1V-$P<9EuXYr~|%f2?0sM0 ziWG@=1igPiw*&#*R6R}QE?bM8V z!r$^I1f`%lKb5m5;Da3U8hfx)9Jyu4-+$<*vUpn{1?2mI>X|e<57C1?zKA?!%{(wU zC1#)J8A$OCVrJMWP%cN=c-tYDdY5Sp+pUfGdu3!k)f;Wk7+>_m-WMkKQjA{{XbIvs zUJ>5n88~r_AMgzyIb_=$7#tlFuLc6OB#qR;#T6wvebiLQZa+c$l90KuJ5xeJJ z{fa-1E7m*a*Z+m$~bk}iy2xMq3RRNiwlWb~z9-ZzSKZe* zBuAxlQ9M5+SDB!h&E}G#bCH->vt*-0Yu(MsMvCoksH7!%DC8m&(l6n89odGnL0Z|r zoH<{g$z`0i8b?`%psX*K&SEi7sf%s4O7;%Djw15A_k2}o)d3X{Oo08znrwiAy#BEOu`*DoV}(tz9>a$YtpFa1Md;L@C$j z-x|aRBB+X2P~W~;p#Ap^ntzql{`bQOJ3A`_a}xvOe{ldxNs#`sZ1}PttC1~QS~jbW zOR@FFMsQORtTfCIpWPeSYRXxja~4aKys>LX(tZYcSJ;!Ku~lA#O7eC(W;o8BJm0v3 z@#m#MWekjr0z;1q9tfBp$3vuB3F?UO?3rbYe(&$WCta`Xxerj zW1Y%bgu|Acs|D|W7)B-3W5$(CucoG@PxO@*lbwTZXHsIf`8q_2l5+z_J3D2W)tC0D z4o0^FD0ZZ(YpA|@A+zmB`CM*HKfg97W2SLl97-2gUK6&Z`XIEp8L#vVDQ{1-! z3}{+T{Kl{FL)x{{YG`s7G&1 z%7Qwjrk-_nmO!+9{cn$MA7j&=aB8nXJrAVls?c9xa0-KoqnUF2${B~bN6m4Ny;Y@1 zbK9fI7*pC)7-Lv8rI=;p#2V9$>;lu;Cwu>v3rre63pM_dCW`+jX`+9fC;eM{9vM43 z`~T59u8^^r{}q@@5tW7F5=Br{5ORyfnO`=HE7Nq`S@Ak&v+e8fzVRiyGmB9MQh=m6 z`Sp029{v6}MD0Ud2H`M&J9$<&GB=izrFZxI#l8s{TBCmI0B}k=HTT6iC1Q6ZBC@?b z;W=F^KnA~3KAO*FNrxJ#^~tf z9&#?L^1eSriw&vg@<@k1_ZURDS1C|(pq)thExNZ8JL3Tf&o}tk%Y(u8>CO6Gp(qXn z0~g&zkyY_P$RVO()YboWn|U?KhF)99y3%Ud{Pd2_Gb9JCMz{WiEsAA6*R+ksj@1T$gW9t z)4onelbntJXhq`f5rm+yxwP9EP=kSh>9n|vESHx{j}63z=!701pGrR@@2>s?HyGLN zaTGqjNI-t{A?4k*KjaRJ(bRDu9sg72-mv0G)q}K)>2@xZ5=9Psq%eyH>!flTrTNP$ zvaUai&IPSXFshTBC;64zHuFsR5ySQ8lRONHB)ib%Q*mN|9@$l77;XUu8+qNd{ymGE z*8nW6bg>S)@j}W~+jfJ)HfdF;PBnu%o?4BPU~ZCYi6UhW(Jc22m2%#fNBK%n zL#sAXSs~LTa4~Ipyk#G?Nq9KKx_d9HeRlAW07efcU5 zCX1=lOPu;xjn9A(Wttu~(G5`Q3udVUV$FNeiAZG0T%~l7hNsh{>6PmI8-b7=%q|F%hC*Qv_!re4k zitJZ5u=ppRgn!KlqW|to{o!bA^5qXB_@5G@U!N_>KenI$Ruq*ma5De;>mLecC5l^8 zgA5qFYh0aEuk1O0paTOV)e#Ym3!@7;FgAulpES@}=bJN23*$=I1JU{X;YoeB?uBZE z83X9`nI83uZgA${({m zHJ4pv;cAKYq~aPl{oZg{LX&Emn9`gHJec@}D-HW1hCr!?Gx2EEIYB{RgLmEpY|IS9lPh89n*KQX|Z69Y`haYF$bpX_;NGzqkBh(_2!M$UsP<>g))0gcrd15!OJt7 zHbf)22s%H%J%%sxK2RE099e)_8`=Y_OIvrZwH?LALsj@hbjA2wGn)>hKGmEt(r9X=>h|5=KbBP@D~Fq zf<4VC-8W0Euw{|gNQQb31)-rozxgF|Sad6&7qr1NGB?_7Px3wP-#y^=A-1>_8(6B( z74%K&f3L#2#ahOY(c*#9fO+R`^%@$~6&8UVZoX2Q-#4HT3cZi`8fan)TlTIR%3BGF zGZ@>fpg*+zLTeb?$dzaV4)da=+amdtt5ldFjcvdk{W+G=Yo zE-_cZcD~PO9t<6{4QY59F3nCzDbt^P_2Q2`DqzNu7vlZ&lmu68l(cJ)h85b)znjD{ zi234*zypZGYQeZ&a>bCm6yXo%|IjLlK$oE1 zJzw<#0_l$lmBursY%&zQc^(~?#&6#CF4CMEjd)w zlnO{JO<9cG)QkkHF3xT-H!ScUuy9PwO(e@nN{W3h4v&lEdW{U9eg>vsMg=u{2Eq9Q zrswTC?1ndMm#6JXEMb~1;dKknc7pJtbXj`b<&`I62(t@Elm*x^N;bN@3pXuy5kJ3?I-?JnthB(y@WXwwZHA*Ri|2&~GkM)Pr&LD@Gf{?dsyQ6x zAfEwXDm!CJB1wQ^)v2f9YP{LGwyd)>B{~@n)T@cpM*;rWh8cHxGJ8s;S&}!0uXKbS zCY;e%)|VJ~8_=M4J;bV$NjBT2TjJuv`jaM^s=;e&yM0r-8mseDjK*+dIW4h)=nWa6KHQ50(K;}; z6f{v**$Gqn^TyEJbZvc3Q0XO2&yL64WmH@1)Ft><8m}5J)n%EK^l@I?<80dbZi|^5aOwx)-CFZdk^|y(OMTOyO?ad&cos7Cbd;n zA?j7dYB(C$Rh7ATn84jFS+shpujplPU=$Tyfi#egDZ=qlg+!lxf=F6qGLGq?{DBxG3o!T;&9}4{&%FFJCjT1irJ|1GNi3&eRKs5u`*S*2LrWvKZbRgc=+|glV zhw1j<+C8!2<1&6s&NFi^(BWK{nyt3**3!D$99eI%Io=*=(NV{h@l;m9UbN$IqjS3l zu;2L*tkPbfe^%}PQMKM{%V<<+dj|3@fIukN*4ybA$$-(~SRS0J&!dk~+dafKp*E`t zSu!7F>w6(Dx-}oAqZ!7rKN7Gphx++u|3^DkeSbA9Tf*||%_R~%5?8y_>mR`(tWP|; zSF7HB=8tdK!&`&DyW{K(%JW9afCyK8RN6fqUqOkoS+J@yBek?z3md|(5_sS=4izsJQ7IE z=Nf(olMYYS)x_HMjr0%X1FH@H{R6|JHpwTQ`b}d*D5R%g8vN5Wjp;tN?a51%hpF>u zdK(S??(U3ug=g~UYMNX7)U{#l?5jk0OgG#vRDW=qa>%a3$dM5aKRDTu_KFYF-?^c@ z_+-N~%mCNm|17&sS|-l5w|Zgw2|cHVIG1mnXh=ykt;i#q-%f?_q$1|sO$F$P4CjHBO3Zn1~k%zti8?v`A=GVdG;@=k)d4@2$a9`E}w z+0n;r>qN3A$H(9EQTX4t}`!UmV+w__n zrDMYDgna#y>9(6G*ZVl_vh*iWZWJ}RMUs2g;hPs}E)@zaa_w3_wvo%^2p(P*|`_=h-)9FXA+3hj$4<5L0#DFw9jsb{vjB96d{7L5Q=S)daG}JXN ze4&{FI=*Olw}5H!*>fnUcM-lsOHSqJLPHiGY+)To9iF&jrQamvXhu2j#(c4sU|jfD z!M5JO&9cQIFcs;=cS_pv<3CE$h%C8dER!sjDOt{ysUj;V3PLTEWy+Q@<#1G`YMCq2 zMQa-^u${8y2Y!^Tv@bHufVJMeDAVMxFqd;AX`(CEhwFB;d>DGt7Jc0^yp?GRDyXzM zP8B^L7S1)AvP|wZPxn-K1eys@mz1+*bA&;~(k&6GEX&p9hBy~ZLZ;O^^r`ep?woWu zc0H7{^ZMv_sw&##kI^{|$a>X}(`NZrW+zJM+S2t(?wPIU1vCoOHF9iJB z3*^7i%2BU!*=v0O?E@$8jj=06wOx6^rQ-;zCE8(Aa43VJ+jmn~>C}10^R)x+jayMz zd8=^u*Tr9a5oVb(&3rIGpMD6R#xF@)6AHq2GOSlQj_cH?{Uz2{Q)JjV{fM~pAlDXi zm2XJieL4Sv47z8V`6-$CNa^X58R??TBi#Ks`0QTcX<@+Zk?;o)tv+tjryuJBQ zBw@ZKceST4ZaIF!GjwVzU925f98RH>iPOlU#Ow;kFs+=+p+v1B_SdI-7PJpT z=#a+|av4w)S_t_G6DG`oJ8*~qCHE|b5$=`{E)Y%z6DuRKwY;ybYo9M(#3^cF^~n0I7Q4Z74tvVvVBqN%EmC^Q>~n zZd}wuycV+*;x@WM|ubyeY>I(Q4I;)SfD>iJ_h$wxEy&xjI4yEP_bQkXH^ zuEXuKaKHAM%y>Zu>bD5;)56EZbNyl$JiOt2y)10ee4=1!A4yr0!(d3J2x=Z{0}T@f znxVmbwuEpi+8edxSE4U@dIy-wq3qc5cO!k4BX&ZMaFwy1(G+uzLXEH^xJWyl`#DiP zoqJ(-Z)$IoHqaoK8vT;rNtR9B{1`Q`h)HX={(C#tV-jE~2?MAmJ(fhsiV!B@6;eFL z(g-f$J#QeWtE@8K?x}9=ZsxK8Jx=E?e#5;*%vjK>8p24mM;`OZesB z`T$Y+xWe6me5(+6Ac3t=n92LX)NlzI1`12;EV7_2z z%InTv8mSd7;hz_lj9WN<#-}8S5DKL=fAntjnFVhl8Y^Mu6f_$#%*cv|Zqh?IlX$sl zpq4?$Vbt6wh`>~$KFm)z3$;ayuq;MXmK10+=JuRlrZ7FMbLn2COVa@SLE&}D_kidY z+5imI$fIThbT&kQCCLFPwX486v8f__Z?gw2QAWLrr~xfvi2&YBQNCdN^mzQ;1`uk@ z&HiI2fUp#jHPD2GM7_h*Th^TvlcHYk$dzlZLL53s8hRjP$-s}a0%dFYM=1UbmvYDj zHD`sAdq!`^x|(jJqY`km`w0g7Axd&M$MNWJRg=NSu&ZE;nOsuEI;T83h%+OCj*AYg zP$%m_6*QeVoPvcbBszpbD)R2SJahWC?l=edfW$4>xO8ed%$TS)kTLR@=B_Ghw=-xY zM5Efa<|YtuT0j&H6)O66kEYEfs>l4cq(5F6V%TEN7){c#3Y z(cvvvHE~Q#4w??QSXytA#y{V>841%}Xnsac;~VZgs;a5|1Pn9jwbRQVWgXN;$3Jn@ zbeDO-hG{A3#Hv%b7EGDC)+0hkxV|L?LWgL@&*WxszJT()p-}fbcqK6a6N%Phds;|Nso^0<@!mlW=iUymK zM2{3bpD7Z=-*8)g6aUMBOq?Gw&gK@K=+df7M3b2&<`8xzIpsy(P-)gQVuikledf~- z?f~C+6qf6)_`4n8T*BtGH)vy{Q(AeB_PH540ur3qH!b-lRLER5_xeplxrAOI)!n5i zlwrtnR;uDYAzG?Dmi6S_0o-YwC`A0-*o zu|vvdJ!ELWIL_P5LNIm}1ndDJ3jAKF9ey$%4kZG31P|PrxDIbh5Z{Ax>YL3?ubV zgd=Q>1NcHm5n+GaUkt^HUe=}kZJe!`3Qiql&9PFat$NGW19Mj>r6_IobEnAZp{Agp zXMWy{AyfzaWpipebhm*aMa&mWcGAN0H)iKT_ zvXWwGo9tXXre*g!ZrWcj5xq&%)>TsBMLed21w=m))=Vz%O?`v1xr}M@kOxc9S1AhG z+g+}umCYiVFYko}b?^_A3yr(neIXD3DFBNF?$!hX^qbXs{Wl^0!Ut4>I8Jk0*Wsc0 z0cxt+&P~k+$WQq7xiTMi*l{GxkmH1Wx(0+9viww_`h#ae8+?@Sc`grw1f&O5-$RMO z62faMGx=B}&*?d^M0&Y_6-lPpogA#%74wS64(Cs;Xp@n3+Ea)vObFFnv}uZinoXc9 z7e|Na-a#aa&9|?_Lc6dY=Y9v?KM}_ub7B}b_fN_u@)ZN=&3Q*o-Wy5cILyPUl1Xb? z5&zak6Zh39N$J?3f?EzY#z9`WSmuG!hb$P?r?e(OBho?_hGk49#hT0?=+6dsss{zH zup!*k_tD_jfn^5RGX@@U_Un&TH`2XgSVwcr>FcC#=<8^(2f3Kx2}c9$h{U7khs=fL zArh!>VcCM=mPGZ04~)bekhnn-7CT0x-G$3hD^2o+@!AN7nQX(8hB$(BCYCWT&|Il2 z3yYAT`?d71r@NvEhohjtsrC2aQUP2ThJ_R?01_%W#4;>vtSs9)4eJ)d$W{3uogpy{ zo&aocuV@=qfJM`*@xVHXYb0T5oe#KIEU#U7MN_|Fw!hn9cmR{CZ8*}!q!)pzJM<4$ z086TE9cJ~SeoFQDj$~I*Kk^!KXnL#;05$;bZH+!OJz{WGLg+}F?FV`zEMwN}o1V4N zQ^OnVm01x9Y1Q-BjC`VFc$n$uo6MRrWO&HUjQ+PPTJSMC;`U(Qk z2&Q4e^_gKlAzG9|C?@v68=?2b#d2RH7Jm!9MIBynINSx9Fb!gny!DW?k047z z83PJ5QLA(8n17)BXlG(zdIyGnICT9Yg0Dkr|JS-F^2Nl7RtaGxAY!zk-k{8LQ2Ow3 z+N2iqLeVvY5SYk3+>&OMf$O2sq3Qw}kx4{d1Xh7K6?+eds~y#ll*xxK0?|Ek!E+s}RtK0(qJl&H5=lK5z+xJW(7wYiY<1K%AYRH{0Ws}0vdf9QKS=(R z5^fIwC(x|v7ZGj~s(Pz+nT0<|UiuO6Ee?s79{@(mjlUkjtOLqyDz1-)!|6Uv!)GM& zTPqwcK4Crar{FB%+Na+0%S+?$`JF5%++#DC=SxbG5y2&6YKP+GGLNMgB&<=et?y$K z^8~+iq?cxQxFgwdQLP-RH%^qs_8PrS#DD0%_+Td2BzY@ErTxg5&&0J5)aQCb#y-|G zDQ$J(-elRT{F>Z4=$(d!JA2@&AHvZJvjgyBB`YJ6@586=W{ItW0c|BjxD-F;>yJ(22wWoZ5L2+!>X(+d8Y zfA8wC*?72AX@^Nme^V9aox*3Qp6eU%(j5NCZX`Aad(aktb%EtKif((b7pX{uqUN$` zBQBJYMn~M8GS8W;!2ro@X%9%?*OnJ^91l!JA|7BxA$42^?7@GedJb~fu;jBYpjQr@ zj&{cOCehpUYOUy26TOfutjk_qYofo%j^^D8O}$?wk}?+fbDVC|2&ic`u10U=yn7k? z$K0NG{K#miyS@*EVn#=k!PRpfABYHHh9RG%p%O&<9dL|Vt$hhI1DmUg9GeX4?GQlu z!*hapzJh$ABm>G2<&q72)|XI5gRLhx17es4fzz4n-c z%<}sRSraYkgl)Rj+pcsi*tz#db2}kkf5y`F13q0@G5O7FmlQ>l#{5 zw=s7+ICG%rN=S$iW95DfwnjFjz^uSIg-k45nFMkU0I^4r9k+@NS7V%}?1-h7=Z5+v zvGkuW*&;g0Knv=wqzbA+UE@}?-1echH0p=~ik7rx)j3%~MNaD1D=ptC{EtsGV!&E%Te zYK=HGOWMBn?H;r;Qo%Dy#YiYXcu2yITm5s_k59z zwgA`^xFw0{MyQ3rY z8r4lmh|-qiP$Vl?kw68v=6YV!TA6CKGnkjTTRl>xPnjDN!13DIo|7}FW;i1w#>z6O zG;-6UodNg@HRrnff!~i|+8oD3ejdUG;6pe=d?*!ky`7ig-}J{APi9wC22h#n{Z2H) zd<74j#r3#Q;F)vOAC>;T#{q*A8;5K|!7kVYtsOXP*QOm->R5TS+;FrdEb-d0aVhs! zaAq;{$eOW}fDRNDl_JPX3fzZ~MrksX=seaE{ozejKfr>!aW16}`EZ#4V8mWEl(>hg zm{$+drD0<;g+F}s9)jqRzJ$B=8na$m)-EN0j88gQqh@2YloKIngQ&QaU#;?>{Wzcc?7-mK=KDHzn#ibsj zgDA-M8n-7qhPG^s0v@lXgA#fV=1oXM#dNveW=Kbo%V{E3Bfz7n24t z4|=Q5s5kaji`@H%Y0lvj-6U<^7k#~4O!Iuh?OaG<=z$+%q@+Qe$bDvmQI@|xoz&0J zSmXBRB`Z4*DS@fu&Vu}|Iy!&NJ9shb*~r(#T>W73;Xj5IFlg%o?m7H#vIpcfP5y9RzKQvD(=vS04hG^fv>$)|HrW^4`e z`?QlFCYQ2PFfR&KT#A=N$<@Eg8P3QBE^q!_XgW`Z!^nv+U@D0383%wi+T5|{jRRf> z%R{Bfx}}|h7%sOHhR_u>i=Q@QxJHKX4h{-DlLto%AT>6=1PDd!vp)Z)xl1&I|uUt6ztP zyEd$6arr^xL=|Ss*ahBs1ANP>|5TwaO#Fa@>A($V-*r(qPP?pG#x-*7&iWTz zg%j^I?rbBT=PuXW1Ft7<@sgkv3@^{C>q(;Ej7)2)4t%#0j;;82q+{0;VNrPX46yz z!D0Fs&;sTza3~Cq2UuKzCJn20VO>#`8>@DKUE!(?Rt66*z}rH$fZggg3Szf_xYx+s zGq&LH8@zU$T=~6c@Bq#Dp&%EC9FusW%fABUc_usR#nq{Lo<`gX!&D@Ek`R6pT2q|Z zb50gDLD~1w+GAl)ixJ4m1o5h#KS@ZE6KrvWV-#NaHzOx}WK_ohROzfZDS$!$4`=Tf zBuW%*X_o7jZQHhO+qUbLZQHhO+qP}nuDVn2^>lQ<7cm_(6Okt)^Y4y*R^puXt(yua ztYAU@e(!Q?=9Y@EL@-t`tBj)d_&hv+!t7&4mp{ze#~8qHgThI|@4bSpVCX;{GqMZo z>R%2GSD@-xp$)};(QM~RQzCxywDp?}4$amkXiukcg=TKdY&kD}+M%QMaO2F2UU=fS zS_X68_JX1Ozf-a*Q!Slrem?VMX6EPshcWL8Jo@Phh8IxYhdZkb$}KU z>yR3+1J6$+-dM&&5Qa8my6hxc4`48kRIdDj){>U5Wo>ivS5d~C((6Iid&tl9UX9!9 zBwSP+HBr*U_OTZ(2;M}a?ngj>$~b&^qWbJ$;il#6bK;EJqNkURhcwysYMSAW;^H%D z!m?-r4j%R(2XPY`FpBcxAEpyj&k==U$U}1O+lbqmnza6M1&@+oT@s91-m^O(jDNw3 zkEn>{OJVXvbr2b3z9BfXe~-SsUi_D-_C|IK z+k219KH$j^U0P4Plj*$wtxkD6`|${94T3jTa_`g7HYZjEqN*>d^>MmX;+S5s<9j4{Ak#w~V~3N?;^wSgL%`ZW)i(7Gqz!zB@)kK z$cCa;W};M=8&at~T4Gp9n{JIvi~|Oo4&^=-7&~ZRFcY!T`nYCUo;fpjD^ET;8x*=7wC!Z= zLqP;pUPq?5m!>^jcoldQHC2@}cK95}1&*gxR3`Sl%cS;9&P6~c=4jPChvcr$m35{N z-qU;?7yA_w8}A$^g)Pe?S3x4%{{pSZVALwqf}MzgL$Mk6FZ}Hhqe zu3|9k&>Fk)(z86j4LNxhE(%S2JP0|1J*{BL2s|6sT+{(n|6XJs(yJh)9(4CR;@FXt z0SMe6xh^o-{johHA9%@QvOO3dTFU+7p0y8P)}Y!T%9r6Hv}#P1jg$ z!WiH3PxfJ$5tyo3}0_R;OJPVr;o)47qqm}`2FOKZ*-%ZxhjLVHp?9me~W>#33 zd?w=P<9eoJR<1t#7Wj5~f911TR0g^QhmxkecLZbOBk*h*mxGZB^>!1)ZHgHX{lD!<;pd~CHZmu;SIel zSkVeAzn!or zVUN3j8s7xCnm=i<(z3BTkr(m4hG=1M)?&P3GhQV%ve&>0k}fiaIc_epLMl}lYDrwk zlBE{kAs~ioSS5(5CHu5~B5pM4x4WiT)s7F-lWd&^VAmf`N^MS=F%tl>s1Zkg-UN^Z zv$h=$who8TTRyo;G`UA-`wkJ0{SSh@@$XwbZGzSgh zhKHzz$C&LhxYW*-hfcG-Ezj6`3Y(TvS*Oj?h+A@MiOcM1Mqd`(S*|((Kgl%SunX3h z6TIF`Z%Z|$5jz6y!`_X1QWF}qO%GR^`A>TGc~AT}6Z6Gw$y@&_1oZ708W9}V8!ckOOyd2$9pj0ik1+HXWYuP0bjzBA+ zlBh0^$~g~zbn)$cXmRDnQ)zmmTgstP42@@8puEiLElt!#s1xxY#jA$n(x4)cIo;HS z1{4IY4cXhOQ2bEJW}xCeb;gP)s<+07AH7xeTBPMl1Z>tC!Zv+}Kd}_0l>~`r6Ai1~ z4tU_b+owP6hfo7LNcjPXI1)!3*+?I8JQS1&E;Y)#Jc(?;u_3lLA!$F$0dkv27Nlz= z;TpAU;OLO?TI8-S%J5xA8lYVS)1J{^QZJf`J-q?&&tXM&`~Z7(WhR}hY0e0EDHH=% zQQXe48r0Uh(4lJU&@vObu+23n!@}uGS0O%BeSxFkX>&N` z#>RNG8X+qx;T9xqV6w(KC((yJ4^#sd@fP4cffj5Wvgl|5x}2W&IX*n%UXFRdNfW9y zN#bwiCT2B+)B4c3%CcPG>2Sb?T-hSK$9G;AS_h)U=JFKBM!5$%4mP;@$084Dqu0jA zc?G3?nKu!K22yvFY#XcPW%kF-S+)<7P|IA#>v)X-DJCqf&;$I2h>kFS- zB{s@M8rk60mjnaL9x4)(GUi`aoiqLX75m-7ux1PX$-DbH7|d{W0sLbdJ88U19(r` zHl#Ht(goZ-+!;r)Bc$977kmJm=D#b8h9}iTEl|f8Z&g8}`7qBGj|~)DW*6q0H3tJZ z*K03@Wz`d%@_yxk-EVvi_CjVMIn(Mk47#`;J!S;ym_XMj)BDx0+QeDC(wRp+AsBr{mKcmZ z=eKhyT9izC$JD9QAfH4#)xsqof~W%xzKU>`-zcNdauH}vvc1kF_6J)O^5?3(Bi zKEAHd-)>2!t)RJDr*>2ZIUbVZTDX|k){J1DKkrDTt)U5?eMDBZ3$=lnEWvSC zqc!|!C>$>%TpC~-^?>=LrYq**4lJv(6EHr(B~EucfPKuPUe*O?Mu8_7{eV!_XNN|v zH)t}!hDZb@5BVf!7fu`);+Rc5t1eQ>xtRj3w(-`Hu$=EZY#cq4J(+Rt&9O&#?noi7 zYj9l7JQR=0c=Zn|(RIbphKp(Zs`(5iU$3CcwSI!hIte zk`FKTLfe+nuT=M&&MTDVVG{)|7PnsYh4uFXhnReq==lqPVq%tF_#N~i>0h7nF+f(# z?yRy;AmdY}H{}|wJEY;A!MK_Py^LYp4YukUy0(Fleee*fJIwMGLK6pwrijXwg6IUv z2**;(u&USw!oZOTvZ0KS&$)Blo5-^Lkdbv|u-KC{F)rCJGZXGIqOrB#*)xw=t$*TK zS-}MP2#m=iVAwQ4@3>Xy6uM%_8;!x${*MlJ8CgKh3BQ;#vfI-9oEQ!;@Uk{~RSwAD zay`8$55`EvVIF@rJX(I5zMXeKwGEj#T7-6~*9-e*2!Lx4(wd7!fIEKRa-ya`@0=Q^ zOGY$o<3Cs^93FqRJQC}5F~+K{#g~K*g1yc)q?Eb0i4K0vI;Yp7Yf;G?)2wnY1<{qI z`~e=6Pim3+T^^Xys-^t(oG2${!!J6@zDv_Xu8_9ARYzP2vQXARGZbvaeGZ9om{Cu*cM3x9$_KD6T}5<;^kttPW7Dw0YFVt*Hkk4^7gLl@tDoj*)*< zP*e1oTk}-S&To6r5Su2tHUKW00*$jZUPSmQL6BPESuD6R|h0p_OafX=12KxeryuWTQVH0U`{n2q1-Hu zY+`24t*8f?;Hw7-7m3sD=)qgr( zxkvV+9y&NhWA4DT7XIk~R*-P>;uJ#)!f16t%eqn6{`k{Tum+Y1AN#5h6ry`m71}wc zhpPZiG>?$N@Fk@}uJ=cjOCIi^G> zOxlH)a%L!sFIF0L@>AABPmFn2e z9p`oZ_9A@Kh8Hy`>eM81!4>mM$QmbF&uL@Kwa87CO_Cyt;2`-Lfo^AIhY9e37DxbY3S2133~$Y=gmF`T~DhV$R4)w(bnC^1pO0mvvLm z44pgr@-;Ds?0LD^la3-#Sv*w_ZS|TBKrQmGz~#}FK_kTdaa$Vq%WVd2GdIKnDT?E! zH6APMG4xVyQG8Mp6H$MUDhTmWq3k-&qzx;xq>ktY{;{@{Z7xf zb>iRP4O4vkUe9{=!5?;OWk29IO8=lbmx1rlupd)Cu)3ld-+-F|dxSsFsHP$KtRP-! zuHMVub_KvEAk_E?Jkh4j(X5L)^|_xxl%?e)8~w};du5P5Z8FyE7KeN?NnbXZ>vv1S zzpr>Exi{&`iE>C^M(2eo*3S}z#G#mbs zV4EaD@&|iy5sl803AjJH?r1|2CLs6SwPyzoFZ=DOn&;0jx7`%Cw6*NK`;qz|*HWz9 zqPp+6bu?}D?v)6h1bW=PA5G!I!~$5=7!Mdgj%RHiNq? z4a!3HFRt3mIb&UIfXK%BM|?xXGN4gNYXmW;6kGpVR0O50h0U!Hu`cE;263)Og15u5 z<{;&aF>ry$DFNBy%@K1GmvK1YiE56`6Z}?Cn5(&nEpX3jiu(bo*`Vh?`rNAVrdGlF z2yO6#nw`{ZOa>@vpjOP+?IT?Xw~CMZx;N0vRviptQ^0F2-tS^qVR;uJ_pEHVv6o2c z=SUesT_~lNBGkofC@-sv>-{s*Hyx;O*KwaVcoX99RP6CS(XGPG+rEcNCe}9H-jcin zf)W58_eCV4z>4ZXB%)+FZ8uA?kV!M!3ynqj=nU;TPZ#b#;FAYLKTOlm(n=OS z;<0Ad(_{P_A=<;M3+KB-7|cW2k%3d^2GtJC)6gbgl)GK8fED@LR-BmUPM}8>D6xT< zR{Wl?4JF7A)!)7$*(R?AYSru*zoRBp?eaG(v95n)1WXIwHqL3%Guc&_{Jfx zzrlK`cIJhG2a&AS8g*#SX|9V1(u0wxv=AqRFr5gIRgo-WwEJ^UtXJ%ZV!=D``GFnr zM%L!Me&wtqALM5WCSNK8-Jk<&GC_R!uzRDUfXA3UW z3CwBn%NBH@gI>7_Ote2M-}t6i@dPkg6tXXQp{HKN9d6tJLNkvYT;71?(oKRSYxEVL zyd^#x{*l{pp$Uw+$~8AUM+8&|s%}JRiTRHF*2>xA`~+EDCu^JG6!7bBqd+I#37d~cOEK=K+%z5E-dW{FoQ%NOFZ+0MGlY|Sm# z`q0}1dxveqZP)zJo9N&hJp479^?%-bWA7yL^9U=nOZfyEB0cjp|1$$TOxUz3Tiyo|1&dRzN_t^vFX%zS9*9+yf^O61XO z3uww3=iZw2s{3VycNbshv?GzqOm9HkvLZBcLipm2j^6M1og*KpuKBJZ1~FBnP0^W+ zm;Lx&H`f3l{q<%%rtwglT+hr9xjjo?9uG5mS*k++!}zK^3!*a{0PDe8;E2wdN_3^2 z4jYI67~zJ*oaR?dAl|@|LA7`YU*3fnbm~_f^%CG7Mnd6*WIldt!;qX%9Jf;oY(wQm z&q8H_<~5ej&SgU8r3{C+8jyjrth`>9o4{wGqBXu2%nLcsj=9~$eO7)t2=GmeUJ@IO z;31&BBNyHsi0EE8GWUVe?_=V`!wA5*W>@AZ!rVSI|F>%f77vUqg_A3w(*nOz@WulB zAYIiNzBX}t<Q6~in`%i(~F>h69<^-b%+?D@{!l*dZ}Zn4x< z!#}39vEXmaFaOd+If}N#F7&aSbSz24>__9R0+o^b0{1O~Hbw^L9}A&Wh|o_Ad`8%$ zNTUm(^S_c5#MqZUHe#@xU^_=AE978F?D2nPz%1|o{yhI13OIRFXZ9vlK5N{g z_GS%w;;2*P!=YU|9T55eauebM-dUObT{SNikfUWcd8-OS&_2dop$(F*k&>c?t0*Q_ zo%i&O1HDs5IRlRsUl;K2L^B2nfjz?%Uz*$ztTkt)UMUcW)=f|eu1crye2^Q{sI+Tzb1WL04I^vw zX9$qefP)Y>rFy)?kI$iSm4B+M+3!wLf08#9Jy&U)29S)ye_E(C$iodF@IY^`1CyOg z-PB$i>{u)evrF-YB_c^n0`~}jc1=6=+rt$Fq$mvOHeQ;euwy)@+t=tCte(3koaj-) zzzh=h>2^r2>Yi&S>qScN&{U&+^*d2$F`k}Q$rU>1^T2CstU@(G*p4r<4V_<_OQdC& z;<_vin_RJIRMVpz!i{NS(c^Ri^VA@B$k5MJvBBVl!>2V&gGi9g5VCG526C@Z-lyYLd z!N1YX?^QJ4Cqfa63)P7yVTxX^q9K2Hou%=K!PQtn(W4ZJdJPyXH0J9KZW{d2xq~`h z{zoQNGXCw#<5YsVFa+p9DC(Ph*f=FMPK}*XY07u2kQ@J%L<{rQUnkFtCeZFRGA#F8 zioi1Kr{oJe|Hy5bhNfTFgLa+mO)u*UA-k*>V(~#$$NvwCdf}htq9i7=J)2E7t1(gK zfT(J4`afcXML6VBgRFG2OKLlO4jD;mif}Tm^3A7KR2!ReDe2<$kFwD6SXfD1;#Wc{ zPqeQRA!(oViw~Znq1VHQuLDPkLi^%%PNr$o-X`-A>J`~$yNo%{i(q-@(;OGU*41BHBP?Sm1FFD&^N7;wo?!{n#tXxJ{yz*nAUh5yjel&-9R zS60EQ?3klrtP*K5ZmIeS`aT|VQZ|>=bcHP%M6u=y`(FHIyU^qs{cx<@dojOFg)JTy zalQE%FX;YOXfy&Y9N9&o&n#!Y)}It~$pFRI^dy%kzOAfXZ|NJKk`iB%eL5~Fh0N&?+cW?cFaz@KrJ39(m+ZkCYIT<)O{hpjm z{)aOoM(9L_w*55NaO(Dc|HDy}J6Z`elmBBRRzf%^}e zyX=B;Q5ineARE&zT;nZXtsQ{J8jSp4OKeIkPKap5a}!-cs6UD-qZ6Uch_*2+iE~A?nrP51Q{t7QTLmS#higZT&#E~;^criuO<{-JWpyc%>r|0!vFYK8sIr@&e_nj^wMpq$zd zS$zICm3MH25&KgoK;dbD>==P?y7Fq-;W1blUXLG7>ZNmqF2|M_KZ`beoj@7ArG6u# zD`ov5Up0Ab4@EYeN#j)uFW`UJnu#hC+mU{4%^$zx{~3$%e~eZ8kCOifg2d3^Kdb&f z3mz@sFA2em9&NWL#vW6b7~4)%i}<;ya4QEfU6R@b-^&;3fCOQDIEd@;I8Ef6`mZQ8TY( z)ZmEqBn`VYbT*I77l$jVt1TEM^t=?XQXCtJQ`cg^bJBk9lKUqNwnrqe_AJA-+V?*l ziE-Sn62SlA8~-l_{_l=N?*9|bLEgc{$i&#h*2v`d%Gko_x2OL*grr#6Mh-~;-seSA z(<95zZv|}$@{f%>M}Gu99YPo>OOW|S+#Xt^4V%gIb4~ju;vL(&08+3pqOTv{1iNQ9 zvw9!=cLNt!<1Ewc)ztQ^-mWizdS3m>Z{gJlrzT1w5D1q-D8AMPQFd;M7GY2ly^+l-)1`CkmAYpT_@srl|&Uu<(GCW zaS|TaU}DOf)nG&P-T=W6gbpplqW*Zi_7ZYD76~!x%t8kxMz?k7qQmz5Qyig&eidiE zxFO*db!tmBLUv1K?$G>Rf^D6Oa>Wbww|zX=$OLC)CTKl*C>_dT&r76P zi?(1uYR$HgAL1N_s-IZ?>E@xho0R7D1X-Ck&MxbH4ktUNORMx(8E?(zyFZE0k^fl9 zp@Sz&3lYh4)s}SX>UTL-A%+D^=7}X0rDuuElbX>*FScVdDhH$lE378R4|h z&frJGIv~Fi9$9T1a-v>}(uR(Cacxla_jx1kn0msemDDFgGTOiN5pqd!q1ok&T;U9u`~3Jn3()_Z6(TMM*8hvI5Ur?Vg(QH?lUOTr zU@7BV*xa(QVXhqkcuzx^q;5cvWVjH}uUeWZfwMgovb{d%OTrrz5Wv@mN3w(QSQPzo zJd-|nyyJM&&FACu4ZBB?0lQME-=-#l@k(W1XE0C#0f%kPVNRc<$N>9{5x5(jxQMF8 zDXF<=R!yv=86y&DwR{oIaL;%(BpJ!HZE8;zjy@qDxi4FUq24EtqJ-OxYGE1iWOHaC&r>Axe3x2&5*lJ7F+Z5s6j&E{1u`g#%@kOmdYDc7W9kK1wtIzOY{ zQ13y64hP-6Tee=bcQ#2czjeRX2iVgwX6q$G?QY_9?2~F31F}agBmc~E2D+FoDQ%E( zm@@)-7m;_s2HObdwl4U!%|Js7o^2lxby)(S@eI}Elvgzbae#%hml~kFx*XN&iQ#%KxLjCM#?G>MQb335`w} z6$&*PN|*my$|MjWIsPBe159F48}Yqi=}C|gYuC(e3W^_6Jm&ob@q^!hBaB(=OfV?o zJBOKc$M+fM*V$dYUO;IhB7fp4SSLfpL<*S_m?`49kX0~KBzpSQ7`BYwW#b+ks0=zx zH#7b4{J~nz0hd?dX#e%6nm5DR`eFk8kfRc(Vbx}BWFLPtoCPO450V>eN4*PI zAq*vOM*Xxl+<#0c6jDifdyZ^zk{&le$t7*QbY(O7Sjr=Dgu7jNQ!!s7EW-O`g6oCn zQ8|IoD^&hY+-ytohob3~3;uZn2Ns(x&6K#<$&ooiiIh^VnVb|SnUK1lat4YGrpq9{ z0<1QxC_Xd$0(tXhi|Ln>vyqJFCKRXbl1oeWNFg5AgQ2m{%Z$^sE>vRnD&<^fJ{j zHlF6a8R7>sNH3i%9!W(RM(ABKvGmj0eeQ?(-@A%xpt0J=X)c9icb!0)gK!TK;U|I7 zi@#|uum}rEs3E|R=!ivK#oiYw45R`>gN`Z*^i0s-i-GNQ=j_j(H&!_E& zYsoK0kGlY297Z;_B1$D)c=(^(G#ivGw3lCf7WgljVgEm7m6L^?t&p9qlZl%XF~k4; zPOhZ&9}4|r$~Miq2@~DC(y3a_%GP0XUtLVDP@kqrKtjhW!z#pS!bFrPaUT010uPEe zWagXXW{Olq40$uK&f$2%wVUpk{u>(R4PF;18b-Jxb$5^7HwX{qhOAH2cL*Sd9`UIt z@f(kzW~CD%DD?_D=%7V;@4|fr;W*$)p`p6Lxo?q*b^fAc)Sokf0E}KBR2*bc?8S^| zyl!d56xQBQ9zL5pVp>&&9g(Jm(#uppheXwEX<;%PyuG$=^aqjWs}JUHPwmOw_GDl+ z4x^h#Xny+WtoQzx@^AFV+2)EeIhZ$(Bh+bR1RH3a24l#fCEEJ80BYXmLl z0>~Btz#i1R5GHb+aZPEen6}hQy#d~Y!-I(5IOsXCVNd2j{1_;0X8bH^oV}z?g-}?z z`z#V4cxLDk7=s@mEGG6FDpjUc1U2y|Dmh4(8%fVF`8Yk=c3*zG#P0zE)b+mMZC{~n zQI~D;2&sP)nc+aUCb;bmWm|TJc{HJpT=6E?LD7p(dWLuZ6`_%1~^oHMOiNTUL0xS}m(pZo5??j(p61eAxgK z_^+Bw@O-`Y#C}W{T`1Q#Bl?=y`a&?4%OXxWChhJF`!KB(;}g1U*g9Hp>c1Dsd4v*C&lrePZfZ8G;xiv(OOzsKHl7D<44uqv+!e) zK&{IAO?WRRfkB^$14kvecJ>lsa`p#EJy|ib3ZwTp1$0o~luNYKt7mcr&0kdz0 z3k7kRytK!eU^>J$G=S_o`WwBO6TnUFQPd`lVz^H{%KG=*c`+w}dAvfJ9(lU>RjHZZ zr17GG4Z6Z+5lzv|?hs?fjLKtG9il_6c(9-E7~$wrb->3TP;g`1-HJoi+}UZ}F1WRC z^Idte?(75kv#$4xLa|J0#>LF;wei>)kGf zD#~HaahOc#V#!iO50b+-%-w-H8OqgZlvHJkOhuYpEQ|h%aFnDuKn5)oU2U;*te|UP z#sWp5(YMP*ERSZ4FmXVY!emE|XvXOvRK}{ZuF^!4R)S(WsS;Zf-nYjaOYd9@m@P)2 zztLS}-NvZT=%z?7P20wZT@#di49qY{SJhBoy0zd$G~{m+_4`AV0P5UArjuo4+Rsoh zg5#ybiZ>A?L`^8P*?Y*qFEHrbD3b82pIAwXUSJvhI#$rO#!QzjZ zETXDK4#}}0NgilpS*IJ$F=CKza*`VAJY1T}IW+W4>Io%*szj?4E*p11C5>ys)PWlb zWvJ4)sTLwmV{*2!!-YhEf>Ef5PK858iJm7zXSF*RH3OLj7j)$-GEUg*tU!JjsgQ}K zc@`gSl!!X!QU=%Okj;oU8yPC>4P5D|m&mi?jT`*R+q9(Wsd206;5(B>1rc(J@#4bQ zW6DGWTlh^b3dWD|@8WI$uHmeK;sCD>V_JpC$ubKCmWZwLr*~M%WB1=GmPs?ln`f-B z)1lT@hZFA`du0?m{1unZu5*67k&g=ep3VqKnst98|C{wB6JEzvci11^O4-uI8;}^o zi1+WGPu)L4!}Agk6DyjEh-JE1u}t`(w47_f1dFyC`Ssxfy9sk{nDH}?dSRwDh4|qI zTn!{SVas7QW=jXfp3k>h5jH2eslOp(u_bT13>h&rfS)(kRR&1tw+UJkL3fju(=rk_k}S|$=J7pfWtgk^)0{0+uv zI7CoO9T;X8oKmqmq?fo1z%C8nbi#L4#6xHhH;zT)EKEH+?q-@O)F8sVQ zw{B$!Z!3~JxEIvGn#LpEhux4kDDD}vu8z*w#*`=+Yq?uEDpB+P3a%k|td|iGmY(UI z2fC?};ltELMG0|Kj)h<=Vo?5df+bWSxn-fU6^=B!;q$5Z`ENReXv%Oxv>^}6w8SK> z!)84XjEYb#I*QJ0nlZIm`}{MXOoZ$f>jbQw(ppHYY}Ba zhS?nom|l1T_M1ZLSyTh7PR91D42h~oZo^AMd2pMdYWV|8SL*zhJd`h>>oV0sKFMJJ za?@sql-V*w^V)G1I;8M=u^w8{Af2e%A$`*c1`CyaNkdWlBgt+agMI07Kbud;F236K z5-cCHry;j3oU-N#^Uvj5(8~zgzfgFmMdfq{STmq;8y`UZkcdp_OmM8ESzcy>e|@q;LU4#u(kxCKIXHq$@CZ=#3_mVIPA-Cu_6&*7x7rO zVZ#YFye(o z>liUAB4_*^l*-y@LL+Cg6dJ22*70fu;R45y9>Jy?gL~9es(6X%$&~TTMuLp0#LJ!% z5JpW`#*H=X(S(3O`H2{ij039GX8qUHzo*bJDSjUr+_qXmx+Y#vMIbH$IC{?!aG9B=)HXCTMmakjf? z`5&U4&I~7%-67^9ayu=Vp7a`K4)CQrny&sLt8>mo+oDY99rK53r^NBr`)ktOe%FaZ zm&6{CQ>JGNr17C8maimZ#(3s))sAS3r&V$gnGFFsdYIc2@X#7nCvEjH25ZK1_YVR| z41_Bk>HI=9h{Tt86ADCReUM7$F*>79w+!~vFfhK}K*QTNR8O?Pl+Za%#TzNP$~ zui*Q!1#_=0{j~Ev5t9rsY)#vrff1DWkh8Yp@MV#A3wYhJqKJoi4daDpC*Yk30|uT2 z^(shI`5F;a))Q2K2|A2NcjPf&4UzOMTx^?29|j5Q{woZ5*Ya_?~O0jNF2hAQikX6!KcCU0~Pkv<_x| znG|)<^EHF1dhIP=e%@v5mu?Ucr+0|cyjekvNyK}%18uD8PEw5J>oRz3l8GDN_>9bk0@gv>Bu821s`PM1Z}a_u!B-A;?ou{3NHoE{ z2OCNu%31NM9)uCF#H+JR9kD-K@gX7RJd~pc1B2B+cV2bZ1Nd_z0vt;$73oRP6lz!ON$_F*3>f@IV6P1UcI)_Ma?y_4z)7FA0rS5>Prwg#bJ=%-_3t_X(&A!#$_ z51g2GhnM-R8Hbx(@4E8VNtVVk*+2-NE*0xTt z1wfMU@d5%8So2VdNGwQ;9A{J$#XU~8ov+JB$xBGzISJkuFWeTMPw_>vwXO@GPQNB@ zEW5|MlDQXH9sz8Rs3ot{gi#3_GO@B<7YE*oc-^2EyVTxu#{KeFtZ4b_h0bgwDcs|mUiM0US7-)P^z(9(V zoDX5{S*(-q1InL+ec-Zkm5en<@DrVcZwwW0AV+CMQv%{>Q-qAU5N@@eD@pEK)ri5)1P40LMu+2Bg zj%;o6f#=0GRuAW*+d~zkiQ`r?e~n-sUU|m`PsGQrfD)U7OTdn5fq#kur%{@d1s7R% zYCXvVR|1bh#9iC4HM zIstJ_0*sndANeuk8}Pw{1i34Pk$(p}u?ax3iRqE@VVB2iu>Aymo&RI-b%N45=U46b zN8cw83|cF@uA9&k?RXaLj?8@S$$nFQ4YQ(8nfK#8z@qLAq%`G~Jd4qPN%!dwj#TV| zxknV~g6!CbL`9L#o!9J~#vLuyIR__}^TGR5K#KR6VK{C>vl$Oh6z=5?k)L8mD+)SJ zUs?kKhC4P9;VATjDF*2)6ORv{%_3zdj)Ty?)%Y|6kQP72o9D2ng?YXBSsIVB`~@`U zYXaBVmL@hV4kt3?Y4cqDiYIJJx;m=UP2S;PFb?mR9=`$>@q$%C(4c-TXPz(?sUpmXuk0&cn3ppOo~+ z?1twlMc0T3Pja#|m$Ux7&2j^6Ii-Ftu{jl%-EgsTf>AW)fEzM$jj=h#iMspJA1G$?o>?-! z2RTompXG6pV^d-6TAn!oZs+?L{VTJoXf-D?c$A?`fR z{k<+#xTDjXm%ny*@fEnB$_Pa0(uA_1@&Hq949#iAc@@068hNvkpU%UvB1!&pdE;7a z6>S>4Nm?C0uQ@u967%k8rixp{psjMTba6n9YU4k!$u8EaHr-;9FPr*TD}oW%OpF^! z;mK*@WPK_1R33qtJ>yh?BUfOVJ2%Cz6jN82>YZA1GSY&FECY|fq|vw%uT4|AT3F2zlKn;e^piv%N{h#>Q4#qbwhASM zeteK#ZXZb2AP7Lc3zGLFF8TN$V{ytQrZeyOsk~beE(%J9z@6?TsqEC9Rw zyqvpp2rLg$`6@>uo-t`hZ?8U$0~ojKRv?YS_SYE8!LwmOw%SL-{o0nfGCwKRpv~$( zty&1YPM~3T0Cm)RF17_g8hg&2#pfHU}!q z8(2>vP2`@27GNnM#w3K1Y+iHr>LCaw+%(Jwb21A#F93>S2a)=4XoI-4`8!=PV2{Pf z2a{!KbfpMgxGjH4WDY7VSoOpv-#jGmV45=QiYDJo-PU2mC2Wh)-dsF>$(U^KvTm!> zPYAn0x%b^qB(Mg2yK>cE-l|^!Ue|DYMtDbuZv?al)!Z3)$BFL@IYXOnkanl#TLX>m zWOVyv95bDJ?zsn#cRew$cg|nbyZy6(laK1%p?IgM0QW>uKWTc$YHv8)yT`c?p(=J4tFc(zr^T5qvyZ>A=GblxHUU(rxL3kwkfUwg=bgTIp;k@sO4LmWby6yWbb*tIL-k>Z7 zZ~qgX!u=mJh=nbGZ$>ULR(mwO7JV-38za(&I|g3Bt5eyQk0MgM`fR10nlm; z?l`&v8toRuQG8(9o}t4Co7pZqV7$u=_!;6j7_c=lCKaPXniwD7qw!MciSK!uuhZh0PD7J?^NN>@OdIiUKZW-uaPLM8PQ?J1pEjk!P zw(QTR+?GJ`H2g}gyFbD=p}^x)PTDrdVnS-yBx5Id5Y zaIXM_ezDHJ)PWxiRLjhO0HL-mC-_v(xz5(69|bhG1jA3Z#f>~B0A4DBNtz~Z8lcwc zpv?ikMN8B35nVuW0@1_2J3^oapZH&;z>@eS?`DOqffb5NpOwX>mt((g610$?r{-RM z=8idVgJa>nf*URXGmXg}0`4DFB7w>1^|2)t&>6+jnt6;C=@SKwDy-RXLOqhtMOFqI zt!3I91wc>q&_10PGBg!%--4j$t`&6NB_H#tl(8?Byj4p8FBSe(Tg^1N!nZ(Nj9TKg9{08@+huAWPOd=#RWKK|wPuwqKxF4!4B zm=P(oL-DXlyZq?}|9&OtrdoZj^q(^7s?p=I_c7`4c_#eUk?9S*bm-T~5$FxQbRgRH z4*$u^K1JW_i2eBkUjL_a3^!p*w`e;(GIV|!6YJZ6J%vwuZR(uU`c8$5^$dkm%p-{u77=9L-> zoj((f&KNpDJKW~ZB!+dBZk589OhtC6!4a-=U+%*R#pB5d#)b)%1ZwvE_cYL;d2`A8 z1*n?xmLOSJ6jbKwMz0GH54uaX$z*#F7Fgpj9dj^wMHN+=r}0|wW)KxT_$(Dp8;-5i z&rldprzqn(D_-L`+MR5QU{N*5DJ+O~;!1ww43x$kNjZ$TNr<~MBH9ALF#-z+tu>nd zRA(tOUii(LN%a;|?Jdkt!t173s>Qrt_H2oYg{}?G+_d%iJA+_E^h;9ZJ~}uN5Lsd7MxyO-U`~ zm>!ZM=kCo>JMs)3TGd5xDmdO17Z$maeFZZsD|N8`U4XowD%HnK77;N}U;$r<)s416 zw%`%66qmYkuR9?jUSL@CM|n2a$vday5*n{RnLpr=`=evKPFWZs`fs4t!w{36Dq?78 zP3^hSwbk~C$$A@_yjcxhpA=AuPh3HP)}s{*0&dcb>>{c8Q^Pp3we^vIrJ!NDbbgCh={mt`%f=BzsiU zIPjn|Ct@wk7*AX&*~ceWWBiVi59LQ9qvT~hbE9+Fsy;(#9kM^ zs`Cl`a|;irffpvB_apuM{i$r3tw4tL27}18#rle=bxlXo@hY{d)k^X-3W@63slk4; z37~@Er0EW#eKw;rfgjo{@~Q+8j|`i6w>PLVhpd#vuy(mFYrJ!MNXw6!WLjG_*g@GE zGy^j~n-ydk#o|)Wt=~gP%Ibn1`ZKPOfHf_-ZO|K#h?d$6b%rfu5ch$Pmhz*!dJ!&j z1L{@!>_7}a9-0Qp(mEHZR8HgDPfIgT80SSJvh!z0O2l>m51|xl%xY{mak9IijUVMAsTlzcMb?TN+*sO&%hlU{OC;uvWtX(`7!F9-j~84Ckdtd z?cw%+923*Uf6e*AK~~GSL8$6FP0YFJNyU4|qGXGi$pcFL=UW+!VLOH-rhwcIk1TM5_I>;kqhX;zE~? z^Y%FFnZmg!%6df2di+H)dCCYJvT##GV!7f!*qVB7i2X0nWO zA2Qsy*AU!_G=OykqDZQWlnl!!%Z}sHu#;?qO2|K0V32}v))FccE6?YK1N$HcP=gUs zz~F9vwdpf2We=n_8B4eGOKQu%*^)P zR-{9*rPpgI#g<4rzobp9#~|(iD)XozX(A6?zfV))Icn~E@fKz0Cp*K+IE%g|cURA# zZ^5*lh2pYkl#wUUd>6`34|x3wMqULtWqYT1!$OBcA`$cYVxnioU&S|-a1Duv)37){ zuTqbs;?*>iH|TCBmLmDg!&5VDcN_^}$i}AD{?b=?YGVy!4X);`@$c8*^y}0kHPwS{ z4B^AB)KA58`_Ex?52?YfFijdFazceF>B;AKtGxp}XI#s>XU!e0y`OtcwrnmY(=5g@ z&%N8>U?T%c`7 zCiROJU~X|nKB6}{vAI90_*vrfyGV@!W?gvc4W$nZhDzv{tp}Jb^<;Y`PT*x5B`Of1 zN)?b0c4?-Jk8p)EV&k$!AaYCMDEntc(~!wKWzFggajM!PJ6VUlB~9c|XWaTahpaf{ zxS}se%`Gwe(C@^Nus#EzljgCzb9S2f@~xL7y6W?E9Q+UAOJ7zX#|)seH0T8KOz2O_&2nOHtZ>0@}MNTUnGlNz*2! zd;%EQrpOZpvUTrpdJ^X)XPv}E0*Lf0RW)Ez_CW?SghkM@mkQ6JtX1OMtXD7zUb>8; zY6>@Wj|nhqNAuJ0M(-lwx2?43LjRDhRN-zS!_Tayv-9pCyDc!cIYjH^Hd|#4xaBl< zTE)192uvbnHR0<_u>`Xmv|bK8=sA^mLA7eEf!twyi!bE-W(8MKxqI}N z*#MEbi1+Fi-j20Rg(KDanO0@$iZ21G;P-taxA)cIZ&HyRenIBHFWGBQ)OqFWu3@k{ zMQuCR3SEF!*&;=2=(sFnd&1)mDfe7TvZ~tajAd7yBaeq25@-3l#ksIwp;g?GZKWo_ zD{MYB2N3e7lzXMIVzg2<)kT3>IH|7LBXpsAh^X_K_<6fngAZR7 z1i$zC?aX$p-?rg#94d2d(&e@h|6Eu|H^$AS?gqAye60mmvKGD}`p$+IND#I7^JjYd z`>Nqfu#llEvTURnj=A1rfw>l~p2`Bgl%lsvx=j60w+`?bS04nTUDq_cSXCZcK;S4$ z?BcNKwkY_iXg&VM6r^nqn%IjJg&4fh_6_KZb1Oxd8-%5Fn=!I)DkFY${+4%up|$vg;yATjlMM zf=4Cb^-&2MI*kO~#0A~3tZk}@l5DK?7W~mC!P!O#KV093ej~+QA9jm>f!997CN>(U ztj5Auri?4t!>nAWyJpHbWz6WWHzsaIo)^X<Lo+DvKwg6YT@VLi~9j{KGp*v5#l=8B(q_hC4q3h&47s z{#qg#e)gV1*!`x>?|-Jjyh*3i__vbHXl>K*Oyt(Qb9Ec#VfUN@n%?ztr8tQ2J0vn8 zA~VCLG;u^D;1?U@qc%G-_BIv=`{l9OE>aUlbAx;X;?6NBXEobN1GcqUCyh6vL_;(E zUgm7*Yl_EUy0nosP97jd>aJVCdumrE-;M8G{VTu9sg_GENkZX?sSPyo;o2@pg!-*L%_t-gCWp zo4p)D6EN0J+;Lg?|ND@Gde}j1_BU+wueI=hCPV4|zpsP;JoaV{PZ!lC{Lk$y4$tw! z5ZZV_VK6vkb7p8{kZ`GRQYJwclvHRL#eO2}#DsC#bWf4ytgWh+=J&uBD;=7e5;|gd z!%8vh=H^b@<|^E+PiyZ7#B=0R_iJy@3|Vr(02f)9_s*8z^Sj@9j>WduArny5%`>m% zOEhHO@Ue@{?5!u_@;+=K*Z$swp7HAyug8rTzQJ96uLSG!(E-1Y7OTPB?Go>1T%D(4 zIONc}lH=8R;cKWR!PLP3hbtaxkbT6_#_J2h)so|8P>6>l!q5tI!&ChWH&v#$=)E33 z$+vVUsDzU&b3u3$yWuGuEB5Rq7m}@wf-r7B*-{>sDK4UJPM0;J|Jk`gf0i>V3S&;7 z_5d1RK+!?VdeJ84v31nM{KY(JD_~4;v_O>-hshoghX@~rLd24*Xy`IxyeI0-nk*Zd z1QSV)cMbzj;{Xl{4BjKi%cMvcnK38&cW>!2LUk${F63OqyxPy2c$4syh2&OKqf213 zSP&f&0}SMy+pV?b`NI0r>U{Ip^;v9g>{ISE-4@KlSx!v=KE4n*+sbcYo9R78Rx-h5 zFW)AvvgRfYMXd0lfvt*yzk8wzmj1~s9cXQTeg-~n_sJCu7Q9(fvMUm@q9&{gF4$nD zf$jSioJ=bc6O(T2H)~o_(k_!nkf$9<(i*o=QcgNKm)TP&WCbBR{e~5XFeYM2$tO+I zpryr!BLkoq%~J|J1fz-|U+wlgYQh9=V-MzenOG~d{^9DcUpw3=5P{v9RDkSo8q_}oezyI$tcOd48ZYgv}msWaG1q2 zXit?mk(DI4`T`l3BK;(FkBMc;G-WoMeFK9DJQhQm4l1*tCny@$GaVo@n#AoV>0YKr zJC@UMSz*a(ITF^sf`%z;5-EjK3nf;xEXyo{G=8KBvs)|5i5*9PK;gZ=Qk-~{s_9Wy zJba?2c=fv$)u1e}TQovHWe8M$cA?MVRIEOhEPKLr^5sM zZ(LFhivDlajxmT%Gxmvbazo(j-@CSRY7R@$-8PlsOtjZ$5js;i7MX&TEY=X{90T)Q zz9^Z%rBufC;nMNQL@7~mQcvw$6j>EFL@#Nf58{5kixL=W zu?VE|nsL)EhJm%!H@mH9Js&{%^ZB{0E!>M?4Z#<>#{_elO#V%!l-t$8ulYEiUNw zP$wMRL4E)aSoY377x-i;8XM69?h7RZJltMBEuB~fJNpf|b5FjO-3A_(n3sq~V%Bu$)53@GEuYl}G_SJ7CDL2%=hQ2NTbGPe zWc^lKa)4##s9~w-Erx5z+dFmHc8!iO?fltKi9&G0bmT$RQQpPur9 z*a2P`wFh`qZJD;Qx;o>3@mDRc4M5eVk7h#DopG+3W`}@X2Lj}5;H`1li&Sb^fa{w@ z+g>0~*ghvz#yrQku8bIBkAI|)3rh&@N~CSB$g%3wF9{b_6IpW{hkcY45C-V*s5^tS zBjykKqj*ZpGQ%ibQysd$N*KDVl4y>^aluR%)+^zP8QHhHfrynUZk8{lT9Z(& zxjqcsHv>y&Z>V|W+{YRs^vYZZ*5Zd8S+yUgD>i|3VSw8hkPWRsox7s#$xV&wXhy?o zN?hQgle3Ers}F}b1UzTM z{5JAin=qGemJ}s`duxiMztUqntP~0_9H-LO`Mmbb((zyFtj+5VMv)`CrErwO zFB^t26m4G9%VOR$$UfItZ^4s>Fjx1V$Ey~7GS@n&CbB}av#!kTPaol^(Ks_}uof-` zYS)oft)8`x_|rlM=FeeypNJpdP#)i49=)dLtieG!Lpd2{xd>LQ$(0Rolq&!^nYCz{ z1dzPE)_uQ%NtLUp0*{W5y5`|-?a0&SN50pjV*&TA)NvX!s7JB8RZXhZU zmbRN$)>8IsedoP(kCkM#xe+u<@4d1P-ojR4flD6dhJkzkkb3&9K&9fzsJ!6?h|vY= z(2eLeixM~6(Kp|=XHeLaQ*1Bydn4C>gUA#ER*V~vTN-%Efe89JBdRp573d7PdDd3Nm)*n;Jx!#|pZwWR%OFr}4zY_%=9WxNiU!MJpVna-G` z#6Bm!oL9eKoIfLj8GN#zf2~%##}$UMexPc#mNl8{3j}GSBRt-*p6SxAOy^IBxO~PH zYpoLdvyHpQe~6>(1TUSLS8MP%#(2>MS^@Da(TDl)*>a2b^b_rz#_wFl??fW*ivU_$ z&H1wnVmFGpGg+1#d5pI9R9jKyV>x5ciA5G^(oaUv5A1X~^!U|VndVzqIKVP+z0z^r zWXIrB88A0ae@FU9#o^N2BtZLAXE5=HxQVyf(ysi8Ak1pv%1awYwag-hN-HbCgf^}@ zVklYg`s-GTaeBo?#&ALetdgOXjv9jR7u?yqMP^)S$+Jxg2ePjajiglF? z%(DZ%${l8!g<2o;;vwGGQUYF03V^J(=Pi)%xIy)?(jI}4QE7OJ6F#SF-*kncAr!C0 ztDZm17eY|){9`CLU4+;Ef&l+?XSRlP;hNW%xjU#hB(vhBl_r^xbzrj9Csu#ISYg=puN1$#g6_m$ z*Z7$h=#<+_-_rr??ho8HiFkT14=(%wSIH5b!5uo8-XAXrUcqN<4t;S_CrQ&n00b%L zI@Yj~*V>CN2H58VV58UkXg*RCMA*mhfa}*AU%Xor_BXI?MAIuJt+#a6xXDV2Vo&7` z1#Ay(ZULs7XhPWAYC?hG8Pmy`za9v^@$JWEd$7XYmb+Lw!HJV*DRysHr zEBC{>|DwZPt*AsBSsWEESobLIrrtEY-c5WH+R7e@wOm9PeRp>Z;8DhH-ESGFPJ*?! zYMDr_(JaJNx;Y$?Y~w<+iH01clM%kf;lY4*U6;eWsIIA1ALHb}LKyj0Ffnj*wLYq| znoH0e+bG`9$FM5d$h$Jy)LmLy*B7~}i-ePSE+vT5{OXT{D7i+c{NX;N6Qug|u&Az0 z7{dxF0#ajVYg=DKVmeHsR5)$9;)Grb2OA|`oEx*TqIs!J%V)a#JY>nHb$M%8*3ECl zq2wOYO!ZI|Wz#y?d|PhYtfmf6QB_J}$`BKL@D%Iu2hVFpM^CR;kBASWweYY`oyMaY ziON2j|4_81^9PpQ_3q77!XFw_c6d&n@Ah3$t!U`FWdrtiCe!e+g#S=7@`=JX=pn&E zy0K@g>TjISD!y(B=Z%z@x|g8Z z&9mo)7}M9+>4ghID!5rmb)@-2dhk+h)$H=WMl)kxER z9SN8cTlF%vWn{$A33{lJ;pC!6ixkqn?EVT?@(g<@3CHpSXz*TngjzCk?peM1W;ad@ z(@>ZZ_wUiLAXjJ+RN%7yokNv)YL zu=*Ug5T922_Ai|g%`agA9C9D1_Si3J5&j1PP96I)Btsp zl7O#F&d^pln|^iF>-_B@M|K$9{A5KyIY;uSs(y-HCEOxnnY1fulC9(**`2P2CHULCeke8BaL%I)G&*5qW${3vP}DSy3-eH_GKU<^ZAWS?n575)2ULkAQvwX94+6oge+muA&4rPF17@(QzBrhx9>jl9aF*7&*Hz4P0>ggBsk zy}^WRJ=(koz<_Sh-84&q8JMCFQ$eiCIGNO#AIGD(d^vA4Gge5joD9H#Ai+NeQw zPGt#CFDjZ#U1WW9{XCaBGw{J2pU|P4XEk--yCoiRtJ@CAO&BTq!|I0>ut9kSZ^2z0 znr&%pTOnpy2JLQbQ?95Q{OSEiv7+v1iQ8?%TT&Pb=vgZ50@mi}f;C-7*xV5 z>r*K`xTn0=IQ3R-G1OW8)hl}UySa^awOMI;CY|5gdrsU>OaxU#B(8zX1^XkXch&&xVfZkI4l!bl)A4~2REaevb z7#A#UtO|gd6X2wS4$l)T&4H7Q)d0;P7|S=*X5rZFEh3gt0oOtdFH@~qA8?E65bdcQ z-HC&?vBolQhU?}&oK1UuI6(7qBIolYXJ;a4akx}xogMUUI}l$yVAqW#u^dpTzva!; z+HNg}wp43ER)uYls}T`hY6MCNUz64lh(oy2m%@IvBJ*5i*)1yu5@?iUQ%;>vz8u1@F#n|p8__apgg0tudS+>@1`(*AdiJB?lCv=^y3BD? z$1!{F5|@{y-fS#*+Zk;$1^l|N*k)B;PqVpG;)%=n`EG;u*nWiQ3csjHsfV$8&YsU2w&)Fsm+BLe4 z(C6p-OTI%hTtnKly}sl4CY5ix&K@284T@rb22u$?bdB59H}dJkSod;ne#XI#toWE{ zdQ34B1rP9j5nSCDB$?=c-l88!s-xqf6TFvQh}kv9I9r+sQ`Ou!9SxY$%%IZD(A*FR ziF0r(SRIk#PD(l1ZpNsM`%DBYWK3FYOZp`G{Lvh~UEqa4y74@F5Q`qxmmT0g+B$dS zw(DDK%g}F2>2O=HZryX+%rI^K3te?ND(|HYpx!^)`+HYg5G~afyS*d!xzC4sY7)1{ z3YwON5q|vo;mr5K?kG9L8V(7%`1)}7kQm13Pq@r8K6T?Zcuq9~WqJ{E*qCi6Nj*)^ zk;rO+p9Zpl48 zDp4*4VIl2E)||vsK~&%k${$(v>k7Ut6Z?mpO4?aCvUK%sNpMW`>(;LS#0wc8Fk9d6<-IUkldR{;l?OTU}oH`(THaNAcyYM$x ze8*R)sy^u-ghKQxrbGlKzeXJp2v(@+ok+Z&?orL2pU?2|y=wA&%<@twnEbL0!Y6GK5#^}e8Owugel2~;Y(kw9QE46-M z!h&QBQfmBA;u3+>?{xyLnihy24$=VR`fASGLvn!xJOoCA6d_{5tqw?4G9dkpdN`7) zHqsx_?GpCx8WDNocJ&e2D9ym!z`8=_8H=qAPU%2VKN~pS1Y0SwJ(ycesZHrfM{zqh z*&YVxiRr9D1U4dt_6u&5RU2F8JY@SbH-uP(KDR=s{L$o}K>o?M z({2lk#8L)F+wIQR?axyguYZq68Gt5NrH!ygkX#Ozj7u5AUcoSw!wcerOD+nvQxi4S zpZq{*psSfhpMC54`y%0xPnm`|Y*$is;6fV?UR|R)=WlBU(I@RY=k1`PzNwuC?91~x>^j-XKYh)FFWG`sb`rY+3?d6mYD)wKoDJchqwnd z1vZ;nE*FFAU`hiwW31HOyfe#oUD)i%av4r}vx%;N2t2SMgp(8nk2 zBgvorAtd7!LfITy12s&vSjYD7T|j#=O0U5UzPC)NCsptZUs1D5iAaYr)O2GbePc7T zULkI56XA*YOvlrGQxT}5Q{$+XJAv!8H5t3S3a;dfJ8~uj8dSz^XYqqrNFFN=If^M| z+~Ob#kBgLEpa({yo{iKrDDU%^$cV&Iz_r_4@Qx7_zBx$OAg^Ay=mE`1#AMjpy?WW9)ampc z(K$n*n|M_}`%F;3vKsK-d9uA_-}H&|K@62c5QC<-z`}Tgc!~u4*vlqgSb`l z{3{e^jhxIJ_EY6wa=ia?wb4NRHahAamxZ{yeSJdMh1&uHUT5NFLV%hpQJvRE4*Z-; zN7_E|7P7QZjxb`&gHpMXI!(4KE$hN_COP+|3w;veM}Es-XBkPMgV)JrQK6za4s@(q zEvFWXA(Q^=zIg?b-U6qI2OhC3$Jts;^K#+?CPU5KEHlgkbKu0D*i_# zguoo%_4?PpF(F9_i_iD(TbA{YH}(H@HUCd3TZ+nt@`56o9tCs-9r&R!8u%@YEsVJf zmT#ZXc}NB`zBu4A$R6NLJ1V8X4T#+3c-;pbjQ-c%{nIuhMS&)cMA%`k=Y8F*k!aBC z{{eObX3e$gkuCx;sTHZ7Ohu_O)%QDpC_V-PxNeMHz|asqRF`3&Zu_Wl7<)t@*6r-t}n!9dYYB* zk#KDCnPB@>e>GDp!(@5iWEVtEHA$nuc7gN}(M zlqNC5xeAd87SiGi5Qm3;6^hRNG8W6FGCmxo%XZAK-cOrf#HCwgM6Fx}hhITPju+D=FOY@A@!&NdS*`6QxXN@FtHT|- zM~~OJUTl+{9Fx@O_;6Ypi^dT3*&CrF zf>CvdzFps2f@`a{HjjHZ-a7~n2dl}u0m!-B{Iou{rG@8d9j8HuzqdJ_4j&QsN(ta` z5n{f)x}gSreo%WjJGtopx1z_G&qL~8lpEeZZpQy8zEUx>{f0OJCjU#&BP1{SUyOt1 zxihW?`j;L+gJ#^C!jYIFixsi6g+>64tH4!fn6phj5Z{Jk2#`pws40W%t>^itR=of^ zE*K@hq@;@wI&NO@4CRA}adzEhEEo}v}e zH9P4%jFoi^R6)#<0JHFgk)IgRM|E(tFnq7tr=4<1Kam>m^`*@Rjr0J}{w|7@R`f#3 zU$VCVVr4f!eh9uk4R^RXSA6QB#o>ANS*+v0>pdWynVW>yLN3|5(9Jd4lzaCC9o%6v z`qTj~KceAp^O#6S0hYY2JA$IgVaT(rXkZ_l)TrS?9rDTI%j?_t9J2<9D%0Cl0?%|3De zixFIVCDERV7-?EgyY>{*daJL^b6OUImq*5ksvh7}k%gw)E9lTSEi>LRe99xhl{erU zmEu;j-D_9L=ap8nL|B(@RMF_Q%CevUmzmTPBnnHEzo!MChg^=++(q)o$0nkcmT@O* z(!A!E#W5ar1l&eZ>?yjgxQ8Kj16wFgV=isFR%Xm_)LCOGOC~Qfv%KxQwtN$f6UjlN zLK-94W*5_>8Pn+0hi1cI&~2(8d$Q~F6bzm=gu-aGi``-agXR@8Be(jPw%N-pq}YCD z)M-bIZe!}8*sNmT5jiWM!}C<)Z{*Rct=OJEOV%R|@oaq~B8VJK#g&z9$|-M`@mSC9 z*+6Xqpld-9q`j4_z`EZ`v_sJlmF2H?hot$LZI9VSlLcK`4#|ntSo2*7t(M*wo6Bk} zPVT}@m*A)Ei{E4)FmGBI~HO&j1mo=#$_w3GEB71CuhY6ixp zEh(7aI0#iT-7E5#?l3fs)2{H!Agg{!Ve zSnTz_H+SuU8NP}~2&0|d@{KP(#|>xzUsdc-UWUHBd_K>{nOIQX5ADr35FQOnx&S?z z#}t8MkD9t(8reW1)1xT!%zX=LxWy6;&9Ny{ug2_D@vgho=P<^QRX=lX+dua)`1ts= z%TD_;a+YqNyF@^)$0!+SC#1 z+`iv(9oTY^81yPuqvM6~{y-ij2eLabc8$jQ>m6kgiBJUQGo>~11`q#XprFz&Px`<9 z{MfYs?zL^7s1>@7w|AKb-^u2dyhI7A2^5+GF0BLAuEf9+lDYx3Lqp}4e!|`4B#}s- zn0N2FF$>i3QDo8Z#bX_VAP@Y2QGF4I^2=kzT0`f;OZH?!ksKjQ3~eBaGQ||jEV1;B zr$k9_@PwyANn?nFWMj&va2Q>&oPw$RGxmq%Ovc4RNo!)JD64?H0&|RWkhYjdfq*xW zx1#*DukFJ7SDl`}v7I{y{2#zlAIM?16nKMqjxhfHP@fYF6#gQ>{-e$wLCk_2CKJSg zoa^}$C$q6zKYL{ggBm8c2(CaDy(8SV`+2j!XY_ghT;?9Hqq!%by(b{PHo9{Y%qb!g z6OkU||LTp(*sAQNx(;wx_UCxI_emlQy15L|iSq0i_w9?LKU~;(;9HJjCKK5CGx-qz z1mzW#V(bI_2E5qX(haAUkt)^!!^TNh#Y&md`VPS^t3r8#TVB$M1l9#**bPNYj<&N} zTUh9%eC7xQ2_P5eKuEy22~tIx9VosVplrWE;+p@B1F$7Y)==UJidl#PMM(e$UP`us z@?1zpxr5bSX(KOAEf}hiCtIx;Sxk3=-#}qUSBsDCKu?KtW3{*k73rkiZE7W z!YV|N)7==t*fAtb!C`$TP-h#eTW>5@gKCXsG`aGw(2U>q##Eb@kUHIau0%BMj%SpqOGVOwAv;svA{s;c{w{8 z2{UZa&-Q92+}0KrmKqM3u?~)W-mNtqK zeFUYsI`~I(t~!y`u`W9a!3)8Z)rj{YdY5po3ru*msD5fVKwO(lSKSahk|%g4g!>EFmYcz0Dojvgln^i&afY4X z#f198`3nw0f+w7(VWt<^&y_?IFGrMfg%6IHgj`i0vaue9Q`ta`4bBfVqhSGFW412KOt2-B?8$Occd+Xj3fmxlhvC7QRs ziAH(-w_g>ZMrpJAn}3Bw`KN+`NJ@Mg_5}b@nnWet8ppxDLFg37j-uEojv1?JGF`B zHm@W_mn+;QjY)A-^BA+#l$P;UAnZZ&L6!5B)4`Im(;j@@7}*|mOwH}x9O3687V|HR z`Lv1*m6*SuKiV;A`oH_GaW%`#j}tg3p{UJ_1IMxE?Jpwi+TOu?>C)n;S)Ho-mBzi> z48x9d`7uCjp-KMsBeMq2at=RX{wh0C8;XfEx=wIm9<U-m`sc zF9iIbHa38s45_2>u@)K8LKS+#L=+9fm;x=R<44MUOb5z^TR==a*x?|#;A_#2*`g<( zopId8K`jP3!|siIKrs&k?5#ZbqoE-FghkC?1hXb2#9zU$P7+` zSh>+AO+d3|pH6U#$eEAG@yHz@a&WyyTgPe3m1Y6XTE(ealknG~t#e#;z(H)?M%*^Q z?_C+PDy;`Q#Ko(|H` zoKFV<7P!VV$<(b}bB@C_`n$Btx~zg0ojsNgJ~8tAn96O9t3s;@sms~K8K{Mxb^TlP zw+?t3BUY#q(8n+UG&b(ACC#{GndtvKgn`cALxT^2;29^sq695P#3%d#2rWpOOH;6`9fmHeJkRJrbhs%c)%!?>}46gN$yUrRQ1 z4x+eQMu&dNjX z$8&o@TdHo5UCWN^#S{|7EM9w8D1&4L^3}{yPI2>2Dv9|4F)ZQ)DEHOqImq)S_}-89 ze&`_@0KAFXsQksegV?D1Enh4&zWwey_qJ$QEa7fgHV*gpzy{9toFn=Q)cY56zDrkB z5Xjup`s^*qhvq2iOGN0i3tpcP{PpBBBsaHXc-r#T!!viRr#yRL>;Y%N0e7bB2b#db zEs@c3_*bODacbFWqdXtityAizW zhsUUSQcMu@+TBumuhJ=AJ+C0}DOD@`%)$Ba)V#NCxKfnP8Cmig-P)G+_Kaa|dEW}y z-_w`4_|7w)Mhn`-n?fU3glsc+)L%29nAtU?2)0|vIZS!qCgv~z7 zN^te&fF=nbb zu++DJV3f#$sUNfs@NA*XF_Ap8s8-+NH|hotABYr?UWp~RzCx`F%AV2z)irj?Hn)f8(}5eJ=UW%8BWj+d^Q)>WY$nmC{jj|mST{xGBXrZ79tWcWD@`I zFLsZ)Zu>Ql+PhWwqO%x|qf~2R&0BaS1r{wRaxl8;p;qdtg`U*p|EQ4SRT#g>33rQk z_F{*0%o_#?Sj^uTthV~8<`1NI;V#f=h}khWsKVV+lt#0Le5-uth}W;8U+?%(kSElV zJdoxs(eAYZAbkLR>f~&=aY)~P+3kmL5o~fq;@!(D@pm>n`jf3rV?4rxdwO65FCIN0HpdOz-mz6e{gq@kTR&NKPqByi?y zRKYg&-g*%H(4*(ekeF&Xw9_RxYm|(KY*#qwJ{cYc!$G(Qcv<_i>n*qPJ`BV#E*7f& z0J8mFp$D$U5YNlcYpL5>jimdb25hFrvJBT%xzwC}>M^awb2SOFNd(U&=z2HEt~1Lv zQCbCWW@4?%h2P3Kb{OY}gA$xUbx8LxT@txcNBX1(d8LTWLwf^KTEl_M8c}%D#Jn

    xc_s0#DB6vjk=CKuGsepMg8yh64uHTas|+G zI@$*^%9xZIJa#GzKUI!}_0$R#Y?ev92hCTiSCoK>Zl_pKlB2*FYJ%^OkVsKDno+v? z41~j3I(3>z8!jq+SGO`)Sa#f}-KVkNXZ-!%;QO4*DdI(?gy5W^lO2T$PQ|eAnd!-p zBmiLOx4v>+^l^qlJ_ZW2PaLMIX0*(t>j*2JK|0(PhH9Z6sTbwJB4WC zR^Xx-+&PxpoaJ;_#uF>oI?VM~@IMOJjRRjX2mb0RBTxwF|* ztXmdnEmN(zLw?_bmsz)uKrmR=s+HfvH{yB?x9IvU@c9DiCX6ww&4~0=WWd2@1l`s; zZP{s$yl+xHt3Y^-jv^$psvxtTFrrrEIMbNtkgC178B~rtj>nIJTK??k_u-W9%y z=q=AT-x%FKaz$;vjhCW!0+FHI1DK(5jA$kvJ2fkiTaqjE6u3lgC@?h_LZrihA~>>( zdO}=VU#n*--a9@p&iazQHQbE7sW zmMM0b7Bn&raKt9PCjA=;@y;A=AjyL~vGlb9;LF1041?UV^sUnoZS+KDD_|T55Fjt+ zC7A^I!&gYs0A*f-U_Q8)M-YW%kI;-j#UpYV>+uiz>9k03euw*ca3p)O=R0-+bCV2X@|Ow zfA_M1G3_FGteH}n(Z^IpsgJ?r;oPijp+SUE}&a^f>?(#`soJWGO zHSx!ugxvPeHE|26rTNJ#PNNH?GNt1vCCD!3*h@;}9(}_m36XzUvw*O1sW(%}E$!cp zLhEE+k6asM1#a|2lrLNp=4k^ozqxKCYSDt(#hLKlW>_w^M$lme3*twt7^MN=|PnX=gTjifzn3m;-q7FQqzc}#of=yMtYH2*yocVA_U(vhHe4{+(WiamF?x89F z(;qPbiM1mA7Imw^{8PEY`G2`5{b!QRe|Dl2H60CHHMGy^sdyboZDK{+KH(B}OiQa_ zod`O1^emWPi5PVDB3MQzrit?8;b~r;6;Hn<9wR7x_k>m&lS{1IAC`6w8~u(=aT@xh zeaHCUFPffPdz+qflLWp#|8M|VG^7inBsmT##qYaPO;b1kt3Y=JL@A?{w4n`WDalgA z_nE@kk3Tk|m0;Bl-L$A$6sDtxzss%Adrm%u{-ks?c)tAOuyeo~**`+oY3F$uIu-a+shVyBB+LSDCf8a$&E~74`EWilyF!iDz5fos9Wh4y|Do(1qh#Hd zb=@(_wry99vTfV8ZQHhO+qP|clw^5)K{L%c(Qe7UoC z8%%fuFTpU0CJ6-@*JH~bxOn01U~(gAJ^a|y@GSw9wH8aye=M@odg~6e`PVmC8mnZ= zhDyCc4XXS*xi@TD4M@M5N{Lu^4D?f@3HCgO!lho}4?nXh{0Yq?1oa;_oC+y`1M@Y7ZJmfbIuQGj| zkNv|`ZpwN8h$(V=umHNl_;mh6q1DR-K4mPu#Pn1(>y~8nhiV$4itF{YOwtMmb4KH|fw6*lQW?e3p$-WRYe z8{=rY8`CfoPk5d;3P2Ef_w3nA@9OEy)1Dfg7T& zJ!>h=%Ci`Q9F9AersG6`I$r=R|~lDw=H4#V;SY$VTFd$ORG?8UlMF(;_fLQ9|$5h$Q~{-a@f|tO;g%^!8-*(K00S7 z8qLBR!3l9*A<+@C;;CNs1F4P&PNlxW2d6+;6B%3PsK=}dNZneC&gFUdy)e6YnoDT% z_q(^5`c7kmf>#nbLk`SY1OMb_3%&n+|Fy3>wa@k)o~*$BDLnlnm-BBeuK#MKsGK_> zDj|Jk8828hXZRBf@lhd#7iJ_UhWlDoF5lF~7O(z5zUgyrNF2Jf-n6868T09feHpU@ znMLP8!bKX?>qVs~VEE*K;-22(RL6rF^IbUYI^OoUV(Yoz%-H#Qy<+#p&y<53O7veE z6-s3%I;aHz7a`!3oN!g}qe7uC-uOQD*6pxt!uG7tuSZ=~hQWa;V-W*ro=lL?Mki>I z2V)cL;%DjEgk(psM;_*zwW-pD_)V!gG={12tm<{$+ppaNl|Z=`Xzz;+QYC*=3p`8l z8=_Mikv4dMsSiIIC$t}IXxn>x%u}*;GntS$?T8&svTe6SHlDv6q5A~Rrq^Rl;2I^} zb`w$&Tpp>-he!TSU7O#GJjI?jvD`kLYz?-?o#T?Iq|Au-8P{)&XRFx=?7ICEULrY= ze@$MhtED_3=%2GH^B)L3PZZCS_{eK{?bAtMgxQ$7ukgAQ!j_4S_tA zo(#M5`!KxzqEV-i4tP__5A#gXt3VsT;!p_!R1x}l?GVjE;UDXcHFAsEEZtmsBdfSq zAR;U_#L0~Z#Z*vC;c0}oxtz6jcsOY`jo9BjoTcCa?8vRE5qSDlVsht!cY%`0$&x;J zYm8x9sV(>IO7*;S&2mTHl?qKTS_AhfEg@YSs`Q%TM*Sjv_{uSd>~kZz`Ma3wc)DSr znpxaw#GS1(G`yLdhINPX9iuts|~%@xKX!nAEr5R&<} z^ako8Q1ESbB2nGA-x!~tfHQ`=6A||1Ep^`u9S8 zq3_uUukE&fmFOL->H_I>^U?zpe!p#timy+!6#AdhZbxAWSO&r*|L;;W2$6r4^2uN?1gsJ99CGE zToP-2xwhg?s?lBI=SRZ>27#*6pM`Fml`{VG^ZZ1_GC!v_$Xhtx+lbJ6fNX0R?Zc1j zfpqw^rk5=0y2ik@rk)(%`I_dcvIdyk{fF5F%)CM7)W$$CjB=*z(YnULy2^ojR$Cxq zHs6blpkd_1st;<05mswJG>2&%C3uS3S}?e?BwOs5dXeT&>P3p8%ngp~vUtlMWzY#t z^czUMzP2inTT72j{3-tBnh5y(4zzG@AcTm_A#9s+oY1%TRO64BdxlZ_YUKVf*(Dm<2gs8H0Zh(Zo!ODa+f^uq49B*8dK-4AdG{XUei7=SCu%JL{zR|bcp zX|CsN56;iq`*W5b8LQ>J!{)#is=o?C%Y~V`TA7(G7tt&Ea?zGu4hpaB%K8T}t=z_B zDd2&%i9otn;weOhIW0lWGxA;pMf0-hFOfvOb#kDORUdo0pA7c_MUxpcp#% zLEZ*RQHij(A<5}`FyA;Y?gUR9FeWPq>2zO0K*~47TCu>0^~-`NvmYKSDbXDnB;jv# zu5S$%W?PqP=L}VI2`+sH1NW&{nm9;Dh(^no)uDo7pZ#O=l&g%K7o%J6VgSCKP^_BN zn*;y?5=v1Ou!WgQ2=O}%`D(I2N(euX_;U-t<=z7?64=e(!(&=e?bn`%<<8{HMg|69 zvmp&mfGyJ5xA=f@qK5+1&D`0nSs)hGI_hTBjPBz# znVL@QhQoP|u2*hr5c#);Vu@2gtCM7b--PKr3{_OyH+G{ti}jm6z_A6($ej62=rlPB z7*oYklgYh$&%Hd4uj5Fy;fZ72zSw9kkXZ`T#51c|uhlPud`Y4V_?fWs8S!xBcr=LN zj=;L;5O93iA&JTD7U^~DYNObfLz*44K60bg;A)~(g3M$V0Y4)D;bs0VqpUfe#wWbL zurtfyPTb^9S#tT~Z>ypVaR6qu?~59kf5dCp{;~S`o?x^zaO zDYgOYqi%r^uFk1MS0f?%=mbDtHMd!6;@C+e{dWzzo7MDU!{Q{paE%`NG_oJ$?E(|s5WER(+KA5%Ru>6Vg06TcHtnu4^2bgR*(mQxp$$WGqpTRjqJi|xg%OeaNo zWJ%I{vMTD1D^*;S^c#leE8{dS;`bH7y&23M+Vo%B)8)xC=hLk#`HJsfo;bfLbXC

    UfE}Bomn@WmFz;7JDd6Nhp{67Cf_{HxKQlsH-HX6>p)VYOEEshRB((Ww&DCJmXPCtNT5vm+A4+k} zpxEwLLq?CyMb#+~n_t+Va4baPRGf>N zpx_3%2X2t3i$Q{1EY|-S%zL5x^Z`6Dc^23ZD$>YN(yLepB!OplcLbq``#>o>fEh=g zdT|q*tV6b)xvg zY`L=mFSpXvm=D*3ERD^RsL6l*uHL%NFY9*TY=E>g|6X^g+r0NMVaT(=eH(9?t9?{L zezYSqQwS1wjih^ldr|aCwmk0PXE`SEUMtKkAwJ%$@TrITA66IQ_+Rj1%-6h?_^ko; zRxjBDJ>h3Z^(CR5yt>AieLDzaQesVzT{7M3waG?aHUSG^pLV{y@Lf3x5S5$!s50Lm@dts4hJe76$VOtc{>KPr1Vh*?@PiY7gnZPf+)v z7P-QwNFxz9dgF=X7ChuILhOM58ZW+pI?fZk0|k0NALD^j6Y6crUga0EhfLZT6S{K| zoToPj?I|%$HtQDb%4{vL%sT@|`oehc_EN2)!L*6x74VF-t`}>Ojgq5xjl4|D^{x*T z7VxkQx%tUW)UIsKv#%W|j0{GG|A@SQIHk14+HJ25!Q&nzjw+`_q$#*$0VZf6oXYQr zOc$m_Pk~mo6?+GBCR*;U+|Z|CjgMk=*b7)k-C4IY$Y2Oe8^At^@P-}SDN*@6Rsc%; zTiWC0JhTlp$Mtu0U{A43Uy@3x(oI=^xTaA-cx{K4_s=Hmx$ew%gw2iNX@nMk*6U44Ve>j@^X@kh?5%p4@S)f{tbWnv$;Bhkd{5`IM6J)v zF{el*N#1jgF#og6TRQSc=;reaqMv8Vz@XJ69h)^ym!I~4(-|%JKDRo|ebGDLO)2qcQ1%Y9@BtsKTq52py_^p>r+8wOA)s} zUtNU9^=7ui(PWmJmxnt@Z3Gh_og`+cK1npAvD4&f>PlTN90y#rYzS0(leSSPmWK(9 zKt7pf$)ed3mfBtui4#eLb{0#8CWH?*GvS$LBRX?Lw&m)kl9ZXw^;-P_#hkrmwPr_U zE0z1UQq;*7 zfU-Cxnf*Wr_-;9~pF9jDT)Kxi>yQL3UKndO7{;Z2u|!$f!^)<-62mrsN|#y6pTx4D zzVGM%N`GPIR-GNb7Zc=vD3Sg9g8no3@m~unWbJ70_TL!(r0>~@zc?JbKeKk`7E6Bs z3A)d6PsHu^AOrh?sI^)pO7e!K6XJ~_K1f-rfl&W~__v44LJ9VdxTUAtj*q&#xq5!A zicE!s6cHpxsOpgstHVmWZCa>W0}n_SO0gV{laOFx2a+f$KM9RiL4@fM=(m(y5C*UJ zhN?OSh7U=lhdRJdvNP4SCMNV%@Hllmdkz9l>PPFn z;d(=z_tck^*a}|g1y{p_KQJ7Y<=^L~;u}iNmCzJUk{!2X_u_2ba}N0fuE5Dcaf6ZR z^+k~v#D|@ytya9i?i7aT6mFL|&efIwy%;V1nBFwsi-Gx_-2G**%6wlU5Y4!`b9>Y6CCIL2aot3{^1`| zS{eMB6Gv-ZkBeh~IyXr8>w$ee9bg|kT`KvpNsHr{cHzly2}g~*Qc(k=e@8CdZa?i0 zrwiJ~Q?us!uOkJPH6i$3S{rPFki8J*wQe(68vvNP$ zkF#1%lf@R01v*kMT|ZbqSwC7oyFZ^yK9LNC429fUjtV|fIS9!-N_Ul_8I1m1I|T9Y zod0ghwrA?YYT3DoUhWy|s5$l5pJPJ00%sxK9{>#`#Lp{QC_tK&_f9j{>yi{JEgnW2 zutf-Oo5ten8{7$gvftyjl*s;?3Xa4Ic{Kxde{jy}I28MvaO-qi`e4dK;wKDOqVrWy zLBO@tDu}Qw@_p_6<7#|}EcJmaNURGab&K4&=hkjlWmc%Mp|^TQhZOJXW;puw%zJxb6I*hKB2Ehz zNaHUwDK-wxYjZQQ|Ac6X8o2~+*ro1>&AWW5fQGoVI=+MJfip+fLju038aNUmfb3?-q)R?j3cyDW?nBhLXRAGV9=jSDC$c9I~s5V1=fmybP!x&-VA1!c!3 zL1*tZF!@v9+kpuymqkAad(P$ZyzTLHwN{bh^YH}gYjI-68d3}(5mcoI)Y9OJi3xF4 z+FG&S8BUJ8Kw+$;sVpZ?SF>LpULP(5O})8bi@O7n0t(T+KC(Fy5b@)7(o}wOnFq5{(}(e^ysoZvjnaF zd}_U1u4;8YwsvBq2yMy9QLRMbhcM|8D!ye)ZX) zOr9cD7q`_+6nnkt9?mnBh-T~jft`tl zrdqKnS}<4vjY}t=9T`oQW`n=?s-1QFzV3lYC+eWoVQnPHKv01O-CK4GPAh@bsatsc%Rc=K6p= z=^1D#OKoxwz7vbPf21%P(Y3R`aBkaB2 zOUUa6iz$)r4^Ir_BKQt6HZ*X*0=Q?~jU&JeT(;D%MBpz{+c;Ztzhkf&(i`M{6+~A* zTQsAig}{m8L%3-KR?OUfv2Z01EzX!7oUoI!B7Q!MB~C|&?!8R8=H#P98Dd(7@b z0pcB{nBOy6iM!!n5Qcq+k^h+Zo1U47JqHs}P{|njZ|G6G=AiaO8+c&`tk9@hHK#TIMwvh;O>V>_TGiUnCi{EVVe2icJW&K;Un~R93_#< z82`uL{mw{F2w=4D;%M!END%-3O88XFEDa6x><$0D>6sKK^X;CFHk`Aj<+6}kY*DE! zWdR#*sXjk6pMWd}gb(Mj2G_S?$WU0&(O^VR-n>)ndNUuu^;g2-O?I0#rBA0mi;cF; zGsAgpW8Cxg@{Q`yFrVMdR_k%~3j4l6eJYd{x((luouRrTI2h4m<6aNB7e`JCO-6<5 zK*1mkM6F&!p?9VXsnS+H6d`~%coIGM#?Y5H{t+5)z+ag^Qkr83u^*r9T7Qq49422m z@H;Z6h@x8L)*o6N3eody%VIIqxje zb&rn;kMxu4Nt0kAdXSSx&S3kx(a=jfD!kUYFF2EDQXmqRV9FblEBT7Xy=OfzN0_Mq zQj`f#lOCcp`)%Q)Z8wr_wu|AZzpA(T8FQQ`(kAa!)^E`IP;+_gwR2H>Rm3)_>iR?^EIvr>_Jiym~-_SCbFh(ZeE-r1-hZeQ4m zk+?|+a^u{@w2_6I;D)=;VMgMkNT%gsE#1PWFVJ+)cn!8rJWfHlh0Got%TcN1b+f)| zZ<@ej;R%jj17O`+Byz4Qto5IT$zf zYZ*AfhEmALSYK2?RLcWbXf*fDe&NE5*S4Q57UExJXzwk&nRDFv+uRVT$0^b#53-V+ z^oeN-xFD?1_0ghWR2!#LZ2fBX9Eh7UmEQ(8#bsXM1Onb1+GTK;UV9_Glw~v3DqdK4_(%GH&SG! zXnV*<(fI;-v32S|O;Qp^Sv4-088ePFaOhr}!t;d>qkP@KteZ(LW6$~>FfJSekor&5 zz!S6O{%VOD_55UDzZ zUj+WcRnU~U-&2xL0_jc+@Yf?~_Hyq6Kxbf#3r(*C{v9AWu-8vLpV+6Le{x22W4r8l zHdb?JH_U{q%AGU*o(cjxa(#*lp z$lBupBbb#4}Zi=7`_|VQBWAm_aTqSBw;g8Z6HKWa5 zYdr0TLBD={k&Q^Xf2*i9LLCecXIOTBbZ<@le$L71`JoHVO@t3(0q&aP`v_zShqiv` ze@+chH&jFj5WrDC308QgS^H6|u3s)H!F?5ZTqN;9Sl+58k`eGH5EKaIUfvA`d0l0C zt-XLh&n<~&)B~V%5N?gpRsDg3P2C_5Z|GQ^o5Q8uH+$-of|p(zR7W1 zGi&Vk`V)k@-JVf3bU_Qv zgs|`7>~*%R6CU71Hlo{ks1jfeBF3o*RC|g|EQnv&bTp$ms@6B)I%~|{74%aWViQp@ z1cELqJF7PLYd$JbpQ+5TS$$u7)G46X4V4L05%@@2^OQ=Z^xo`OM0j*YJpYuJNya(A zf)<`4B&o*cPF#LJm&4>}T6Z#LMyMc=aW$%+3)QURX(m|%doufMJ<6J$a!K`YH0}X6 zlbDGYc4M_rhdBWFin+iue-1fZYWP_hQ-yv~Pz&lGZk*Z5>JFFonf2}RM)HKH87;!{ zvGmduJw5&@2G0RdQ9nVqmv9PV3kxZnwUxrNG49Oya)d}Y&^c58)vg*=Q!ky@$arBreB^& z&QzghtI?y0XMlx7TTqRt4J-tjuf>}4xLh(V`I>LS_?WA~GwT#G*YEaQ(k>j*h-Wu- zitlcMy8irIzJLZ{+F|v3$AJA0{^j3y%zxxx_??W6jqHsK|L$dcA0kG2R{uIeid4T9 zHkaJET#llQ8Qs+@r;(jnoPP@}S}pBaAVgq#7PJ<454n zV>H7|Zw3Jb;aBW!gyZce)6ES_KoDK1B{8&^pSL6`l$z&-zIwg(aCgUug8C@GUeLJe zc6u8gWcw%LQ@lT!`0@)6A8jexZndf2n(E_{6yIHUZLqtwc|}7^M%si z6LRAY_60vIbK8LMj@1(z(*w01MXS6E-quOP&_l!VC7$g~ox<|_4zumOMDtT3_ES0A z8+G{lcIWOPM4!8hIHg741y{|RJ<{c-nllTWA}~q5JNFJWDNiarmoyG*lvLOyjX zTl|?Oint-{VIGh&x!7UM(z92+-N16%Jcyu+s6cjZ8AolGhexHQO3qT3+1n7-ODzA=rYea+QNyhweFI%~*rk-} z)?gh;cBF|0@)1)P%S8|eawK$_^*)773~7~Bn_ri*dq}8!siln55CVt6X=^7(fN=9K zY2tz)qneq=2UW9*jcvk=W_`fL+(tso^Ys>{W}OMV6+UEHvh${Tj!woIEAG~>op7CD>yE4J3P5sSY; zUJQ+&hMsN2A1zNB+8>?;#%MH9!eH1Z6P{SV5|GM8F2I5E$a+34oeK{T`D%7k$B0cb z%4N3}hshB$$zsQb=hga>rRIpk>D#*0>(+0L*&BE4O=;v+wRsmk*fVQB2-+%3wBHW( zK(h#!w{j*7IYhNHro74EJC0;Axuks6*0A7{jP9V+InDLhC5;q*CQYZ&zGUwn$r8?_ z!%%j#!>Opv$HJH3@Fd}R?1xpJ=V#KpyeBd}Sr8;&Xsstts&^@?Uw1h4cL$k#<{+2n z?fM^0hr=}fq*Hd|wuv_SW2ux*5-lD4xyhf=N!mDG=rqf``*axGtx9i394et%E~P($ zJ(m^}-O6Ky9a>_a_DonW9XzL6=QU2%kT5JDPLWF{uOKGW0&4K24t(T{UWW2~@DW=7C+SC4+ zwly-+a|t`du}pk8=zbcFRmp>&s=gB+eqQUn8t0=Im|pr?#<^T+2A-uCP4-DKPpvX# zqon^yy=MP=Sb@j5UB%QN5n9tk%r4Xz*6kM#9xZ>5_Sp`g)^Y zMSLa63gkjh7540G}(#N{^je6Oy$g_#p&khWNIbFh!cT==H;Pi zr(o7}bfFnio6!R#)(I;fho{3aL#SS(ADj;ZBxouKsgIdoM29wr18#YdK8I0LQV)GR<+(YEkMhA!`NcmxMq|^#^8o+3X zCRTHWOPH5GGd-_joLr8>nwM0oFe%4k+sBcIo~~QsGuJi2h6>vvtx_}qA-rLX6rN&f z8X-yhbzjf)k5h4+0BlZ)c#9V^o3dUTo!`&q_Qj({n1DCq_`Y={ikiTN88SegOkhus z63&9lsx_n_Ko43CrvcLTm!;anJapQ0hF*GH=-)i%8J3(PR#%Lgw+28ujQ0G1CV<9UY| z#T-0yX4pDzL^_@CE=jzfZ*ihv1cXF(&nr)Gg1_X@qTe7wNbFu)x?ii@j;kPpg6Y^6qXrABnAhSF&E)igCbdZOX}d`QSu(gaQv$l5d1 zf$Ip+1c4c8T?A=PbRqcxlpmA(!dI1Wp;id$(P+7ly*sMBS=Z6K-+S9Rbn72M?Q*Mc zQa6*+W8d2_e_VaRSJQCE$u(UUa))BfsY#Xs8N{tF${bO!17GLwU??QF$P;*znpvyu z;py?uJZEYMMgq-7QWm-6H_*5)A{Wl{gh%NRmlP*~sn%a) z6eJ*#nu$RwTOKPj(}ZKFhq~rlv7r%NqeZRUhFsN|gxv?_=3s=e<$`Yt)qhiiKKXX| z3U^Zzw&}lKN*8FqLuWS^K0Qu8P|As(L_D00uZZ23So+2+?swTL*AED(8#^V4Ze7^m z4RU_VW;u9_&gvt@6g|t>5_?skUPR_MbG%LjD7wf099GV1ZavsGoyzJA9DZD_@JaER z6D;4f(3Tw)EHHp7=HK@={wwbfN}@<~z9A4()<7v2x?R#G^HXJ25BAdBAACtGtJ0nY zxzAR+O(g?%H&9A5Vj<@JYc%m^gflP40Z`3Vxx`(Hb$QF~`KD{}!X__Fx}@$kK3;$h zB;ns2ri$iS?i!>pPh2oZE7+4+%~JrM2cJ!kaUHcn`S(D@^pUkHgsqE3b>YX?vro$`hx2y#605J*+@JF4$ z5)Mh{!V@OFW#}R}r3|ukY2L~!E*;ICeT8oo&Yi0YUNlN7TuPRgndOlIhV-)*RN)5u zTIOz;10?p~s_h)R)2{11Ee@3xBh`+isWABjj=_v)4H+mgLue!Dm^Y8U2l8XhBFV93|(&G9A~4VSuz=&a0)n$So95YMHE3x9$WY z^-y&L$`o4n^2%KEOEwA>{EfJHGsTWuJI_qpDDM?UqHkidtj4TK9o&IIOG*+k*KcOY zJdEeDz5IzD+vz0r%t#(#U}?S+*Ffz4;6PfvPK4%nC>%Yq5Wc#NHQY*eaEy$D=|~IM zXti(7uD?t>j3>TG;0A(NC}dOm>*;w24q{?!t2h=S+B_vkzcUB9@^Oi1%M@o@qYi2M zy7V?rab=F{Q|jIo9pFlv@smK(&F#XKF)15ScD;n-4-Jm$@y}F#{c7&dC?eHSUlPbGA1&dS(vddPT>Q8W6F` z{JO*H194=+L4njVNf{{$r$Khc3_<4rN~bO;v8&{MjV4Np7JwjyqykZ;+{}_nx;|v< zx{f)kN@rFWm8uMq4X6lYM-?WL2Kjv6rPqGC7KQfIeP=XH`H!f$=(mlzBC z$W9nBsb8~)t9G|0>Y)h&wsb#3*#zc9yD<12x-&sy#sp|GV=*i7NmWPmqfJCfdAyQ2 zBtl*SpEfnuytP?igQxr_2O}JA#;+4A5 zE_zO?K;FVPrH;%Mp~)Wa`l<(?FWGMvPY>bk;L1{?DO29Iw(}yksy$;gID$~=lh!J~ zIq{C#iFx%CKZ1uSy8WU0%shmR-R;q(VRWRabn5vidXvKNw!2^tJZeGe3P30pIvN~m zZ$@rtPK%D>F0pcKF!;i3lhkF5)DQ+J*tJ%bt{@9b+r(OU{PcgkC~ z3Zm{^D(L(B_0y*)BbIjJ>Ud2L-CDXuHPirXzOdB* zRulHr8A7FE%0567pvB^E)f(q~0jKs45WhBaovT6$w|1opu8^Xu(ktQW#h}4bwkY}a zg5qci8waQN@PdP4e|CE7bkY;@^({Yn5d)DKhVO5=J1LB4JS&p+S}e<9ht8EIuH!AL zRi6V^0y$Si!Cd^Qk^}6Bi%GZlZDwQ7v~g&9=+Snl}`>47555rKh9~uYhY1>z#?A6QTS_ z?#ZhadN?UaBSo2BUxvJg6`Wp%)MWQyt1`0=A?yKKvag{?`YaiQpX9^Vo) zOK#zT1|u=kbS?2#u;Oq=sy%1+ee)7%%e=$~Oqj46zjAt}jm1NpcXkNb(RK}>r?_v{=8xx&pn6(WO zbBSxU9HdTRD}r*-YqcP{V+t>>-Tkq{^O?ibhPXv%(No9IeyZM&3+A4AXQLI){=h- zy}Y3+4|M`kF4Iwt38=z_aLu+QFBE4+P? zb{x(`s*7Ck_Ep=L*k&S%U^|kzBSCMT71?{$aF>!{4k)x@KcHfrUO?3i8;x{(WXlq3 zv|FHI+eFI5r#4ft0xF%@*Y{8I@ijT8ftrPMo(GlcA_~x858yAMpYIiIBE;EE($gZO z@#|lZtU6DC78p^^D-3kg32Uxjh%etjz`Yk15~m$m(#4o+mYs9HKb^-Db@EjtY1dD5 z24L%D&n(A~zGPMe-O&3Nn;tuNfDiKe7;N-6WvI?v9;$X6u6c6#yMoFpT^2^?$bun~ zGb=J>!&y!FFU*6t7_{KJ7c{k}_eM0aj?GFr0TlJ_;nuC~ym#HumR@^svP*)1b}6+; z8M9||aKCi^YTM6L#P4Fj|M<~H^xylG{|-11|EG&&0aLxdI`;ohv&Bk=3!-sv$=E2VFRs%VvO=}^mUEZOd~HrNvdPV;HJb_TD{am3V z0zW*!H)O+g8t|+8B;ePdTv%>FyDBefl7z9e!y!+dWo?hkuI0}aqZ+THg0JpJ7+;GU z58UzXUw@O+y?EJ~B* zt`SBhikiwd&Hg#$t|GkWXWX+awk|d^mn}}t;EO{HYjLIoR)zI*Vdwd4w~cXFO9cgE zo3anQ1Zh^tH%}xY^WX-Y6_6(umNpGK*ArNC3tefq7qQ#sJq7o&1REBHkAtQbpjoH% z(J^y&1j3dSX(Y_Ff*df0_F{x-Vk7f*ZHxhNvi*m`H>!A5yTQH=Nc!bB1}!^C2a2KUOLyRoHRx(2h66?!|t<^F5?(4+Qw@kMTLl^Rm9 zcBFw>utaWM=5~E*x$rO)R-46^e7XWbltHjR+xjeXV*M31af<&rL(FEvA-#@{qn)!I z4dcVE9<;|?ksfXWYl24VX5frzDBbDNsW-{>o|n0`MOz7e5FfOMszGAg%)T-OCp37r zB<&dO7(E@W>a-!eD)a!}J5z;@2=s`p<^cHSjJH?r-Z7fu4J7paODy$!JVa|%g^5f^ zuudImlLe6G4*(5ui>ISoLvz)VTn|EJh;=5lD(D}Z18s~ zJmNj0VC#Su>a4PZX7MunO*h0U!ILlH^hOqiyL3V;#v&%W*t_PyJd>MRZoxC?=GE&_ z66m${N$py(Gh&80?JRX|3b+0X=Z$d_+cmX_A`*lNjh?W+i%!ZyO5*yr<9N~s`%)tS z12cgcX`+)WcKT-spnydr6|cD%&J2A9eitd71I0 zhuW(8O2fxGMSqWe>Y-qxZxzXrN5&o)qeEt0Ihh>nOWRz)oM6}`Prfovn_?R}Q1-oj z4T;W(>nyBi^#g8;$fS!B4f5Z17F`<{&l9&0>l*=pf;=J(NT;l(m5@`sfmm*={L`G7 zlWqJeM|&_@fuyiT;_5w7rqD?F28K1z+U!o)F#3ei@mo~paRR@pteLIyVOs#>4R8ZF z+j5pq4EIXr1S~$BNkdLYWtnh$vW%3fITvMA12!qrRx++I?S&Rwrk z<8c_a&-X~#wf$ZEZ?;1&7gaE9vG~lXJ8XHJ7l^O>Q@|br=3`(G_4;DGDVHbfL}143 za5Cc$L_3H^>YNW?_L(evBJBxp-1b@cJtaZ7AV82j`DSs!ryjP*1sqe7GDk%Fg9VHd z2utEPDO3u}!ZM8@C$_vZH@*Egz2i5%A*fx|+tp06`*hn3eCd($RjHfZZVKuUaoX9vss8eLeuF@*` zX|#J`w%vfQE1|T8mw%>PA>z3g^+J_b(Xtw$J?R3@9gFwdCiC0EOu6EyEXYJCck*6k zlcMSj{?P8{azz)h^*h@~=JZ#w!>B=3dQ9U_o!*UT-55W0XXPdV4w*dV!jkW+$xj+B zt@M&rr0M%m#}~mN&x{|QqPNo+1`dW$X&h+J$B}OHAs^r-&mzf6BXG?I;Eb_E^Q7gf zORf@wfIMzb@Ku~vm^4d;k}~k%e8=C^kM~z4oR!vZ`or10a8gu9F$s{}8Mdyr$VQ7^ znnN|%`jcXAVi9$lgk`%ZRH6PPAs^&=q3VzCpEXapG$-{REVI9+Jm~m)%}-D_@ZB<4 zCk{dEiaUF6+)nOTT;>^D z?ipWI_e8I6mM$xj{@7S9%jAM}`uxoOM*E8@F zFo!FxhIz?O8ICblvGl}i$Rdwx71Hzv7huz_7}!15e7U0hb=W%gH=BG zn;@h$@?QRDS_{DbpwJ)rz2@b>gqM2H;x-@U{x)BCU|5>mu+o6^djZ!~h)?NPH-4$) z9Vz^iCQra@a`f#YN)(bm$Z7E+pML{7uPy0qF5eetNJ#&b%KS&|Z-M`l$_VQjINI3% z7k*KtyrY7s0{3YRwq~hHSq&|o7cOgo&>NbsDqsfBw*XQUuUog+u9jSzdSTBDDe@We z3Fvj9p!2xMuQ7A`Fc$JD#l@A?*744Wwmv?vIc9j2(Y7<0b#uJa(*t0OP6?hlm>BN7 zDIMEdfS1FIq*MD6FXT7W7~auZqD$geW7`7_K3U&3icgH<0D*Hu9@ni*TeF+zYj0t1 z-l<3i@qnyZ6VHUzb7u6-gKeiDe4`f{jybB+iF$vkTjCI9O)kR?UM#YSZ9CisO$}1O zTa+EJPg5}o7h6xOt&yrqx_xu=^$VH}-V6Zd76%@%uo15aesgHoVxM1qt0%Y#6=)Ji zXxmB^u$#Ct`@np+o7So!3p0whyObot7X~F~=so#WMVX?j)|?nP3|6&ibX4h8nVP`W_+d+(7 z+OMnU<%p-rLc5=hH`^~asuNrw=E+8@p2>h+E=tlUAj+E4HFsm5BsSH=_^)E$6=}4l z>CNrAqo@7^zZ$NqCb^yd1bbht6uBmO{xW|ME$4fQBMA8vI&_viJS9dE0C2c=_jXax zG`0&GqK&Aas;)!JQ{gmM9th#+0sYc;8>0UZ82yBuAb@wY89xH&d_3~#9xY>X%u^8{ z<<_mr*j8t-e0mce0O(%22_15At@QOBrv;v7Mn?vYz@VZsE7eWQvxN3S)4Pr94I->2 zfEIHEYs4jz+0|5dB9pjpc8D-rAa|O8b>?Lxh8CljWK@N}K)d*DSl-7gf0*_?A4jdQ z-P6!-m%HTPYPfw%ZL^i@gkqNhBwr>#>X5_ntAE_NZ)InASX!`sj``B`<|uVNU+e37B+3lyQ_}kR_un5l^9v!Gl)dw4gC0!NMaX!A#M&js)G^&tkh| zLy_GeobjJ!bm_6GUHHqycYC3##YT|SpmsQ-SkyOQc0e+?ZgPz$x#I|ilwE?3-8~%W zQq3d=8m3)&&gEi8h;;1x8L}Wc0_TdLEbw38r<0I^-n=$nkfk+qOJ((Upa@uhDA&CM zP=2yGm(Tn!#@;bH)^N)f-pP(_+qP}n*s*QfPIgqW?PSNcZF|SIlbh4s_ulUF_38Un zJwM)2W7Lm&$EtU&HP>8oLU2$;orq@sCC9x$qX>$mF!~YIA_)JN4`7lfEy&1? zPPfa$2N+DT2cnb|hqN%BA!_vfBU;2JpjEK|CK)ApL1YoR@TYK)@{Km%3WDn6tw9#b ztVL*z;e?9F&p@De@y_6@TC!S9sQ5~ON-jgcx(%$!{(Kdv$?6t~H()ut+TldV@|S0! zPo_dmSZU(l$xo?bD}CfE++dlD02NmPRBt39s)21bW4hq?Y}@>~GPBoq@E`ygs_p*G z&@ptt6I`3zG0+)T9(d&$2CU}tjm1ctTo6ue^?vnD37qiQJ_3Jm6Mxa$RpYU*P}IZW6-rZODET3Ge@l2G2jYT>p|5^Piqm|GDdo zQI@s)*4^Q?8^RxTM@nH~L}(8#E^I6*EVjuN;4?>(I9vPP)uTEFW~>_?C3)odGfWsE zAVGnYW2mW?p27f)*}IIxww2Nnc7~zcsO7vsSDEsJZfSI@)lW^7-7)(enkh z2fng67HmSE-a(Bar0#dn%>KP9nHDo}O{E*Pm&D_t6UuJvt{kfPVoeh&7d_5^IH;|d zi58BQB0F411x!SafLV{bo`rxRg>Ly!RC&^p?CI)5qHV`jt<(4ix>0pJt%mhX)QZJP zk$^>qS`+vt@Is@0@-$ynj{%*U=Y(=0()1u-v)Kd}Cv?N4ov;@C(YZ>iit`hs**0xa zF(B2;FSlpsD-ns~9c95O;TwvoV!^)bFsVAsOlTDJJ^2+%2ca!MDFX>p>kEt#7NP2k z8&K`BOjDiBz6@L>WgwXAH|pr4d^qMb)nM1~L?){+zxC~F^iYVnQS5&>pIt}lyoZ<* zTa|iN9Lq=Id@f!SD=Bl53Rqod@&ad8%$#*V%UtPxV!%E6z04Rc%mu|!W26Rf8aZ}X z4}~6?*(zDbZGK-FDl=`hUaXp{Ucwt*v+qo7k_Fy%p4uM5Vy#)Ma%o?(=Gj1T_{sf* zS_rvXY^DAOw0+l+eY0KOob!orhCJnzw>))9$<@|jkZSBPHnO!bZU5oPmH5ilXrA&l zWe>@3%(aLJ{(_cHkXR){Bx$hkFg+ybz2M<`dyK6W!W8jv1A4!{a!OzqJRDQpFO*>+ zCwIfRY=?8mwlw+(;qaB^?+s5y@OG>(2@t*X?vGxQV`!jb(8tmz0afA$jF~6MS0F)p zk6ilKi#Y!=nLlbHzWzFV?;!1@kdqQv&AAN-ZChe-?sh)UKUAw?%4cJAry;jWepHB7 zBKVOfrsN^hX42>gYHa*IaW~%+xD~(0EK?Z8N5R}y8*KFZlG;3rD0ZF6+hKR!A_zZK z#1H{DLUho;Q74NrLDJ|&tTe<>%?#e3Wq$9q@l13dEm$6}4$3|Ti8TyQi|o%v-KBFt zMWhFXe=K;p(#WM+kwtd7Zy8mLOzvq@ zv&&8;mza*usk;=@#y9Gx8hvia&D{~y;=geBlW1M2c8k1Y4~wfAb*w$B<8vmki{LY* zgI-T@Zu$Neo9<9M)08*pYE2351`i9R>^3Vx;0Gt@Ey^RD$8BNK2gIgm7=mAa_}&5c z%$0x?)+1Kjzw?lpk@qGJz6qx6|056iU+y}6`$9O`S^xLMIvsgrK@?tLX*W%^r~_#f z6p>om8P$PlH3X^wGFT*O3GWR+5zXop+dOUFC&~6qAxXmX&v(Tk?)gZ4>gT=jta`V@ z4X?{i=C_aGWxF3}bq3#+C?5?$Q7;ohUq@`1qYuese(W$8fW+Hyhces3-L@wQ2AQ6v z!+6FiBjjRn@|>&x*A}|T_+bEfWk0F(g2#>;4)xhx`W5Gy&@<815^xwd(ImoX%LXg} zQ|M*@PMG8DiVJ48V?1lpv*-ajy5O8+)P>`UUOh8+Ny+;Go zzmSYoD&c20z1yBtK2wU~BagO97#(?EiVi~~{#N9pZT-TU%sYH%Nvu+qOs};58nOTG zf}=C8kI}kvDE6RUVOC8=ktjo_?B5lredwxyK49^S6H@e*etw3Tw8p1CI#3Ut)T}?* zCEBGuj52Lf1SSY;j*Q8Dkm0o?u(9pzVr=zsEI=k*VbhSE|wcYiGrN4*M0@hLO7>Og0EmYga$;T=R1-x**j`}u!b&+b5B{am{ z%m^8`+O)Ded%ZSfgwhu8(txDkPZl=x$4V-gVKiV3|#T?FjA2o@}%@*s6sfy zWY{@^k7fgtmRBOV{xFCqgA7}K<`bjPk~MBmX+HBtp#pE@dqki`Lor{$5lS9BImEE% zx9to|-k>vZzd^(+M2w^#vKaEmuvGAbp#sj#4ti}qQ>Trnm07|unr+27Wwen{mfSAf zC6Zpgq>w>Kv3(qh6pL&*aVqCLtDTFOnD;vx6xxNY!H30-v{)Xw_P|tZKQr143S8 z)8JB*R+aWe^;%<-OZ(=g>zjRZ6)p9UcD19sa*JVL$jkm9_kmmi$KdyItPnI=%|`r*A*?aQ)(+^gf=kKdbjUe@IVcqKC6auI>X2Fv&NRJ2?z zu4VCg9~R;tK`ueP74F8xG+74)t9-LNQ*{&H-{?-SX_WphU?Y4gXY{XTVWty(!uj@vmBAv7&Q zgr{!EI_m0s_CtH)nkbL~DV)D+T&_5jZg_EscWF(O#F1sCyqlCpB4ZIt&SlwOr^2Gx zZlz|E&kcxlPH)VLH`caMrZFLN4JojiRQcYJqDP7)!%vMi~q})y$IlM+(Cc!h*>8f5$3BK-C?@q9^ zrKh3TcOFTuM7yi94tFFiOH_%WVf@+43h*WBbdb+jC50{GOaq-vcZ1DK_1SK!C*3f4 z6O-4#LVjQ0pEdV>(qe4mUPZRrr*o1|Sp`H6a6y=~y9FytFMR8e^K2~+>>{G&Q6ql? zu}F1Mg=l3A`u zLI4ZxeQcE$RuN3)Xu%7n>6sZHk^`(YzRe=Z1 zH~0$%=A}A)lk;XdAj+u#8sk#ehE0QrnG4SIPII0vC+vE7dE?d?pCcwr8ct&Fqfu32 zjTWSG3O5ImRaDp~geh8r?c0R~Z}9e1($!0aSI@+zd>^o+gne+p)wL?=;Os!sMBSy#V+0xo*qH)WOUOk4=%zpnCm_DDc+mD8 zxm!wKP)ZE_iFVSCgjKLB(F*N>a6V1=VM2F#$+CQB+%!JNOc;^)i{kH&(&%=g6y+P( z(oj3H&0#_~NxDK;q(S=1WRL1|Wx%+7Yk>Sd)X(L8t)Dr)$zWZPXE5HN%YP!|(kfv$ z;=oh4yhsd_t>Pj;T%}Fz+>AGX-->=6XizrtX*Cs1@%aquFu>@d)A+01efPwLuANj%|(MzK;x$_ z%{frzG2Fq1Q?p^(;%(}nfswiOEV!BLcE*hqDxsT<7E|EaHrpk9XvXfGG z2;6_+(a&vyZ3;hO-NUvew65gZ%`M`X++nHHY3k4TIP)(z+%bu%QRYZ*-PF0i(4pcS z>{^E?;>l?;kHNkp)i9R0to7k*-_4j=L+!=MR!0tQk8SW$h3po0@{@BqCq1q!&cC6CmiHCPD9T#3GVnlRWNR! zj&Z~dwovp1`&kg&BxBDbZ84u+x$UlM9vQ6Y1VLEei$^jH)-y8JzM2vTqM|Q8SWx`L zi;I_b_C7kepD`#qS-~^5dg^-4 z|2ytV%1Q;N=i^!mG`KjPNv$ljQ&G&Jl;Z;QcA>g@Gl@1a?~Uq)p!eQ#c4&iqrIu0i z1HJG2K(cw0shf5BE@>J(gwNUzSwGNH;MI=M`Vwj)r+W<M?`=;UN$%3}d+KvJM1W%h{MMrmYW z>i1ctTpmJ_-E?#U?h&e&F{L9Jx;|y@Ly`S=JtmMkx2Pt%knWu1a;Fqn~He8>Gm21oVf?mjt!2}?x)iVvAUg500` zXTM)HdsPV=V>kxsguH*j7xp2R9c`e>ItngbKn0+y{#q$i@@nba#BxPosBk5nND|p! z5Q1Pz${9sR5|exji_Qa(wzWc(p`J-Te5ZtUR|!$Yv30g5{xQdKYuj3eIzHWOi;zzO zje!Wc!3l!&W%C{t&JAtuLhiHMoc72dTlrLm?gYmV2v)I4ITsHc{_vl)WOejjXq!*mr?Kq~hc1pr)W+p7yeY=j@zQ-Z zGVC4wg+QaT*=lx#bUKv>QG31h;!Qp?CQRE^|2p3&_r-q|_A8Yl|=<7WMF zFVDb!m`h0Bi0XG4_OR8BgS0!USlyk;sunHvO2FmKka#reNMc&`){t|rNL>?58;+EG zl7I|@hm=NuNfovN+9>ThfHh^CX!?@0G=M?GwyjyQwPQJfA6T{1E0h+z$Omipib$L1Q(6T-m4NfT>i4PCQ{ z*;B{Nv52WT3~Ro#M}7$fZWR5V-cbN*?;U2lXKo{mu0dgU%G`>C+6dKb!F^Z>D{6_l zcyJ+ch?}e3=({ve{ll8HG}#jJ(4D-_#q(Jo*h_`iGO75Es`l&G%v82(-B?b?0_(K#PHJ0D z=Td*^)}wd2beSx9t3y2RVZSDtLX{BOw@%Q#T>G3 z3(*%;IA}%BF%FxOgRnb6_-0J*_Ij@4)HAH=&W@442-_E1Bn>r)o z4f(DkEU%H<+lrNWxOIBUV2J^Rx-;`z#8NLSx|~-FHLJd zZvEB{s-`@W6(wEAVJP$4i_X$9!jV( zyHEr4K?AmQX_&Bijgnaa=%AumQPq_FM88{aT2fR5r%Zaj9H-@CnUfLZ)o)l-^pWW- z3-SIVYyQfSlDy-?=R#4HaViw+#(i_aC3Zsg15S+PI@e75W3r`7w53b6rAs!NLLUt| zw|j>LDDisKSkoi!^ht%+mfD%6;jG0ldkA^0;EC1AqLDvBhz8OR4j?LOWqbs<)K9(i zSE}GRp3Xf0$oP5sog#I_++_u!8Y7I(Uj6L>ch7ctvPye@wH1NR%2NYS6@iz$tR4nj zdDNrd^YJnt!s%J8D4d#*2EM%@b6WdSMh}9OWlm;C5GhXXWlr@?Q`om!m@EWiRo`vy z#TB~2RbKekFv;tWMrYs$67Nq&HK&6=g2caaTXDLk#KlB$ti;p8Sf@(sIpekl|5zyw zuHMrvRp9L(EPFieGVw)DQ-z{4M}yiq06F7MpFHz1I#hi5(gV#O*Z4AQs40?x@CC0;41;yF@Hmtmvputr$22HZ@%?kz;S!x zI9(MVI~$YOUmk&48kdy#7royzKg_c=xPQ#5^dqk6H*8Zl z?9#}PR$$1Q5{uC8jk7 z{%}s|d*^Rb4J+(ANd5y4-AXZN-yvEZOhA!eFcTk(wU&~{XCAym)2nYJXh(R;s~%oq zF{gj#cunT7AK+}LuR;rZcIr- zvC+*cNTt*1st)03q186RbxT90HfHka6w9vqT}}1yVKk0Cv`Q%AnNf%KKnqq*68_9D zkkN+J(IzW39JOaQ7Z2tA;Rvs1_*Vtpm)3dv=$6pU?*&qLf;f5~wgy^`2!h=MR!zAm zXT`HB_uOYH$sfgS)#M zUf?`HSQLdaZ|QBY8O(lzR)8^Ha=c76FTDa2^oTe_mGI%lCxL(6>om^ay4KYep8~b5 zYKA-==&;61QGr)tOGwO&l7V^t@tkGNg-e63CPGsQ>yFOH_jzQ@>=3c~wm&OdOoEe5Of^>2roWvYLlntuP-9f>k$Dc!R1aa|!=>3z!JFvb>*%`bupH(|vB4I1fv zZald#Bd=-kJqsxxf2Mem^CWrls~5W1cw`y*|TX3O9)ENpl} zI?Sr@D`E=iw^m#)gexXn$`32^41@MH{v-5_n-+f8Etu($3a({V#=AE_bsuX+)9>kX zfmomFVy?V>KL@$w`%K$Rc6Gs)ZjnszzdcwW^E0U8O3U6MGTiAgwkIK1o`NJFH+2eT zy(1#?L(JzZBYl73gNzD5p{n2Y_}P~1Gtwzv)-a%=(ikg0XjwxaNT|w}HA+{QU8L)@ z+Ldy;qMcQhRX5{WC5-5};{zTP^4;{6`m6j=p}6Ed87Q$hR|+Q+8^DA3ddk`Pf)=~` zo+Y?{vRh0cfTbEFn{oqaQS71HLdt$Pg{A~AWvcBXE6HLNz(d3E8-~u2T2AE_akp@r zb&4k_a*!;&IW4INFFkvAG77gz?nB$sAWc^z9DN}i-TZ(z^1?eK!Ms;?N6Fdf*>|VS zld-~*uZ=Lo`N8}COym1+1XVdLx-Il?TvzRTV*0NGjp+XoX#XMaq;BPeZHDT*l+bx= ziaYFT8#_N_n<)mkpn#P8DQSPU0*RP>fzS#k<*7Yx<+1-DwW?F(K#8&@L_Y(aG)H|8 z%#7>VAIb&iF2Qv#Y_@}a4P>exI^M015qhLk<>Fwht+%Dq>9ysQeUy2Wsq^va*WC)Y zL*QGiPfvytoHw4Tg5a+^oza z91@1o%BA*p7uA@EJTSo2Lq?0ESc$C}e+~^~<0;?Ccvj=Z>)-GDLMC(`eQpYb^A@L( zk368nl&4+^5;x%?-fu@D5RB0T*utl#?;pnoa}6*4a+t^HF4bAe=Uiqe5Y~E34So%d zZ(?CLJ42dE=I6zmUO6c>Z7s&_^ro;pqFGLzEkI7xa=upa6Kdg63z5VxSm1agJ+JQ5 z5Hc5%$Bd1yBavW)giW`)iNEliCJm0AOs_O`_Of}}6M zh+zmUQm~szX@&yf7C+zAaEXSWM0WOQUs+LJNIj^+XtyCNtNep6%Vx^*^C{FwwFP|z zwZuLeEBS^OGGlDR(>rkY4sX`lf(5ZO8wI&5G^1aKlq&{1RvOr)>GH2kimsh+Q)7o% z{ptZ1uC9T0%uYyp+(vNjS|TBPqPKiD%YE-6S}nO6XY4`;Gn?ag@F-gjI2daH%c_bdX$88HZ$)<*ka{MpyC1=l?z9kq5;) z>aI8l4_XlG5<_~f=`wd82M2FlDM_3)qZ4pUipr1lt~Z3cpvtKE(Nr}FRafB-S_3t{ z%(1@&wdoA(WNd5cI4R46f}fhhk~6I-n3{$B$?74Z!MtCVdX99fvrNX-)mTYL zUDNESz@b)srLcTlci=vU$tA{`$f|=;>g+hck|FamX{L-m08P6)iJ5~!{y-+NxY{?w z`KFsSr;^Y^_FHTtc%)f<(VPVt>9Mi3dZF<_106Jb;-dBB zNr_cn2F8jsoM(4gva_20%ee8P3nBmn2|A({ z|22sx;8P-QbOQ7bJ5uKzTM)={Ll$Zvdz@>UfjHG%(hdCm*@V>i)l#lmwVaE+X`QS75vauh1YP{$IbN;N&k-#Eg^#-V*CVY(H!aducaCR&3r=_V7z&)0cXr#&aqOXJTsSP=l_$arSPf zrkP{NtsB^*66O2gQUQuv=?zcR_CvLXUVN!Fg1^HEN5kPH+pRB-4Ny1Up>2nct)$K* z#G6qqHl;^Yt~DTE;*p2))@%GJ68Vk4Yt^K7D`0BVPNeoa=p%lRfTHsRdHEPWy>MJU zd8Af+x8(r^X~jKy6zknc~zqNgm)nAm6%`kk~mP2d(#RR{-3`&Reqg8=G1H^bD#YFN-OBgx=(>(soqo0pcB)-2CBgw0Uuvba7*r|#)b8`NICu>%!|XYg-vuUJn2x3}c#M%g`)RKQ9kCY&p%7WOgWwUp z(|t575d$SfnMoJmpcPo(E}mRVfyM6CUv4lsab4$Pz-*%7*^Nd<-{E0ZC>D67(II^y zGpOPu&^LEJXR}YFa&5f;yIG!COUKZ7@pG2=l#vxjIcCc~%H&kcZZeV$vO3hgnJkZ> z99v7dyjz)BdvOYb@{?k7U`<6C{fRMuoU4+YROX^wv_MXVKQE1lfO@M0Q`WLutdmm{ zPcVK`t8bxAMfwb&&_QlfDJy^KjL8_?Ql#a%k?T1NaskfOP-~ICQZlGWu-mwILN1w# ztr35bcbU3YHVDF^nVLYF=WO{4Bb&jfS7L_=9OI*12NUlRkB4GvOH#jwie@Z zg$P;4#^6ku)!8im`BUV#p^7+gHI@keJm!Ob%RiFbwyUx0oLI1LOdigKf+z*TM(i^> zs{xoX;lJ9;=I>H%D#?)2dv`IQjDrqm>+?uv7*N-d=c9GcYH@*%X7?-@`SBN0JM6k8*T#d;%R;j}>SG9hPreq7vMPs}zQ# zLO8UL)IzGbA<@qXHW}rs>eZ5}sXsw|cbBO7OXscXfZFw_ETlmJu@%Uy;fq|oGnQe` zZ+{#XWre!@;M@lEQkuQfqQBwL+p-VLO#wcQqhrB7SCceFXh-7yvl{#Q9j=+>9{TS` z^G*!Z8iS*2bq8!taPf@IUn!0-K|B=5Zo-%TnJZ;7dE8HVn-ori0BmyC4HpFBw>tWLd zLuf9F#W)*|*b)b*m==jwH<>e4mR&AagH$J7{gr-_tUkljr5@=j2)29xKbe~$KJNmv z!Qyd2oF|$DD$K3bOQcd}Q8yU&S3KkU(H@hJHQ^d*i@?=-_?OGyIX~C~EW$2wrjCoh z7X&7t9b-Nyqv3M}(ZznXGDCDHcsO(0D<9+=e!ULx9!%*cNqRCysK|MOia{PS8D4o6 zZ)}mc7~iWMaXLSzS8h;?K!>eJreh<6l)U$2REI3b!lAg8rz#g?lR>7Tr+Uxy+(B*q zB1RUCez|LiOd0lSChUgu6b)jx&~`=@8LF2Z>C9 z%*ijo!*>Mte8MSQbJ3~f?xusn=~8{4+?~zN-|c6NW~S1D(qlw~jP=8GII|Te!j#1_ zdN7gV@r&L$dJRhQJ+6q4pK3$TfY&yy3OeIhN!Nb$HH$nlIevov1M*1e)=e_})}%xI zFV02(j9sw(KU&Iv6Kp5>hYigCwSxH%!A2#UZ#ho{-$$goL(;NkOP`2z^TqMT$;A~r zR6*hp0R={-<6+r9L$oQK_Nyp2pzo4UY@nci{`^vzotcqUDj&6Xx98_P%=LE<>m~F* z(pPA5gDvqy7ouALgAc%SrH8eK_prpahxX&<>|t%Qx@cCKmCS|1@fZy5SqxaOzfK5l zpV&Xl%NuYYbF2>B2E*-F?LwrYQaqyw2Y*iXtihzUD@ppqQ&zMP_{NrbS`0 zoxXM-KdKM4D&MmM+eS}nD~QWNVWe$4>xZ9O@$Fgfk0?Y@+ICq^qiigsC_hIQ7~#}Um9gYC1~H#9^qIL^x} zU!FhFaWa_Mn+GlO({+<~YvG13k*hg&VA?4gL(gHITxa=n4cW4xiFC~bdO{|i##Ahw zAWDPC1JI#!t6Vs~MVPA2>3>j#NAN%h$0I(Mw+N;i?;XRlr7+j5K~~7+7kbwM@?9$$ z)R~0Cz{XJ@874GGfeS~>@%Xv?G-fT~u&pwji zp#2qbp!$nMC%2tQ%>n4;>K`#?qWzHY;~TaZ{x4FX{~TlF|9@iaKY~itLLJ!*#g_~k zxsM_o7%CD~L5OHTtsSx`h9ZH@pH}U3&O{=Vfs4d}DNp}tN$J8=r>*p2`E_t!SX*?# zNz2CToYVJ2{`l+oq?z&{q>?A5R9Nl32GRP<`-}mC#pb2%Bjusn$8AY;d4NoR&B3cWy8;b zbTL+HBegBbwG+!ooTag4z0pP3z1B^I6wIo@yyaZ?WRTQ{8W7s)Wu~hxWueJviqp+{ zIv5WkmTb4hLW{BIOA5$0`l+K4R;FGh6!2i*Pxy-Bb1SB;gd4U3tZzl_#j#YD1_NJ} zsI=SY(vx^=*HkLCW@(620klxdnK!EK%#06V@J0$wV@@f__)bu9nukJGA}vw5ih^|6 zx?w3ejpFR^#4^q9b8bz_D~>Rxek3(ojy1q+3TRjbU0w#00%UNIt8)MlHFHYi&ym7_A;BbIv2m4WPzqHCQ$wcbG}ZMh7Y|T zy>e`r3$?2=!z5Gnnr4d9T)1AN?wR`VNT#p&Ykl``cW#>o6g0Pg#PZ$vX<%UHJPFfT z)wHjxhF>MMdfyfbnp9UyrghnB@MM+A8m4kg^b$W!ZXc~%nX3aQT0wsH7GwG!vK1RQ zST7ZM@t{sjCl;f}m8u<7`Lt@RS47&kjaq3brn1xzrgop*O8rzV*ZtD6BmlwGsSrC9 zw3bkXodGdQ75{qJSDv0j*u`&)a^yX?gLS>=7}v^uy*~kdcJL&#%D*J@b9vlFzhE|T=;q9C6%F>xuAL;}zxGB5WdSOmis4aB;7jC*@qs=@n zI|i|f_D(!d=zSC>%auD9svG=5WeJUe;&qEdYk`kALP-#CQ&#Ar*UO3=_@<6{6NRwK zS**!Hh}43i#y?$A;4yYA`F83&{D;wiP%5E&hG#~Zfu6C=(2uguenaj@Jk$63KnpU; z7Bsl+tGbhBit?hHAlV9>KsV_2C1BEYMmmCn(ZAn$?NCt#$7-iT$;<-AA1kw0f$^!~ z<#IFQlJUt;7AYOQz&5?rgTs7JU+Ylf_94M^gUEtwCm-9$j~c_sbynnZ-2O5pCp$Ye zCMGy?d9A5t_TY7T#MYLk$Xw9%*Vc9n2u?sGC>e+1O*y6V7eh%9opWTF3LS6HN0 zU|$od>HdV$_ec_7NxR5(h0_rDr}*xAKTJXUZ8ApSQxgqx9BG7AL1k4EPi*u+aFkGQ4yjU|r*M91m#1XD zG_7BSpyN-}^mMbQua9+Bd`rl}K-m+AW2X;m%M`<3SLJ6q|JfJ(IhMJR-EZK>*T~Hn ze&iTI6S6NKY<&KpV3Cs*`=K$tDjgywwjMm^_isYET8P)dE8o0jFqr?Tnf{kvGXH3% zWlY>n9KRsh#07w6M@+rHm9q9mLNAe*YeXumFk zRsp&(`=(<mzE1!=^I5c`zQE&qt!-bg20 zjp`9-FqNFgApz!-2j{_0AU_%t>ppWJ^{q~l7PUR%2DAQk=rZV)7v4ck!T1|LWX)tm zDcHcpl@$g+zsEa`PIndMZ!l}SywUug$_)hXQ-Vy5`3ho`pq9~lE)v0o^rocV#PYI_ zn`NcHDTIoRM%Pcavh6)70+y}7^@~`m&nCZm5)fi@&am*cUk0a?!lY8Jpe{=4`(G`P){v%p>3#eYS8uzOixgZdV}~@5EOA zl#z0_rAVbeax)#3ZeX@7%Ahx!h?R&Ts zcaJfkrYVP%>6Y=on)w|4lPG>??Efe=X!)Wyw!c-!d;UwQkrK-$_FY~4pBK~j)qgvR z6R|Kbv$b<_wlMl{#FoG1JlwF=Q9p;UEDC2i(1%?shUBuMkR_XlAuMVSNERaY)duUN zQNhn0Pc*Q`6D5clnVDQ$lA2CHwbq2RB|L$kDpi;E{>(K7Cidk+>%R8r?L=(%U_(P~ zb1E4R12!8D56p9%9#`Mix3|ouXSey@_uqcR?x=HJ4mQN%O^8tNVhyDXj;Rk^tK#bQ z8*#}@h{X%*1{E2>f!6WhhvE)}K+xq=gerl+jTx2@Id{>4vBSuR#g&JG;<_1#4YSu` z3?k7*>}Ftfp$ejR(LQz+>^i`1t0L5)O=j|+proKsFhdCq+YCR-Q$Y+MAEB0(jC)A; zK02(|k(C!|j`NyLp|#Gj=}x5$-W6L#dH5(k9NEbC?%w>-mPm`$b5@2HSGHZexkyOH zYMcyIe)Q&c8*&-HY`J&=7`68Epywb?HMOf1oxc(nX|^jg`Vh6D*x8;M%s;sQc`@~! zl8K3pfiYuZ-bbGRWmbK-Fg#7VFr)PgA}+ov6q}OGq~msS6)c71XtO#P10C)%ZiQ-N z2Nh~NR_)E6M4T-?%Baq9xLqQ8nfmQFO|O1>mpcKvEYsT~G5Z8EeI}%kdqARKi{IAo zp1RWdN1N#*bTIz}MM-nJF$>tO--FuB%XQTNE%+us>#kL~KlgQs2;P!({B8pHZX^9+ za$~UGv?%*&^I_nnOSL@Q$!O6qe#+_y&;%HuJ-EKa`ojgNJaBKaqaRsI-^Qw(7%nS} zv^oGS2;80uJcwIb#cS-yv{JXkPSgfUG6yV%Ytw2y>?Pa=kK$0RJebd8wG`zM7VJW* zLB(h5YQvcA=kO3tT5_sXn1F&`_CP&opZ|nfQ`a1O23WnCI6%f|HC1`TT8=b!Sk9Vp zFIjYVYp-RuFxL`!$Uw;v-7RKy*mu%8%W)8-uaU4UXwCo zuS(PH3w>Sw*TTKOC&NAJFV-_`t7vzL{e|3W^AW&S8mz`p z962$c+0|xg;W^J>)p!s+F=$%5T~H>!#kNtUjI%>AuX5gap1>ro@_s1RJ>SA@K|*~o zJrfx#tvJuB$t_gfMY1dFIccpmpZJ+B-1D^K!`de+%mQpC%yl@y0YL^8iGtGoSI9 zHtvNCi0&{6=($-9j(fA?`2YtIH3H->DulJ!IF=NRJ0txnSp%Fgvv*CQy{#Qednh@^|=x0#Z47g;FOJ{m@b; zd^p4*La#JnY2jHI2Tz1C44rsp;PS}RzS-Pzyje$&dmzjC19`h7q(5^KSCZAZy6}k~ zVBWJ13*K=ptz@lS0{g5iA_f}tV*s_eq(qprZ-$;(@mhVC@z35wHFN90Z7*T_5NHvu zl7AG+I4x@#7W55Dd;1iELh`_%g_(+TlSIx5tGCFFmXFN@hVY7;=`bCFODqx38hoHi zmOf6Qu_V_vAAVcX!cQgNK17zcx3E-x*7 z-8nx3*PKRKBhuF$>K?vQ2ftDobPh$f6G3{^f|)12!tWW}K;>Q7c>D7ZKw6l^^HHpi z{E+7pi6YeOw^869&=sA%_ITJ{DKhv~#FnG(0{kiEMI;#HgHN#Hb|K$l^$K>Gtv_UB z!CKrE=7sWW(3bE*?Hb*=DClS1j*BzB(KPqh$8e8Sv=_;xoB79b!!x$w8?E;8Rch^a zJyFf*iku_4Bpn&1;P2F@U1)caVy9ZfD}wbEM$D^R8Ea@-(pB8p*|>0XZs5GHT-E-h z(7P|97^p6aiVNv~pMk7yu6bg9&p@dE#~BFoze>Df-*zAW8$9~9`w(?EGO_=MMcTjj z`&nu>>e!+vzM&*EkkEyQks9V@HmoE94Tez)c_>mDw^W4`O#nIr3G@WmOF4wHs#oTB zP~V%Myxr@tX3zt4wpyC2niZwOot(s28Z zsSvwtWI-$&ka^H<2S!T0odj46r~@pfg=S5NPO0kGk`S^Q3bmyKs3I6oK_Cu#TGDf` zDsVZY!6p$O9uV-?wLp3l?kIgwc+@i}l}sR$LICm@)~^1Z1ei%}GQIivbPBE@QgC5o zPvP|?B+bbY610#q>@|KJ{k<6>6?KLQ>_i0OHIS; zxT9r=5)&=uI0raYHdJ_Oowd(dvwA+pva_DT`WfTc4#3u9z%MP4(c@F z6c$36nc`I|=2$fY6I9$DGT2n-_HJjR)HJ)A7I9^%5bi_z{Fa<+NKn^-^cdwf+ zJrcMH6YO)^lkr}yrk?57pvNzTn`E4}1A9cfik04FD%Ts8UUsVNT~6V*HdzBV3nzFN z{!T+)Y!irXLqA)Wpb}6?;lbwT*u1O8M?&E^v-iMyb`uHB^H!|&6A{H&lH*(=NV1r! zKmzb(N0=1J;B11jcQW=&3Z(=;Qd)^#)~A}JFZV43Z*heoC;HVTOB?myYMF=L1X?%>uRzOo zE};My<>hVbK<4IOjzYWa6|!?f%*NYa)6PYJLgXRgL;5{~Un^I)1sp34%#R zlv+<6>P(PS9uJ(z=1lHYKZqU2#3q3yEbo1qS%NKEcO%H)f?S9Afjo zyZf)WMeZ22LV`H3h`ko&MS40*!Opb=Nrhnf2s zI8kaJixbBX5A0K*vWdlP^vOogA1#CU2yONnZ4{juM_&H6NKLI<$8i{=YqUsSYuI2b zT9gOGF_6dic!}&1gx>J^fPsbk&Uh|;$RaOLV<=qb1zJ5`wHYG`_Ps&~(|tgCarz5b zOpxw~3laXl{w>|bT zYzWG7=QH{G2N1WSDvfaS+tZ~F^Z&Hxm9lqqbCt7lu`_ZtvHX{*Gey}>2IpIUXV3ka zyHeaEW_NDm8zls?-zwP~f*#T&o$QnHhis2E~EYRsxw-KQzfj25_Q>fye(9<1IC+& z5BewhmYCDVbh`r&un2{E9B^gWy7DM931&b|@5kjtKG)+AT${fEtsfPaeKj_g$U6B1 zSZbL22sFipXv zt@{6K+xo8#f`2P|NZGrZIXgO=eLt1mY|Xx74P4CtuK%r-EBzCod$zDV_v+W_NOGl$ zhv*@VMm->iWK}}LVTEJunn`6<`cSk98M!-va8oqIvmk`jQ654{!9nqqo%Qze_>G&! z)bT9-l_`S!-CnV%?~h*yq|jYLA^|^UHk~d`EFEyvtbXaZa5Uq+f>pr9qa^VjXy5Z9 zbj{IM^EDe9%kHqR7>}=f#p_ormm;eT)|WZe*}kJ}P`%&Sv~i{zbitL)@a7^+7{{h3 zTlS@!G$3+bInkyZWNhXNGph*uEK=PH+aqroF?0*9_)5*CO)Y=+8ANc^(H)=N|7(gN zf#5SnXIgJX6ay>rLO{lNsc@3DXZZTXz*aB8C#Mv5)+wS9f*jJAUce?%*7>~M@SDfM z@b5JZ@(dDHzZFTfC|0KDVPhqbAaX~SyfRdO)#}d~u+-FX!kZI+tx~gi$Dqrd3hz5ij=) z?m#y;cDcJ2$|6cxY!It{CU4)%%EJ`^vdY^d4VLtB(}H3D&<2Ay{7QGGI?Av^ZP69& z-!C)7*xeMNnqvODP`yhybslDeQ|s`IC}B&4TUML&kGR?ms&HDW?^j>`egFGcPx$Ya zo&Qh@|NA@9`Y$Yy8^1*hMNF=`4tqn_7`TZQsm`{UPJ>X3sZKpRt=0f|VRVUw)eWuj zaZEj&6n3g0BwXM=sN_#5t9@Epa9gZBbjd7X8DPD6)-!RDjiwlp)KV)PW!ocxC%$g1 z7<1Cm9gdSN@15?GPYVGBzk_)h29!B%__vBQ`oo2|vn`+Vf;`BV3UPt^B#l(>(-YxO znK1^|R|kQYvoz+HJmAW*uavnjsF#%Zr;vB;u`d`;gE289*YUWykP%MaJS`Iq{LT;6 zetbqF2K@#F@yvMMwIqfihGIbzJ$6)RszkV9W@;cE`V^&%=wnOX6@_M3A@ZY!Xr1Hn z>lfzs!T=gTU^I2;A&k-{2DBEbY5j=Idy^LDgQFS{!;u-7519ekpVYS(Yki{4O19ct z6&Ag*gCDuNG@TcBfD&2t@#3BUjeBf?x+6DcJ%%DU&n~7ooI8LDz5_bD&Y@b-h#a=V z5&$P@d%mO5)4=AYNw{50B19hEL~)wzf9U5i1LtTT_LHH^gh^##8fz@cp9|%qn@b zFG#_u<-Do(I(`(w3WzYLzQ3ujFE19G2vU*Xs3haI$w-W0ae~!n02Ys}s0TR2l;*pp z0xcE+Ye#Sar;6I&g#<<8U;6I5j(!T3oY<^MPQl~pX5K1)pSqnp-Rusk9b5ONy8=bf z)k|qC46R^7Ks080s;CIFeN(B^(Wf1O-;TB4ye17dQ625(hz=-KoYtMaDWOwnCstSS zWI`qtY1h%4w{1X3h#H%1C~%JhAlW&Qqs3zwlRWx(*(2dT10`+8`d<16WtUhe+vu#Z z2gP--Y?JSu zxGaafgCPdPaAV=X2YveilE;4wM{%LZoUJRjIISc6byGlGGNq2J>#pjy+Y%UWXjPqE zK_#w!-xb9dt~5;TpJ!&&408VR0@uu`=O>eNS+(Wkwv3Jx5;ZF=xl2qQ=MK6Z6vus$ zIj|vg+IO@>jgyq^+A^V9RoNm3b_6}fks}x9UaVxt#%UH;q*E4RDwg)(cs7L}mUYtG ztLB>Kcc{ervAirlWp;xMf#E(pm?4=uQ$C}L+N?X>Q@WmEOTwfMs@C+gneLt>%q2fu zqRdk=RyTPav@Fn49sdkgJU_MlNA~bVR9G3%7}07n>lqU<5#Ts6!`1GkAx8wWlZ~r* ze}jb+TciyzKz+R>eu=mZ{4)h&f@va?0C_rA^e>)Suok*oR!&aZVXl4(ct{=_bzN>P zP6}wXPXfmoIVO2_0e5YXXnhlNGT5ZFPG(Zy`=HhDAc+B?%f$Fj8~ZWyjDc~PE8kCa z6IOdza5ocJ+GCz%|pCVG4La5R-mnyiP2Vl3#D)^Oxf zQ=tXFZy|E4GP)!~8na91z=qAK>cx^13j!{z<5`_I$kXqE} z(K=)2Ey9CeNGVQ`Az&N*q`>*c>$g|qiU7zTsus<7-I?M$DB)JWy%umcX3Bu|Qbhc{ z3wHO)p_3~rU8MMDjPk3)(^HQou+E^)YO%ENIcAYcLKlx>{4$9SA>3WvLOXh}xD8lC;NVR7XaZasHRes#kp zzR~A(`3iq)Q!5i;t-hD{QY?cMbCaHMQW>KY77xWOI^Z6rD!8Zb&^y_hmxG`;VBp>o zYb8-DqvF724+}QxV}~1!{?)#qt~wl}lSt%Bpw?e$N!!7k2^(Ies-m2tc&tmd&Rum6 zaT+3TP~z>n4T99BS2_dfi5rc=fM^>iUBl$T2L*BJqO zT$S4@COUI88AzG7ElpllvPC+6miJczx5l!CR(CCKPioQf_m>A1?BOaI*9L5|z9b~6=IY4oQjbl0LASH)V0yey3t zBd$MP{43Wefa^rgC**bwpz_Xy&tKTBUWpJF6)E#%7fPGA~$AASM0O zVS7x9D}XF&a+Jv4(7{cyO10tiQo6=ZwA54G=G#A~L;`(E!%&5gPJ3u6IJsJ^VZgMe zD$9)B|Dy>6MUfTU$$047Zv`ViYFe3h0?3I zrkdR)?nQhR@vc{X5f2!QrR9F2Ex|u0EA?efqb`qoW$MX|&}|~P2eG=xVeDnH^Fui% zm|PWzXa7Px?vH+gSU3*GEGRa)Oz?_Xi_k_eiskRm2xk&T)9_ytzR1rl`g@Q5_LI9d zx0Fwz(xQSD!P;+8Ut(^w5u2omET3S+HeeGIi4HEC1fEx+w($@?004Y4-uZ?5GM$L- zm{-zuf|?x{Ku<_e{$ooVY*C5~u?cxV&FHEKP^1HU=5cCrzP@n^|JJ}W4udaxVctor z=$(33f4W0Z&L;t8A*G<#8+|8;VA0Mm`@5j3c{a5#-9pc7Fn%s)mP0!4fu23zWtGIR z6U2h@i;X%t+&ddu4|TUul~gk_G+C2UNIEome1q%GxEAaQ*2+W`AG64_ZvLIALwL3W zZJkaP6q^E$ojTO)xSu-Zmke5U11>sLANix=oY(GJG|EOmH(Eqzep51YrybR`x=%Z5 zlqEVX(KCkT-Ttt5(5D+UuL9cJZ}jY<2@O-DY;*Ej46>@wX*38FbM2o8 z-Cn)BqRQB+Q?xUjs=y`R)$eXhr|68dE-Myk;N%at_v)3&U?p$JAOFoEqov*c5#?ZJ z7WlblUJu7(_RTipBGb{t-46Ordezo^&HnW;Cn9YcMn&%Fw%R34_KUWz5?(b{NiNb3 zX`JA)HyHMYW9-L{oQdA~FM2mk0oXU~YKI0gJ@aAPT_tKxh2}9nw>r>jvS-_v&6nf@ zwq?DYGUiwB=NW-wD&w`qHrl~`i_^xo{XuF=3br8IWBC$L84`g2@$K<~1PN6jz+$_& z`hdI?0JdnRpQ%RYJS9L>-_SkJ{oz0*NLm-$G%a*LSouH7Tpys1*JYHz0!3^O_pD4S+{U$H{C>iLqZ~;wCf#(= zI};*R8O&s_W|^XXqj0xW#x9Z?5`M>fPYvb4M<8~Y2!qCASp1V?4VU9a^(vIy)qpiE ztYPk*TDM;?ejTRl@5j3uL3t3`dIwko<*>c;PTE-tSApwH+8S9wHN0^!6|qrPaA~F$ zHg1q3b*pLqOYQFqZJQ)oh-uXhz-zzUki(+3a|=RKpaUm1F4RjAC%*|aE=Rqv z<1_aG`_SuSX!7DovNlAwzzZv?T`yK>cg2S-Y=Tdyvr=)lO(?-Qwm4|T(i18wbi+{# zv}(JW=NVXyEjex4n*$cye$?G&!E1?#_lpKPvS8$nR4f zwH@=?iLY(X!&}&2mgAI>`&8!@b2VeyyD9Z*^RwNOq{#7AKo28L98h*tU{0MVg)GuF z1))HTrwp%#C4`?pVslf7&$K8WX{MK<``6Clpt<{gpl|!)@a30u z1h>Fpl(-F0%xxEs?zO0f8xHT)s1A+JcJHK`Z;QoxVpNDHQjjOkd$e1O~tYAYIJhKE;HUR{l%%5VYvnBwNKSRx8H z=KhKL@(lEi5}N1sgDiP9TA!pq#LX+Qc}7~Fj#Hu$$UVO9#I1K1LP})xS*!+iU7No0 z%~Ka4u3MogIW)i(3UVi+!>$9&ONwZW zELjIzn>aEby?-7C^mk273b1zT8M~gO`+<8f*q=y`Tl#JD?0&3K2!nVcRa3!H2npYZ zwR(o0w`<0I4|XEBv#N+V)2@wkW)~}CoF|Afbzg*TM2nmp)6%jyDX3Q?D#&XafA;J;++dTM4hP%-4$SNVCbO#6S#>RHrF15V#%K?T zxh$SMh3Z9lh}m@|{Gpg6tA(X#l#|86DF;vI1{p2iZY(yI8VM?4v7e=nY;#ir{KBth zs7{fXm^rfx={GZk(8qMf3Pj=3NV$%JjV!Wk*eO>PcQU(+pOWDjl9urOQ#JY=%GVA& zme^>si>5mF0iX&HzQ1A5=HTo!xVfseKB$99nM3qtVarqLkK4uK_)1wItF|hD)~%xY@*G%k zYjwXO4|fobs5pwuc?iFpI;6Ps%0n{wbz<T z;$+2i8>wiCFs*ZII+m5(b)4Gm38zaYmla!j^D*BW}849T@vj?Q=niQyv~fUq7ouAQu<0qFTMyK ze`v$QT@JElB#K6|u>pI_f=)FF4NB20*`;%(){H@PQS09TNC?3QLu-pQq9cL*fp+;; z>_Lil)vHx*@a3WZK4}e0XI=tQydKV^I=0y90-pu@!=EMlKMc)lx(bA8jf||g{E#eu zvfs~KH6=H&r2Q@dl+A$mQXIT8l`43aXRryiOu7G7Zr7t!O&{qDM{pW!F;8P7zo6}q zNU8v304hq&pyj2)5vGSY5})@II}MZPr8Cya>Gb%ifWC0sAz?5UFTj}vE0Dvd_txPx zY~{fe*hwwrHc-z-!yi7{sY0MYwpg@gypJHJS0x1k)~FG%Rg}}tgQCZ#u)l^g^8sE~~4k?59c&HH=ly41l@n7~ugLtc5@M#296oyhLs!yBt^ zXV^>}I=u9W4M}85-V%mA{q1p+)Y>3zqf_JrV z4QuQjNN$gfj_!m=sx6}7o|0j(^~MLx!KM%82ArB)>6WZyqCTM}?hPcX{D7}5spv`z zd^5BYuO<^Whs>f0+b-4>rP+o=KU$mXj+4YFX$8xUSObjR1$R=aW+au@Sq8s7bgcU7 z>5fX|jg22M)$WLzF3GP}ab2=jP!1EvZuUq}sN(C3Z5WRdR^mI+giRh`B1vwbII z#gvf&_r_ci2OZe$K?MBq2*oDxGaL*9Y0PkM2@c&kIREtH4h$3=M8DSuzV-P?igv>O0ftVKSF#*& z{~&895jHjQ7a;rBrEvE_D)hAVS(w;qzIW$Yx}9vmm8&Bv&ohpxKuC@xiW6|>3)*^= z!fX`7Z1|tmuReysI!s4lZ$vdyUFlN!j(gPLM7+707e|GoLB6A6-3*ov?CT1jwz9ju zTxv)U6Ma7!eSOgOr~`CB9U}4X)6{yo5qB)56aVn&w}9V}lKzI{W=)McDKZiG)(uIi zQu1CBt1wd`3)Tuez&I{1z?UAfstv$gE~MP1aWDXVCcyXcyR=W5JfKC+`~RTE=Ril`(BBXQ~7WTB;FhbNSExfwaF;fpXAVx zHZCE0vDKvL1de}qo-qEahRGjqdD?s*?0NcMhKzqbbiw)`YnZ%)x|NZ!t(nkw81Vmg zWTdEVd7y})e#!N)({3OrR~IUVXg5mLN0o^E(kw5Kw3IBM3f*5|%_xn^+G^uDtN5hh zKWjwriWR)Y<>I~P@Z{ZItNxJW2tdf__Bj5${@D7?|JDDxKau&d0H`JjpNTVqT(E90 zUc`cH)Y4s+`r7B5Z!0{Y?opl3jUz}b{k1#r8r zcG^+*YRX8|VJ~sLg?p&n){fA0JlvPpYbv>FPu5vi3WqJ*Nyf@pv+pFqn(k(k3JWZa zZw6UX$ONnWf?DrhTL=o$0-TV;BKK5Fx*jk_KY9u2M)Oq6d(%Y|9@|pPZFqQ~o0|?AO zNI0!_`J%C(QB`0qb`o(xlFhdJ@S<%rnHBr>K-6e$+AMbY)max|tM`G_jEEWUQG|N> z7`yTg??zCR%1Y%wdUcA7rusxs%Q3<6jdETwFAT*NyUF3;h5r5u-~U>{ESu33gZI1S z(Rl-l6X+fN5PYV=lbDrDG^W6=3D8x>F(IPkDW~Zj*g1BkK;9+~wo3i&tL-Y(2s>Kl+!vqNT(B-KXs8Tzs-Ao?o|C|55avn4!wg6 ze6iRbV^cTsZfQmMB@0u`+Ll|0i6f6zi0ad zlJ6ZDj41Z{aKV^*!IY4L6zLH_6#f@LGowLPcO*BipwsAiB#+Q%`aWkr_&dWnlp<~f zl5!>-xY8;p?*xpbeIsY`y9HDCFrulrHj8%XW4i-#19Y5lhX@jp7ukUXe9=rL!ucnmPN^2=&D6U&Q1;S3~1z-*6hS`Em3W z74{Rfkt()zr&hJK3YLcd>98k87#(c;ZZz9}XB+*W)$PAFo4+HF{{KDFvQ{px|9~8- zID7|Jn*De8O#Mp**8=P7a?ANQo(v%?V$u&Fk#Q#ot|akA;n|Q7NtpluD_c!Htq087 zp?%yoUC8WmOQzpKWlVE3Tc$(J0Rl6L6DgIrjzx9>%Xu{SLELNB!A^dT^*e88+QBn^ z#@^PG@Ab>8r@&0(+uPUYx$loRN4^j}O!xvQaYPbHP)}KFMj0k-VW^QqA8mA*R2DPN zsAO6zICrdx1f<)x%UoEZsBGF;Tnf_+*gf1**6cLO1){~>3T0lpa0}D%`h@<8Y*b^q}IYTRrw{4i7a+K)Ts3EYjyTQ0U>7Vi0xp; zSSGabZ@=s4zh(_4OoQ&qYpaK!n(hPc)lFD9$R2olP4Gv|C~F~W4#igbM;T?X-n8f* z4XJ$MaKrolbwSE3Ea&S~<$5zTYk=TrLF{tJ&sM}BN?k~y_UIP#9 zvdQFR6ZBqK?%bKO2kAL?`-_3m^ka12wV9AkU%}6FOz*HN9ag6me-Tl08v()MKvZfK6BRm+#e~8!mD) zU&Prn{=O|7UfsbP_cr2fR>S*`E$r?2TXw%OQVqA17U!R<`9@}Lu={PMu0QDXy!Q-EIxk>0D+SUO)t`!_tTVbIcmQX&TKc#Buhp$X9 zliv*%ugGVrfE2No@>9qXnys5mTfu`_sloryAlhkX#<)9?i>i&oD*U5>gPIoNt;f+h zNMll$EIA*8!w#GzjmR8clA~F~2jg>gss|-k_io1stf%@6ouJuO6dVg7$$|Z1Hw)Ur z-YeK5sp3d*d=iO3SDyH}tDl1IlvmvShVxdJ--;k~P0;6eEg(1U^xO{8B&pgCb_Cw) z*W?1%zCS}00C9_TZOzN(lgix2!|)!wdEw)gm@1qP&mn8UKiT^Yu_s`$cVp%QnGT8JI~BV-#1a;>G^RWVONc zC_&Hgfp1s_H;rJ=BT6UoY$@t*Fz>bpn267`ujr-Ff9TPfn&AVFCwNek+vNOIi43^F zt@(w=drt)uTHC|P{NznC5J_-M*76PAp;A5j^=NUHNt-FDqc-nKH@rbDa=|vusd~-( z|Da?ethV&JL_HlZODZXm-Ee4xQ5{2w^S?;(hl=uGv9;}jBTP$2J&0k99ec7eJ1$XR zkT{&ELVWf;`Kvar5G=$n>xvf z-zAWY$zFcsCaEO*E^YDM3jEjNpX96mD(c&fy^HYA693O2!+$*nh5heJyq%Sc$$v;P z(y?HE<$=f!4H1s~Vzn{_qC)wM{#pws{mQQ1-4ig6-KAHR!K zpL%C7XY>5Tc0syOy!A}0qFrW&29T=cJ$0+n>|OlUA{VZ}2qw*hCUY&M4V(5@7=Bn- z)gGU7*Q=6fc`U#k6}E`Xwzqp4$cSj)Er=L>AISpkY4PeU5g@0}Glfr*ed$k`6!}A^ z;GP+0lOKsK;*nCu)Z|BQ&iSHnIKeO7Gm|QQeNizhp z2!-#h_lFSx;RkW&H=O6Aeu2EfZ+HZT4^M7=g{a?n!+1bdGSya-<#Ztx0 zmGt|T`t}O`k130EUMOo)SuRocvA9uxK?o*X1j|6S!Io`~Vr+mzhul!!#tndWUISv>d zg(N7%k5ts@F^-r^7o4RA&G4|r*>vZSM$2QX+Di92!kpkxV677%vWXr6$5eGL8%O%% ze!reoQG=Yq0NYfayyY)JxCAp(QYjSbLD?FpG_bUz`7edK6;Z@j=$OX+i7I$)eTGx2 z?}=00eUDeK=~pXVeN-@=m#Q#->2^-4);691Zd44WnX4fOT>Yej$?abz-apC+kdIwU zB%8KaVkyjRj>Pt6ZpG4A$1|h@I}zIdjQNUGNb85eL#M-p%mhcy7#{K}JTK7Kse@rL z{K>L1l)$8}YGpe(zf)hn^_9rZ&sB(R3R{xpg3_vL8LDbzg%69!D82SL2GIw&=P@{_ zorI3yvvjXG7MXKrTiUt=86iSvT0LzoE&`7>w{i+Ia#x?wu=Nst6NC*a(fma5SsXDX zU>}TD1)=%C;R{v-Igr7@onrSM+%MOpd(<^M4k8Tx;I;`SEV6{p?Aes-!_ z5N6_I+hdLeT+gh2$wm^@cN%xlU6HY*zroEoj%^-z(eJ``C*~NQ21SNk0`n0RuV@M- zs-Ghq#%Y6+A~(1+sf?E)NQ|FgUa3ooOa9f$U}L->L8WO3izulTY7SdL^pzNaj9pld zqU`G-neHi!@)e2v=tKI8LLr<*9K1_PMC6mm2>q&KYmwDLdd4mU0U1s%Q8ko70Y{S2 zw2d<4ExKYLq+%cv(*-q0CL!zf%fLwAWT7*mwO5R!5pGTZnv6+o2PIvSqp~(hxdTp{ z0MYwr?9A-3zu7#Oii$}8NPn(b?v&$zfj<4k_yit|^)1yrxNS{pby=%h$)>Qt_uIXR(6#D-> zHU6*9@SoFRiS{>AX({7ty6bwWpO~Hcl)g6L?gp*Cx!KL8RcA}ju64b+v*wC_{YtwTb@H><<$5zi ziu_#{!|xkK#<%k_{nGRG)HRru*UKp>nqr)o1bym|!eFFoVxf3xUHq2DVoXzh{mO zG=hZp!AZZ8xw;%xQGvsXxaT{Zp7&ISui82Pn-75;)}NnI61^_-f6jUvPZ1sjv>uo~ z5*YGs4$9nLWs3y3sQR*jU8m*!kKa7eFM;FeSI=B{;MTy_LTAf$ijFcFxk9xxS&h(= zmr!F@MhEA9bU=T430-&OUTg9$ z;u&C^U&3S&B}ga+%6C}WZAFqzjX>uPZ)?F-Sz|b8YwN6ZS;M8%q958`ot?v-ZGhu= z6<(q3u42`!GIbKKui(YGhSGEp*Dpt|)71l57qJZ*x)~O+e*URsS)Rf;w2W->2;cXe z`;~vrFkIZx)$ZvBr)j10s$B;&O62xA5(Bp(%p;7JQ*iw^Qcb5NROf*3m;ENBa&`~S z+XzqLo~DF?1&-_TIz~)b=YfV;eGZ{R@wbmBgd0Q3-K}6-k%k>LnIk0yJ4PbEYdAsE zQpN%^Y8YIo#adsPWK37NLq5KwwhYdv0f%^NZ=|P|ZqJeh1!ltT)C$h67DkNZy}Gw) zh=-W7@ymEXqNqSGB`Ph{81DxTGHNl)`cjsm`fX^t>Vw?SBz^%juSO~h;aIFG)< z)k!3hUkW^Rh_+@0maf$HIeYe-vPinP>AJ-%kLJiw2?O&$HvPwU#ekOkMrMaqZvEAP z>XubX++CdITz~{7(f~3{y-SL}6Ubwu=lTGTx5$=aM-h*Y?|u_~NmNLe`Pr}*p(J(? zol1-I3eI?c2nzER2R9L5%yC9W3o1(J? z*`neG)W%~)5oW4$mMFW*Fc0 z0&1M}*EE9^9NsydL<)tItn+g;l|uU+1Q{l zQ-@je?wd7pj+FTN$z$0jGUqZZ6bjxp^R1)_kvbI@Yr7XLIJqMz)Te5#?&oU_9UWXr z{V_f%h40CeN4Do@Q7vI<;;ZBL^TDIA`g?_Ju5bpKx{HEr^xETT;yu-c*m9h@15^#V zO(Cfrr?lP2gx$YgOZm;x-5mENY^m1)_#?fQ$bN1^MP;oMcvoZ7u zG7ydy>mXq zp3*aw@j6b8))9Om>!QFdCf|R0- zL+F)gM}kXjiR0*<=B&6uIxnv;E?oy;$oF^1WetKMW*lYNnEJ`c=Y1LbSsfYZ*UKxg z{gTIp68t2H2J<9YY#sOv*7k0riAY;g?{Mq}h#+l>j`c2W& zbxJHH#co#avrRPU2p&ZIVE{6jaAMBjuydBKM6`@B?P8`b6mpZZ)Yb<@Ys!A~^D8(P zC?#EG4(4TY5NprzF+m@u*UQ7?%T~nC^?`ax)=hH&W91yc09MWrsDn#L?U0m!E+0F( zPSC)tFceTL=cylZ!mVw~8&~85uK?&#=4T**fuK6@1j|KQXKZnFO?ndl=!yK3>x64? z!wY1C2<2oqvfw-kvzgYRxgpDpqi@YzHab*JZp!@xeoAfPz;U$b z!Kn{>(TC|FALn3%-l6I9C^*!~r*!M#RZeUvp0Z;+PQ_9-pnK{P-?`_zY2C$t$RkhM z@kyNYi@PAzdQVLJ%dn;Uq4~w5syk`JMosr%IMv`m@A^!M%}n# zO>>4foH<+i)1v_=$OMd=Uh?CWr9*)p3kK5$8(i6rAugKj&Na{WO2uMAxkTy;iPYxP zuaHN(NWvPSM2TmyK|`4r4s8Wdkpk&$QeICEUHIcC@++iLNZ#ia()#bBw#Q=4Q`*%9 zqRLUN|HYnyN@KhcJt}Cz1sbQ!UIa46ByJOc?kE_9wQSR-qPpR=+Ch;&ERdC&w&|^U zH>W$#mj9yOFN%}-!TiN=R#~6l@`_U=S3Kt_q9hENU63_MlO6IZEaAA%721e1?MJo@ zkv^DRsaCutKWJ?zcdGCuTD%M0p{~NpUPVktd3cKo!&blr-R$QTYEd_8n)EjjXIZYu zPSd7jjTOPhx>#z{f%4T)Z;rhqi@QXs?W}5d9qz+U!tykMM%&dyd2_vA?snDi#!zr^ zLciM7(#N#>J3C3d|K1e&#HvAjV@ByO7p?pc@;2RBpsZjs_bvlChhM_IgNBWfCP!-M zd1j23Y!G((Su5Ov3%=-eH4W1DR?hmug=BQYZGmoG1|DoeTC{1M+rz=DNSPE&)yx_*Wz)mwXyzwiEkfjIT2X^pLWtX%Rl)hz zE(NXtY?N+JVGpaYBqxlL)rNvLV2RduT&`a3}#K0`z`f-cpD7k>?Vr1rEC_~<%kzn9tG)&VA_sz{wYK0oVPfrKFbi`O4|+M)T}(6!Uns1__xzAAPL642XrQQ0yICoaJ-!3_a<)sf}y_j!0h z_4~O#Eox0I@TvO0@V7Vuxg*rUO478+Eq*@+1cdQl$@};tqHicuW(!acZgEBqR$@k@ zdJXz{P$=bY>Xxj&e+X4oZQb1>&mf%4{NOzjM0M+lzdTCzBWTA|$|dS<~jq|{JR>*&_} zjW;+hVdbP>&pZtDXWYrA+~mpP9>)ddO+_0Uz zK!GmEH-D`79$TaJCfTg zx5luu%0NIx)eSq%k-y(Aie*dENJj&P+ixKIu&{VBmHbAQxwtO@o9&ZXii<;j{ii3M z9qldr=GthzZp98E0KtRYZjze-=vP1O?-ude&?%v+mGfrU*_0!F8!`xeEJ23*wKi)U z*!3x)@Rhx0gjvzNV>eaj-4s-=z zzf>s$4il#{lu0v#0t|{Iu|4oJ8YX^Gza*i&g}PC<@l&z<$WOV5txnTRe@mK3NU*7i zV?$iKn29z7`o%;`np1Ww&1)gLs7rEBFW7aA;8N}*7>4%I(>1KJV~ORhH{*3u_jEI7 zw47zC(RjOY*6r#Fq}nobf+p>e3W#)gAW+DthsH_f_f&v9LdVWXZ{TB^7K4wWDTaQV zDvfF85j%ZIja3$q?q9Rjw4j@5L)T|Wt!K*e)xnA=_6Wlr3ya-UdN4)4ClKn;@Z$(x zZL+%xt^7<>{&h;|3ba4O`DaK6WL_MC0Wp22gtNbem&aF}vLQ&(V%aDs&|;g%f}ls8 zO;JOO6zXOsBlc}vaVdfnfJd*w4(wK(CM9@Mhn(2U7eC{$-&hK*Awo~x2Zb_5iSXt^ zi;v9vs9B1+ibP&9$$QznFtfO6qkoQnoiMV;Lz)=l0e*>YBpT7ykgyQ2X&;%5t7lND zcpV^5YO<%XWUS1aTk(jb6$-U9L3NYai^$k=QNuhfQ1v@eVR#y2YYn+JKnb*q2Hc5a z#h|f_QJBx6DoK^>GiL_&IF+W$z=)z%TkzMQES39W^zB$Eg_ozyyF{r&1 z3M?0$is;7uDT}Bak>E5l$y8B~ah*6jljoZL^TeeVlqA;k@Y|!r0AD~jun(qOeAcU5 zZ~+Y13kjSo2>avnE}2atjK7IAP>H@PnbnC*P)j^5(yQ&pxkI`7#}7DHx)D1-uUvH@ zeSPNZFm{Il>l}Z*de9sKMH_Ox9M?5%cU@TKL(e)q8HDR-H)^0Fmp#0oV(i5*Rq{b> zFbvJ8*=%m|hnRr;X!cZoZphl;{0#xKp&umJoeGs*nzm<@P;-C2m$t`dOfp+YO|r;m zihfPZe*1~#Bw{Q}P^v-ZqRhTDG^jt{Coa2Msw1inU(zqoSF-C%Hl|<~n?KZw{1>Q?hN=T_dj(6#K@GYnAFTD?h@4%b zD9SQt^@$`NZ5#s~Fubp_Fv`gpv#3OqYTTo)_vxN7>IVC8v4`{}$T4&*%XtpTr zi*))AVcJM_k&0xoHb_VTNIj;(Vi0EfHhC(|d7=dhcEvT%5H9#j^+-laO&QM~! zP;13Bc;>NAzM0`BB51G=bVVT_>s_XSPoG_yr~eJ7D%I<=8Rk=b?Pk2{)&vl|C^+UnYc(=m|yT`%wnSHjkp%g;XG>BM1Y*EpWd@b&D#qqS(Ib z_vz(~tbM{NVl@cQFJvARzERCEf?^Jufc+g$rfQxJ*Qg=Sh(y-p98}Syp7xsELV zOJl{6ej*d&RLrsoQk4N~wehSlVUR0iUTE#}HwMkl3=QN_NeX=2hCX_-=8UP1dlm^O)i zvCWW7gbjlVtlWqkz#|Kg(i6t!J!}KsWD~!P*0khE0%k|&t~g6CUa2uV4MsL-QUn#@ zd)`@@Wxvo{<#lTQ(P@qU|55f$L9&2LlVhB*ZQHhO+twNLjBVStZQDF!+xE=PMa1sj zi2rWvQ%Ce;M}1Y*nOT{Jx_cdGyg0^Oe}up}0ISxL@>Dh!U6=k)%q}M|-A*C(b_=l$g0+76Vl zha)<$TfHB<>-h)I_SIVt--ZGJ5JL0cK;i!}`Qe{Do3NepkHk*O#9hYV_rD2nzz}<4 z`8GfDat3R0t%Ml3!~Ftu+@YH~Ul;Sg!M#(P$HQ%Tt~M2AdY+P@zz+DSAtIJ_!IqGIGe=0UjD9H=_m=lmFQ^gEOZvMS~NyK%)n)5z;rN57t*66Lg3U$Zu(J?0NT^S$B7B) zab2c*MR6Wzmk5&`DI&MtZ<`U&YqmrUGo&bsvBRF-G`s@zfx@wP87n@$$=3sm$iCco z_BH^<2Khl|y1Jrm5z~6m>P$=C!n9^wnkFz*Z0=RR1KxB6TJn9>xhtepq0c;%F%1q) zKBjUBHxW2-Lbw8lb`DceWZG3Q=5a%iG6D66d+>LnI*EsQbgWyXt|xa=?0>EpXqb{Q z1l#+S;j-y&8{OX^?O$Lx#)}&=hXJv27g)m~~fG)YX*9)-Cmr?0zIWb!}mSSNw-1hq^qw&VzRMdLX4yuTKBd$8I1!o#^x@aE0RX?VpsqU4972+z)@$2l?Mx z#sBC``p;JJKT+yjk9I4(U|?WGVBRiZx-MY6qF~XHgL}}&ABoDMUW1M;f_`|Y+LjbE_7cT#BY8wBSzsG-S6-K~4xLN$P*nhC! zKRuRM#Ma5d{ok@hMJ+o-0dyYV#EEv4@W16%nl$5rbXGEWjfl9`*4E)~{6c#fz|tp+ zCitENPkI)H7WrX(y?7=crf3;Je`?|0b!4a6w$mE!-)Ca<0J4qNdtoX~^m9uG5|Fbo z#r0(dNOUwT5}j#_YP0*nggzSBO-5JbUSii_)pXv4&V?I4)u7XYFDS3TtMS+72nZa7 zu0RY{3TZWxB;Qzq<5{?PBN8*9!@9gfjvAcH2H$g65U&vII0T_iTG|#4suw@erC&zo z3##lAuj9q<`6+g&@=bTk|>*YsMd zeIggk!EH4EP0@5VkX%c~rH>mahD5q2bx1W+PglL=jFlB@CB@yz3#0i9ZOs;B2K~gM zqdzKRRk&hcK^E^t4_`h|YcaJ(e?F;>v|0PHjd=s{W&q4Uee&+VYx>uuY+UCI?WBM$ zSSt}K&@FL4u_4K^cKi*)Fe!>@um=Ho#3o!KADBzMuoY9GF3^)-U8KUPC}psgyHB%C z--J$Glb`sI*T9%dgyukr9Gd(~cyFKMh;kbNi-1FrGN+i|hTBqX)GJHznNZnG^xnvM z0%=r|9pO@kq`}EMvLg{@5505;mhoQ_Stc%Z4CEiZ1^53IwD_N8NB93zcK<54D)oP{ zy|PEsU9O}F#^Q`Su^R|HvZmzvG@2IYM(gvN zifSE=$(jqB^Qbf+iQ!HY%iUTwR+kgqE-jng+xegi->z3vS!u*ZM4KPpZO==*(`b5s?vN2^5TG`kNd7F#&^QeT&H3COI(oSW)8)9%p`Aot zbq{*?Cv2RbswLZ}51v_HxpR20RZKs*RWd%sJtq(GvS!X68YOB@Zxyn~+D_TJ&I_sf zw}LmN;z+PE+A2Adz0;Fe1wLe)=*5-?m=dL3agQmRwBOX}Tbq_WErPKX zOq}p=B}^1T@(ZAl7MhDq-XcuG7Jt%4VToXB%xr9WSUQ=sb0ox!9xvx!U<-P9I5UT{ zv5IxwX{M}Ce_h!aW~*)m&f_p1kBXn7V8ZWLhw%e5*fHtLmz`D6RF;|fSx<>Pfs=qJs^VVp53>KK%wC~swl z1{(3~DktVtNs#cM2bJWVV!;ZT9Z9WaVW+qpJ`DZMhH9t$ZBW|KQbBv617)3Dy9d@zB>q-H{F61Wgd4BJpelJrYx_kv$bM$A<*6%IqPYY(;LwGjDQ99JGuMxK^O!|4!FoCmP<1S}$ znrNJ1+v1Bt5qTH*czeyaS}4O^O#rsnd4PycYsxq!NJRY$l$sT!PBr8zP;?GI3n{F9 zcX7FW=7$=y{UzRsk+h)Rwln_$@{_l3SN&Fy+(k%~FuQViLoC6}$=-rPrAj%b6G=vs z3*oHQF_HiTalEayklV7fn}r?sie#TETF<{8qudohg$ykfotWJUuA$=0iyYP_Sf0Lj`6vnaZb5Ta3*i4X$qRA?3&DF0W zuXa6{sqHkK+@|E?T?Ocwxri8uGWYhAPNYlnZvnA;`DuG5HAv0%OgpChGmDne%qzEd zh|V@}Wnh3!?2+0j*^^|&sfG_Jg>GVRw>ULAD{FQa0X8a94Kdb2`X!veYYL!cljE5d zQ01_I>C*|$GQGEGo!D)*%oajBnBpWvBAXO~^Bnx`BVK9XHpLOTt#9SgsvhOp^gLeb z)0Qp!4-sq?F7jX&ck{?M&+^V8t8@;3ezl@mp&0poA$#pWu|)h$H(?5#+fYWoqq;BW zVmdgIQ&zaBPz>Dm5V7xR(=GCGo_v2;NX^(NVOKBq1Zh%5ivk~`_71kA@oZOh&R>@33xXVH|i~eH-CI$-Aun6w{7^tqOt?2aM?>OQapyI~}4I(H{ z)R_|nmT)|>Iq_(*4B25r8~FR$AJ2v}Q*NahF330i`pQTwxC~<2lMhn(6r9auzn`#o zA<7F8PtS$g5xl^nzAn>!AyY!#(^Ibzn)VdocmS2?+o35e2(5mz-kB4bp9Ve9i*F}L z73I!;+3(k|$`AagnwxRg6Pdn8tsallJuj zv`aC|ow-oov$AALV`es109Pd_S+mB_{*sQv*E9N#lyHY3NE~w9cZqh;+C)yHi%HJv z2w4C_;_j0PRiP^g^YFqST97vj3{j1|C-=cjkN-f9Kr6N7K{~n&luOw$Y7YXbB1L<( zfTILWu`fSp-uZ--3 zO(ZsZ&LJu(&mlUUtHvj4d4e&IOIF2$&ME3qdj!%J-8YC?$xSLWctlfds9iIHG~fu6 zL|~l+@ogRG4hzH$2dLw#zby2q2okRYksfY?maIX0Q;K(uHiiJaGiq;@cDc+rK?A&x zK|Gu*JZIh^3hW=0x&_VT-U+R+-m`m0VP2>}xxOBg=$WGEn`Vk7#HOfduxI3fz!ag}cV)Hp z<)ZbawOKF<%2J7u7Ucym8y+nO2W=~-d1_og(BC4R1a%(==6*8|#&?M#8U!s`(Sj*M zwV_bqmdatiCQ?zOVBy-!-$&dd7Kl5Y;DkAet^6WZk4F;4t>I3<;r6eqvGGO5UZ_k6 z{+=k~85evB`UbXtnti!|7pB3M^KWw`?UTT~i#tyArBIv>bG9<}n#aZvTQV{%%aFYF zU%)vlY(~l;WhZezSX1a%0h&%|s?dDD2An4G8VTKy&5p<^Vq#ITi_-dL2YppXLlTrb z580>I*2WTEcWu%cI|(qhFfq17r)p@q!5D4)7)`Kb%k+ds<=&GLl)Fh9Z`gI1CBLRt z53#9L6VTM6&vE7VUCITaj|ScW_L{I6PQcV)JgDT`u^!e!mRbmGuX`uE9&p=Zw&b3r zB5h;ERrL>9bC;sXGt8^ z<%(D+t#!qkj-!jsij`}6WFMK#X(fqV^LDy@zd-T_Q^X&O@JTcPiZ3lZX($)@e{zKA zwQSDOxYk2zw?s}b9^{;4B}Zd@M@IvLI(0^DWu^2xa{+WVZ}To(_nqXN>QURQ?9l28 ztqXAkiRUPX-hH~!9l_4NQy1$&aZEmJB`9}+9#nJ4IW-;5Hrpx#;O-y=EMBiP_#c-rR>iVkQ0GHK(KD}TqA_C$y9 z2^DmLXxkkaU609y=Z03oYietS?MU^*q{)*a0aod3P-dJ6^PiQ4)7L{7m&f|7IM}4t ze%{fG1EdGu6_9mR4P!RNNlBxxjjyFJ7o$ zF(a@jAyn7W!q6v6`JfF`kHObidv%*jZsgbR&upM$34pVh)cPUQ2p=J`llbDW&h^BR zj-L;x!@KF4F`0&PV;4|xD)~6M+0Np)Ix`Z;7-fbox!I56a_h`V$|vG%Swhc0m|kw- z)x}EsqYLH+vIBJqkANw4G-4@jV+ds>yx|`<2-B zK!v$x5@XTHz|3eJ(ruHHO6gun6 zGyu8%+h3@@GXiLA!Ep3$m)hBxYpk}^Z72?~)s>=5s|ebIpT>_|lw~d>9j%Wbh%l0& zc|1$GoS4ixM@n#WqCE>GG!~1W?Su7mHB39SJrh8k(PF4Owmn+5cc7oPzEf!1*w% z6>7Uf*6z6P?%-k>^b!pu`!|WVOnvkg4*_bM9K&I7x1_X=b)nmBGl0 z?JI2amuQI3$hn+MyY(5v*(Sc4q;I((OkLo;&Jm_W zbn%?FBB8#@19Cq%<1myW4Wk*GQ5|B`;xYAUch;0>p+0%k#AAewfM|nxtpQlAVfd1X zuCAA8AGb!sEs@iR{02a7rEkg6_<%1vgo@5A1ejLQ@f`JhCkJJtqDuS3iI8O>j|MB5 zIaPw4OBUfhMwHc!Z?gKJRKn7j$bVAA)mX$m{@yqPmvF7bCU7mqw(#CPg2xLL;l{*x z|KKH4|1ux-1h*Qz+p~_c3EmX;0Z{l7K724cNb12a=>$Q{DkAm3$nyZzEA$b0_J$?< z;6Ayd41Gtu448Nhz`%}U8<%F4o7WcmZV{Z<4v0J_o>Doe^pDMoQC-%7(nqXyNYr(Bkp>uoZOLw)LKzt zHfB`+42e}SfT{{UjF7Hw_+%_4Em7L3JDltxv{i*T0=87ip^>S2w0EF%Yky!aPa>Fd z-w}y@plvWtF$Q{ZD*uXzJ7)Os?*6rb&s^sAA49J(~zskeC)!4uS`4ns-Nd zVVYOoyXKb1soz&paLlrc1wOUdo0~R2Dd>z3-e>|cNm*HZ8VIv$&F_M1pO`uYYHE2( zbs&iK%~)n;a_NQmxXe9FCxEb0&>=gY#BXciS?ZPM;E%~Z5;DHM(-<mIu4B%S9nY{CMY^BdnS<$eWD$w2I^delOLYAW ziTnzWvimKGEsU0aytG)}{`F5Y8E@4S$?Kmx91EiV6Zrd2Ea89jcK#>uC+1-A+uXv) zQOWuDZ#xGkVupXiSISy)i}LVauXSM ziq#%4;#XC=r*qJEgZI~lA3*%Ft=i_$g&sjiob#oiL)xDlBxxAPk+#BzF ztwCE}9QSjj zPJqgLW~Pr(1`{g^Qf{rN`321yn`b>~YQ9E-U~`YB5b_ltYxy*mkDl1die`U*3;k@u zb;6H<$YDoAUnL>dSn}GU_%5t%dBw6q?MC42GaP=m6&@~uvtlnKhLrBy=qt!}*{}VR z)RZxLmWp7g8p=U%RF`Y0PpG(_d37)&k~o??fN_pkZ!@!y*P*X9hhs)EE@hS; z3I=4%+Sgd0kKi)kaKUY3{^9%yUMd3UIsgwdXSz&&8{mcOs+ zf)wQ@o+2iE-bDnBoBhJ_l>0dyV^{wL6;iK+%ct$85_0ZU~qF&l9ZuO&m_ zGEPybhcpVl%jzguSaW{)I&yqVVea)=5Vs&lV^d*eZL&oFO~7?1@+t{hLEE5C_C zf~G8~R*$+wsx-m|DI>KqHv=6QE^L?4(jXrkwSH7d23EV$5IE*Gvhn!FI4PnuuL+4g z7>t3T1QYht3Y-{B?z=&NIT#!m1RLzaVz{8g{05mxQi!dC7bQX+ z_#0dVM!heK;TkmO?*z;n*%5TXW8ejXmt=1T@x1F@#|=L$%T1mfGv-Df7_+}i@3N0% z=q@bIN15xTNSzaZdrHq4*f+D&05o}Q?8O^d%I_t}jfXU`Z+MQx_!F0%2qG>Y|JrE^ zhgrUF9v#^G=%MRs7b}l<$xYqIW^T#?8CBq+i$!-ZpUzWM45OGXHWg`!t!ks=rAPF( z!I8yjSWwJ^rFLI!FoO0paw)jAGo*amsDFZxH$C^YHN-Jxq~a^R*3 zn{FW)sFKn<531IBn`PpUl^MSzaT)D@)cSe8m`M5opUSWZy0G=jUsRMEOvIn#&E9hL z?n7@EzTH7|s&h(Ym^| z_lf-0uYWSq)JlWS1v$}_q)``MGsfvUmcN*$O>=8*iW|<-O13Xo;FR3P4BZft%W5bq zB-=oKWC@!|D!msX7Is}y%(r#~&zLlHGK-Q&tXr6*!OZF2^+GIxOs1x|t6I~{IuBjrh{{bv!sbo(vdDlMn$B5B*hIjd3My2+AL zOuY025U3D6DoS<$m(nVdf*GgD*(21DEB7$p)cW9VgdkITR1PozK#zax_Ei|34#gmU zp!3DeDw3cWe<=6O+&F^v^wObx{HmdNVeu~5X?e-=U%B;UEu7*_xCICG8O%Zcz?f-Z zZYKTY7htQ$j3~C>(6)Y_UA<%~-mKoCd#MN=-bVh=0cpL@@1n>%^-l|X=v2eDS-NkK zZUzZ!($Ek)-`c5*N5Zlg&sLs`XJrV`Y6vf>wQMFV(YSLa+PU4lWMcTM{m6s;xw>h73UY2mqw2d^ zSz!k9z<}kBC4ZD*nZ2Sd1CC&~{RC{W-hKJiCt40ZWhpbSUzt+VJ-Ox1+vGc!fAs)S z({(w$60zANbZ%)Gyr@?#&Mc$&BpQ=?njnVMpp;O{lAwyi8r0Zlm>y>jYVH}>)Guk6 zP%l800~qbGl3a*l?3ShEw80SsF_bhxBCp(!a@jK!!olnizA)MbYfxYT-f_$4fZrk9 zWQAFC8i8qMZiA&P`9!tZm2O|2c|5I*V`*MetU-B3$!3m{pS!p7vTe*uRVzI;uiCtx ziQ>v2sIejWu8LSi>ZVEI@KIxKe2|HQ;KS&gHft4c(?cTF7_Q^DMCqc2i?fl`KJl_O zE>~~dL=~1=|6O_+e$^D9;0A70xc2l}^dV?xlV!6JoQGQnS`Oz{xI5WSd(QTr*IhpJ zcQ=YSo%@BWJ&fDnXKQkWB4TfcJx&fmCpe^}z2hc8nZf*4D9Z|pf)Ao(4tXnjD3BuZNn}rJVOwz<+ zS_{w=(gX1w>U0uf{|fUo-M%Mba>U5dxLJ+HWg%-TPgtq<@V^34TqPa4qJiHXUR15t zogJYQdP7%%bb|M4$hXa*H5H*xe-H>akRn(fk?o7Fp9r_IZ(PMbDo)^it2qN)wXw`$ zG6$~~{&s|uN4c;r@Jpjdpv)cOVeJ1{1hdLvN5L2idN(jap~iF*PBHqJA9?hC;6C9DKEL3|FgV47+BqG%B- zk-L|gqyI;|obesd*3M=in0zaMvB1ba9y8V&bS+)PR#sO%nDa@q{?Fsg|Ix7VpF8$H3>(c%9R6W% z^Y6j^W7vp2gu>IsRH0ENT92DdZJ}1r0Cb?EWrdx={ugmnG3if;ny)SO1@VKN(q&C%AEkOL%2PM{LHH~oG4?3 zT_aNukM?Vh=PgIOnd`6j^9BIcokwz2gLYJ$R-vtMFiC}z)ad-kaK9yoJ8_(=!8vj< zCI=@qoU37;yC)ssXVE#|_k)(}vGwPI7r-mF-_+r#7KOlY!ngRi@hu^Tmk7Xoi3@!3 zbbQGzVomQyN4#t|>d2d^tT(OvPUZ*2I-XB@Y^_%E_>FWl`o*rru0`M>&oL#>u#gb4 zOLlYzQYKV-TR*06&7yWre!+2lT2FA%Q7~7xs=?1@RrMq}B*(N`xuz8fuH(Q!n%C)@ zKyOci$qf_1S)E-CjLx&PSM{(*>hGw6I)7cc``}GE#}+!|Bb8vhKl^BNM7eH=!(5(v0XpVOurk zatPD*#Iti;ULDSZk}Bh}v`t;H6RT$cw3q-ZtwOl&Q z5vpzYJxw$=%HHbmQE8`^!tqj9f7?OsdQpMp(A^YsT{hB2wGJiY-rtj-j4XiXIi|)< z(?qtw9Xa0CI^;yytx+OS2dJWdp{GgKnIB`2*!0tONaX7F%ko;`C5@3EOe81Jwdp-M zBn%Xhv@vgFs9F&%h`fg?mHw6~G?zn({u}V2c?>%;I{vhb*#0D6N1xE-!EAU^{qZ7rKj$!)wx)uvrnD#gMa8TN2W=eNM@rMEv;E3p>`7IV34`<3Tc_^Dx;skH6e2(KxT(xHateb zB+(yY!&shILrD+g(mgn6^Zclt(Q=L5e2-*O9c4Xr(0LXfjYc^X`KOCWWF8&fJ|~bl zj(>iTMBOGItpZdPd|n1dTD`4rPuL_}0-H0vuB3<zz~t(Cbou??##Q4G$8O8IUz9?q69 z3Ja!Fe@~>-c+aHM(2!3TrS*bJr8;c=1_vqRcmE)8JO$~iBDtp|#mcA5(*;zg6Y<;!qwUeP)eBeom=^Ly#Hdjr1T-7d#E_dpFJZ0!Gk|5`8e@NORuT^r(}`Yi>*CQRZ07?fk$T znaG{`2~6k}RjjB{C}ednd~z=|9Pc~mn3XL!!iHvywTpX(PkU}j!}dLQ!`plD7(NRI z@R$^fVL&~H#P{o-wnIGO;XS;13_Ex)MPUyh2X_V{vf2)zxWQiIC`Drr3C;?0E~&d< z#*~}>LpkRhv^87_#Kzdbb+S%h6%B7+Vi>!Vjw@=$WK@_JR@a89g1-}J4au22(z^9<1OJdPnDl`l0jup@n zx;rU5#GpDx?qUi(>$;V?dpC-mz^71GNh$RdbGf_>P9f63c7ru!X*YPZX>6RVKJ6i0 zfT|FQx6nL64L%cp?V7D|=Tn_xpdRT6cV=8Oh3@kPbxJNtl1(&<*`GXdIDrr11i1hb z%sFHyr_+aLaFfD0v>;2*q;T=(;@-|x4|!dgfkem62t7O*kUk;wD9mQhuLzd@Q_`!G2a&ZL754dG(;P++F zS#^^0NRH@??sx-Q^3zem&YC-sKH0^pg`sQZ7sv)>23?MhpLb19QfaUiDivzxifzn0 z2h5j$qxYENiwZz46@Q}Xd6-j04D(=>gTl{_UuFy22+FfabJJq+j$_z`RlB*Da7mfF)+YL~e?GfX`b36f`uDRP0C>;>+IoEku2oeQj6;5 zQi%~}#sb+}r!p%%;tLVdJ6Zb^TKlWo(`CU%j!6YwVvPee0XDnE^PBe#N?~QN;S+rVtTkM-(y%2;>p zS9er|i0v`68bZ6;YViYc#Z?AZ77Mq5TE?2mN%oJqStDNZ>k;F6=N5LvYW&D7V>nUB z+^gH4aC3Rm-VVOc^=)ge?|OmSQAp)xJt`5S{Alq$;>w@03RheYMj>5ZT>=_HK7Bg3 zJx|vJB%A7vXhrffh*c>O&0>fQA994NJWgXqWMkdj>T?dP_O*GQYmTbF5*)vkWeB@l zg&yj9@so)tHRq@~XDK-A6bJ3o)WZVRgLv&BStFLv;ZycS?SrlrGv6I?KXJMpxjKD5 zCtfC!?=viMEc1ii0S)G`O%Y2z{B_Fq0MOS$=3L=Dq>^^Mn51vA)zYXx;Qk?J?2j28 zllw7aVn_aOd+LAJi~oC1RdO;gvikR;8mD8oK#v@(M`y8C)xfRqep28kMy*91qmjLM+Zb&FcwHsi!~y?%jcWwx>bDDq0Oyc0@(xOQ=($!QzrkCwEb+7h^^(v>KrwOf6)Ne^DGZN>n z=cYmb$n4VAKZQ2=K%O^WQVrr*D_5rcuKYGdmQiqgS8~()2H@#-oLgaeA}Cr|0944FFspWG*NS zRXo+$k=FNK0JFr+!LKXAx;UUUaKhTu%_C?^g%uCv#sK~@Ro}4+qk((6P66E@TP9j2 zJ8ImNz*ht?EA1AFY(_4|)QpUbw7$WpAjQnW;kFQffGGE}H7|u)q@_5?Py+?xRe>==qNpl3B}v!47( z8d-j38D+92;!X(-iA$ls=^Q-s`0`-CyNDjK`gd)y)iT0fm>DDRLgQ&`T*)JihK$C5tjuHZX zA2^Yt=S@L_0`cm}%|)Uu@2Bipc^G;Mk17X%)yVk+9<4n@6wp-#SjxVD(xD{Fc0h>g zsPwT^1{x(t7C{G;<;;sngcfK3KW{~anQY8xdRz0<7&Nok3ZNRbdY98RoaG8loi}%n zyp~k%q$Fic*cuHnsme7z0;}VS%sGn+$||jbX?LuR!m%oXD(m#}KUV+pxZ4;Au&D5e zA!sI?vy{3^lG@=HB{P_$rOW2@HNWu7&}6Cr+2T&4Y)*)n6jh*PGLDf5bmb<70J=uxLMYydsM9=;3ki;SWfLN}%o|Gu zm&$6W({h~LFwNGUawwaYD4>DSqgH6xR<$u?N|*JslBV%?57NAbHj3g&M0eTgxnTT8 z`Zcw>slGn{EV2K}&D3#NnbEgi>=3v2m03$=f1-8BJy5$+trtyUo zw*5q}txcNbTbTY8yf7m&`vYeleE@FW5esKhwAu{|@RXOhPI6U%mO!n>OE zl7jA%qEp0Av7wOb7PjiunuD=Wbr;kFh@Dw*3i;YYVP+N0~_j+yf(EhoGkvi zx1yQIARU4(E^y+caA1jBEg#K-*Z5dtCuXsz?QGtO$$MV58mDsK7J9i&ZN+l7qYEIb zmQv+GYzLd*}}7ET;*1+gJa6*E=gOg_$nj1WVpD70HLquR(3?T+mj z*hl6;g&^*@O{84bmbm>v!(pAXT>I!@-F3d254(OlRc3S(_@|6BUN)vQqkRTbZWA)o zDQtMNHa`iIMuX- z8xdYDGJoKvv|?Nno#)H0${?N`>m}1Y#D8hT)Y4FY-BT5c-9*IHW@SV0WIc2ae=FvZ zE^jVsJS%1=Fyl2szLge1Exu?Bzx?y$Y#>v2b@GR!0)+W*6XO33bvgV@h#w!oe+`MM z9}}{~rKIm1yX-V+M8s5a2#8T414KjtNOV9E2t)~gApba3^msrpvNZNId<88lE31ko zUM)0DJ#!g6>xe24^5qqm%b#yuJDRM1Y$MK_mo6Rkl0oag9eeD$)40iRTi%tfTyu^y z-+PXouMfCNdY-U-gB*My){Alh1R#Udku4Em#T9<8XO~4K_(@M%l#dfZjSb~VgXGEM z1SwJ+1<6y!IJFge*N|x_o%JpAq!S#QQgLH3IIW6Nk1ZIaB33zB#Uk1?l`Zs|mXA*F zN>N!f7g6(tj;yMx<M{ z-;*utq$3X3TqVS5lTb9Zi-#mHGs-|zK?^AYO%&l1m)5Ew#}C(Zjf8(mI?7kiK55cu z`p;t~Hs@ACjVGPjM?0d3AS0j?tUn^KS` zK8q`(b*hnRmo!yrTHgZ*l|14bu5DB|Mf*B|5z~_Ev{gTjCl^P_XsK0e)Onu=7f1P* zCo6lH{i)N4_o?itY0U-sg`z**OHLR=h|9cY2wM=LSN4|meY_bCraKxmLhAsbn;;8Kt%5H zdQtb0bNR@R;~u7Hl0>Y+B`f4yUBH@w@LJMJZz>8Qoqk=S zjbJr4#93(>_K2)y?gp?u3S5Le+~l^~0HP0OXbOaT@1Pm%i`Kc=6{*V7&Ujk3q`UrwWCgutRPkB z6()^4L#5^$sI>rt+A4oBhx_hr=dul~KNc)ms7y{@g++v9Xd3dhJRU zLF^V^Hc1Q2Tz79@7=y`40XM*%IK#zt?R$Y7$f>BqGv=n&nE{S_Ch5d>h*{TVOVkW{eactFW2JJ6eVuHj4b@`6U!6=@dqVKlTAyL!3eRP<1*s;#?AifucJ&V zTGmZ>9E1H5&wZTcr}vIGHe%boHz20D>Iqx05Z?>JN}RGQY3jL6D=nt1YPz}gWN}O( zGpqh-H&dZ}Pcz1=Y(#K!Jp^#g`|0V7$Vb!6tIm6vhAc8|jmOTpJfpGF>09tfow_X@ z7xWv;r1z-pSu=GJY@h5%=j%$nmOpHOZR)NE5;oga1crOC{-Vn#8TQOz#(Vv)YeHIIKT_(&Kh7+k1C3Ntv zZ6lnA!o~&}RPD#h-Q+m85GDr8Y*5Z^x-$^FAcNCUHaE+prB%iTr#H?vFcsCEz#=vd zFmL|$PjR0!f@_||+xksAR7SDINObOA2u5|yu3JSGnuAZ#%rp;d{?TzS*G`nMh+vRl zQKheWv-TcLE4OulLs@EF-fAc@S~Zb|TY@UIc5xI%(Xb-;6&6m!;%(UrK1336w(>|zOqr2^~hD)PF>YO+wZaG}l{C$(kBZPZQ8 zG6vI&a&>HwIPpa1+B7N%I<_r2WqDlK=<%CJc+Io!8KLT56te?BT@pjE73!QCu{Ia2L*p!Q)D#-P}S+9Rm*Nn8(I$XJ+3Jm^pqc1QNI zBO&3I%8M!zsh%y8Z^zT%G$lj&mjb7xS-(Sr>?b}i;xGU%%zlkZV}RzlV9xTFqLnMv zfL7wb`)HEW;ph0xd7`kbN*b?k3b2EgIk?+$fLP66gp+;Gu3C9aOABB}-%=w~D47y50VEKYP%E!G)4> zwB=lwn>zJvU>$II8<7wJ%aQeRuRgtt>eMVJXCs3Q25-idW2zK7LUjY6O#b)d)%E#lA(7KnF(#+W@4v)hb=ldiN6Ysk^X+^IEizTQug4)HqvQ?) z4b$;4%=huaN~>|Q&Nh=1Yna2bPt)0)GJF%rcZQ=R8$4s`Jz07p!)tzP5o4;$m-OIV zc98(lX%L27AUHSqf;!N>*Rc1GmdFR{{?1SxtELBrUD1DZPE7T}tE^s{USLFG`14sp z40xuJ!Fi}7UO|_Cn=t+Q4Qi`jv5_6sxSPk4Aw_p?;C-3BNxL1nyFBs})U^AXD%v9( z2FH&~lL_MbsAOsqdqfpvHkhz-Vqg8jfqEEs8KlL+*Y)Hpl=1D=W?pB}3&~_||EB3Z zx_1T!X2)xx(tX-?rE!_JWn*C{%B=*4zmRpW%IZdhs9ONU_IbQ_cAW#D7(HJt?!^PB z3-DMU$<&BRHE%PtIdfm?#g6W6cR)KcBI7sHkAOmQqn{Vfk^$q|XsV*WP0PIhokQ+- z#qKT!p#haI97ro!<}k6h$d-W_An;{KCQWl(I*@`3cApDYS8_T9a{JLN#7nghL9-!H z^I@M_F(hbDP~g)57;n)hLWm33%ISC*$68gB5+%5TJXgG1Cb3IyqFLpj+20B5Jx!xK z!Tg{=sa5q#rVjhR)_c}VvEwI95SK!8_Q=gCK{2@}?k?&h^3>>MUMmSI@#xMNF3tWb zoa|ecN0Jm=X+s>`Tj#yZ?#wZgo3r9z7>p-Gi=KDA=@+<*#$Fp2X6O|iII1+TmU-rf ziv{EugMpcZA<%hn@P|K7Xq+u$9mb%F!Wfk$a4bhgV{6BHsdGitCjST{@lJ0Q&@HD~ zAcNeziYHhizYUBEp%04Ot|E;u)bYtaS(Wr!EYF+j$*9A-gxSN2s&ho%f}o>uRcGy_ z;zsplG9S{V$`J1ZxO6YFEFY>El67TGNU2`9)#bi-mMM6%?Oi@OOVts2frguh-YF}5 zVi_80c&7`j#5S9>l(Itywy7{I=h?VOu5P*I>|#}{b31jc5S$ox5G%7 zS=lo)w+}hB2HS*@b%ov(vWx`fjp^sRP;aZdZfs!q{ z0dQHfPYv?wyM+SayA=NyU+)+sYZs*L?%loHw!3%Rwr$(CZQHhO+qP}nw!eO7=FAr} z=bX2qemqe>Dk`$p%9Shc%)D6L)=ogXlc|k{N8O;Cm}$ame3C~NNt$q3N_)( zHeHh{jb_1d7*)gN(2G`ArGaU(+33V=AnPp$v+~ziQxjXuG8O$xw6HUUnwe=Hj2J-p z@qK?q+4E1!liuKpuTh67fdL#XLA|LZ7Vr4 z3Ahnr7Z@VPXqe!)!Q~i&uCJzd=aYfqEP9HrVEt-}R1i+sap{ zA;~Q}_@G8D8JR<}h3hiuNfC~(6}Dzuin96LU#eRwuznf>6$)7Dn^t-gJ6C&=q6C(o1O;M#(7)tGhMadn^f$5yD5YEo zCH&AM-EViaMC&BF4sE;^@v&PlR*>gWL=KWf7m=bp(bOP)IzZ}ii4LmzTl!Rg=0b4q z1T)_WglK_5YDT%gk8)JU;(-(~rF9}kV|u0Wgch0vC}VW30!ibBb!#OP?k-pAH{wE= zkI2jPbsnjV-1tMusQOohbDRQ=-f4|FXCU}-vXo0*W|$WaV>c19m26@jD=%?Cbg@_J zo>67%f+S>+nF9ijn8iCt$dr)yAKe#-WfyA`uZG8vvW=cYyxu)8sE2u>KKfEvQLKsw z7-9>kt(Ir3-10@eJWF{pYBFS%EW&Gd6Zw6N(cr@z;HQ+)ETmhr6#U|s%`pyTjCdos zk*}3z6(3Dt_0ai8P+hN2%h#r$F6e%-JOj?ZtcCpGzJGt{TN3P?x%YmE%vc7Hfs^qO zwUe}P{snYt^W&6aA9>n;dI@}|Y3_TMOgMPjI5BL}14f}0r;n$9+N+mVl1g5;ERr7o zx-e*8ia|2*oAkHrjzde!3%}PC2z-u72fHlR_p>-q)rRWU=(jg9wsNMl)Pa~ve5U#6 zM7cj;TkB$m4xXi)8i9@`K#kesQ-M1ax39kbQJ`my{ z|9nZ>2v9yi?jX7z#;_yzqHNyfKGa8zV;>~ONrrD#A3M+r1+5ghN@l&wnf1rcIzNm^ z87^4_S_wH$(cc_z`3V!wfX$=V+j!I2r_6H)u>??Kon^_#O!KvmIjEfx_RQ?{^E|ny z)3SGUM+7#0#izt`TzaWVRmaDyFF3U?IK`)}jqoA92BU65MBH_w_J|*OtNE_=l2SBH z78r<;ewTkB^eKTEzLOgPHrallkea!eL>hfw(@o!*%ERcWI;0>R!Oa^oy*$XT?Nlom z8gh9+lSk**(Cv8xa9#86Uv=%Wp0L%i>4Uz*#YxZSaQUO%(Ucv)rG4bL$YA&DvHB$5 z{Yhi#Qp%$HTb;{8-%{umAEQL;wQ1#3rqAUR{F^L798%_qlhr(-a*C61fZ&IO@&_>o zw4)dnnblHGMv^B?DkkM5ztX>#&1=zA;Ur00C=_Z??-BR+^{)=sciPYp%*pl;#RJWO zj~j^xjk1BR(Smg%uXOwM?inJjj-VVRn4??D;*pqR7fDy_ z<57qdYHGb)kN(c;%;BHbFM^{3h7Yrrn9OabK~Yxa{#K`oCs*h)NY-4o`$E!5Fdg?H zW!RYOd>*aC4V)uQLL$5~LgpMm1{VRYRckHbBap}<;D7p_- z>^=FQYiZRFsIFs2adHL(9Z_(g#_M1_km$H8fPW&bh$(=5rGCWThh~!yg$v9Qw*K>KnuV&DzHI0~zYh zy&{Rb#q~e}V9UBncd*21{+uytLaU+=W`o@ob%_))T(q=&<(Uk@&>aV@N)97cw~o3f z@*T-O{=O{43Bai~Fn0KZ+ku%_Rv?`;KDXl+OMhb{+Kc)JR%?Q6mxk9#pkm3*H>mfu zh)tLM-dBk+thjJS@Zl&sOgF!}^7l%s+UJI?R5yE+;iYg*hhu~9+c*`gfMwglI{{y# zAvv(^s*$@xVUA^&y-xJRH1>)JH}b9EM|3XkUOhIytmP`1Cbth|qT4!|xgPmmyEkmP zWFlbl;u*r~VFl%Gf@*(J#cUb3_Y;A;lWINMtfQ(g$r+N-)XY-Gjd^3S6D(z`%gBgu z$_J?0Zv{2p4D&#mWwHT}a?tQfJqrqP*d>fM``X4jsuMxN?B) zIz(JC<^LmNV`8V$(f~rLy?VCjU1UHIFE^WQ^*z z^bHJ0#^8h-c8;Cf#`CZCV@G1PNr9CPz>ftorfLA`%pv&wKw^}Mv>Rx#79dV*&oj|f z_25f#h&)E&S+COK{tMQ#+iZW=$&KOaUUG-5KVChz1g6}rScelCe|=vMZjR4l%TpW9(J zE$yhDgFo};By$Z)i7n}smy;~FgxMvQlTf#T+~Fa7d((#5O(-U?3zLpzx`xq#1mYtZ z*2*Tt-;5L>kTfO^j+Z}mvyH{MQ_C2piv1Nf8-JtkKv`Lf^Ym^Qn!z}{7atDX++mpw zD}8|bs#6Rul47Y$B!^j);0!9KIHrp#t*_cm)d<%!hY+hgpRx(8p{=7v_+*7a zhpc;6wxW20T8<@K;}o|iT~i=}nGYJAVv6KOk6`Ouhh9U|cnpE8nky-lRh3$6S|Bjz z9)*ySoiwPFQc=oq-GdJ6LYS}AEU9(U&voQfQW3p!W@b{~bd|Qy{aE``h9m{PH|TME zD8jsPWs#z+5uX5d+`LEW+z)wQER%msVdsZdb8Pj6#B;7c-;Y2-F30b7-S>X~7 zHBK8#Y*2i$8u19gtZ(T+zclKKW{wOGwAbuV#@9JIt%A~Ht~KsOotNr4WAJ2w>YmdF zX__$Qbmm@WRPQ}v#8a1`Eod43wPF89IhxPnkOeLrwl;sopj!!JV~ehZQ#t;ghsmm0 zcAYzf?wr4*#!9&HQFlQdhu7Z`MDZx!5TA9G_pXp4&WY{in&1ZK zMH*z5RSLasmxT#o)?7`fH~{5Pj*qbqxH?VWpL&llCt$(nlv$^VJjDx$zTB57&i)Z? zvMpF-E1Y%7lcDXsw#V(4cqK?}&^FV#{6bgoMos4k?~L?^5!yz_Ms;L*bb99TLA2pQ zhs9S*ub>Sj*F<^t!EO=f_vMaL?pEp;fJ<xk=yR^XIf&O3r>M$b13 zQO8Kf17P}n;tWTSF%s=J?MBBWe9&3Z;L2gRT4>lIVv_;sxe)H~!zFnYQz)IrM^}dW&M5n;qqht3B|WPX z=A$9b;H`15-_?#jkMjk^=sJKTy=M0G%jdmD%c<5(Vr9zHO2WAPe;x{CH`F6jU!?K{ z6rjo{6g8`lRVl)QM;4E_RxRDR0_UZEshn(>_&xY6L+g!?kT{c2heEfBKFB-`^JukM zQoFrCahE-x=y2Fo(}AU$!+E1z9*M9lr3 zs9s<&F)HkGSmiCnmD#Oi$e$IvW^!D3!ndM(7C&@+D6C=WM>nXl58%Tt^u+9kKR0g~ zV3UIRq_{kAwP?`lQ92j2XzudWT++@@X5GR*UvC+FgTAWi3TLlWz9Bt-cUgJ+&1K#h zMjg9EzqH-@b7e|^7v($yI$Fkkln}2OzLiLZm0PEm?B}mCX1gHk(>;dDgMYv0a0Buy zEOsfj!@(sZlJXGthTIpuAF02FeRW=*>4h8q*r&a!%JUXKq}V#rxX9d26eoX%`QCh{ z;luZOYSb!D{6LhiV7{w66LTg{Jd!5dNcS-41II+H?ysC3UHE((hG@iBh;umvebe;w zx;^bjJ-xt4pK{-#%=E22jd)wZaPvKUt09QtRes4xt!Z>+pUCW2;IKj|pu=^*zS*Y2|vdFP)Yj zkSZtfNMZnZB~4f8(hg}6ZLyO1+wkR3)d}NjKKR|=G-r%P^w6YGt;ETWD)40+L1629 zBR;@e;pf7S;wU|NRU{hn86GMHhVPbY{m?cRwF;NwyuVIm~;=9>96g9KC5~<8zCP zxtrZnJD&0JACt`h&S*CNnQA8cKd@f^yWfoCU;ivIAyW%OeiLhJdqX>ZYbzsDJ4@-G z@XXoH)ZxFlteJ9}(g?hWocs{#OND`DAwDy2t1yOvsC)n;{EG!eD)H#pF6l|RSQ}Ri z_47$MJJ~zNH*%3MU%$NLX}4D6fIV({JzLW4uTy_eLhRh$-rv7w}I4!gaH0cB4~kiax$cS{#G-*`@P zlY}nlChoPQ%Y98kcp4%Ua2*HwO-L93%jsNXHDHOAf^aq2_W`fO57i}(kI{pgxp3~Z zHe&saA+7iy9mOMH4!#e&bq6^%{El;d@`B;V2zGZ_wP+|LU07|Y@bUYdt`Y{INA%>_ zY-)CUhs9x3T_D%LnZfMpJ2T#AV=Sy>Oo5lLB_>2t`n_}x42-P#-Cq&bgm+h{Xy=iO zZ1t_~1NXM$(?h9|2E)0HTAcg4x9Zz|0Pn^qc~R(Ej2}XGJdJ2i;QFjw3|@kc?qrC$ zt60YXQs9qAXsg=O3=u@9n`X6P9Gzk)Pw4>l`^7B6Ce%Yd>TlpmVi7csX!di6^CB`7 zc%tHIf@o-bTPcyQ6f@bYP#UD3xLJqCV)z7Rhj4KyBT04htEmIbEbrwgB3f~xV`s#A zpNuSso)Y@;3QaX3mK6FRzPx{@MwkV;t7|tc+;loq&18w3+X?VGaE7TP%DtI2; zSKhDxQLEHf4;5Xc$oTiY4@r`(*Va4Ltu3;Q)R zV4;FMlY%!tN}ojLx6qzLc1DaYa6|AHMC#ZAciom@cQdbDv2{4(dF-1 zk(t}uxqe%5_e8RFHWwi3usqT*P0`$y9mpGP?oL=(i9lWpS*$sDRe6ZML~kSu9hrgz zS&H0jplRuZ$i4-p{oHF&m@CCVEy-bA1BLj{J-L!ZMcyVo7oWy*7i6P~u7)wF7IpoN6(P z_Tk$otvXdn)#V`fXfw??#Bd&beTC~V4|3K9-5Ak;@t~$^mjxKr&Djnq%l(RcH8luo zW7Y20mojH;ehQj1bxNZ<6Npk;9><^@;eg-Km|cjUl1_I@-AyTPbd|UyyqaYYi_{F-^&iZ%}Xx504N(Ty()}Z4hpZCn5?Whc4=8 zw7L;X&HS{GsW@t{w9Ho|4ruyrj_f_ho|LcLp~QHcK2Z=XP&*mk$}UE~j@`knc8Lqi z>pKO19pQ382&eh>s?ECfyBd)*A#a3od0(#5T>IgsKgRGgNqlZRdVGWGag#}7>pd}O zy0#&zNY#~N&rP?4U(m8N4A{w{Pr=^ z4@d--IqIMyky}^-s#0K?1`Nj>M)EgZ5<<;{vV=vFNLPmrfjFM(D(tbcy7 zr{A9qeIPg3fdZinn4@ABPWP_l<|ZX*m=SaF_D>dKZC2Ufyo(UUG40tfYk-G5=a z89FcvZ^_xT2F>{%+rpR;7dCVYIl1$DRu0>ex)*7~1O2}t5WMfitJXR zBp;OOXPqu};{9yw#jE{Bl&JZ;A>^CP9h2_>le(8NZAd~3I~q+&1;9@FUk z$m)^6Ii-W3L%I{~jbpVLO+%dIB`PX)9FR zOp;?Ve^n~VBc@mA5LJqcA={G6vBr>65A1o`$O~&eZEQ815};>_*GQ?YGa3bJQjRt8 zRc_MNX)gsAgV#d=O!Fn?ZH4xPOsE4#pSJHVG+;*ywNx2opJ29LtMYq00z@eZK0RJ} zY-3%>!)FCpbnl4EZu%p|TV(dRJ_rW5ybla?`#nno*sN3UOR3iie2(TpHaXd49R+$< z&SJEq*pr<|>WnMwl2?n!it`~BafcU&fz#ZmwOXhX0 zB)#IhYE$t^`pF#F-dI7nK_zF>z$ns;)k}EX%gw3^TFY?f&(C!ulr!6OnEXyv9~nGJ zoH?|W=*#cE*MC)vJUvaGew}H!HYybfjTBf(i`Q}r{OLuj_s$<~D+2|{CySw7E$(d; zL+>f3Ja|Hnxs>?Y4jF%MEIE}~tWc%iE}LT4`vCh%%%Q13ZJSd8grRQ2W4Iwn3IRcu zw}bTx2z@C$@q<(Yg7+#U#hk19P#tvnR#^jX`Oh*2X={-5)UTt)D1KH_NhTYl?O!|) zFwJ@X?D-Y}ku9QZhnzCDHki6w%0Z27o5TSyQuJKlmh+8V|>CY6;RmN65jmSJ2#+#8S0>diqIr3)OI3z_K z-J)glSbBS43N8ORdTx%?=XK6=goGHbA)yTtm+D!8g-ahAp(b`^7_!bvtxh=lh=F6%cF=+a!A` zX~7B$V`l&c$Rvd%qFYlQJs~mF<+6?#ltU=d??$c{5Z8OuAex!MQD=)90;9;^o1@hr zQb@K(>%Xg7YNFMcWm2OwlF;K6aelt5r<1HRG=L@_`%T6gAUdd(+Rt{hP3+Esg-(4U zw)~YNgxFp`QJl6CHoG#GU1J7soE($gn+V=EO8KRL({E>`ME-)53l-ZmG=f@nW{zHEIn7W^s=mr>9vbHzWOx$C0DT!mpzKjyZtVq#~10r~w z*x|#VO5A~eYMbx5SD6J@4GAb=VZB0gLC_pPm32~jgoX*3c98K=j=-S9pr5A!%9Vf{I|>KzgMzLI$AiG{`Xk?Lvaq?hoZ|& z`cJ4&e8+|-S7&`Qk%l&u>tWVu)?-$j_pjIK`0ZaBgPWj2v^c%C8p}5P{lsu3cU)oV z{W3SD3lxy};Ttqu{907m;(}8BC~y%vvi-^ENq>Otn)KaWe-p-1K$M6-Qi|`m^g31O zl{cBTVjLMI#+l@5(Uu#|Hy(CUDs*DClfqIjY+Cj^bd;H2Ok!A#-(I8{E?gK5s#q&> zx^G$-01dTkUNCF5r@F(uZw#q93mg?( zsJ+wqVi)qbOjk6G?4&3*nkDTsDxY1Y2}A>*BpEA5`fVnt1VSFD9l4!_uq_uc$=ywi zQJub}*3tv;6S}X{b|#I}@Q40|7&Wt5zq?9l8h;Z+7~QhLWv8Nf3i4R2*O)JFk8{GO z(O?nV#|liSWfPn*W~4BG5&OH0@D7*($}v(&`GDNCA)Is#zJH;n-aK(6)n4y8PWmY< z_L!tzt7O4Sj9(qR8y9fS;#(4hxDJu=AzgFQcGQ({))J_QwXGv5{QDd|jLm8v znml)3-J>`^0LpjN*_b*%3nAs}I~0lKGbv*AcB{$mC~7HUeh3#X<&^$x)N8+jK`mh0 zqnkUw8qnT6e14O93&w-|1wWA>7eSMsKNji6;b6#>&0khgwRBUZg?gV){1a`113 z;qC~+x0rs!>;~BpY2TR6W4E|w!7D#^7RO(=<<;2xY&#Itdx*-MzjQE*TeDB&23jC8 z23Z35|c_F^aH+pD zXvIUO_x(A76&@;%0ncb69hv{bWhS3-Kq@c}<`HoZ>0JbYbG}o|_HqjS1#oLC27;@l z!-uV8qP45LBlOn6bcx|TmOhv|Bqq&2CF8nb*uI}%0CQJZORnf}b2{oN0~{ z9@Sdvn~2<<*qt9Wm^{`Hom%nLrt@x5dKA5rEE)=hM$5^IHp_m*K6ehrZ96k*PRq?? zhy4`i@rHfZ{ib{N=VL#YkLbZC=-=Y64;oj^NbZy`wa>-|)m!`!RX7**&%0;i^s{K` zu1w@{=YSN1S#qrj_u8DlH8I*5?>Q=MjcL>NrHF`sj?<;eEm;;$u$DPn&dT48J5beM%Ak4^9jN6ut}N5l{_cyEO))I%@xa$fP{?8 z^%`535P(uE7Auq@$1P{&eTzA82M7YmDUy@scCK%>6=1~?!<;KD$rYP3A{QDT*%$5D z*Dc-pCPS6hm0ayt*W&&jYz$dK6R-hefqkxB!lYXj7WNSPI1saEw%FFGp;R8W^@9U{ z;ZNywp3$7tk}^n{!d-Efz8IXdVwsf^IBn$I;g#lCFK*dXI1L+Gm=qyMNjB*-yx!#$vYl70=> z85ruf6$hUzlv7q=N-oV!|2q|{5IOX@%(&88t+VrmzH?ffaXDdE>sX!iaE@JyzG&xD)x83sp=x+3IBMP08)cfnXB)I-TcB%t zwYVBZXmSA-rnmBqIuf@4(Fc zP?p5+kJT?}xfk6D-d3Jj9yf8Ty+&67{oc-2)MsDq=nwHUdwZ zAO_nov=#wT=qBEE^v75?7QGdoK6Shmot|K&WE_ zP9w>jPq(5^NJ&oJUU6k=)4M>v(xA>3?9)dOuGiI-Z=ybsM#))o>Rqhmc5kxWW-th! z8x?i|=krBZ&wnT(a6;=NCI?I6jlw0X)@I-eaNA4OxGG5&O>=wh!kF2C@IK({Dl(`3 zk}Z{5P!E(!3}lt6UYtj!_Gg2Tm3ZkxIi9;eE!KN2-$D5jJ$LzX4xQ+kx;DIud(g3uuo`O0+K)2^Ry)U*qA_#kv z@_~eL6@18jgZ`xE{9Bn&b&A1I5R+I*Epq^^UvY{ZQAqf#NwxBMFsCf3$yI_Cd#AF}b%{N5?bt)X9h)$D4yzN|Xi+QY) zd9#CT*@EW5pNs#oH+w6Zq$E<1a#Cjjq4!=QfZrD7Wr0pqliFOat84dk+VVxr z819=Bli!@(i9x$;giZs|s;<*0-8WaD3Gi8r#9JRo@eXUu?Z7#-nslKy*b{{-w_=88 zzSq}3$-nbd|9&z2JXzZrQ|nqeSlCfJF;Lq%S~-|n z8dCp9s^=feE872LTV?F5^$qRqt?mAMP^7%3&)kN9Zge?R28xHA^0x=dLufs&b z%pD49IZ0*!1bgDCjWl?jz1~^yD|XsUFM{^tmsf&q6CvS1ijLj;q(?jR{p99E*7uhy zuns~x>%_hlvMPnaXnXOgCm;-i>cWjoKR%#1FgRq>;@iRSmTabXL)0r6cOwBzn-cW} zs3{n!8(s*dv5E6XPJawb1+9UW>m1C-3nRZ>p-WE;nf#yrf^(3(+3Uu@wPQeoRdz6?5w7PXlrHz$0H$IkpRYJ*`}vL86wkUH%%myD)A>Kj0i2KfcKw1Q`* ze$#C7o#jBgo^oJTNS;jPd4NIyf(u>5M~*tmt?UYIjfKvj09-kdRS(1MA9JECy-eM& zZN`+ENAqb03!O+^P6f?$kXnVOQG4}A|CMX7_G96!PiM*{U_jIfHCRx^B#tnFftcN$%e6D3tIDQAB75gkkf z1LDw3d{Jzf&)-f@FW2R&Z3&9hI@i5gn##^dlYgHW-iPJgLSf z47_J->fp|xIP+t%N=o$}NBF6a?`8R)u3=Ig%tK*u zk()R*l{wWFOc&Mwa_kpe9|3M%*zX0@yd2!WyokMLG-z?LqY@c}6l!IZmEz@4CXnx&8sm<3rOx*hRx#tM=+jPjn32bArX17uw;ozMd-bll8dJ9ONE;-T zf^_|RbZ@xSw)d?bSrVRI8fgXB0FmjM3Q(l8^$U_-Rd$wyJ0bs^>*)T^jr38x2{@iMNRzTca2O z{fd0|Npx+Y)yTQTrXG>$X{t zu&&jK<3^GA=+5mXksVgYB{L3YmA><6~N6ZQ!&bwLWFwek(39w_V#oyXA*u%-Y+Eb*70OyT1`ig)H=o`xD=o2I` z&R{XRRIV=h7oUbrD)~!0SKuR>f(r6&=9<*;f~rL@shrEkC(>GJG=?Bc2hr}%+3;yO z(Da5Js9;6~#UIlpE=_2R8<+#j7tvPknv_s3cG4nh;}6vNsL;TwVuS=EDd*28U4ZL% z)~o5?P61co!&{$ZF2hO-#_wLq@H?}>S-`GRi~nKcFW;-xA&Ctc#LaA`Pq2`Fd>Ggp zl@WHQK!OQc3fcn`8D?lSI+_tYn(^sP5&4TIX5d2eD#caO!HEWHr3H5)J7?~J62GJ` zGU(tHshg`n7ZIC#fETa*7aZ`9fGrderNwd$TT+-)gMfSgt%`!F2a$p)%;0`4OG+A1 zuUZhZ@{j`Iu33?Moso7Hsm<<6Gg#;~!h9_3=0d+dZ&hqEz(R0yuU zGEkDOyi@IZ$r7j)5vt@a(3xq5VcUZZB7{hQpQzz<7>UhBEndP!m?O`YM(oV*CIq`$ zpnYaABFVB^jE;33y{!Wd9`_Jk~iC`+?S%{s#A#RQn8;HAU=t}ZiFj7SLt^Ng59mu60cGqrReUUgGpnl8Au3&&-Ri;uGX^b0 z3Z?T5|I`~#6`a6Npj$K*TWPGVIen5`g)`ly@qHpVOFUp;N{9w1YMa#w8byNXosh*R zM+Ti1?U1>z0u`r8c0sGdQx_a+;PY#XIxUm!F$7fzQ@KACOD^Bry|SU(DEHG(Vq@G2 zr0@`B34?T5r3sT9(u)=7pR>uKM;9mP?={243H+n)HrZowy21Ui)7aWDldZ1MMzlmR z?o*MTSWz5Jf+5C30jZcf)Xw+?JOA`8F#3J^Rt|uLb$Zc6w3L)QS%kRYM$`@lBHWx8 z+@1bQ%)W&q!=&U@9($|H- zA7KY@(LtVIF3TvO$`$Bf1jdp+xNi&@%2HBHwVKF@u#SbTd0;Oc|8IR=5PA!PgC4$ESqctD>AeE5^uL_MN1`^p8LCC#cGzWMWOT@Na z!FLL-5-6zsAO&14V}n)&_yAmZfs-&&4DRTamRx{QkT_6YF7cOe8p&At_5kdxi7Jck z)phC=rYWZ>wXonpAF6$Rz#Zt9ncYaiUBh!VMbQ2Y!7F6$Jz45hhR2D=K7kA5sU#Av zU@V%0LY)$DPzW7BA2^K-6|~Rj1@W_(b~}OO*Xvt73MBF7aab z6RS+_KAgo@{RiGm?y2mVQ#dz;W9d6jbZ@a^>HAOg=hF|guL`N=nM$@zp=Q12{QKjV z`;bkv32F#}HXrw!BhD4L(+?moo@44eEsF?;pWO5V`nB<0CL|aM=(NO(pO|P@ByP6i z*h^DR*R5s5E`T3T10eGXOZ=d+RRW=&ccg08_t1Of(IM-03aLp#3vih9`*SL zsQ!-%vd_lNJ8kxXl-WI|J%38$$zO~!GtcIonT1uyumH%`Dbl_0D#`_!fwD4v{sE<` z<2ps2*-e`HwWl8~RXu|PsSe`|YP6zOJbVh)zk{EVgvPrU5s_42uPBjO)?fh@CNDORrZl(9!jCwmN} z6JuCm5k;?J!Utz&_cZs+Yw!ntk!Ya3j=BU7HIs+hKF;|EL4Pnvrg!i3`Gb`k%=|z^Y}(v$IVF6kgO{)N!fWye`GR>XDLqJ-gl zNv^5Nk!e*ZWU+zr-%|+U0lL)RY~PYgug;|7-v$Bkse;9vncsue<{k6+;UmwYbhc_fV~BbA*M?v zMy* zD#&5n^d%ZWjf6q3Z+T0ZTh>%$1{0Xz0US4z;3}!rO}E;DrzY$OoO z>WW9+qVgSq;4RIpJ;l-pP;}6hjCJaYVu0?*s2u$m<(fwF{C!4M&^KG_)p76|T}p`I zL4yo{CMSVJH%3*=EyPK-FhxdE13Y@<;pSMn(&*x5_yC}zBx_mBAdBq5F$qy_+WPc# z_K>FNixR>*3?I)D%PBJ>C8i7V1wx99_1fqnYv7;}Abi?GDlvVEG`AYs zEM3=bmzEr?{JN4}EyR1lX6!@GJNW(a%IW9L9W zo>FRlS5r#fNnVY<+ZYR(T$aBq6P%l?66;#X6GiP&z>+}V&L^URETYoZU2_sY7Oz6A zzjh(7FD>Z{sB@kG`-l0{dHPH$tMU-ggk^SaGhQI0{&9c+PT477zlY~ZwHZ)HMsy7= zLXc3OI6@}Q)5=slpgEXef|5Fm&_Y!-Z zR#~j;85x?EA<$_iQow+i`m(?oe!l%ifzQyTi}hS}_!_xQvC%r-{ZL@FZqJp%q+T+W^50dax zVFNb7oTma8IY%rSHucCqO5Je@kkV8>8$?7%g^p{!I}_XHWxM>V*jQbUb}yl4rftkj z6!*mM;FdoRdk$Ij$*_8!aLa}92<0`RP3`|?8n#W|KOTu35)oYb_4dgy`8U-qq-^lVflHqLF;w_U_0 z|D(Xe<+t6salY63Mdfh)Ja#VCkM`IX>qQ zZN{3MVh;E+tbvO^szG!1Ei5c%?v2b7>W)h%km>Z5&FxB2x2hq}qp7ru_?BH_n+ADU zyp|=^!?@Bew#jXt*X_KLL?>Q{RyN6gs(5sk`NeM;SUQ%3jwe#+!o?5yGVgwn8UAFijQ4}~R@+7byo#`H$CF$4XE{D$m_F;ngb5lX&#^96i}mp7J~ zMCROQm>8b(s9BI~p*Yt5X;i}%XfX`b4ue%}itc$$QaSqT{{7|CCyR+eoeqsYG50$p zSCv0ftXW!oT%pR7n=uqm(Vg%wqURFD8*=!@b36MmK0gmq=!V`4bd$&gkwRNO`}^ zD!qb9rxYXFOoz{Q_=7kCgPb%AeNOGhZ7PK`;=l^UfQJ@kqv9={mm-l36>M3!q8dVq zW?lLeVt;d57RN1YCC?90c*4OrF#UNMY*b9Q)69n|k>&&igj*uM(jr3;??g>AjIIyY zGps{%##N=I`uD4$OCNi0dEUH0Q6mY*8?dnfk3B6Ob}x@2&A!|lkj95=%AWGCG4Wqx z)u!a1&`4Y4G#5BB*qz|}pJ=e}5O@#TzoV9aC3^D&fB$*xuCS>A&+snv>$&{3AWoL< znOdfMmHa!8jE4>jI;*~qSNBAOh@sCH=K;7`TYbX|zjX;9miIdc&G|Tn9*Y7Q5Nv)N zF~iF};|RYSs~8Ra(+ZY^Lek&pmp-Jz2X?n|jauTq3$+q%?g6ZfZ7b?S7?Rw?<9r*_ z{gw&+JaiMPV`22n+wV0Qu}_D^U!6d_yn|*y1($PjB5KiXWSjyQE{!VJVZYmi$_kqg z6qHa@5*J;-7^G!3smdC`r`4(ve(`0%tnjc;S#vDATYfgwTHhpf^#;EKZ)edyVOFG^ zpniO?On3nlp&~NON*N&v5k8Po6?$6agY1%hUK9k&GK9)9^8m4*QW!E33!1j7o>T~! zK9q%l9OvxBakb0ouO$Q{LZaSZ=5v>gT=BAf#*=xK@q8L9esJg@0}izVF0})?5EoSt zzyBq&A(8)7Vr^Ee%gAxHv15pq9Y0sFQ?UH|1z>?rioB{E>QHD(zCsn^F09Tuf#yfu z)66V-$h}+#;>MO330xvB_RMCRZUeSZzAS#PcE~Fo8jb5~wPjA~+_n?om{OQQ)(XI@ z2PwHLW)M`n(1&fdFMlGJm4nCzBgcrB+X);U<6>J_SVw+pEkp8@eN)iQ&q=5NhVu!+ zF#(z(7mSMk9T*F|c#ga%+kuprD1Qo;R+8Xg;l;Mm3wXev**d&xa4-`0`nBd2c9F;E zMN#aI(imozSGNVhL7VS4c0pbDj1`x5!D<-TspRsAni^U~i>8emf!}VLn5M%_84p%P z?mIXAxHe}$`8Z(dYJYg2oz#y5h_I*WIJ7C-#)DBE>Q9);HHr~SFs!d5hH2iRww&oz zjo%ItcUjV0B0-CnwdIi3WRebIBEB^z-E=sX#x5OGS!4$dg>*yz3UF1_e&3eU*=#&s z(XirQsk%j1b!SnJQXAnhTa1MJCKdU<)xwM*w`PJVqb*o`OQ6&(zobk3K=m{$ z>;jH;VCIJS9!u=X_L*XA!@7JUmo*CZWKX?(H?J}5uc1vBUYtC!U!UM?A)KP-mzj-- z<@5)uKG3hVcO?^dJDu{4$hwF(fJQPW<0&uh71RXYr9jb7Db&sU54I_q@3HKbpU*Sh zkxQIDs5^CfJJl#7@aOOFFP=1P+Q9;Uw5=?_7QK^JkUvXPPV;P)B%d^a7BqH`9W2IPs7p|%CPG8jXxs_O;d>%x>_o3A zS|N_pHWkxUS&iYFMCbOse84RqjYFipuI{9rz4R+oV|wRxD{T@@gm6Pu5=z2yZAftO zTvAx&wtB!(?i?zOJoz4@1~_2+I%^h74oq@@kUT9gyfC;@Y_vMHor}$15Lyd$h~c71 zuQmzg*f$yGbz8TZR|7eT^K4z?+0{oc#1tYmj0RX_F+g+#9^SuAugMaF_b~G#*0UxW z)+-ztWe*|CTp4~njfZ}%&VHVYo_hYm_(w{^X;gq(L;gV$u>D&(1k1k)I?{S(hWZYI zwvM_MrVg(B)|NK9cDfGMcK?|_&y?Gio|i%Vx>~DLKmBEU&m59x0a|O@ON@+{YGQQ6 zfQB2}ysp;F-j3X!G|)YQq7?#0koF?Bhhxa`+++sOFM#7V)mnV)vF$w7x$W)o3Y_EH z1_lU0WTh{g#twXyHd8BuS8uR`&0o8Dd1>LOz7BbwNprT&5%M|0rP7>F5HdJYFRXX5 zR-KW1JhYAje--|sPmXzcA2O`l&?{pS#xsx(spe^z%xfKJ%^8#$1=?XnXV+m8%+6(a z#Fjh$sfi8dIu+-}0jn=ZyR*-`rc&t~^x^Z<5Aud~IV6@o!*5K&JN0Qm@~n5&CpT*RH*dYc2D_u>|+FY(@lrlC*7qVfyPmo}-+Wt)Xi!;Ns5g zF&w|pYo>IdoS@9%8&Y$u>|?&X2O!rFLEDohP?zj86pg5x0UIlFigy=QyfDA~dMRB{ z*l+AxFxZDbDIpIvyOn*1^Y^I8ttvRcOpH9VP2-~|ix6L=KrKA}cJ3EYg#6p#3@!Kt znx(oJotIT;_H#lZJclxUpy7&D3QPqxDzZv0Q6Uh_bP-ts&5XHgv9~29bIBzZZp-ltS*(23$;ju+Btd=E9TU8|MFif#6ptMnaHLvW*|6Vmjhl$B-(wH9>9b&vw2k5y> z0fjkkIy={=AEZk=`%s+CQ!SC5t<=d;8!u(XUmh27syo?enHYQh_S058)m>4@pKlFu zc0xxYb|9}7RH%2Zx8Rg{AVimkeLt8cc(emLQIf`!JWQ|G_#yPjTu-WQQ@f&>P2AL<%iu|~2sj?i|>1wYZmEfsec}J>6b$hhl1q-2@oFQPs8o-*9$;&_H zzG#>n?bLpV@~{Sew&F1>tMXDI(dYP6gW8*l0&Y52!e$ONX*N;LEWWCoX`qi-%da^4 zgsY*fQDVSZ^KZlVfDgB({`sdw#Wio1NlVcz*ceqJd+~x|!Y(hPA$OKq-8g;w_2-5h zxu}aB$=6(qK){GEnPiihz_(MWxYaCVc8NEa)-}vi@XL?RRnt(8+F(SCExvu8pc=wc zX}q|2Zz(GcQIyx9US0yUKdkh(^+Jijlb~9?5)Zd>JJjPTGD0H4!o#7Ak)6S5GDCB` z3a-boguJgc7rWEUz$-^2;$qrSa!7AO+jdZw%y9y+OT-bL2>o=2aqe+SwHUkwj{@$y zp?`wzpMMTOBM%L{k@??vb$j#ubp&|@5b+QV7jV<%jE55UmD`z42P=R$qL#s-`PRYGJf_V^_=tCq z#UYih`SQ*^rkTWucgo`t%gClRG(ULfHC*=L^2VG>$I2W5=ge7ts0&-zuy^>nsi{*0 zq{NU|q=)Tx9NSL9=V8tWCsb5hZs&K>Gb(<6?jgTgnty1kWOP)$9zT~#-fJLnALhB> zFwyxS@kKHd;NE53H9jkAD^lG3cJdMZ-VO!3Nx*q5UF zf|@;34N`=iNMhg^ZEa8pdd@=@;o*`02c~1M5-#4<@;pNU3-k*`o#>I7u#*c_KLh0q z_h6vo7VjU`69S1#b{7-~=<(Z@{eR0A|NX{>_&-)pSv|A=>d8@xTHkKl7~k9b1gY5t zZ$68>S`^C@V}*8gXlSV)R^*6QFoGQ8zAC@nvCWSbSdRL1^PfF3*gJab?CRxPP|HB2pwJdl{ENco65Rq$q| zvAE(<5!0|vB;8$o2}S&Fy95Vnyty#Yq!jW*kyqhWPyR$?zaGP9uF~YZmuIS61(<-| zPCO|R=t2V5b`afeNb(2}jjY@L=pAj;_Ad9TnH9&r^(@}Cw{*JV6b=_=MD47FAs+yAXi8lWXJChoEL60|l-Z+(f4kc>ssIN;=SEDi z7KL>plBKT*I1|)YU=uAD<2Feir98aIiJeBc{o?!j33Y-0#d<%n6CP(EFZRJ#^EE zb)zuUDpAJt3qHvCY5fkcJoAcgqk>w@)xUb* z3)fgN2R0(z2OdZ{{*uPvub8UcjNYckWaD-H_{YuvhM!;=@PN7X~OAZc~Le~RaFK3m5!8PmsX5q<;aj^GwTxn9r(@ThKVhAt8~P(kGMf^Faguv|gu$Hm?U zi$q-H)%p4Zs5?OweqH7uvo1F{8JNWs|Al?Jombk#u1_%OJb+UOp%?!45XAH$cS9KF zING!c*nKG1I_9(Q&LG(-?!ddy29Ast=Id1{|IZ}UJIR70t~@7*f574+x0${ATSjO5 z-{#?e*DU>K`KY3igQL8e$-gjAsS4woap2?~Lvog~&&$fm8W%`LOc0H;vfn!)4m4!v z&u@qCOhXEqKO9a(D0!HY80g`LB0)YqYsKV98Bm)(BZoyMAqZYj*saTVrJ=EiO=+Qb zp}go!$+Z3V=!-us@b!GHeX7S*L7ZZ@@vD9`*)nH=l5~ zxKrLB^kfJcvv|UFGy$rOrB;MgypqK!7{Fo}j#q9}MlkoTN;LPON(?M0eUmR}Y|5yR zp*DJ@h^uY9|JDBccJSbXF>u z>Foek&2kut*WIX;WvqdHF1EhIzDZ^BCjhG1#%ybPZDFG=uid3@(ALAo>MGpZ>!b0Q7v(9Dja)V1v@p6?vT@Y~a@DF>hhs9@d-cAhKQe=i zM^HtJHr&d`y;471G|FN;NdxyrR85?9J;qO?EmiCqcNCf8mr-hWIVNS=2+`cy89Db7 zSy(gcUNg*U0v9?w)asL@jCVn55B*#@R@ZSPO<4LDDy*#u?6kmMzGI!pa2l*tNRc)g zX&6k$2-@J*0h%|{7asYwJ%G$A`h87%?9l!MA)CRSsmDxRjp_J>-Wc~x|V zg#@rd<)5xUV(ixKgp~r9OsULeTNp~U4%BQu9?MOk288LWp`=T7%bjY+ClzxBB?hGd z1|?Uf1(v4k0L$t+=ihVT>+B?&oC;bi$I>AtX86i$KM7Q2(>yFpTwDd+VBHvA0Bpem zR;7M^inG!wFWgkpRN}#zQ}I1mdc$DB4On%fu`GhhFqa=XZij(n&tEs0U6e_Uf9QX! zq`p+F76g($?$R7C#Es9GtHoI~bfzu`1%{!3OKDa{1$iTzT^KctnAd9@J?c)!Ix8#= ztM?EXp%$!4HLXgur!XHZSkGo|CZ^zOa>}Cz7%9!*!CJ$yd#@C6{}Ab-GI+%VK)76E zNCiCV=gEV?WD#RpI=+T! zlyXDGZdL6Ku3#)wSVW$00t2)PL0raaO+?88H)qRs2DS@2m$C>N6|SRWl^)caema&` z`j;Bk7;Xr!)v=+JgmX|PRgJUjWhv8X8SEm5mzd?B-IrN%@pGlyms)O@p1aZ&O18nR zn2wUJSdOBd=q)n3S*(mQF*swS*|%CEgUTposCljuj)0}<`h(GkB|;FLbX3bL*T{yE zM(X#uYq6uBN2*Fkrr8JG*XhPc2aeAdX_EhJJBa7H!yF3J$GSgE z3o>=l&vZ^nW#OEE)?q2sajpZTcA#q+jnarGo}9MiZxh_kHOTfVVA6vh<|x7|>6@n| zCT`y+NanQ}O(&MyrHoj}tR_ZQEVPW(wWQTyyVOoXp(zq{%-9jl`#1k5AFDUK*lB>O{QlF*hI|v}lmf6u3l)uI{_;9%Ln4zHR*|4+({X`{B^b?|MI$$vi-Fuy+pEOV@Xd*85f#oj z&R*SG9F>yICx)W5REd07IJ(K_g~;TjC-rMXT;PgWqf;m_Dc%NB0XO{cn{pK z>Z;g&jmPpPEKb%{VC7Izbh6BY*OVogl%c_hkP(;3O!G#6$<_dd`i-4vOn}Z&tmU~L zVir_U7KbWR1Ti92vs>W2CL3K8{}Q;`L0aB*wE{(0m%%~B&XXds0_^bI1?w9IV2kl*YQ3YoS;{1X5=%u@Use00usS84r5*y2e#tpjht*rlKp_aA&W+mjBA|&fqpe8#Y8^awa0jqOdbcO&> z+IyI{gBN06d`M@-JJ41tQR4hMJd9ihx15iK;}&8oSn`+{2epNWl(&jWgnWqD6l`u1 z4R{W*l`C;h=BCeB<$_dD;!#p^p0CI=7EHw}%d$eA_(cF6jfg41)Nu|}dD`n_*=6;1 zFR$)MO}Z`cS{3m57qWO)e_R;jK{W)CqZahcj)g^+q-{ESB6Gt(>bQs0(&)+S{UzA1UBc7%GGakTzqL<0ufvy0sH=;`ukhS{z2BzkSk;u z-h;{JlQ);vH?Ql?sI&fvvw;w7BSP!=(iS!2J+!nK4U#~w*}%1Zz&g#*HoRJN%$|F8 zNsq|Pk}Zf)8wz#HPgXl^54@fUp?S3TU(K@36z6;QCm6ireTtaRC4OtZ`Kg4W^i$mz zdxKK@TTBkCZ`VpY25wxNz<4AF^dk;!%S5*b2GR(2Zt5*NE2j{8OowzX{fmv^8tVgD zE^~`dxzT8HTE!e5R)4z}u-3)31{TL)%H%{VC5R((nrDpsk#o!1xt2!> zTA$Ljiz$bfY_nHg-Gy&qudNs&5j{_1jM0^oY;15X7{LE(TdfZrc#Hd0xV{44hj#VH zcPZHi{-D|QM|KLGMdA;MSajTLl)xMdm?tn#;hiIn-l^JwHiSIk(1rsUUAKr7WM*3Z zQN4;|sO5kF)slX;mwUxGMV zBSuU|k`^r~!M2dLX%pO&`N6%D7wt@8{CSEq=RNsMPs|z6e+MhY!~f`8zrhE2B>>;h zp;tqoN5Lg1!6muw%r2XLr}4# z&vLLCU~cY8$}^IkQP+O%xLr6;-h!SJER&8&>eE~QLgqz2<$~9d$W6fel=f~8cVN?` z@{!2F%FEh~a*ug?H)4zy_u<&75k-Bkc? zy-r?k+8k1HvSH6d{R9+nrU1Y|nCk`S$&sOq9u$OC3>hL4#`Wn_GC9g$FWq@#m!h1o zT{Amy2GOB2^`yUErb|;ynY5qOcE#(_Yg<+6d=v(WS<9leLmCgii_y>X0}yaz2q(6@>xrr#df z>Fql{HscD7P>=MD>l+BHci|OSMTmh>Rx=l~UH!uHE>A^yG;q&-6?O$#V6Q-E zX*`3$gkp4O8^aJk;w*@}l8 zG0$DlgxXHkPZGY>CKlA5Dq!ED`2b6AV>z}HPIPPpj=%Te4wqZDZ&w&h5_BH2g)7R! zS%*ob@Q+i6KwwcIv~uTFctEWOR;rS-49J|(6B9wpMK)=mIj8Cb z;Ya=pMHh?{o_?ucHP$m$-+|Y7`fguo!iE!`ZlT{1oTt~iM{3JxH_X)zlg@H?L|=nV z6b|3OGiP_Vd{)b-IX7T2I~){C!<*s(iSc}FJaE$K8Lwo%-1(~U>z}!egM!doc!)qi zWd#2xi~R39IMV+}MJd{w+5XS7$tXoRhczL@&&ha_H6^hG(xQe2`a)|%_EJ+Z7&Fc0 zXz>yP`f;|owCUn{N+hr~hVb>YURu8$Ozm4BSU*@sy6aJpu28*Y?$&HlJ25=R)sKee zH?Q{Mx3euBABY-XcW|^#38FBK4yxpkherbjqB!ihSQL2-zGHzA*K~|z48I&B&z&~#NoOS8b+3mskb^Qsv^;0 z8c%@@sPy(9BlxQ~0)8v?u+mR?N+9^t>GPd1mH|Rn7}k6fwO?LfQvqH9IbK~P9@GrFd8B#D8|s`h+TeyJN8n zsbj7>2&x3zg^qvL-mDV=8%6H$Yyr(Tg#W=t9zi%hoge%W#YYyOZ0_OBC!ZVI3LH0- z7}qrc$Y%5oXe^{p8BCr8U}=aS&am|_KM6tyL+dDz>@_e3#H&Q(t1JlZwN5Ieyj*<# zlUh6?9_CK?rWHm1qsPU6rWTbP%`6@M=V5M;g2q4mIX{EZnzYb0a`|rrTA>Qj(NJiG z_Fx43&2E4zW}5Xl{rrrYSF+^4!o$KuqP&=h{lgH_hcmkRA@IByM7Zi>$@C2qvKSo> zGp;<3GSjAbw|szXF&V{)?ZgrCNdb{*!+IS!Geeze!{6&6(_BMce}dY9jh{;{EEsKL zXPyyjG*8MG9+YRja;%tuzgvmg6E+NvIQXs#D+q+>z#P`%GG%M9`K^0LF*`%$us3R5 zq!{u>Ct(AFhvAUPFX5C8KwCT3Nf7eY2w8TGq=F)|depAjkj7fL!Twx*M!c$xt;Orz zo9Rsf!NvPUHLOO*%TGy;eR1UR=tR6x>^P}EH@fi%(YZ+cbLCY2uskjQbRzMJiFTwR zzqC|z<(Aj&jvi$eZ&ba-_9HqhTr?7)CuPDuU^rs0!jrIRB%DvzVWcyXqpVV80~-_g zEv+GzH`Uz`RNf+ziB`1-F8KAeKnI(hN-X%wI&!Oy?|Kn>mWv9@Eh_7Mm)o&|{9Jl2 zMYGT$6Z9m=5j*lxUs~Fg2`i4NY($n%ruZc~FEJrR>f+K7F5Z?)sx{K&sE!VWFX=Rk z`>G(OFw}0!B6ybixDUgr`?3qadV7Vq7VW#ino)9A+ zqQHs@nn#GUn{m}kdKf*>OZYftI3B0h0%ayV@F9MgYQ-UN`XvdTL_0Uf|I1fzTYrJi z=RDf)+$A2Xk1uf-|HgN*52Y)`n3NK-56?--?mD|HhF2d$;=kfic6s z81kV1vYDNu-l(H#f>bUbQ>I9k{~ny^v5*Dv34lF;Ebgt^aMt{cQqHB|L3e0yf!v`$$4Y5H^#dfG?b&{7~{-O0R4ap?ic z(%HOzIc4<3=>EaF!xdsW6^+ejgzMW*GN!t%p{kD9Qu!b?w5UILT6sM(77T@HPdGkjXnzdnwOo?U+i@yG%(3rQA z!9~b$fHnB)`+3#2d$~xl6=pOzSCN`Z|D6J&fv}oKnOv}FGoWtFjQP-U+|Er>F3{*7 z3^g?P%X&pDe=9i1fyGi$YQ2d*hEvFNkERSZh|z;&pcvYFeVbDv5H|noGK9e6{RAU8 zS^~S0?)Wj=;2oCW9-u|DAdh$&H|MuATbk2NW|qO;B)k_MST-W|xY>CxkT36@yFaGF zRD$BAj~_R2>IS@TX4ob$HVEVue}}SBypEqkE_3CVMCl=x$lJFZ<%d~E{^N&DTvW^n zTL3?-;8$J5@Hco#9pgRo-l5K4PF?Jw4DiIWF7vDHufb0mM|;MbwSJ^y@Mm|sX-571 zsgo#(x8l<9mVK)=%DaulGl+hqzYx?H;p7;`hC!pi<==1fhaM35UA{0t80`*zkI;we zG}B9S<#za!=w`e&{E7eu2}pmb3VP(MHa zlB%&F{s3MC1qEHVL?a62M~2m>K!VLnB08vXUWOg%HD0@q`dqQBGbGx1HaVQ&?0owB)aCPdqJqZ_tD8pw zuMh8x{p^Z}dyX5z{TxV@lQ<+ZavMwKF|;%H97%-$aieyQymAzN{X*!O2l*DD8VUm5 ziP10QInqtU59m#Sy9bkt_Ev)*wHHek6?Wl6!DGC3MNHDSWede*BOFsPbR!I{-nFoQ zD)Fnvc4Y`{Wy9*H=Q7&H<`>%EG4oU)-eS1Ez}H{K>36x_uzSYs#Op`67F6>#+#Z6K zg=Ai7O0ou|r$r{oK~jk?LlyJ)V3(>_Z(9Hw)u55nk((A~H(CcIs+pUK$;mCG2PXF2 z8M9)KDyEMdiH{AG9Vj-m4OXQYwC3tdNH?rF!=%fL7~{g0DjbkT0NhH=g-A^TS_N(y zD+Y^>3Yv5Ks%CTIg=bo7vkhw&i)<%>8`?U|@zgTdx%hV}-Uj1bvH;#I4;6X`j} zjrc~VK7p#ux`}Yk2e=?tTkhz%$Oxhgkv5$CN{MTq1ph5S@kADM0(6T!T~kYc?6Z_m zk?jdt>F^r82>j|s7B%_Wr8KFyOCCyDsAS=-WNN@Z(KdSrF?9yIjKJj@V5lI>Dpy!f zfAtjbpgI;mGM1oRY{Y3fb-JU;S`;t-Dp7F$`lEJ95&=b#RE^uXE(5HRtb}eEPJ3d0 zml6HLQGo`jbAGgcf~LGN;BWQ`!yc@wwIOi=Hp~+9{;xo z>+gXIn}2?nyb(pDDm+F`pU2&ZvMX<`^>}98)>$ zcqZ?BmCl)wCvQkKcE-j&}#GQ)wRyNS)fA6~a zQwGAwmD4#Tf{b+23O=J|L+va*OF?!G)YrY!1a9pifPZ52I=J!#^6t1@w=Izaji z@q#O0t<0W3$~^_OycJV@LGNrm$M}5(UqgQm#ks!XAD|Cm@~|CJA&L&cz4Hbl_ugQ_ zp<%IM_Lj4u_9D@zvdybejsqat$M7R0$Pw1)3pz$k$b2B%74ZvTl?rShF$wn%b{5mx ze-90wuA|^2!dp)(R=>e95OpQZom|oknPVF($2ViP%!qpH*;>1#rlDDce&~V@4F48={q~AIcM~~4-YR9#pLGEmc9g$o}3+{vzPKq-{$R$jP47F{)RjF#emH6 zLQNYOM-IMj^WzX}2D^n}_Ss!_6o&uEGYeyc*HlQEn|O><584AV<`4DN`zv2^+7A2+ z5U<^87Q9wb67-B%9*9vQ+Z;6I*_B7yQzX*LJQ<#PpO38~u+>8YwS5LWX(*$|QNgLP{ zZRXKNht+>#0mR^L2GkqOoWOvw=6G6p$e#CZ9w>RpaA(ALg2Pt93Duz#3Nc5u7$ePb z@eGCXPm7jf_giX)8D|ass1S&lG~lO+p{U@YMwoFoV2MF;l_4DFQXH^T?wL4{8b6?@ z7(u)FDG}J8>LPxR@s9fTr(8b-yQ8twe(Rn)6^rtTy5cV6L-glz;XDlerZi*%e#=Po9a;9r9lC6pXjzI*5fd@d3pzhpE*&Ib-4C|frbEIB?^t9kx zR3dqn5T++pusdq7pOl1@dr)?GEvAY|xgAk8t~O=pmJ9y3=feQ*TU9%WI?9 zb;jDY4}WV`;9shpOPxtTyc1p^saLkTeQt6qp zL@F>rVk}oJ2Z6_jQ@j7DS28m@u>)O~ckZ1`wkIco+7f9{#}PW220)qHVH2qJNf_fN z!P(?W+Jss-siDlSS`9jt3y~hEvipW%vsH|$gVUMyy?X36&>$CS=KulLOLe)0r9{VAZyz3TNNf;e^q_M%Bv$i9 zX=I$g+Ce!fbVm3+8vSeMXnK*qx#&9|qBvDxi=?+%YW;+GD+uvWt@Uu)%rMgu_G#Y68Mg*w^#u^0 z5OS&zXeMd{O3Uj&ede{9Y=8N2^wbiFKL_wF5gz{GBsZ}`51?MkkI3y zG9DrF65LhoOAH_1_9y=6wU8B&x8=kJ{;wJbCV|tsi8%co+Tln?U+POkFD;;)TBw70UCIU?>rGI|NH^{y3$GMkk%-&Dn)-LdP)9>fs`a zx~k(I*4_%iOU8yCDBd5RJOU?6$xi4(T}@10#AXWc`ATv3nw|*@S zy~C*G&g$dxo8=$>+0+y8>RHt-x{PRk-2k7NI2BDyFdFz)0{%kp9F^&ho6i56W9e@v z_&*d_b^SPyrZ7N2FX;a#8~X2>TH62D=q_!eZ1xWaIetsWe^=uv{wvM|WDRW*475?6 z2UX4#rUH))p#+K_1(rNGzB9cL=hQrnWR9HR6WS-7)RUO!xr%qx)x^0Hw5j|??{YJX z`)QN$DLV^~x62#k8c~v^$WA50(vCd8VH39D2w6>ehk%(3;isnrza!#rn> zDf-@AvVS;mHPig6ToN7`@3f=kNIAdOGhVA9hKynVHFuhQZ_k*7y$vta4c-=w6k*tg zb9oO`>2n;zU#XYf+(L|^&&l+LpXV2La(BYqSoSVTIP}C#d!GEkog69$4issr6Ti<4 zV}EFC${Kbm$Yzp`@k=VdNa{!up|gGjJ#FTt_?>O@;IiG10XSR(?I1uf7L8|mP}$&L zr?0+mu4O-bl$C#P-{vleUYnLSr=_)2M@o4FnwC$FA$DO~M%wnD!k<&(dr|x#&pT5#_KaLAfKC z(HYTGQ*7UHy1V(H)tbRANT>si~Mks~> zI~w${R+29*PQg22wuN0lzoCZy8EQ_;LhiamtKZHR`+K3kIrI;0o;nQ2pPrOoX8Z0G zni|clR&d33B7JPhsGj9|V9devt-38uTMXuTw(pCcLv|VVI*c=m$8A+Ty)Mwo%$_lL zC|onwMA@^is2dH?tl{-o-n~=M-ZM49I;e@WSW}EiHcD4r?3Nl?V)-FI(>Vu95#Us)ghATda6vPAh4(fn;yF6YYqD| z0@DOFa*XPBKMc}Ppv8Y%d)$_+U}LY_FlbVzUX8ISth1t0O8V_V4b1qN-^gAXELMHaPTVM1oCM3K)3Rkr4>v?qOkUO3ao{E z1dT^_mIZ&ztfvoAuylObTYP_q0n#_5OGI>QJIi|jxw7{hxM?zyE)tH*mqqmf%<=+W zs$y7Z8@<`L4>G>X^|#TqLSV?`-YB(u0Aq*bLxH&WV~hSCeO6|3TgpTe*DoVYQcM*jBfyS3iUSDxA2N|_qtjoHX#ePL@8&j5Y2Tz&Amo4Q zZvRiK&j0o5&8!q{6wKWJ?dc~eSo|xoOXD>cj0y$sSpXMJ7EO+qA0QS0C0;tXNQ!~X zxDid)vcWuO2J(sQ13n}6Cv2wrlWZ^RWHmiD`Bl&5a`W5Xn%%_N=i~DgryCr%D7ISw zDMB@T&l>vY{+_BhfpI#0#h@K+^c!s0hJ0(C7R5Q8A*BQh1;3g%qVURmFM2q^-?KUO zYu9@6bl9^2J{-37rEL4vm|qLGjh2u{>?%@uXp=CO43XC2I;X#3|CRR^t_!8qOiF?ub3;m4*=72r!W_-ke? zqUkkG#}q^`mn>CEDZpGX_4jkH0jc)|hBA(xljc+-LeOD2C#yMMF;@cT65k%(q?j5$ zh*)MfRpg#*D4~Z$6BA2}XuO30{2^Ri^MH#_5MT=dM-uARFnfs$^deM_=Lz zJ2f@8i3Yj1zBG3f1bAIf&7)6_1Qxj=25Du{&beU4gsaLIJUls$V zGeV(?N^f!AKsIu|kX@mpO9*T|2ot^Nm%~4c`3OWulVd=-%_pGB*q#A z3K3g!P+;1)LXS3(?!-by01@)NaP(H#SEx;c2tMF(X=1`M(GQ(Q~18l@c$ zD^0xXoXT!dQp*DKZMbs4Xr=eyu#6B7p+Om5s3-sYut>!@Tcxig{~~!%^VjfE+imOg zzSWriT;i7|>xCN(_+TeNlTYxBOlZz3^#h9*$uN$EVRk&kgnr@&!(i+?$Ul%fr+=-d z`rWSt{$rld_X_*}elYPbAa6VeZ#}{gx zhuGsAF33Pk^ljalhCkg_U0K;KJl|$vZlNPbfKnR1s&B#Cu3Bz&QC{7+=AotYRwn%7 z)p@kp>cE%=Rolhe;&9n&^5WTb)Sh#F8ZyNrBjm8)n}d6xA=Nn{6K*q6DEjQ2aCNPa z{9#|*a2da7^5J@(G_>J1-}`p^O?9g9tpARg8VPwbx(1nbpPoXv>6>*Yj=?(^GQ8fq zU8Sv@lH5Y}Zj0^0_tF_J9C{Wv^AgAXB8Z_qy7BgwQ1)J(nz{x~KscOk_vT1~0PyS= zn|YQ;K8JI`kL{_s{TkV;zIC{D-P}jNHATZq($Y?}p&i*Xa{Ea4d~U1o0+6|p#B}v+ zB@UI>-8BO~o#B0kWFp-720dA0x`wLL-n|lhwu=uu%elNwZ)4sSr>fsxhTel4yb1d@ z6TvnaUW#wu>VJKe#I@~In2B!jQAvHcMU&xNla}OJapYYw|9IBs(<~i^cih=+E>j^8hX3k z(P?!g#hW@ncouZy_CpA#lddgQqa2rqlo_@@$a&ToEi_(vZL-5bdJ4?}0%?aj87EMcvnd=A|elKH$4+QM!CXSdx z?lpIEB1V820A4C*_}Y)|O03#FZp?&TxS9xYs}LGoz|x?xY2nXd=N|?HH=LyWHc0@j z*aBHQd>ypm)s)~qTIOBO5WQJW*t;{bEe_%a#H(uPkVEbHPMk+e!f(AdvNAO^hzLuS zrdHba;EQ8xSdk)2;Jr8-KlF`Xp(xWeu$QW%MTq1outOm@T?~vL7iC+TX(yT3KMEFy zqjfR%0{n0zX;xRU;hG>g{dXR>gI#mIAm$?P@7x7yAKQZIoS{S>#Ks@3tYWT4*$lMs zv0y}&o}3`gh*Fy=tDe>t(N8a@bJX+sci3!<8JY)!F7O-OTN;aCIet;8v^1*l5WCl? z$A!GiM)8{zIZ{h?fvN7E6Lqgk?K9mr4?2hJ`Dvvu{b&XD)W(7i*)^e)n&9h9nPFu0 zS9^$qr{>JFt!b?`(V$z!T3(FGmWzse?*fZ2z|*bBinFPlqyFL!B#@Yu@}V>2!jURJ-VhpL;w4RxlI%Cw8W2aQEO5OGLwV&W7Lk;T!tptaI;rCRGxgl3bXU z>N>2G&buSdlQI>E=e`MO5gh#o>E@-S$>O@dZ-B-hQy;}-Y)UwfM{nBre)$Klz%d3( zPZ_>9P~5LFp2?>mt!osr#Aj!NIsaG(94#3lJ~GWU&N`8h zq5(++v?#2ZF-l=7pKV~2;U_a(&BH<>a=Y#NjV8d={d9Y*YsQ)C6Iqw(TKq6&24VsXN_SxCsBw-g`5 zSBbHJ6Y&t(;rlk^C7M32;-jjqES+Rpu+Id3uSbS%7UAjtP*6>nN6u8X?$UtI1@BV(%Y47T7c2-f+KDD?nvQnk8PJV3~+>j3yf4L=0<> z4EZZ2if4HfJ!;4IeB!;_Ki&`sVYlt};c*sQuoh822URcBqWcCppW8n<6C`-@6*6)f z=;JT0tbzNRzScyKq?YQWt}SSvb1QLb{lAaB7eMTm~I~db;n>`X+fbjD5RjvzN$NR?+(|cKpYxe#YLBJ-@c$M}}^`7Bl4#T0fqnqak7n=Jed{|9OB7^F$qHE4Eq zxw_D0+qP}nwr!hTwr$(C>nYo|?X7pdo!FU)or#Uuh&%I7{>jM9IQNNjPF~lzm|dzv zs^vEf8G0##Wy@J5vP+B+GWI$!dV!)>#em+dmRaiR?DBksYNJ7)UMq2ArEO7HKKAUY zsZzS$jb3?`Q1j~FEu6X-`~ts@eWB({4!&U_05&eR5(HgRJ@s(AnUSYh;nan6qk~g7 z*58hF$moFd4v2Jk5a z7tIH*uHVGc9XsVaPrv43`Qr+Nb@RV_`6DY8OlB1y8jH>rDI#F!{D$^h`}gX!Y|0ib zlF9(}C#f2Svy4u?`89KnDBEJTY8KR824!H*&1EtJzdCQoAKJ@gS{B$JP$iiSpj2ni zlPwgck}cx8ozDzWJ~OxK7d)E!@^xoxsNbr%wu*IAE$WIi7TZv;i%q4QW)(6{Q2%Zh zb}~OZyVgXQrP&M8)`pPsVxT{GwjTtsvv}^+opQs{2Wlw_9CuyiVt&y z-+Fu!$*0Sv?owd80gIQa(C7$Ax@;z{S{NEIGZrO6s}RCcIGwD74x+^8N=oU!P+5E2 zmJs3^)vR3u=vgHT%g&%mAtOYh61HIi=;^0EPgZM+TxKxC*hN_oI}47LSrxP-A4_YC z2+EfgQc6pQ5L+|NwT=d-_pn0#q#95P8hhe#aqFxC0YzU7TIMR0)Fj=C8S6rGG@NV$ z9zgI)!yRc5auN=eP-F{HsTM`I>ssSwn-*l?LnROEBrjPOaU{L9yaj@Ap&ZiMHxyJ$ zDXE>4+Se48OD(ChN2<~i9mVX3?yDOX9_3`5fxAp@wJIfgQi^N`DL>_rY#9?3ycOPf zh{Iu=axeiK5wQ#GZusBKJAqu8ptYFgy9gVRsMuJkHAL$Skm4=OyDO{bmt zuyxvL_bR~6uu?zfdWzC1niDM_6O*tW})L(8W z_dUf5ttBPD<$KI2=px|w%J)?=Kra?VB7XjstzSsF-JukkFf~3Zcac@wnoxTwNbnSg zpZvU2Gb}4Xs(fHP^XtTEJo)QQoFFUaitUd_WlqEj3e33#W}qz%j zxJeU|=c=J7s&q4LgqBIi#eH}>=NJ?lxKB#NB{|wny!Ai z+2^O3dAD(9G)XqMah|FmI+w!eKAY>-O7gBiii@6$_7+mBt*!2Wz%{TvdO%vPEF)v^ zlL~N|D)L%InYaEfY=KUgpXtnV7Iyr!C|)IPqmWwslSXZBiiada9kyCu!l)R7uuKRe z)S{g^3iI?Z?7BW@?Z=R{InfmY>!&&)T8Zlr?ER3dHP$sS13IGC0BG>i|72u4an0Qs zbfz|Djy7${x_dRi1Ius)b2iwFby4X?a_35jCl)Gc^@`6o$?xRKOmI<&x2%I1>+cBS zcn!4acGlM?OPKGg7SgB_frU)R@4c)DEnMyg%1q|>3F#4;S zP3x?hNt;N1OVF`HdnNRcuC_dL^Q~=10~yR5@Yw9VzF9~; zGd4-x*rP{k5Z^jtF@;urmBA#{{y}lLNfX2>W%{|^OjDGYS#wLo!H7y23P2W0(}S+| zj?672Rqs&@Nq~x6Sn;ZJ1HsTS!|WU8qq>^8I$zYGTkjSPN{h{hrK*#1Tq<2-@baf& zXDPUV!KSDu?RkQ!HLKW}Sn{UBWzV94{Hm?)T~BHo-kl1MGB_CG^xbGuC*Vq>=&XOs zWiZOtc69p70vNT^WDQ7=1TLS^q*@4RbBlGY{|+GsPx~I`bImDfKUvrt*JGGpESlr| z$KNF6XqgX|w7m=RQ3a39nHA3u5g*J5NyZ|w2E6`v^hEPkiiMJ0Y&1+1VfHWp+VmVf zr+MoLM#*)c{*f=8z~Fu2Vm1$gAv(6CSUJ8}Q+4WQ2|M{u!q%2vtDx>Fbk#iUsY5&w zK1m-_P<|k{&)Fzd7y5js{sFsny3zK`kV5}Nc|z$>?&_W|OYb)b;<6@Sdu$4`S?=F1 zKDM?ysegP%DC_)y=V=1OqG$-CV}UIKw?GVnJWW(WI~=_?ylr?kQBESz?31`XR8Nt@ z$^7;74A7@%EZBqELHye%9rrnaH{khaQ!%3z-oAhMoh^FXoB{1cTwcW?q~#o>w2sdJ z8xJ={#nb>7ukP$8W$5Qn?gdWXQtsjRA$v-!JLpJ|=Ef5|^el(3{S#$ojMgOQfvUiI zb^4cQpTHg%yraZgx?z9Ex=Uuw`rk4QkCrkk11Gvh-W`sxNhK3pTvc#Ly_((fQAa~Q}A46uj!ApOf*IVXaGN9JDo4TYmydb@9?ARQPA6QK$;a;`XiKq*A( zgP+22CI;*c2&17a$ApdB5SckIts_Rn(1|_25`0WRlz-}1)Vfl`HnASV;m#|V@vLm` zE^ArlR=)UyqusN$hDZ;{iLUuf($g1B%JQ5mKaNt;*{SCP#tr*T%sf#-H*c^{u5r+5 z=*u&q$0q)P{WO0fi;AVd6>fI4NNDsKzmw7*?8P#tPH?VkMWD}!;W>Lf9{xq>IHN$7 zhP04Zbv88qY4L|7!I^Kgi@Ko`XmD>AWl$q#@?xLUL;J)b&YMh?GzM?!ZB~+ltDv^DjW@GqOG%%=F~N z1$9ujR(H2p@#Q;aI(&#POmHjzXjc9`Fv2`3ceUsrLKWt8w8{?H`4e+EK|T3TM!cd$ zenZ23d7*x*W>W7K+aSpJwElDaIG=^HJDCP<5q3wSos=6-#u3{6>AmtFm9!5WJqV#nR$Y z039;>UK&Dhgmp^4aGueb*S)D$XoLqSv*mw9!8_c5XN zF~R*7G>SZRtq#t-#NIW1kN)doOIgsI==aEI3-V%X7=$W)ARRz-VHy zP*IE`yVftCPgbp*z4$`pl`b-+4Z62U2fUX?U;iKkYb*mu_!xqqUOT?gAHd&iVNA1u zMad=*iJvkac&`T}UkVQ{cRJSlT+^d$Ve{Xki;$n^q}*%Rq#TpLPI}Xie`VF2XzJbtUIa%Ibu!zFH~>e5?{6nYnPzUOqR}=r5?R9=1VO<;f~us5 zbrEWIAxT}g^yDVyt{_spO#B;wRke4p33lG0+#GU*_uP7hVw(FCBIq z+XL`DV4v?iQ~S6x1Yh`BQ@r_(uP_$-IcDt@c;@#zfjqfzv*{sEkR;UBsBOg-e;6r6 zKZ|4SGbN;0cyf_R-lYH>{<9%tt0#isb&$S8nFDRnT3lhyc^FLKojg>?jPA5yv41aNk5CtQ(STeedZ2}#^e@Zl2|KU#NDe*;ai{MaF+pxd$3KFkWaeK zPeMMKVUE)kC$JYCbAtNiFCJSl5*`I7Osqkhs4Gd0ogW?=j|4SvBMovyj)PJ*xMXz% zaY{E}pE()Qyp}IQu@0%wcwC6p$JV|UDO^+Smjw^WhI*_}A$Ai5kgEi_YLdJ^M%J*r zMOVhQP+oe4*G<*|fJ;H9#3uV z6#mHpTnEQs!F_a}+x}K9;aJcNK4vf0pt=BwHRJDdo0tHsnSIVg2`7sW4Xwb0n9%tA2VdKY zag-8LqX$tfIk=`Mf?VzR(Yi|>;h4bRL7`mZLSpL|sn4tfoZ=gY=xSOJ`$2?SF(F;lpJW=K1X* zBo&r%MjL!hXCf);`KTXi*2xpi>YbD4A*Q_?*}Gr~)X}H3O%dqY?{+k@YnL+# zG)RygVw)lN?O9aLDWSkcf$V-VJcw9y4||xzoC^`EfrqHLx!C*1IJsB1!@nL2*LL2^ zK#oY&Mai7W$$!@3NVQv=(>>HW=#9i>EI^3DEa3s-NHUdf9YtYA;V9uwio_h7BA?|L z7mO0ezr_P-6sLgv%)VUZQ%o}ZCWxRxJMq6Q`mD>avPKp2ii=uE*c8)jhgbS6~_cP0TbN_wKq)5Yfp>)5+n@e&_g_<2=7#*@C*-E^GZ~w7A zg|d|>$pV#T0ZNLlm%1q}FUa{M-CDFNg{NVE7`Qo9S%z-*;E+=lg@@=8J3J#UonAIC z=Kx!D2W>vWY*g^hSSnpEmH+f(DZ`xwJsZKf?U*6{5U`mEk}W*+V$m2M!}lIBrwGHk zrUXtqwkyzNsC5*R=2x7e$M~Za7Y6JMexB2Ozuo!D9R|wfkHX@kcJHTj zh~Bedy6)t;dtk$oNhtZyKKA@wETR;VbR^6f98P(}CUL|olg%PuL=z5q$z35-$^_5x zorq~pu*|F&I=Oq@TLXB71FA~r800lzpM{jJ9e%q=ZiV)7qhP_)k7gF#mr;f`ygOA9 zJdE~fF%0l1PNYE3$EnZZEt_nL>>c*RooLJjdEVWPLUW|UF><;kN@;|A>ZHo=2jS^< zD!YXY>90<>ub={5#1xeO}5R2wGbEMKRCkoU}`jLM3_+yop6NC-q<@@ zfGome%>-3CK~|V5FO-5g8|3xsGW z1~Ps8$BAm~nxQs_cHu5n^m%Oi(cf9PQT30X|H~6cH-w}2jY5jOU(4>`!A3En!YXJG z7YinPWmwhNC5bCv8BZ>AJGNKMhZvGOrz;0($I9)g@SfNK(v9u(FK;g4@~BgsG8%`X z_6hBhiMYYBv3cuC8TJ(tdSdUfq^4&^i{2Ft4BN@OuoELz7mR{2Qw+FQ)O>tpti1?w z^~j{#!<8e%e|Lk%2G|a@i-)r1NUD~T1-}h>qUcfFSSVfFbO4-JSVZ% zkz?E|99#sLdYRcvU_u)N7hI&D<5l$qo{MOQGw$+~@`)$Q_--G8(V{6w;RwBdda`nuK zwv|N&`&M-4Sn2vq0vj18P6cVnXw=n&n1Tt7yNPyIX%oZ78--I6C|LmcI*R!XPOt6DwKxvH4I&c z6B`CVYV3vYmwtM-R|cJG26FA`8&G?nNpBO_bBeO5AvWt#Gbx|jZLt$2%?0gB>2?G1fFY(b#wF9liJumzc~e~$N0iK( zxzj9-SI5Q*e-1;t_7)(&0ecHYF=k+0ApFLd;}jT}Oa2~Y{3|xRk2T~C!1(H5ch5bp z0ZP(cv%gOHA|au)W3BzPzPL0ETegk?AH(ye9o!vWqp*7}5Ci)^YMW z*2`n&wgek(dq|mP(+c2AunOR~R>YBqX<~4*cC2CrjlE!W&!?~`rMh7;b+2_q9|h$H z!>XKEY|2+e51Cg!aMBf>gPxj|vGYB_PPTl~wF>Z+b6Z-ZEm%+ojCH^n-M8`IutW-j zPKS~CT#40(m6Z&%U`kxEror;_cS{;{K*7_yXDtqm6F8< z&}V1D5r*rmfniN(jigqikVV0RH^AS0{pKAm;uullTXh- zM1luWvxZ_DI3wa*e%sTC-@N~6{+A_D3svL(`ZXl^e;Qk%`ad`S#ciC79qb&8f6o6k z2hgPPBk??J`pz+8U}bCrLO`JN``gRMARhKRpCo`Fx7Z+;h>uXClZaK{h=CCxMX;li zvV>i^1X|w8s=OYaE*06j)4i}%m9J7&wSM1K(!Kn)rmC2jeZQHp%8U%?zMU&g8Pn|X7Zw$re(5n-uJ!fvC#_S?XZXc%HNe_b-4AV(Rr;1 z>1m5I?fU3}_D$KPLBItH(+xn+#msYEP7OG^>eas1UU(fZZa-MBN!}#lc!C7tkPDx zmd`F3f`N+2u4EE=IBS(oIH0A@xe=vko}E#KgD;9Tw${+fCUH=XOmhbEVy2!!`$08x zf`+OxQ%5i>0K^86jxei(XdfJE__+^$vn;aCCCdkF_C2CFgR;Nu>IGn^G9|`$^;|LC zl9cuS-tR$T1z0mg$5n}&${1BBn@Z*n+^8&a4I(A2GkyKHwIX;jiziI1fWm9b#--re zi=b1dReC0k<9_u8Dq8Bch4Q#l5tJrKw+@kW$FcKacc+lQTe)$v1+e`mPqDMJ`a#jp zZ+G5UV1CvZnA^YFT%5k#0mMqvD3c;OPhG`?KI{YL3`!3uhzgM0_e%_mFpr zd-wKH5sE9teMKxYpBjz#n6@Lh>&`yL`@ zCO1}?PX}FSSpxAJf?sWk6Dw;=s||dXUnhfoeEo;2_ob4P}b(y|C5DrVQOSP8Q5mxSq@zfT@S zo!thgnI~Xu$p*e02$5I>DN}vlKiWa?&)thQp%u)RAsp zrHmt_Dh4>z-Zn|-33H4wu$_@BAfko+Ra6E}igbEbXIAR~(9GyowDx=|)wW6ScjFyh zCt;P(_15E|^ZpQ+1_gI&s142(=RsICyesJVQkZG7dGUjj#XER{*^LJ=IOVGHADizL z*NrdWzg}%?Cz4Lxu*o61xmodPzt2`J^v7g_P6rT_#Uqik54nTn5_^@oIfLOL!we59 zesQltP)JII3>{;=x#cM+?KH?aJsH z1trEtCgdcRs9O>mX^G(LQ*ooA&hT*_E3(|gM^T&1$j~AYMH-mGkb5t@YfeRJ5g7c5 zVlZ#?a!1P`4rEyEl*9Xb+{wXhA^;|p{LyIJ)NIE&=uOz-Zsn$^7WRk|Ad%X%%~D=d zgWB_x@-12avudPls1j~bvT9g-XrY_sns~NWPLBHfE6~Ep)n1dX^cx-hMWSE6Y23=% z^u=muwp1=0eFRMTy8pg7b{CE^MlVnF%sGB1t%*KF0_7hQgIo3U%<&w$9;lq<^y0k(|!*8<^Hg z=SkKo4LRH0a~mL;!B=>o*4R0!2bD9u_tM<;$&9QNxKpCf?E|ADZUwP<`-!!FIdP!6 zp05N{X(2js!~mAENt%^7x2O7)&c+yh zBVecOF=WvcO|)K|II+`TB@JH4V9zqHax?UYdD6gu1W10w{jjI2=26zl=NGB4K2vGX zVOQ%@u=X!^J^;#!YF#2FmZzi~+M>&*0x~&1Ag^FqHV6B+96lxUEIvb;Zki>R3uW`N zw~aEav&a~mmGiK1-gh@+5+#}^D$!e?6XgF8 zec-5@-OlCa=n}Vu5v6V7frU%6W7rzp3@Qf}Z{_Hs-uTL1K`);tz_GP^vxv$Y#twja z7bAg_NJ)40P>uG8`Ql4u#fovUmYleJe-H&MDEul~ORPCmP*T=d(uhmsNvYxtNDIDkaV0u?;DR^FvFDQ8 z89+;-L6mz2>6(A|52ndDqCK3+GVKTKs=W>WU=L&S$KH?l;o^RLzVYIHK0C$u#7Th` zi3%acBeYKba@0Fzbw|dsj`inxW>kuFt8qLsWqH8^YpA{&TL+d!wBZoG{7bWH)$tWu zGi+BLcrYKUE%$T^xs+8mM6fZG?9!M2C_O-KHf~$A_b}w4v$;u+_po1B!rTR0^l3i4z}y0!=Z*pzl+2w#;5 zH=c(0ywmH*tsN-^V~9XDuXQnS;p!PQ7PRHAs_`E#+G3wlM+7RX^kdirtrfV^7&QAS5*)Am`PJo zBW3rTDWyr=Mr_oNN31&hq^PT%LyZ>OrMMli$q^^uDQ()pDw9#FRnUqbF}YFJui18 zY6WwuX;BC#{)lNMW1HHs6IvV!%SB=&G)3Cs{=r-@3hEp;85Ow-z~S`;ze&FeJzR9o ze^9>rvhUF+XL*`oA!_IMKto!Mn&#zWQ!`qgN_Ud6Lo`1~ic@iOcVq1;ehme~+=#vd z7;0Y?93Bg3iGGX6yEvbLX)QP4!<-aSyp3NIZ!iEMTH?NqRhu`Z`ZkSQfB<8yp-N)x z7v#CSwU)|n(=sBzvev(-Kz4az-3m9AVmwNv$3?AD+_WReXYRz+3e(gp;Z#~Mug`{G z?EI}Fms%5?e0g3Ia@WiIU|St=$LcF!S;yH5-F&GCs*36cy!f{6V5|i!m2e z7a{xj2TCby5)N-WojLmT_KYz$#lJJd$=P5y-I{y*N2ptsZxzak@R-*F){&gZ@0~FB zC!`J>N>?vif!SLVj`yufsat>M4p9d*=hQR5sl+AX@-kG_Ln=MYMh}Y+Vrt9XUGQ7l z;Hq_6-P1=DyM8E)<2sRdiEJM9=_5Fi`s|+avE0+@7Y`4)J9X>!v0M>Z%0mDjB$K>b z15)Sf_fbXdtnw6{$Va8e{4hvi`46(;M}rT%yj!VKrR*VqHrle*9+``Xy2D7G-`c6-z%O(QF;7fN3#8@0e%aoJtCxB$b^}Gz;bvR z9X+@;8_K2H@N^OzFy;#_1TKIdydyVfYQ0YcLLar?4G!KbQpPJh>IEUA7S2==1yB%Z z=kE~C;*#KgLBKn*>9zDKwVmD-YTgR|T;G>1i2dX94ZoKg%e}vubiv8~_ij>_cFD!n zkQHibe>`jLHeu{DL@7$(ii=xg{?h@IfqAxc;~NOX@IZ6;mGGP&07hp>E5ZCwPS4?I z5A2nGXyGk&i(k8_9JX+yxWOKZ%;8b;yLI(Rh^~PXOkK}~iXH;4A-+Bo54Dg$HxA6* zj1Lh<{}^*zQl6r%V*c(9?VbV2-HPJQ**p%{bQ?3Aivro*Q{#a2rZ89v_ojUKhinzh zeIu3WeMh6jqPR53qr|NAGs%Go#kI(l#!Sx{o^BJZdQKfK$Ssehavm#};Y~YlrqGyo zf=t)NE$!j2M$UN1+7vTDQk~{}DnYF7PjY!hp; z-CGpcfOWaaYL0(divxX(DOo+qo4)KFr{t}0U@i{5o74UezrX>37a#I~XYb5&*E(ig z{ql~qD@UnU@ueF@=trh&t^vyFJ?9S%b8pb&ZWpY{4%voePWtrc9OI6Q-d*Ttu9`)L zDAX6Fv35@bcMmw7gV@Ax+XnnJ`>rTXeua8DQW3Ji$n)LFfk#jOr2+I z5&wR$cn%J-3pZ=OL@~!qb=TDa$BK?G>Lej6!R}KA$>TVgH-BX=1ig8?6F_AT3j-st zz1dE`QW>KZi1(1C1}oS=YRGSoG=dDQQg&fb5*IFTQ1B$Do^Gf#r?w8#0>8KV*I5|< zpo#26P@T&d?NeWljKzK zk|tjd|BQ)uBz4r~gGVJhvP@lzL>u}X5{X(OQDT-Cs5!@sJ8w1Egw9?_PB~y*C_qW?yx{9J@0tR=DKsHAxI>TV zFX<;iLXJpGY?`ii$X8w#&t{)(vUP!rAf2nY-V1AkI6f2*|A`hz9^3#NHiBDId3mC! zG(4QEy6#)Qzn0szVCwu^$H}Cp9XXQE%&lY-1-OpGhF*Zc%BBG*0K15+54|M_y(&5= z1W?%xe5`=O%V-Vh0H^3gt{!NAvViqE8&rVR(*ynk+dz<|BX#Nqj*!twWPSzap9O;J zoW;N>d8@T(ieTl|)mt)v4WQX|MGzCWpWU17`Bs~)rtRi~=VQk{W(x8+(2dXu=ACSX z)nSz**e!+e;GGQ`cZaMwUulH$783l>_vWmm^9{Yb_xOeJOMv|)et4%wDYD1D>mwX? z_*c@NWqB{F6WP-&flMPQ{H^p5ziE5|!9o7iL2*^0D60a{Wv;-QxZx>3hUoN++gljP zEGkoQw*kdo7ym(CxVx9C@Q5N-^R>MkXX+Q@3ov+lpsc%;uoNuyUL#(I%-SSZPYka> z0d{8g*C3XpB=g^jNnncLzpw?UR^y_xh*YPdE>qM4rRiN8q?beX7(8F#93s+7jkdM1 z^Pu+KFPu=tvTO@OeGg-LboTSHMGkXsLabb?5(mov$UFHTY)S3X)&P@BCr2(Z^X}=R zM-27xo8oyoe_6AVa<~zkn6O`+Ai_%{JuA^m^V3R;941NOP!yPDiqy?Y($x^s$Jwzo?5R3v$p$PP{HO)DE_d8J45QH~~>^R-6TB3>(#t+w7|lYGC-GR9x7cgma~!`MNx`=|_Gy0ou^WvDUeO6-&?2T$jhJv9 zI`rHdV%|H|Kwfs=?Rz57ioqN_eBZkRM&|4!8;;T$|EP_XW&Qa<7FE&C5TBM6@-svE zLv8d+Xoz}`M=eOxKBINxYDne+Aq5|~BSJ2UTNrH^TjydZtA9`Sk3H%YisgH!SNljr z&hGKvWf#TOy#YuJ}3j|MSh7cEO}3s^!3s6w^hWHlSKUSoGI{956&m~gUccDjGJn~)i! zH6`LdwR~+B=?U=YaTbE{d`>n586650s^G5ny5Vw{9@NbScD{5oJRMj+=SH<6yZ~uUnP+eMCO~%wP%GF+gShzFdS_7Soy{8y z8Jo8ytiQDz!q@4IR-r_v5`D@bn@^w#+6;JXx}hWxD4O4@-=!tOl)AOzhP0j_5Gu$s|Wa)>LO6zabcb-6q^_#m<`t z--NdvgB>m|Vgs502w(DG+jix?fAN4q82?ixkGF2L`Gf>4yuaz1oQ>)p9tX#4~K(RDK zN+J2s7$Crsr9c}pbSHq{AmP(Tv~)x0nZ41}%HMT$3r8gQW+$EGtzHu~NEC4_Urdh4Dp)7>=3SRdyh^0v ze23dYNNHh@0>Eq0yjA@BRMaJuxt8ABjV=$PD%phzWciu~#JEc&bI)g3~S|}~UOw4OFDByPo`|4B5 zRA%Z3_EIEDrx}jexCpTIKVbr-!!lNK9*(!YVHQU2qHd}LOuEjX^lDThLy0|@gzCKWv6$_-O0B)p3t5*QB};8NLWz}R3JM+1ZwHa zh%XcVh_6Bj#|;E-T3ac4d~YG{!lKusd-tYt|u0XxIk3^iZJ&H{1Tm*t=c^ST5MH!vJ~T;DwKc8FBywU=Zfy z+sr2&h_Y2~#p7Z&$jUda#Wlx<9pf*00dC{D5zJM=b=W|cD4r_Vw0 zM5;_&+|I!=;InZOGYqj5=fYev)X$T!*aJXF*gmNcxg*uZrf#l-+Hn&;Ja^d*S)p9* zJG9C$Lzev?odc1`V_`|gq_aa6yigX|c!y@8*Jq(Cg~73%B&ds&JU&jok8TA#I>T^i z0lW6tOEHgb?b>!F5yV>+!JqH++8cx4`bcr;o*{X&yH)02-Q$JcFv_h|MR*m|zR4*R zZ8eNkw5A%y3f-tfrVE$Dg)F|GeI@dxk{?qfd*}IL#~0GTfS1mXNh%hW01X< zg{fIYU7J)n+(hyE@#EM=eq9&coa#}oj2Z6-KFRd0Bue=yoyYxJbLMCn#=|Tto*R4* z1PFmJ4lS@6+AcduJ$gqaZ+s!wMQyigesrf3F-n%pqhM%*4s>rUqMu}=rX*17bd}PQhW`yU8KM8^oRuik|1Xv-ag6d)oQDBARxdtZodE?6T+Wn!PJH>{v~Kb z^JM*uK{x6PyX>$B$LvnJJ1n|JNnJvIIwZcG0yjFwjGZEQI;3v4VmC5HE`%1uZZsAP zVmBL&j`1MV{|MQPK-@sp`zVVSt+9AuJH9598rtT_$5ynRAcQFZ_~F<3pcx87CCZua zC|p8HO=q`^N?b9DLIM+d(gODmB< z>|R?Ehe~Vk#{t!l3T<@6NzTYJW5CLW2qdZ%BJnPGl5;3@I6Kt+Un~hvG`k!^wcCar zJuwMrW(^8{EJMM}R2?!yf%8cOZOg)uwXlqrg;dQ6bH>*_6KlToq3@tB3R3wO^-s3l z9WxTL!WJG|!7-=o5Y)u;X*LcK0h-aBs+m39@JAF8lnB+h%S9<@V@kS)qZY0;j zPjQ1IU&s^_EDm!{YcFzTb+{~DK>3A)YId6PDUfHxMqyND1zR*gF^!ma{W_A`TgfVnZ90g`cdo;eCHnff6Vm%SGX(n|F+NTVC&{C z?BHPQ@INC-nv!k*V*?(}3GV&zhbrU_N+d~86E)Q};X{eRATgzbN&K~ztdLaepEFKb z-Jr{}{Y3Klt;<<3&u_Zm3Sjf`i>Cd+i#GJWnnDnO{9ZdXa(KSrexAPPJl@FoxZRfR z`PCXCfXNX%du#qT%i65p6u&dT3ausfk0FXdTZQ(4s3k2In6A zl$`x*bcm-L0xmvl_gb`;NkONnTPq-_R@g0Al2T@2u*_SIZt{Y93y+7vrtCv? zgeh?XC6u6!4JezrmlYgLCNRI4nA8I?+RuN-!55oCsJ^XrrklV3j~LK5U7eMmR?2z% zcp9!Y8C$^BGBmMJ@&zX6_0*cUIogN=8D~~HFxe)Czn8q>?_#yXjmZv-nzg!RUfrr$ z8Ay$2!>o@K%S3sTpPt`LN-raxMj2PAH4iq2h=!J?F?PmN<%a;0lnLz}Nu-5c&mB0- z|8!6hjyF#M^;d=sFnaf|bjz7> z5=B`f7nV{u=_*&$(AaX^v00T7sCm-or750RtUpX5OKSUjjdd8;=mFI3-ncw(n!5-H z|MIh5)j>U3@Q&b3x1q3iYPe6xOTs(tDQ~sIZ;SxrG(&XvFT)PE_8!$GU{b zS+>b0>BKFKaZ=Np7FhM+1 zitU8G-R^ui`05jgW`^(q3pIPc_>XVm+Xg3ah>-wWcKc}8b=R}^)jQAiNY=;evTYBr z8!|3Q-o6Pcz(5?f<)D@-)HOk^&)VHXRKhi3bT6B$wFbXLUm5RIBUoa#uBTDUf1)j1 zb22qr)q#<7nZaiB_M$#%l}(|IW+tg6BKmYuTT(AS;VVF&3IUPYt>d?$b>lg)W!s+H zQnlz}>!s3pc5jj0VdefI_cFtT(q$Q!j}`lRv*Jc2R~?proLwXbcX7_MRLoUGC7(f` ziZsM6(cY@^ZF`QJ3Nm~?ENehUz2)d2XhSDLLfq%5>!>72$?reeD5Y ze~Xc@vIpMjQtzyBZzi-IwZ?koiZtP*5)@gcPSTqxU%T73k+K>y z_jBn*9BJu>t#^wm(mJK5zm4^pO;FiQRURS8tXb)>Et<`ipr@IKSE)sv#1UltAN5ub zw=TK+!pnl6l@~5Kc(`FMt;5y4BGhId5tn|URlbqVzc8#7yLm*w3NwmXFtSG|t=*Y< zVimKR0!-=CY8EyFoY#}HSdf;69P1OEp!EeuB-v^TFu6H&2HCN_PfTggMh#^stj^qU zH8F6`TEpR-p!H%`IUgPI={{^1ZC=7*LJP1V=s`(IW%TZx4k>5WH+agO(xMrqMCIy$ z@uf+WjUZ{Pt8edTX&{S_jY|7YVltg*VkM0^QE$yNfKy(l7GJBP3v`eEdcC%V=cZVi z#5?pzRje7FEldVE$|$%(3~1@@oS_2f0f@tj5QOzHVR2ic3#qH3lc}4cT%XXUQ4c@} zTyJUN^pSR*5K;RCs`n@TFdTLXN6BV8D8qG;Dee|8sEV#ga`D%tiG`N%#E-iO`Gvr9 z@ct^aMfBsqe|_)UQ$r{*hMA?zQV*J^og{9>K)Jqlu#UNm3v&eS|4oV!G{ld}MM{|v zC8XJrJVRugnqA%BVR>sB`z@JSY16kI>3Rcaz~p36g2` z)6>H^cJJIoFm0BpX9sK}-V0{1O#l)@Y7Fs9_eDhWr=ma5_QG_TukCE*#aX}pn?J_- zja{DeCoT>BByRtE3;F++$p3%GB@bhV|1Oq@QrNWkk6404ykWC-jcM)8Ruhw1yifU7 zK$<-0Z(eQjOc0U>>nij*`Fa`yr)HRKQEmV#j~^Uywl=Z`L?z=SyJI)|x2ez9+ZS*z zWuq3=t`3ayhU@JwI7=cPhuU4egggsbqdBj>T4XcCSFP2R7t|W>1PaROAYU>8Z1Pw6 zR2uSY3F1o}!3O2h&1^cQHxCjtmEUE9ble$Gj7RgSu_C#GII^vAX&Qg~VJ_6p$lIn0Rkc)>Qj6b`1 za&Sut39C-f2af%vF0KrYyLQ>wu+R#mi-}6puW&%iqMR%QZgouDtF*@PB1A{|g6m`o z!+9V)^G#u!x!Ba6cJ}H5t>L7(Zf}sL&2)mf_07Ir(V;OxztG03tcov#J-n+Bup=mu z8L6(}MEAF9dG%J*H%f$E7D^a$rqGr&e2@M*BEN#qE5fhYyrX42_*OhLsCQ*ElXlG7 z%MsrM2;N!uki6%Qh|w^uq`~;PW*}%wINO|(y@t8rW0%Cys-mtz*s&=y)n0l?C)h8@9OO1w~nAaayJvdl(3RW zdng8KZZjM{PpOc@zy0;UAE0G+qP}nwzBLlb=kI!F59+k z+g882_s+a|-<`P=@x{wHe`K79lNqsp8<~6Uy;ddEH**PTo^Q<#f-etVj|va5;wPj3 zcQcU3L$4R+ZZGHKrJm!+kS`{e$CZIOALE*nc0`m++%+AA{6)_Yo$CNa|AvYR860c`A^J6ZAl#8Zv3) zx8n~Q6tr+mf*xoqQ5l5+kspwyS+^~A0Fg!$C3)z?O09M+0RVL5xx_#MC2jWEa=vBf z0f!$bSuyhZqx*KXVW&3E)l8poThB{%L<63dGZ$JIn{%^jZY6siZFSKcxO}LS{CXSm zP?MQa6!s*yoITsztqMso`!jjp+7dv8*|qVgKV!TUeS2vmgNf+YwyHX7%3W%^7^mv; zL;NTbpmH6FaKc?bVLK-5CdlY*A8cSC%@QwjxBaRtuw2W_)$#i{8WLBP?F=k2)O?IO#W*&I(gEE z;)WYnJw{tgv$&rqVH24~@kC@WnMw3pD{(Q+XxU)~M@YmKel(t4iA7I$y@i~pAB?<0{qE`T+-tTi6Bsbo#lh30}?Vx?l~+=afpeT z;u6I-)X5hQ?@0{{E6uXC3#>tqZ8VXfU72DD+pNqr2$B<)e!XF+xb6Q92;!s}QxRVb z4rMXcC9=$R8)~1J9L3USYSqD#gcoNWTKGj|lb$R3Vx+T_d4euzGCKnf?!?qBpp0Y$ zRvxra#(%a!V{{CRVfj-yhSc@Mqk$Y_g){|)+12?H%o%u-&i%50Z9N>bL}D@{SzdBY zKsxw)70Jj~M}d#DZ1}`O=BshgJF+#HR!(X=&Fb=^a(e*v4=I(k8b_nD!O|%G>g%YC z`hy>>jYoXz-MEm^Yz{a2TYLwC@q<*HTDm2tgzKvsB5x)G_#AXgP8D?29CQWRKq zRWA+cs5jAIWvsC9ojO0bfaJh}p*Dw=oANGOg{9`66u5P>USX(mRcn~TD5kU3yM@R@ z#Foe!#>$y6s$?$Kr|!@)2WMI$=cSi3(jfAZU)GYEOS<9xmMVZNaz@K zavWv0jJGUQ7uL%Q{b6RqHC@ADL1ui0F>%xlm;%t)2O^sZF*8O%KfDS3(Ra@8=&hzN zz63P(GL^Ws>Z2veya!{WnTC3A)!-dSQ(zFyBPJ-4d91F+99czHj%RLX-1|DVN{JI; zFZMrK+jw)~OT&tQPl^|u^5nI39M7E`EB7XMcc;P(5{)|CzjkCLA_N3Un#dXA9HHEa zUv!7m%0#vvHmsF21_pY1`&-E3FlxzbOh{C;y--G(X{ozbCS|&yo|s5C?iwParm9PD z7BpP|NH;5Eb4+4B%S6alNKkw(I4{ypUBmP0O_O!UrPy^x4QqTIwb)py2A^Qs%th_E zCCyESGtKWJ&uy8u2kHWfO#2mejm^rO+U1uPPYAZsG{RJYq!fc$PlCRMcsy>{RL0+i zU1D1G#vi$s-!4B)F9AzFH)CTvmFzburb+i$8^*Fn?myHsAjw~{<`{ry9U!x#G7~QX zn|tdKx;l9%d(EQJK7j9`e8|Xh@vaY~8twLUSNg7lIk~ZS(CR`Gu7D0=?4(E;EV66& zguaSmf;W#$NW1Tvx()fI5Cm5DXXsd;y>wYV3oPDf(=+Q6P@%or9loR@Mc=AT^!U>u^3V2yzhZEHq39UU5T1W63HK$@%jM6S0 z!JLlAtr5Y!76)eU`#Drt*5X?3NQwS)%$dMmhDavTs}WEEiq|gRx^Q++(9yFa|4?9S7o?LJBvf@3LH|wxR#lR1L z1&6ZB>}#^%aom2%{`Z#dkf+qSMR(ABc*C=yodzToye^2v?-JrX!BKPzB=@I5C#%4e zzVRYStGbUS>WV5c)am6quQ0#quJ|PQ@R=Ot{^a5wrtBG;Idw4{%Q#Q5afH2-P1y|%+iuzKMW<{h4}GS3 zAlAR2|1qlvTSG8}S6;R3ZGBhNt|xHm^^_}it|NfcRHWVJ5JD&DHNj~SR-kkoZVka3&(bqm%|1HV8-ly_C7a z)YkvTNa3D&$JeX!Mv`!>oElt`2A*AnJN-wCPd-}TVNh%=jz3s_pV`a?cCS7X+0CX< z=MR#>4!$re^TxxhYV`iGL%VGY3#A0Jy7ubDMN}^-u?4Tp^pnyP8~RBn{IlRZHocQ~ z7;eXeh4_BN??&W%tgSy~qn!>N!0TdbbVwmu>o3K^Uxw}uZ z>8wG$vxPF@m*Uq?bbN;HP)#3Z$v18t{t=ZNO}`Y?doMYKhEx^*F=36~fkj99u}sZJ zJ!Rt67mHmtq}4`5-U$)f?wB1N6rq*Un}2TA{a`xL5P$;$Qu_IS`{Vu}goi7Isu zZ=LUnsw*3NCJ)Js21!Yr+*sgInGi$T*r1j8rg%0wA4ASvxNHf5{ zaCU}_fFd-4%4u!qlZo;T6bH~SbQBZ?!5)r(eFgl?cHW-MVAp1<`eJ8*Lby=j%& zh?#z`ML~GE0sE$J!=I}i55@M53#GqJp}((P59M`F4ejK)*f;DBfzsp7-Tldrp!)N- zxV!60sQ9fvhW>8Ku*Rag$CEqh(VjJrw{AZQA5WOQyW>DaiTiB^kGFLHJfBe95KsQ@ zI(9aa1O25gYpq;vD|s9)bnyPE1`~^u97S4KNfhnuOt}LSnyg-Ym}oolEdW5XNwg1-5bsINeM$EU617A`AoS%Wn71rZm ziYN;o#6EB$Z7WZN99;!P4(F>*pnEDSCbhGG9C^9cjNCZ&fy6S*))+kaZ+bnY3Do@dd*L9Ak966EohuGVUHElk*k{1(JV*6b@X#ARw1n zxY54G6!>!H@t`y7j5BHyjrSHdsx7oEPF;h_{h)+1jEAQg00lDJ0iie%o_I+o-=JjE z)D*5*O8B>1<-S-}NoWs!cj?5bX&D@gm^h;x`jPhq#ZIc8ylcR5cFeBe4hFn{`RQJpkEGoYgt*gkAj;PROR$jN6@Ni zF2?fK?1BgM-c@plv5iABf3EnO;N^6*kyqt5nF=34TYZhuIt-V7G$=*M2>Q*ixKQW0 zat=+6Tw7Ms?HqiQQ2^PClN7&6=B(DxGQafYSTY|1z?U8Q=w|*P9-neR99z9)M_=zl za4i|c0f8PRo}>X_ckr-%OA9c3xUvUh06KwuaQsWRC?6{Q&Ro7BIo2=1(fWHHcqxI{ zQ%6oUBu9_bc-=$xfB}ZS{?rf*z;`ocfA^WIX;&0qFMo)Mz3$`DD&Tc~Fdk~Va-JZ) z-lIvkpP+!wIrw&Ts z)X(Nzt>Lz#J3R)^fTMhnowZ#6iwoKFoCZ?nQwx2Ih*Wi zLmo#f2BXR-vM2yR)$eqPs-msq=w$9Mh+J5->EpwU_+}psr&XJ%VYnBUR~$6U-J`-A zMT=4$n2XYtmg_0eIzMar<64DT~lR9!yQgzONFZ926zmicH(W;;YwYMX-B!!N78e|y~% zbg}Av=VFs?V5(U!qd5XSQ)ySn-9ksYFC~7?<;IA&oIyg0zMis5SqksLhp{YwCKnuI zmK~z4us5207a2QQWgc6XB3vZJNx#vL05{qzuhq5haKh?&WHE|uS(REg@+?HSL|b#` zvPI)ZHvISQ34Vxm^C2sWSv}m4sc0_Fc#=&;yvxfyDGHlpC~0e7JS?Rod)n> z)KQ3|CD1av*cJ13k#D&KA+Ip+CIJ^?%=i7GlZCEQl5~aS6@cH~5Sv7#=aZ_`*Ld+H z*4oOYn`t$l38IZP-~9a&qkNuBUF0$@=la zY`579rw;8?OjYx4J_k@$)Qq#hR6z*Ahc|6<2IuC9W!HPmS&rzmmUY*cGuo<0NM*b{ z?c^5GlNAn{&!d!5u4ruB#RwLiyb)MQrVP|HNJ`@stWd>zI)TN~rWB2du{GPe6~XCu z8yYhW8Z(K_1xw{NoR+zvKAi|Hy%m{y%qEIKcEsq2Z0Ean0lA{Jr(F8zds~lGHAD0~}uC@vKqL)qKCkIBGiT&lH zC-xTYK$mK$g~NmmX;TM+Bg1ZzRm(AL5**t2sBn_$ITq(J&5*lP7|SA(tES%>`uPt< z{w)#7HSrDNkU^FRqtv0X zlt()tPL!*GeQ48wH=3U-$ zf5 z@uEA1nG69a_p&~{W>&$bR$#3cZMe#>q~*wBJsHB*x` z?dSe#6dAD-I{C8Bo<7c=X3bzb-j;UkIW6DO&%Tee*3S6&kgZZ$!2?rptY`k2 zs6l)wi$(+^Dkr`+=ZpRyAW6a8xgg&+j7Iv+b@9KTw11y}`d)+hKZ{%_x!3_LZB1oO z0fr)m0K@-*l&GHDudAT`-CU`fU+|%^ZgR0rdmfu>uyzL=&e8!M7=b0Z z98*@Ze3Whdpf3=1Kz>4hYsjpTbX|ZT%R`ZTVW>D(U$S0elLX~&cx@ejOmQ~(ZFoI^ z_Kdsp|A3<(x>fp>s*ZfpZ-P;6Kozad+L7FI?oJ$SS(X_$tm<)q;*L@u-&VX!3vTO@ zr$b3Y&qxxHanzJnks-&bj+A|=QiA1qq%(|BOsqEPnZOK~T8XB;gOxG^Bnf6YFH5ee zH{f+G*i<^&59(AnV@)(pyp^A>#>WJem#*>&x1D${;tp1NwO)>9E(3x#cUqm?Q(72~ zWet_?j8*A~PN|-~*Ih8dnF=n?7OJqDuP(H8$8cG>sNx`%RIePSQ3q;T?0ooz=A3Y} z*^+!2JZheGSdWQ*xL6k0Y4>$oMyx#wBVn!BhTLDm9&1qwjc125RB@9!Q(L5laP~>_ zQlw>6tJmQzughoJfz;X>H(Z+2-NLQk4|Y(O<^v0-Ow%rFBD_>9n7*;57Y(zw4C6&$ zv?`;KNUCfUo8O9RPdV(gGRlr*azz{ayBay|L8Da};etbntw5GR%4J+JQ^|@yz1{d1=e;7AOP-Ju(Sy+keYuG*(aA z3Kx>bru`_GvG5mJw?50o*FFunEUk~?QbW8LaU<)|BI%?`(8iwHXcTq;ZaofXRp*}g zguL*0*2p1Q&k4Kp0~35U#uz{z7BMSNn%)#Ug(~R;U~c2C+Ya!-OU=x!XGWabBgyi# z@K;8KKIyZB6`c|e09T0rll4=5yiqWu9}@~rlUB$Q9cga z50X{-umAkQbS~BF?Vn`3i&{G=yjReYEXB46ervGi&M=BAps zk;L2%D8T$Hr=z}tq&`t}4dgC7(+fJx3qBZ6pSU|LjJyK^KPX-*Y{W3kf&}P7T5b_^ zlOZA+ac6FF4zVPzn`1Tw8pa3{lr4fK90pcKk>W(%eBc76=UxH)mxwFVlTnkO5k^>A z9>fW;lfKKzkr(*p6_q`Ga-Q(P=K1GVuYvLlVUMtL}c}@ zdHNc?%3%%3JDlc+oPGm8Lok2bus*~Ltr7$YR}`ODfeAUrG1JiR@HjW@eGy6k4#}k0 z$y@GMR6>vqLSW==@a9Bn0S)tl^Vq)(}MeEHEZ;IOn zyhcLD$7k-(X?}CL_t(d-A3(*<3$@_IuEvk;>gh->p>je$t6aGAti^I?mbfMZwwkq4Wcz0T zz^~G4b_IW%Yaek)q|u|9f7dCwm-mb0bV36cY3cga>Dw&Uw-%%mIke8lhBPzw8(X_z z*Izju$a-7xt_e=(wDdi49y;=(EOVOU>#^EA=U{dD7}PLk^uY%m*bIDW7<~=fz0L37 z_kWXT@jIyKBx97)V^}d9_Te$I?ph7_B*v7aqA_@hSqlZM?_}E`SkQF z43u8r1aN@M3XlM;5apa~nYL1M(UkzKJ8?U(t$!NG~a`CP&AUBUIlz?%;87Y5>0 z#6lS0az63_p93B7nM9vVD4+Rr9q|(zDxVt@dnTX$0~18n@;Q|Qbt0dc108_Ro%sBT z4uG{h;>vVct05b)IXE7tB8O5@& z)+N^#U2J5Xw2Z_Y5I|BMIJzjPH&KKtLZ1u_4&?k8bPlJhgxL$ZX%SfpP@|I|&v9}Z z2rQ{!tx)s8LHtL)6mP7R7`W&LnGhNi6J##V#L!63NY4NeunbKk>;x>003Y@5;U4g# z`uArl20`33RnE$b3_D^Ff+q*a!oBqp|QHs4%AdHAU zWsTMqmuj|;WWOld@pTaG(ddN?^Ga*?c?ds#rBEHfg_t|pg1Ubf{B3qi$!ptz@C>vB!kXqmTdlUMi6VYL< z1u>Z)D7$?3j_7izDxC1n%h&R}EA^o>G>Bh>ji9ia+-xb>QVuqhvKY^)=6ZmHS*BTOY-EEmZ=OW8nVG zjvlDxrus^&l(-(-x#3{S;=|+uIBp)&+t<36iG@B-rzp02&9YlDY6vF zhR>G%+bXsPoj?0S!=H0_1{$r`^j7Rp>s_cJ&S@c^oy59ZwxM8lo=#TBsc+3bKKjZ- z9=f8G@Kg-OKlli{2?^AqLB&=;G={UJE}A|4B}+oH@LfD7Nc5A>flB=T;mk8CpIsl{ z&P@DY?3ohHCiZ>v|9$a(zq5BTr#G|%*f`OqjR2znuA>_Ea);bF%!VRU?tK zb2fDX2$`DMJDJKm{L9Q)Dw}dBf|$JX=u648Dk85)g+ymfXy{0yHefa=31q6s(l<+% z+zY`>>oU#1uXk`t8Lc|*hd>$KcR^khhU}MyN{ePvWzD*_na#U++qeC^Kfw*~TN&OQ zD1lMt*V=G<(RASYg@oEi`3fDX5SUXJBdY41!K-mn%}*Y)xuQ-vLri*ARWqb(iZ3?7 zv{{ReFCe`(H__`(D0|)T!_3ESgQS$zhvK4}Cu*%+wv*{?ZguUJTPoMAi)a;}=EC4Y z6sD>mLjryg5B49)NtU|kl`ERm?j(EI22zW^R~bm$o1RRMhbZW&*|bSjE@Dk|Bnll` zb<83r>Yt@AJ#0$=TJgoz2Jk_~&-VwiOUfD)%^3!=DcE_5SnWRJzKMj?>SasR@}$Wj zNi?kNm?B*(4S%Ea>TUVc*Ie}lLYYc^lscy`hYK9E{%|wc7KA%edqlOXg6-|w0beXpcpFo&* z>!~{e-5==^4=Lt+!(c>u%4NCY%r!q)QaI(9<@Kk5W1ZnoJ9#z=^UjzjI z-Q79R|J&fBQc@JxN7dURe-H>s_8kIT*Y}UB-{YPUp zrcMkBRbFX0V=n_14=+vDROJYcQzc2opaxrW-@O=5!+?RbCD_zVwxSB3y5_i}kK$C) z$lj!dM{5JgdHBk5B-<>*ZR+u1eCF{gQ(&T+YIVu)RW9=7kuq)UQgTAMCR1H)<66vg ziavI@SpngGSop5dd$d5UQ>d@Ql8JDw%yNn%U`M#wSuN)z(~v7-W6U*lSk7)P>J;mZ z%n&s=!y7PRI02y+jE3;+W9D$kYpx(A6@QYKS<*ZlX5^_nNErsV(uIC za&_ZAXi2#H;&f{r3QN|T5Tsk&FqUjlwuCEEe)+qhzTn%gJhZS@)oH4{Q1Y~%r!ZIA+^fVPfxSI+Pbf@C#UtdeStWDCqr#H&cun^f&el!!-Ka$ z1mv@q!;~b0bHvGdP(HrjjuzGczTo_zc^b~O&nC_KGX(@w>hYh#F+`t{NK4dDv8HFoBDjOu? z`uy8xWQqnxA0~fqGnk**KTFC!qRH-LPVMO%@4a3|c_nlBL-;=34b!B8qs9nQbX{Es z^^iU}q!CzuYfjX9;I!SZL4&d0TLGiUMk`pR}P;TPUY*$z_(X(5`9 zU}#VUv=~FV0qinrvpwknmqArj%?F(k?A2aU|%Ct}hhTlF)@SxqkD>Hcmt zZlN!VnwVN)kNQ9fteIatk*u7C2tHsqr|&0u+pa9DO7->gK)?b1snW+{Fj|7EbC!^F zEtWMggXX2yYWU#Y=JePpo za4CVDVGZ0FSSL^r_DKL}%Jkyxl^{Ly)$R=g=H` zXgm@5RaX%jF6{b4hr^}-x0i42(_~%D&m5_C`yZ9lbV}<{=R1&p{+AZPzXvkieKm9-L|tLY*>pXu_(D%)-43i-G}=d0(*lr$6Iycb{F ztBq^Azs^^j$JvK>llA&9O#alTeEe;<=?J0uuiNzsEHRE)(yv1}Du@t>86vB}4p<+C)B$=(@*%O)Q& zVWsVrl(EQq&iiasBoymeutN^!%CMv_3>@cSG0o9z=+jN2`I_BJrL~m*Hk+#?N|$vm zY}I^k~vccY4o+DH@JwFOwqE>S&Pg#gJwmlb5zAV;T1b zz|lU>LGyoa+jpYg&A9-#k4abQSuvMwO5^!%2hfBNuJAS$=_5(Jq-5g z#zph}LJJ=z9yR^rK!qlW6fXQd(VeD;y&5lZ_8Q+9w;n&s@=QGHz?J?RWvp7W%V_km z>YTksZ{6{7jnp<{J*9z`Jh90R<{FZHxbHUm$mP_8Ws5n6!Ag@TTPk$_6mD0;FNlGx zo_qmctJ_2OgltQKFtDm3gQ1Ofq07T(xcu;v$7k{m#}qTD4`Ad)GBqJOrDn1 zwXymtygIElgDqQhtRLG!Tyc=tE0ob3`lSUfh#N z5>AtYA3LV_o3?jJ_nRpa2Qu38Y~#bn?jBou$;K(#gdN%7s}!H=UXf6?&#T1+{s z8E979x2tSA%8-a|NkS5Y<}ek1Anc`N>BuBz{uf=y0CH^Z%c4?ym?!5F4mqC57N0NK zyz(%fWw5M9a@m>5Y7RWXZihN867cNy=X*^%+X%#3T|7SeQMMe%M)R>%<_;;c6xZcy zL~~pgO*C(FcA*K>I%)Eg3@MvUx1Jtr^^aPux!%N|ELc@c=`pi;*RP8*S~v@O3CtOBfX;Xxpe_!gXLEY8!i;Ua{ z!oPpHgngN)n~177os98_n2m_Rv^&HEv;SgVWdxC+?k}sd$wOB%kY;Kp*6#acyo$op zs3S>(y+#fPzJ+)7LbolosHjhtf^c9WqAh9x7o4nA}{qQ-fv>C7M?9 z>ET&y@AQznoyfh+kzp8&b?= z`K1Z^UOHT|T$LQJOxt?C*9!2dUMr#taT2roXkaI+dO0UjkOC_YHb#svb1AOEdgzb28GL+17g}Rg6{go z8OjkcH?i)g(xDnclAD;P(kt4TveTY|W{R!CIP%42dnS8uo%cQw^|O=8fz1>Z_e9mM zO1oSI&n=H=iuIZ-Mhi&bqF#1Id;m^TJPs@GwXl5GBcDe%z)t$M$6K4DGpX0J!0|Zk zCyD-UR;!(XIu%}=dQDKv4|2S4vUGLk3d?6W2b*leti5}6n(Tc{7hj@mR-D-WHzTTN zw_Vwdt~BwjaA15eGge$MR!{_C)=d9Dw-h{~iZc$7U`4^?26i;3e9+g9FR&X74A*}v zL%d;{RVRMl=(^wVzTEhby@4$3^E06E8zBn>%YruV!+T&JXETiVVzuA0g(jJeNE5SY zJ_f<)mO}WI8`5|MfCy)bcJ{A!V1|(G+EUQs`hkjqRK7mGOdIZDXjZ!Gs&&Nwu$;?G z;Iw#84GHxt2?PB#Y)I*iRKmoF5L+I8tb`;8snpjW2z8nN5$h!<-L09#qMBgXt{h!;Mm-n}F@)%%PX zllNtYzWzpU6gl%0I(l9j!YGcIqn^;>Aa4B{YY#!wiFuPbbqeb@^TIQ?LB&hv9X$cx z5&4QcC~4sC*8s$8eMm(kMwKp#iX3Y&0uj;!fxJ6lU#o0YeNc`TG+nxP?+w-=;9*Rx);3B6 zCpcnx%puI@_7MaG#-UIh!RO2h%D99F-d={N$QaO4e$#QWCfz6q#X z-yrFzv-+~IPh}3H+qJ-pZ+nnr_`}<3G6i_G4P|?rQQ>I8n()x;F45XtH7MB9{s?o| z$sqcc;;SzBKQ8>1vl2=)%gsr5gwU;)Z=X9_<-N39#&@%>qTEEO!fGQwe#)KyGXXrs zZZl2;pk+SOFw2V;#4jyx)so9`0Q`w^yZsbM^9pdmxjFb#R`K#RG3!0m@Z92^-0Gcd z`AM;f@`>4IelMvrZ=U~&yi2+t$FTtcfnseK!$MDO1NSHa?8cB2STP0C9J`ASx4-k$ z4nNg}0Q@n^;|;Dk8xr0Ugrrs=@c%=6&Vz@{tJQ-RWH7 zjhk&n5p!2{Nb!Z$n;G+-<&$-<_Xt-U@)!X+kPR3mLvLw3u-cNyD4 zM2=(SiOWezQZ<aM=Jz#Gx%s8--TrxC7&n2J2hvAE@1p~x&V%%7-wb6 zUIc41k@V4j+@oi=15=bH*3S^wj!xZd4@&H{GQ+w0u(PgRB%y{cWE`Sy+=kP(&tff8 zv}&M8ZEvg$G-tm2W`vvIFZ37wvAZfKXBBRYsuQYu11n!ZCQmZgtGBLqm)(=Jb{&OU zD{94x?&@(p;HkW>PF>o(Mw7fc@nW%BDEekwF{PgG_#nxyXtvnHrU5MXweC=l=G+43 zqX7>Mb$qXE?yzibcXYbK*`rQ8s00>+gx=8(OflC~y?4pDrE7iO2UZ=wS2geqNy-#U zIXFX&pdSOb;Z^fdf?@h=vwwkz{6^I0G-g+tEq<+ELbStJ&5m}?9g^AHt0jxIJ-6d$ z#I|@Nm}!^$+`S?yc0I37hsH&=Im)ryHXxi|wqufh+;gBKS(`BijJ`x0hdKDPJ|xGJT_L<67-}vx zg(}jh!0)CLYxwr}I!{A>Jp4$wGU*4pG)(X%*I(x5jO~JOKA|hV=WCeTYzep;ta|wI zFcVsv#TU5=;NOx**dg>pjG5)*5hNI#e_-^^c-kKZ08QT!>gCHTGV+Q=J#etjn>T!G zK0&|vR?ZME4sX>cmK6Jbi)u2Q59>2P=ntv8Cnu#V@;+ydkMlAD(?MCb!4HGqbB7^p zj+2+=-@3LAkTFW-W>c{97&Qj%R__VN~C z+C^`D_jk6fhpRIa_BHzj?z3xVi0= zsS^H;>;nEDi$d%4-inG zrq?2aS)*qVp_fd8miD0BMQkkWP>IHw@SjPZMeT0;&~B83g*W;i$txW)->YZ9fcLv*auEfK@l$}o-Rypyj> zWEVZ%^%cym*lp_Vt3p!HgQ!csb@pgPE_zNN#$-TYY$VJG3<*^Z%dft! zYesiStl;vWJAE(@HCpnX&%LE}=vYLy>qOdfw60a8I$?+3H{Rkxd7CrN4){6c?g%(U zTie%!ly8JhszmaLnJXHyP7<)px^5BXiTV($2V-+ zgijum7`ycND^qa5jqRReJUw+ATGFi{i*W~w3P0rp$p6ZOx0YAW5`v21Y~Aszul5T& z&b+t;ijj!oDgd~6ot~k~-;i`<4mLKkX9vYd2RtRqfLb|Sy_=A)j(D;vNo#J8YrHS# ziqIZ=`iiPOa`#WZn(e6TY{y@HYIVC}Lhi9=!eZJa%-`}n^Jph3h^rT%zjQ`GQRkXMa9MqMZ{)2~LSmeyq8hSgPSWl5_<0`CD*{HsV#=!WSmks*( zPpGxRuU0+GJBnoYx&c~XIaZ=kR>FZ+!%5|VC|!$?w;G{Z$6Z1!2Kh}}LPs8HOnfPM>d7C!Hw$Ic1^fl{!MnBQW0TojHw%X>=eg`8Wy}mTayiNi z_ExYor+Tt?#cMB$anNg_P|!bs*ggo*gPlpW8}WvbCRW>N}G$W-5%1TvTB2! zH1!p2sQQ=%PCI|7CTnkVo=kb&F1EPEybdgVn5;T|CfjakijY#LR$`g)F1FMJOWfWz z{|%O!@y}N^DHfTo+hn+ok3mhq3HkcX1a`jj-`p))RSPIwDr}(;GlCCrXG$mQpM-ig z<*}cymT=QYre`G>-o^=RVEhs=8Lwn_X*a%=86&4%gwAwsK!2VXsy1Z-yNcxQShd7N z`+sPA%iy@WBwN(7$dXEoC1z%3W@ct)CJQWPW@ct)W@gE<7%gVD@apUCdG}4>OBY>e*Z7S$mu(Q*%u1r7;6jzpJmc&AxjC^`v5qRgq{vQgrFIM7G;vb%9!UAitB* z5D5_BruGUiJWV4b%EU(UrQ8~N)+||^an@J{>B>&z#7Wi|iHiRTS6Jpm)5DChw;t!F zE(;CmnN&-W>qiqU>>HWjX7(j**2JkWtxR)_r^#fkwiPeO$PW#Yk2U~J!mu@D2rOaX z9ynxJA94g_{0cXKY5_z0co9Zn=fj3y*yqFdtKiM#z`4_$V#j|7uUT2n_#k>Y9$#TG zK0Xaz6Bt6n$)rOU(`+^S%`RR^<{f2l&)5@;SZn_39Nboq+nK$$L8;cKBJ~DwO~nQx zeS_&7nZht+HRfvoOVi6cH4$Xuvb(L(&u(_Rs-7Sq6b8)cO5zaI#_1jX7M)BdL$BkEwiZn;+BB_vFKgA`%rj-}jQ=s8 z<`TgG-OrC8@*zAW3UdwTUj!OYWnLDfs~;uwt9B*GAYnkm{R=#aDHa!Br(W0NJGb5! zICacKh~Zqq%4&yMQQ2u218?Ohk7)Q6H`m5Mo5f@saoz8g8X>XTbeYP5K9mLtCJ(HQ zUTtpk#QhgO?#SmlwY)7Pe)7_jv0|xmdivMkf4x}{wTXYg=l`zweExSe{pYdx|I!xp zZ`Jhwc{2$cd+WcK(4+({IZOeRkq^*BkwGlg#w9d5c<9t>f^PD_RAw7P|Hd$^%@7y= zf(cq61X52DZ`wm2{B{UqHclxxov^Oy`ypcwhZ*f7ywBwql)5xwKu+;BumbHTwO8F$ z5`k`V_abWWnJkOEOvcNqlB?a8s*c`7a&6YO;!}}!7Qq7#J2JpY-gJJJn!Q>nOzqs7uugrv0x1+H=zpn;jB5OO)Gd1tkC((TrzPz5R5d^LBS0K%xv(G@ zt%O_OE;P}dkfhd^c?eyiL|XUgkGSQSasok<_2M|uU(w)PCN9zNIR|+Dc_sN*H2fWt z|2Z0P|7Dz;xmf(aaQUCV%lvP@D`?vx^pAj2l95AJK;fy;Q(C1! zDO^(Im+x)XheSMu9F({E7W)%k5;b zKr29>;*WC+1A?B(UNj&f_=Gk4r@d-{a*$_bw;KZrN^fdjTcO zQYE($3!oRIJl&$;;Q3Yh!(7uHSy$xi6haNNLt~tlE~9m zf<5ecMovW2(f2KLjQo<|3p?xM^jop<`%wf}>K`TF*HrcF>yGdJ?NZ-?IL?Q<#0Y{I z0LF9f(B6?Iga?NtLPpy3pG=JzMVO*>Ot(Plg{do+JE&~NYKR}Y z?|HoOm7S{DUB2KV>vpJRzp1~Hx)`0o(`O1zO@zGDr37erc~ z{W&s+phE9QJ6nVMZ0dkWG{_;j0>(|lNhyJmU?29Kq!2^pBllokyWPe%2BKH5EX(;pd7|fUqtD>!Dq+7q$LAbB z5$33q{gTFE0!^7Rx!#fxt@=D#NPVi!v7lu4mNQ0Ab z{w1fEJMyY57IRA{H+oknEjM;2l9ru(EQRE~B1bl__S9m=eqWiBT|ngZha0b3Q(CW} zM(WOAn$8i2ZtM;=P4{7e?O2P^JEPzU4zGJ6R^q=NM@_@jE?H$>nEQoI~rAttJB}JHCS6;@hPSOX8wp z4C=(2tl|rnrZ~7&XqZdVpL>a6JM4E%l%rx<%q(pN(Kqah|ZCpRbG^ryMG3Ja& zQaUh=M9Jc&%nRD1v4yEpeUx!aQ(wIlnd04aki4L}#O%3Uc28QgiiG3Bw&b{yZUZVJ zyAs^x*3;ZPHZI0e;MsYCGnrt&Aapg334lMn2G1RNMICjOrb$4#zd^K z5eh}+p6P9Eir@(;eI?{dWsz+X&0EjAMc>HisSkwL0Jfgcvb+ukK>|x_r?$9XSM=5_ zZjUnnmNA|&ee5k-s348GGwSr~-bqKGnCRUGrrH`wG62`qvvJYP8oaqCnpZ zDwxL$!|pciv#! zNxr{?#wRL_D7e1AD)3khHo{6={Q1tbw=t>WSA}dXF?F;wjMDB4;4MT6pOX#R9gM*x zk%uNRSI;BPs+kRPjuS+`9oT!l`Z$saLQKoWP&&%e{^U_8>b?ejPfeNgM|iJtvKt-O zC%<@o+!O5JWP{I+VV9UJsTCxpkTw;8hMoHo8zT4?41Ej8EQO;vi(qvbyceh{t7;=@ z?WSw@Lw*{(qO!BFg&{0*Hw^WC0eX_4Ku1G9f{pkO2#_7ThYCT^-9VoENCjLQPXgd9 z!;Du~A_0(1*T3xPt6|$bjT+9*(@gBV4s;0%E`DaB+DDi7rfE49a-Yj=tXP8B4~&1W zg9C3U5SXQ~83hbG6T!~xyN~qpB%uqte%ccH2h+P^@}*?`M4ATn<;;&n5A%_>YTZ0R zI@|{gJck}+XTqkEqbgC`*y^EK>&^x1QNgFhVMHENZ16B7N*8ID05yjfVVCVRIWKzD zpOO^zZB*U%d2gxiXcbXaCsD$Z$gSbz_5?6Ly}`4n>J)>L>TW22mK)HbWFmqMUZs>@01XC!TIq-PJ z)%ZPmmEMnvS!>Gkv;Ux~j+L{ges2}M&yyCSXR3@5IBI%*-W)IgBVRCkeg?LV^Qf>{ zY8tFCeT^Zqvv=0tIJhmcG|m+uI>=D|U+dGM7kY9_Kv z`eG-1g<}}?zH^BTO&=Gc1)H5Z8~pV_371~NRG()9!3Ktc!M4UdQ_*yw=jJs=&k1=9 z4<{5w+^N^NlTJLRspu1$U1N!Lt`=fe+ER3~^l|na(l%B>!WJRs16n=$)RI=arq{`Q zLw-(0rbquOgjHRc8(f8Gh(W2RyVF8%N1o;#`v}5i#pT(7&eR!?IXXHK>5Ms=XjSS^ z=^kSO+OAy*8zc0a~M|2)ljjD7^gH_Gyd)oA%&;NX4P?NWZ^;P^RPi{9+Oq+L2I%=#OejP~N5F zgrW?c2J2tQy>q54ku5KxeLA4#OkE83l8hq9Fk}gE9TMB@5Qyyzz|F5TswJ+igqq38ID{AoB|qWWVlH_UY~Z@ft|WC0JL)0YQ>>K!uIBCm3Hs zUu5vAYJ3pVMG@&*K?Wx1ZCkJ?c?Ae!DQZRUS1XT@RBiMe{veFK*-8Zp?Dj8XZ5YQZ zp{`j(rS*Yp-;AN>Jg-n?nCuR1zKLynMf+gIpAMc!L6Wlzzzodx*vHGJ7m6S^riu-| zAOzL6Jt=Uu`DPckZx)-0A7FK@({XFw^CDJ}2A2PXg9$l(9+RAu+D?)3dj)kS#LWEm zoWV-m3*8Ql+oPEar{$i>ZsUaHl#!K+Xqo$HI78G)iR>AmDt^a%HF*5itmFMaQ~quF zIs-J;C1DZa+abLMZYGgCZ@6|_@Ik(SW0&gAQ4N2#dB4@sxb-n+<1;V9p^YOB=31N){L&Gf=i=f{me=1$-pjo^@?U;Uzjf+SwOO5%KyAb3gjSCeZUSjqlJ zcrHsj!M6j;wY=u)Jk4+!MJaUzm!n%0Vx_>@7p68j9+KyC4_wxq@oP z6;<25ZUqSv6{Xnnk7!T=`(A?_*X3NG6Z;VUOT8t1WEf_;;z)_SJ}94=hIA_ffl$gB z`6OY4Xl@E=qu>4x*3!UlS;7NW!PuF~do@}I@@)4;(j7cI2Bez(9)!#zNbnryyG!|? zp9&$sKyclrA*Jvy+d;2!|}ZCxD?fpLWxrEl;``Y!rY1&u$2K)oC^x1HVQ z5Y-Q9IYD(U488ROI@pP7=X9JQr=8Kwz**ZOviWN|eqkRup_@TAw?>%fZfTyOH#^;` z=JO)qn({r@d?y!*C`(K3MYk#g_g+ETx1zc!ft|Tg>A8>!z$6N)zih?NAJs1g? zfXAW9R}zC6AzMQg6+H|HIsU3Nbvv#X=(42qm`mHdC%Y?dIgk8G#ME`7;v?ZBL?^k` z(C1IE?aau*arox7IrI8wCSnUDau*BMqI2ZBJDBy;M}9Do)7HE-%pzI~lbu(5m)O>6 z(tH%ZLSUeh(-HH)UQ7trEx~wSNQA1?Oo8W+ zpxv)(9BHP)D2N(T?Fnk|?sHA00I9;XYf43n)#}U|E~~`t%b>^Py&@95;7YnzADE>jD7NQiN_5!qBo-cV1>>Ou?uQBbH1 zDuaf(Wk||2@+%nZr2+2u6Bb4G37O1G>Tb|YWLCv{oyZFYCv`^SQZwG+q1VU%2{e)z zDS46}VdN$I;Jny_`T7*DMDnL7T8VvX)=8O$qkI0E1()35rpKRAOeAEGGNh;gT5Cjz zdtM=+U?8Z(2o@A@@IlQ!aCMEzWVk`wlRvw%jsn=Afu6K~XDKSwWn9D`jPl~Gp?wRP zoNUKxzHEzD{>>#61Q07Aaog5+&=Qxg;u`Np@ymRvVXDCzX>ovwFgVO!w<;^Pr^OAl zH-5>st%JwBcDr0)QrU@c#P?1w?Db4LY>We1vm`XoNVB>;TlrCZkqEaMuINA=pIQm% zQ=fO51lNEY6_5$$IO2(4sl9a+EE^U+{xzb8B9Ju7JP2SQ%1}9bGU`B59Bkw`4XBbfGv^# zgRK#~IiUHsYyj^yjd1u{sP3k)_4_#KZo*t1&ed;aMhP&jPJkGGv~*%|X&twz;|}WMqb2=i)ZPq92`)JZ3#-?+lB`Yog2W zGjnfP2BF)4tUdFRTj+cYQFLj+@2H>{c}^(HM@&%+iS}6#KG?Wjr>VUycQZ?JnlR!B zHF#zY(YAZ7LAQkyDqe|UY<^d+h;|BhI*nMH!(53myp_8;82dh7;ORpNZoFYdwEIm4 zzd?=auFSIgpy8icK!tx>S^m0|lQ#Hn=i)42Y+(O+HAgJ)mrC}p zkA=)Ftc@K_Y$ZNru?B|LCjYV9ph{&+Zb2U9{ety~9F-J56jS8KD2Aj#Zs{umc5Vbc zEh^lT zeZIMhM+mAkqw_Rp|AQ*eG?U20wCDO5^aU`3)oivtdY~)PMwzm+|H^Rg9=e@i@BW-& z;}*vtsg>5eTK9@Z$DbP0PFrvCAgbQJYqQ5tE;dwRqHd5`h*m>r-H#<$eRwM2`9Nf1 zhoh%)tZQk&OA}3Jp>`QC6Mvb1Ak5udRs~{KsRA z9FKv^uYrrh9Bu;YpH^lIIk zH-w&C1t~}oG!{`>0;Q_s;61YsldQb)qZlBBlzhT-ncA#Xm)VbmF2Yu00KI^zIa{3v z>WzuiTDb#diZW^G9v&I2b!2$NsgUHP=GDM%cZ=jU_!>Pn(eH=@>+~rl<{LXKQo5cn zSw`mW(M}GNS5|Rn^C;D_YE1=%EesXfes1*xhXJglBQgzEA*7xBXx#UqA75gSPEa%F zgNJ8Iv}{kKy_m>26q8>-Z~f-WM9UHIUW82k!`S3V!t}#W>|>^KR>VvX+2+Jl_(-k_ zk{GETc+6Z?PywnowkAc?td~R|IXQ0 zC0tq|GhmGL95;0}Z#Hu_*}hj+Th^Q?me2)8^^t$tyLiI~n@&acmYND3gL zyn?Q}f=(cKS?|bHO^Tp@%biaM6h3JX=dZ8>osDpkFjlJ$vx0}DS3o>w{ zYE9TxQgnu0T3TbW&Y~EhOAPF^#g^I#8#E^t1L%)pAu%on2*bD5`rH(tYnRk12#uW+ zwv@UA?*@k_tr)9Y$RfYIfL#!Kf29MXOy)YSCA;7J6*7bmCDKUOSpQ(mXa|SFarcaU zgRcVQLBNY&w7wtWN;n$k3m}P+8jqG3lDB&9%VS64W})2O7~{4W@32IGNw9R>{jDd0 zwUEC-EG-h4haH7^?wVoXuIo>W8O+zk*!I|XTv2x#7Yg|*b15He`ZhRexBda%kWt8) zxHhg@>^i)n5^--2l^w#tU06Ovy*kVk;kBPXHk$=Z%Jbl4a|XH zA%t-1ToG=_rfiC2ShPRFMIF-1y?xbK8&v?Mtg0Dp!u0`p5mtp$IXRSo;TFJ^Qy8YC zO;EwA2y+D=6-^#5)fr;ZY?wS;!R7zMmDw^lRTVII`ho9%7t|-Y>h#p)DXVI2K_7SOvCmxokY1Ip0+FKc#k5(Q-I$e#W=EI1lu)t!w z$P?Y|Z&q2S{`hyA`o~BW)}8jC3@R*`{r8R`3XySz4xgw1HsIKOe-%Il2#eP$(&n5< z9ykoRhki_Utv{vgC^o3U$R_y^8xE{Q0L4hwq$OjM{zK_9kaL*fPmqnLZ8S;^J>bP_ z#_S5tzO(=5bsOY0Uijzq-suGdd>;8i0m|*L ztD`<}ST}|;eaQiyL}p_L;Q@_11-FZ`bT@R+240(6my6J2nFO}L-<+5iM(GCnbU7v? z@R+d6$equn1jqz6q>r~pC1|#9>5Rr7l@#|s-}5Qmd#_rTUI7$Tgt;oeY<#yue`^AZ z$GrL2w5b_GKkDY-?0zyqdd|w0Iw0<*Xr}`*(xWREtCRBh_+HStpZQ2bcsZ%L%m>^E zMbVq^W2eU9iuTwf+~8$r&m=rDpm=;Y`-|Z9gJ=e!gC6yB5I!Qo1|W&I=Bxo-cgjLD zCWUqWN_WMG5F)$G)BLz}i@y<1crbr!2iL~e{~yrx?j%**!0=WbBV zqVRXz)l{KfC>5Yc1t`%qTsxadYk~0Xekwii9pN?bxeA*kCyTHc^kU;4yqAB{Ci6}e|R$r3nYV{CXt}f8)6J^d!$nB`d6`G`- ziZq8+v?sD|nds%MeZFu(eg6Sa9J~h@9;RZorghmN;x_tGSWlUQCBru$IvMMBk|4*Wv%K&aXf}JudGl1 zgp>dZxVn>1tfe-T%ekj6|7`MM3ys#3#!CuK&mqLLw=FpH2oiD)qcjbBH8M3rCTl|Gr*n(; zqidL+IR~xY@y6D{yD3K9;*IOsbn-b@ehtJzpH2v46;IIm1xNg5eb1do-%WKFx_kHN z#Bp=0w^?PUtrD@?LDJT@v#c50RZmJk|AnO8%1w<13H`*MS%x*FVDn|3-sQ{O< zM+zri4TperEmyYKFa~WoT|Gu7xyj%?v00@1kdx4zag4Z&m6ztFx{c-~I@0_@*34!r zNS+-0oL90@!TCZGXeORm<^c{T--dSYm`gCZ+$Ds7hanM#9}ISrV1vC#hlbilq+4h^ zmH@H6(YqTCCe|T2qiw}lo6UzpXdI1q#facTJnYcAzy-F>?4ALvX!1WsA+ihLi0i!( z>P%N(qp_a8okFnE+vy|YF;&XAbIuU!s1W{?0!)2O@wCp$a_c~VnkWO5gE(SfAT0Yc zhd4mV9L9aazC&2`dtrnRtcjX%Y<4pgN;~Ksys+pzdf2kB7J`ZtyunbcJtC;-FkM$J zcu3w62^Wd#$()hBF`|~r#3y*CdB9>WAC;xx`6W^H2)qP&VCoWZ1)ylaTbvPu%sBXa zj0oCwhHLOQgC)&{G%8J^0;333aEXSlKpBs7Vr6-9^Af@2;y`DyzMv86gOre50h(g? zC-ji5SFwk>MJ@;{2eUg#mFVup1U_2qI+{;_*}z7u=c{{@-LGOQQLvq#{{Es6p)lHxYz0Qpzg3 z(C~&1I~Jp2tzMxCRcxh2h)=|u*l|V-xSwP2$aXlKGVs^ZuZlU`G88Ikc6;SswDK6U zI>mFDNYR3?Hncn6k3PQsb-uL!A}77_317DVX(sQV&zJu_rs022PKcS<{$+sj$v3DP zI9mKgFNnB1e@;@!JKDKg{KxEGm5SA02TLB9#955O8$}dEu9Gs zz+1E{`4bq-)9li1Lp}*%nAJ`{`CT{gjbGbh^4Esa%a(MwvANA~c;b!4PobtyxsQVq$`wN#s{ zVhqT4Jb)Yaf#=7b3>y<1{i{3eSM1A798z2OMjKP%g~u8lhS^-}Oo69Sh=Z-a)eYkf z8gGL!bTR-Y3%2P@$|TewH3zPW>udCitmn#P+6%R8uru+e`VG?Krlnjf*&FEVh^N^d zW)dhia|CA=Yon$dZB^^iYFY};?G7Tr5p1fO)(nmB=hH}Tl~$tTBoTRkDD@zclh`&{ z9{?MynUUEj*}sjC1X9`2Ta!MCY2m?0eIZux2)M;g8rS^l+m?-{MOL=Y6<)?Ym)v4k zk?irR!wkaHL{*pX&g7+X*O8}E%~3J7vPTt(Elwae!!_*(#13T=Y=>!H)A7gFoy4GB ziUGlvi{_<6js8H`hSUZ67;x|iOk6{W0Y)TD)!K3c8O>91d3R;-8s<*X_`KswN9M+S z2|*SH>W>jYgHUY%fzSxwaBN7c4!u58Cg z_c}I9#SFZIuV?hrxvI}P;XyY zR^Py>pHWG2EL8kEn3EIWbN6tg((NkD`H7~aRgHaP1%Z+lw$ZqLE{6*3gi%C^_xp&H zslW58KyR;5)b4>Vh{L`y8`|u6`ckKeZ)Ly7I>2MbGR9cHJ@F#yaZClE|GANeRvq%w zpznt~P?T#*AE}y?R}(sV+I~w5we$xG4l@Qjze7D4YNaC;1tGjrVhAWP^!UnfjGR5ND;Xs2Ef^$j6Xd-{Uh!)Cid|`d#*9xK8eiUmKYi_1 z_odsZ`^p_nH*tl!@>YKKgC>&f>Yl#a&+cGP>!}&Ah4_0bX~&b%OHcTnpZy2MFdBE- z%#PU2^WInPpb_J9GQmeB4NuO%oSyodpK)H}>^w*`{Ex@Zzp0gdb%?M}w&*XvXBuBTRtN_=NB7N2(Mb&l!;Dm8y zWdEdarCGyo-1`6Rqra00A6#MH}uuq*l%3R_`whTzHrxF)W)2E0CgnndXi4U!BGIyD$ zM*bKuwzV!4_9;PDE6o~w(2*Usi6}Y8ZJ7&ubY(I(hPAC#YVJ@lP*J({`_-r3xZIR5 zXUetrQ>OU)v9ABdw)m_W^BP4(Q%lEy4!;7CJ7F;bGhdrH>X`q^DE=NPiJvxkeTa%8EDx~!XX3#!|(z+F!9Q>{C|}_O?1a?D#WVyYIE`&9f(2Jz>ooUCzFUuK zdRfq}zv4_A%#YQ~^j1MbIH2jF5DI(r_tz~+#FVj3DUoI?)=}i5!uo&lR#xZYxGL~k zAb7m$+!tYx9qR`+&PI$+zu|62DXF+VW6y%<->a#6i~fwk23HG_lbCGi!}k1Ggc~}M zw$0s@rd6nrH8Yfza1`#hk+tKrwQ2gTKbet>M2EgCzQ(V)CfTAHBCQ<^%J{k<45KM? zmS}*kYiQU4uwgvw6M=XylILsF@w7ROO{%tTd>HXa;K5ERivO~TcdT~$5Id&nR z{9w3N?3CWAl(;YnI@;HDFU;UH;sKK>)GM;ziD-YJbaK@qywM2y&0({|!V04lkg#e; z=0OpTy434Ls@p5!*udx@Pf9D$5yrMN6?~I6Uh@?iMmA@Qw0cmbcw9+92v`hV<|Py) zqmnEA(@aT5X+efX2wZxd+?YuvFE4yw!@3knDXCl|INhe4u{ek_#UMJ}s{DIAZw>#d z^6k=BWV;bWrK}>fboT<|1swN^JhZfOf2tE}6^mUQcQSaTU-E~kmUWu_R{DkoErkoR zn&p0BZ1R{YE#a1MDkw$C<)LNeBFi}C!^#tjj?J+NNnpsH4t06?!I}o;N#Sk->FB6B ztV~2hhGruml)ElICo*GPd6IAzOUm#FRs$4Kq2E$fSo&1De^81Lso6C<*W{^EC?84> zF&wK=$fQgE>Wq{Q$iP{4X-7@|-Cf}rQJN6G^2=S6de>BMNx5cb-8o*&NcIzD`WaXk z&yhDGN{UxHY+O(6((0m;Qt(~cp&WXjpong+l^O0BXJOL)p?MIl1)0?Xysg*T)*3~JX#`KceCCeW2D62D+JW_J!$mPOP&AH`IXrE-hcfu<;Qq?#!%> z+3s9KYRnCbxyf!F?&&UVv2`&ST8raABb}L+D#M?ZAwp(@kasNweopM^uk-syWG~on z>sj8-COOvbcL^u2dxqE_cNDuD7PdQmtx|RztGhDoQi$MxXhbP5qm-qA2V8B8 zsPP$M4-kJ{3Mp$1Xb8fk*gabG8Kv|MdP5;&Qn(QEcVg-=%(GJOs!GDWN-Vc1gmUCT z1_tse`t$Sodttnd#@ORVKfPGUm*SZg7UL}tlF@f{c_1)B&?nsXKbREx3835;u-CH2 zz>u7i$*<}%g=&z|cVsb6$mVwPI7SM_5PbZY1P-pxcM43Nj=UlsT3UdG8hp8Dc0~@a z1vbq2em5t6wo#W(u{>7hxwgj7x8TIbx4x6cgCJl62$I71Pge6Q1|$iv6(HvZqKfws ztP&xZ4D&Az05cGyky1)VXgJP0QJEInbDWUyaV2l-#*5yy~q8yd(|+gVi?M_5fvjdJ{%s zAFI6o9`QW6#U6R0y_#494|L$FG2i&|v&CFms{&78191{jI~ivH;$8LHjn@YY(%z5S zfy&FSJ9Lhnz8@>`m(Z;LeAzB{QYdkKU@u9zs&QJ|)unYDJ+?&$^$L zJoR|8NB$G?{`q{B@^Un|zS&*ufhKWaCa^LS=IQQO@ubKh0DezoBTr=NW>hpufo?i` zwnc%QPo&;OUrN>7;9*_KwjgGu+obb|s6ZGUE`oNkB%!6wtJ7GdIYCrXib2G-sMChG zaq$VS_aQkQF>irotixi>lYD<#;dhU_x;w*W60BHgqJ$%*;#Qgp@>G91ndPvS=OelF zZT;6IFEO(;Hq#9_(ejtN`)&i+~{%Z>Amy))iiSrzb_+vHq8D1a`5Nhi*)`X+>}k+|D!Gbhj7*< zisw_)h7x#aFi{}I>dp!SznwQ|P4Z3lnqla*b2Em_ z7gQBm(m+C9RFLM8f7H$764nZxbH-@;hkf5>U;z4#hhQC@7LVmcBa=3`T^7Z+({em7 zBC$0n11u+pi?f$G-669&fzfxmjJ_MYh}u8AS+rHm1SANiq4|OIVn{e>$Y$byd-cpL z->$UJj^fwn^Ixkh=>J zFDKRC$}A(4nYoF}sef@GC$y&j8g)hb0Rt62=nubLfUuk(z5$jPH_Xf1J+t@nGBcz1 zCELgjs8*{X^l7KPKG3Xp0qKsgZQv^gXkwVj;2Cq;FjJSC`IG7+aVA{; zt}y+-vTF*I?xp>k=pVJ5o#~pZR z91N7xCL9)Q+pnePxNa>?RCu5I0LD?`-HjUWCfzmtq;ulE)*Z|&rCv@Zb|+frfBecU z#62tgz{CnYG;^QkTYU7w8t-r zR{rJ%d_2WLRh}>ft(;mkt0}^rt%SG19k&WutZG+vr^RorF~tGW&7o^_vK0M8hVWQC^ zE+3tlZb3Z;FUx;OtAu<=PvL#n&*hmDvzE;KiSZz}HL$`ys=!g1Nqse7ap_BBmsJ9_oBbczR z=h}FN(0!&R^$$bm^@TU#Zm1RYRQj_xQoqjE~Wk7=M6 zyGK(t__E`mCLE&6hCiiERmje%OFZ>GfAZKb64<-VoP?x6bhWD=Xu-vbwl>n9&_ zrFLFhLTH1Sr97SW{m_jE8A8mJ2p$5C*7hZ?jd+sIoEpn>00*&27KhI z*HhZYuKJ!zX{DcSJTiLc4iZ6M)Dn1#oF0=ZVUfIUr(ZJ4Q^M2m`W=MHpv(>WG}7+p z_Ae0Y2h4~wneh(JA6z>u^RVm0rWxzn!&QqzYZL>}27cHqFPPOuHg@u+zkL3tLR2k< zM56svAyWKH72^LDJ~ID37PFN9K8KMEp(r?Ok686hmz3R+)cc~V>Z)rsn`8gyvflHJlpNGCInrv-;qvOIuOV}rP{SyUS33lxOf*lpX^E*^;H9dB z#O~CqF=d4xuNiKD7u6a-0`%oubW&bOMgU)BN40lLR|tzL<^{Am7wL5(mVq}Oe`c*S zE+e;pxzYr*v|)+TzO3&w%|5KlfQUdbNg9y?vv$D{`%ev14E7_pU_g*0EYl4F3|=Qq z6Wj35=1Ak_zy6B4Jju1{ewZ>TbL?|VVq&so^@pX~gsWtg!9}1@XtY?%sngeS zb;n?!VnSW@`WqD`?M^*3Yz5;_Wo`&mpQD()GWT#Z#-A$O=z+gKrj$e^p5(GG@x<18 zNnLDjboFP2r-OyE^gAnY73(k@eadWC-~=ziBbF0Hk*a2|qFXj#*POW{4BqrM$5xud zNJhou70-Xc09#<53t+zXI9i|=KBCtU(S#AE znEdgT%1d-6B$P?8#~Wc`4_0&xjdHLbRXYHK0;qjS*-7R~_ck->8q4X|$h0hQdEo`= zO%|(G*e_NaxhU`q_J%{ww=@!n&J<^=0;tCv{-q_&L=~I%Ig?w$UW>jKAF9nT{Di@z|TSR;Gj^OydX8OyFEvz?!r@%}Gw zssFDsgXKR?jxus60tntyw3F=sm`dMWGQyLyo4Fso7EzD_QKkf>2+~)JfOG59*{uvZeF<^xm8RC6EF^`Ip(%Xqj*Yls#7x*u3b&5kk?J7fvUkT3 zqz_tulVt@UC`NyYrc_6IICTPwhB;P-eV&fxpFYMGp7X`-{b|XugzR0deQT=k z5#pij$vPwSxJ`NypnXX@F)EZ=Q8>YpYOT>|FUmC!k9xszGGx1Kr}NV~YnWl@J%a;DtwtjH|hnGhS?Z^9U+JTWcYT*T0? zs31c)MvNA>-N)<}!2AV5MWHa_|3%q12T9s5Sx;lywykN~wr$(CZQGc(ZA{y?ZQK0% zz4z{J?2X+w_N%Cfs`{fMDzY-qFY|d$p5qpnAXu?=-*-HZ(6~yv!l|J^z$7+iBjG9! z6EA1v72+Hg2q_vFrP*BTL#&JDTx132sbrWa8|O~rk*gV^NB^o*GYB)$#t(UsgMc01 zLxb&>Noj=#lCjm@8PDJg?+*Kd=MjSOqQ?V}U($DVswRn)q9gzKW2N-P0Lrr$Ep3)= z^r6Q93Ogz0Rv)MGFrw}WY#CItCWh@)@ypon^p6-j)X}ZRcnWLGN#3-6Pn{xc=X>AH z9e8vhU}Yer+oF&rfySVbW{>M8a};^C@(c7|-Gnf7ikJ9zo}T<|H}NgE^gp`}IeyP{ zG=Hf#{59PDYrd7wMqUhZyq@x3NUOIq)Xjyz=EL@blH!XC zcS8*C6R{*Pxi$&wNJmR{e*wj$v@T!L%|F%?j!Yku6K*AwdYQor=_C{{On~q|1u9wd zI4o)|LS+%>334RrCgCv-QR`phQ(W+N%177Gg*ZnKh{hfjq90SLka!VB=s6?p;#`K5 z?D2;pSA@9wE{kvo`d7lOxr&-oB|r1oSkr$qfCgwR4 zxRXy1w)g_pO$gs8hTw)>v~1fFnnTA)*uY^yTr9}DhqORblC`s*`OB7WS*D^+$EUW@*iy+-GB(97 zXb~f~8lg8!WjNb=)A8jWWX^Sp4MD5DD$1LdHh zd0?ldB76{`Wc;GT;BpS;1YkF{i4(P|O$8e`@05~)Q6!%~z9MKkU-UDnNZ}M`NwU(s zIqoJd$1S@)Uf+?siHsx2cAHRKC{;_+(VBF-8)^OJptl-DBh#)WBQsKUe*}CeisLNt z^N6|j%7(hd2Z!f2cOI~OaM7$F*X?k5P`=ZekJGD4@l-JW+&Z8O(1_U$K9WEl)OHw+ zP$=zZeo`E7T@npy<{vaal!*J;_$z*t72Sa!f@!Koc>*_Q%fU6Nr$h)dGglEczDu-u z$*p6zIwUahOl~`*+?(>=1(NZ85>43Qs6=wk4T=B){k5#`i(+9{yW1r()KFhPKDYSb zB#8UvkLK2{A3^hOovEl!A>GCP$QDe9Xqn*g&p4=A)e< zr{sRY%yZn%GTsU1EoIWsZo=^mks_@>(LTkvQqJn~OpkbHZ`-SDs+=%^q1&Q_KBz}5 z5DI!Ywcy%Xe??L`WftMHrM|%KxEI-M8#gKUP&vjakyM2C4Y4ZzbF`9K=wNmH21D|{ zJ+%MwWBVU1*#0Ll6f`o{bFy^&pRauteh=>md`MhCiAhFO%j6I3O0`SQLvvszBf-M2Mur7U}Oj*=C{Dt;g_o*_His zIU75e(n2^PI+~Q}Au!e)iQ0(?OPkS?H_ST3Q}F9KIEiZfX$WT`LAi3-J5c3~M{pnA zmJh_!U(D$9w?xY}+G$qiBL6D^ks4arQYtIt6EaIYr=1 zxZPB4)*dJ9zk1F`pqVYXHn}${wry~>t`g~xOkPenJQSnTK%G_b zRN63yzg0`merf!s5hI#U9-okHIH@j*Ef%K1So%dRf9R_po~QKzp|S zEM#Tt=q6_HAO1{9@=`W)yl`G;tacXi2($8?z=`sBmEyp)sQHSn5G{gIa7F zY-hupj3++3y*~?Zw)=x{gHjtSk&>`x1OC`-jc2$qJYMk}@%+HjT@nFbytIVd_-TD_M}8N=PEoH8ZpI7AfyWoHM`&C74(WD^Pmx3f>Ii-d39!F zHrc>igj%Rtq(2cPkRlFJ|HBI2I!z+}Y!*R^Xf-ctpCCHY7q%+`{3Kq}t7uEd)PWc?Sev}sK-2ORh6bw?+tjYb zK>~@!jPi>NiN1mcPTo)$_C?nOC!5aKk0k~7%4m(**_dYdTuBk?Q;$;&@I`thX^Gl@ zs&a&!{F;*y9j2<&EZCjdl*nYKQ&2xg=LR^a-+7;niNu?K5UJjlza9 z_q|nirQ1E1bG!r2W#znDa(Of$XgUvieLS4bau?+nWm^W6g3rA+Kr0Z1U8#|gYjhBD$X0|OIC(pi*X~MrvDDM9s zQ2Ptb{!*n=vDdTx_Wt_U#ICR<^Oxl=8g9xt6dUzRH`Q2Kw@}!Rk59 zPFyKiE`~PM*CM5I`Kiyko{ur~lh!omp?-rQ85wCGhZ(pWZ+k~eHa{+Pi3NQf=1TTF zMR)mqBk-y9esv%GkP3d4E$1>q+m*IPz-P$7pwmPw8n4)t>%}M(lsBItE*$@rpfPZmgrs4tB`0!q+Z|dk+#5|VONw2jcGs3Vn0!n`&mY=1?X7Sia4R#^Q z{OdX>uD!h~?N}`NSAF(qo-A++k2CyONXaTScq>}^5Ys5F(H)hAV=^segEGgOJ(&=B zyRfV+%Ub+#jbdG{=uLv_56 zr%eUD9UMi#&1^SkJWR#4&RlD`8y(gT_~GHVo)X8~sTt$B1gS)2{{&$@52bXi+D0Bf z`;g(+J~E(u-acGXhzF%8r%UbeTC<+)TdTPh2PklWmuN9Dgp6+Go`fM2JoaE!-E<)2 zw@DfjTm}N|H-kFl0-Ff6;I6m@$rxUb5KOOLjeEQ&jseJsI+!~$a@`r2c;W0^rowGQ@^jN!pFdg;v5(GN8 z8v5;B8JJSOgA}N%tc7&SF{;vVdL`sfo^ZX0^p%S9K~uO}F-(=?k(g!w7TEi=!bGT% z*PBgdAy zFMkS{XCYJDZ2DnF%1>tv5YqF@81UZ^-YPseI5?x)`TNdRrx!hj;@Mz&RHmP6QA+yU z+pj%3pftC?bV2%$K&j}X&8kFbN9`ip5#-+ioIigFdLP0Tcpp&*v9QAA#q2H7Uc;eu z_OM+Ju5O|Yt?_oumLwJ=tNOn{?#*T%-O9wyZXw<`>Q^9=OPqSH}G+k9$mvsG917m>U6h9au3x}?;^|{h2G#4u|j&r>m|9oL10B{!Rk;xu zuV0>=*Oj`%sw(exuQ>YaGQdV29D&1kfw%uH zx$=MYl=~k#-+vtnoZz~N0}EFZ=Z9+_w+E|4L=ijk(Zt|^8sIED;Uoay{ypT>BO-Nm z=SA%qz!f49s5nAraszL|6za7#0DEecO^Yq=CZ_f4KH<6wj z)6#6BS!^~xj2Am^yGU~Ye9dmRz)@;^J3B4%f|3P*H7!D+C3QlG zDrRy=pL#0i2;t7DmX~rrMyO4d^0Y;@H%FqiQ4)1*03usQh6uHoetm8|kB`xQrk|{0 zf03M8`Y51capx+JO{D_fWIw!7A1gq8=x);R2UWUibst+lhaJkou0%Sk2IA52G&%Ee zja=p!@Dl?xi+P?>2+YhO0*Q~!tYA9~pY}>_n6E@;v4E=OqM&R@=yESEelVQ#PEh*s ze6EORS{Dl)U|eR&2^9FwM}79xk!GfB=V z7D|jmeD`-m8ZrYOF5=%>qHX_S43QL>WtCXgvLP&f6gywoLP%-_Bi`|*B z)Ot~$fU9aqO8-S$i@^HGfL3~oMuM!M_w zogtEaoU(y@sB=1NFAda~h(GN81Blc&*i}!h{oa?6?Sj=3ShisS>8`WHudX8snw%F1 zQ`fU54tiy-(Gf>!##=`Cu6(F8;a4ZS#C8Ug{!^Acg$f-NVOM9iqVK$@)uFhD;kaSA z4mXG-gECAvWz^mz-jltz7G<-Y2FT zKbV}buG^t4#+zJe0=IgS&**LKwnB!c%1$OMe%ez3dcdy#x&q+DI8e#VSmtHZX? zuKKx1yu_*p5x~zVK8KUVRP^x5@W6H;D-!+{1c!t!3behS7UPv+0O|k@0s&0T|Ah~=e_pnY*{^T?Prrs4vuv)X&G1O9R8m*`A!RkD;d0~I@AOcz>y z>El*l;gbQ-pH@3nXuW6_AHwxq6(~QIy3~!Oa(`YP@_G#8o`u7`It``sJduIjRIuH> z;9>hcM&o@9j58OhGrFx;sp6^5!G+#-&e6981Ftsz!U|`4X@;x9vGAJ4HLo^{76Qz5 z=7x%48EX1z2DrF(mjQG%R~(ShKjz&_lMf@@ys_1~9QlxHT+(yS91uv25CZYqju-+~ z3kJNZk6r$5Wz~Ss5ARY*`%*E&J%MZ1*yJdz@evtjVc=T6OV4iyVTD5K;lL71*w6ho zhE15fdhuRWqPB#5!n~H;)X0F)f`e~jjfWIEA(DDIR&Z7u%4$a?mq$Hbr#=k_mL{d8 z!JHn)L^&!sON*ZgXVpFje+D+)nIr%=&o-K!iJ{@Hk8 z>?$FpwKT|EzG}aUKp-t`L5Z-=zF=)B!Pq1%aW6~Q+(-yVRC^B52+zzW(W@2yPHN1n zZPhdwYR?DAxtK2SZ3B$}HBkC{T11zUUku{l%)q!GSD}fT6eA*#C1d=K=zQSQ^mn7$ z!yHup94`J?I7yhZLD4LpiDtMg!Z=Uba+?d(`2JGQkx zwdsulheOMewnozYdhwwvAWPU6P#~7!$tJ(E(bD>|r=e;O)63J7X&`HaR6VhJwB$}Jjvub?_0)-oz9!HyvfqR+WCm6$>8xvZIK+UCwHw2ZmL|CzmP@rVC zY}CHcaF_it_QDM2Na!P#EwWdK(g$wg>3%Uotem4@js!=Zr%ZRF__V9lw^$&y0@YV$ zcZpIgDa^~%HjsRlhWW_JN~?a8^pRkwHpFp4A2pL$^>S_W57Dvlk@s4pU}*9IqQx4O z>4P8~Q1LMvBKwd9O!|M6vL+j_!F-TfwV$Kt z^LHAB!8-#pjkU2>7~Sz-`zuq@k-yEedjQHX zH>X!>(M5L-n&foMXHQ!Sw*ggl7%$G`PEM2o--#)HR)$S6-rzodh;a4m!i9p#`LJY_ z&$CR=(CVnFN>b=ACP1Jp^y^8ztCTif=&M-QJvZ)~A{hO|5&#Ef1ndxI8$cKMnR@9P zf!^&KXo?|s(xQ;JYsxG;7m~+r7Mq&c3T&a~^X-ROr71Xdg?ThzS{UA)YY6d|R;&0g zgw`}trvSmK$??k^`SY>N+~H*J!OxSvya1^E@+bxRo_Eu45yf()U550>(iQf;xa0mF zg%_h8(N$>PzF1ONvE>F+zzF>7c%^Xp^;c$kCjgiTEO?4*v1iBueDNWz8N-mi=D?+! z9hIk}v;iP{y=+E3(bAlF2p@}b^r+}8dLxKpOvRSNCXfq34I3C2A$6%S9n|~w&Jn2b z?(%DMAer8@{a5AG9%}{^)51+aO2!&6E)bOb5JqAt1hdZP^=<@8CR?;*bk)hA6cgB^ zU0`bR78_u8=$oI&tnm?Y?=L*oQHT0a*{0h=&tZN(Jx|c@#Gj+xA=i2WSaG_d{b|8S z^5(O8qNG0ivVK0jJQnf{1rlu|t;S>BU|gk$a`gq+!Q)B6elmLu!Q*|f&}mabew6cu zarj(yskhVu$=f5rlu3PLn(S>*Xmyc`dz74N2?t;XAXEBQSNfvWSk}XcLLnAlAnRs4_H|X{Roo2)0 z!I{5I&~FXh!tqV+OsIS&i-yBj@IAzGKaC(s()Vs~D`EXr9G z&?bFpwvP@hYg{}9m#l)P3r5&l7$&^QfzDIW5+^q?Abb{4&7n{!%3@t zJ628Zi_XVB+|DbatD!(W5mn)270}g2OP*J1hTmHpm{rgQS{%ggEtPh>nFU+MMs+yM z-Be@^w#P+(Li3CZj)>2qJr3{rv1X}MFz%DPu?G(e$ z#9Hj58&c1MiL@+cH9TN5eq>Z!DSUSM@mzH*cE4SF-(~~N^5bZk3^N!-kSt-|QhJ`a zme2>J_>9Dwj5!QX8BLM7je-bdQ+x!k4{vh;1$YQF)zzB!#Xy;jA_uPr*29xWC%d56 zWsT#Q)rK@K_q98s(c?`q>>D?^x$J5o8JTd6B=a^fQ7KhGhA{sm&`@^Hh|3nm6Rrtx zMJ;p)UMB!=u7Sdal{?1Ex*ZFSw1rQi6L5xST(KI)X;n&CgL3P95BKvxGq+22TwWYf z%xP?iK%k7)zsvabYJ(}2_HwM+;@p5w6N`#*OW;CHHsr-Z|Y(6S} zXw)s4J@`Gm#HwtM^dAB+Fw?eiK)DfP&Xw;kR4gu`-JaPOlT;tPvP*gQb$9KF3<+GS zb(}n;cl5-vjAoE^(eJYyOaylX5u2wZrunCJaL(;l26sqpS`TyVXQg+H#k!1nK)F?S z!0O%C+T#E@$jpy25<72xzJD4G z`NhIDcm~NoQCq4jr8R$eWf;P1eB~ARB0#c4KgIM8xPjh6E56NyBk&Pa4x_KcuO{ybde;VZw;_Wh!s2_(b*(QHnlXMG)`gk zgO>kAmqiwg6z6RcT(4j53IT2q=0KicBC+BmG|;1BU;w~bLBTO18*`y;T@uhBKtK>Ha-05Qi(BshaYN-CF(kTSb zo;BG6&N4$y3c-Uno_c=+&EgO&RdKE@37i#PbGltfo&BC$!9Kah#0^#b)RL$+ckOex?^ zv_S1>S5Hj1CW1d-D_r#15%KgqN8>}Qm<0^+OC5fWa9!E0&L%@gq%Y3Xn3w3xYi>1Y zCU}rVaZeCYVb9PG*VQtP?>0Hh^`T3=so1ElB!13kCt@yslPWzqTojMh46|F*N0+PA z+z-GuF~4R1XbL#d9hS zS-p~D>xZkr`&FMZxg{`UMA<5g#4tYa!v!kGa7|zxQgJE9m-Xu+F5rdfHjqewU>o^g z*GxV27jMoJDW0HTo8$$%QA#<4MjUV&bsj+Kn&aF9EX7HTb&|N_rn$_(<|wgc&ID2&Ij?#t3;H)1r$02S zCI=5H9FPmlbw0M+=wx$llTyUo7^GGH2ny!f7L~erZSPd^k_Ko>@~?!kZ?4VTHMdb=rh?x ztfK|yJ_%h>H3w`<3D{it+kieR8B@kPv4Bfh{m(lhNGH8sAJ;F9Si0Y1lVg=4cguNE zGqyDp##OftkqJ0H#93_=DAEomVis-kL0ie^D0FU^6Q+sL8NY4)!WS28vKIvviF!cm zNb$$9^GHV!){3<=VGGO;Aq}EOU{{F-kvm`W<%nqD0hewBnw$o7OgqzTu z3Ro1nr}yb~Rdbfpic=Q=GpMM*kGffmA--5}sHmW%ek5TYv6BkcxU}Y3)80eO!f4%nXybI>xBe~xh?A8w&RPV2#}O)=SCmP`#yi z!OwzsI**bnu?2ES+;w--{sVHMgW$fTZMjOKMscC9Msnf6`J!&^*I|j1WOz@$_m3~=%~P&G zX{OM$)sRCF%X9!$jGVB@$-%2QUhQJ&vZ0)X;<3qV2qj&N_w#c1kvTn1^h z<)-wl?nY?&ak@ib>R-*zU>Wi)iDv05p@(?xKVkdRu@^?&i@34{qZ4Fl8`z(Hm7VI< zHt&_@XOjW3gHU5xO?nA^*lO^GLRdnWI@A2)4;*}6`MzHm(hIg2Gn2dfj;|Sh3}!ep z36Ch|7bW5Z$HS}(c4$&Q2HJpG<*b>a3u2zCr7#?sXg_SJTDI9&A2EqUmlU?5Xc4UC z!8A%D>)@12M7wty)+jkwHtU0nu89t(uel(81!v~7+sOFsHpE1^LQFQHPLT%woT}pV zQ>|xdRag1r5`cIq2N$eXA0Id-w<`!SN|TL3IRh-TU05sN*k8K;=eoLrUTJYeJOImY{2Sz#f}4iqzG)U^fAhV}r>kr5LS z?eH7L!52j}1uN-Sogk?PiDM-^YE|P~cT#ONt!PqS`SxBdmn2 z#CW;W#Y&l5c1~QfLu@3VQI~k+ZbqG77b&z}&j~|ep4F6AUOgel>)OQNO05)hG&zeT zY9oy$&6P4XH|caOI`jRH*eAEoUpR3)&_v?PIVQIiCz%&ku`(vMxf&Bnwa!Pi$GjKm zaHOVsw^y&28T~nO8 z0dWVi?C@Npu+{1qz;}q9e^nxkNC|$$h`leyt=Tb|GIwdH3ZpG=>g#CCY_`tI@BDq=$4a(Z2#aWf?q*)e}M!=hFTS5&FH3&r9WGD zEYkms=u06l_t-ffnsf7|z7?}3iLgm$I|~ z%0)$qs8I<{oxMGA!;U`7jNpFN6F|I`yiRd?)Q6X#hyzX6H5aH{&$i8IAL3dnYaed@s3D@dt$RKrRe_uTa65PqG) z;_lDOJo^uohn@wh&3EmVqNZ*QxR7cNm|kgsO@Ho|WHBc#tj?VYqc%6lP}@bmY8yLO z2hxXL=*FOhO@5&v@;WaTWwt$A1tnb1`a;o6wZNRm-U+*wApS0`&0d5SCYWXwJ*>+T z0<+HgG97B10P*DRlsG8Z5Fu572iABbLnzClV?uGgb0H!~6@^r1 zAn72E5sUNOSZCbHpkh0K4u8mzV5(r);T|vXXv&avC4AJI33JJ`qVJy&j=-!sKG{O{D-iH?gzA&eOZ zi$O9wDRlhy91ytOWP_sC#oszKgu=Ifz-aJAxe6Sp3YazQFvXsXSHC>X52nqMcT}zc z>q1<1T~~Ji!y$G2`Wj%@)^++kTcG;AFXS zXa}bteoXq(s_jz@Yiof!*n%bnHN28{tbQ~9RH&0P69;C_G{GB1abXcNS5&^A@oul+9?IP zZb(@_VrcJCITMw3PbQsNoKj2RoEihV*1B{xrh)gOH~>mf$Yg@S$s4A$#vGHv%G-6O zr%vJf32z1!XM&|Iba`Z+8okub`OeN(m^B^h(u2`~Ioa!xi+n|B;K~Dk2e2Ft+eh4j zN22+Pr-&&kH?*O(4nTu0_G=Qq)hJhIOWkJ5i;X5>cq}OU` zHmdYp$MW_Ij@n#`Iwy^*_GQo&3!5>UD5ZA|WLf1Vu!c6ibIsUC?vV$If$MD{41|Jq z#=YyTMU;wMfBpRf)&S&G0H%(w{5wwK-jkSv_m7AhWK};NX?F_nF*P40<9gt$A{2x` zA=jAO$wDMb20P-QhPi9)$H{OsBfMzY6onwD#V>0i7+S~AjWjPw`+0Kc421z|jY(WN zCphmwTN*``C{{2Ylx}^Q!&$kB!&$Wv`FF(RS9ALG6mjQ_VZGwH?M+-`n0jF#}wpI7fuD;&RrAj~%RaDX-t^SX#N} zwX~|As-P$DnK1TfMRHRDMA?hElZ0egjgn1(5jlf93#{)IepL3zr7y_mDJ)k7hku+C zC>;fqibA|YY+r$PK8h15ZR;*_@5CCqgv@zQNLL0$Dk*-tE|45Xjs}+@JiB3OUj+z^ z0(|D({CKZ3Lm+nR(vO!{yaVxHx^bdHF)wwU_k+Rc4H*iXD^=ZEc8Q|ei7HtTS$oNN8z@xvQCWJ{93;dRZ) zd6>_^S*d<0e{d~H33S`#gU^f@Q-23A#a1ADS}&27%x^NlJPuYt5MUfBh*krs$8$%F z?b_e4rr`%Hd6I2hx#1fg8C0e*8+M&^1*3n(tb*WV@eR6$VDjpSPaL*K{PLH!tn0OO z7gC7^uv~KQN8Wz25K-E~Da^LotRAExl zu+M-rv5vg3yx>w z(CjCd=P$QSEG7%!tsE$4z2rFe(69y}V#Uz1L@QyUW^_NAgws3bEmFI&^`h|V@8-p*4&n1bE7 zClfYt>}Eay8R|mX2cTZ-r#OL+l+aP_(3Rg|Y_!7TKXXz=P8q&${|1T0>=J@&7vHwf z?K^1`+a);GjF2Pl=8sF@7;XCIkJrb@=ezG8#mcP69_X=4?%Kk9PW`ZaWLiZ?nR3aw z+5$;8U}4?QCSs#%t(3qw@V3A5lo*?rmWCVTS8iFlcEY^>!<{rPUCnVL*1G=B#0YmZ8tEXh`D|*8_(NmP zg9wx)`<`O5q0~u9eRhVQbDFj-D-=;|lA?q-1jQ_}4jXCd9`4E$AH;6cl<8-a^XrX{ zuTBA`)H-GL6k7 z2;{#%6HyRc8H*H9BF0(s7nr~a3a^B|<5Li9N(xR+g%9J_6Yfq3?i29u@AAQ+SHjs{ z`(PVs44E+#P>(72q=t<>B57(q8u%H7ZW3C4`d_WFa*2kIcstuINZ8gH;H15DHQ)D$ zc>3Jf;d=I}ee%3+D>zewe8{DLO@(VeFL|?O34i{{V2@iflR+bu9|zdAw+*Gh6FK)S z-Bk})t_o1-f1s6F{}ItIB?g-#u=oxnzVXr@kwB^)=_7>!0~)HJIseU1OEvTtrO$m{ zLkI05ra=6R#$AbEf#c<_G2#EDa`CO#6*>U+&dKY$$JIsSz_H`N_W=#kaglp=VhJKH zy~4>RD#LkL4-QK~8@xAo??0SnAIv`G%sVrYocrqEvHjvk*}DQ2;EV<2paJKYa*q_h zp?7;kOdJ^XL2A366TF0J{MZ$e>)mv0lRZo%SO1a>SI!s5)_ShqPf%*KZ~sB;b-k5L z@Z10fgWO~B=laD(w?|uO!n= zqVfN=0-qGk{1=`6KOcW@hy0(`>;EJdCCRUe_wmAUDXbM$Hg2AxlBMFcsCv>Dg8Abq zA|ZI{>>)JwM_IBIex}2E`{EKy6Clwbo%UUhPiBrmoxcs8Vfq3*a-O>`KTMN0C>&T9 zDhsyRGg}#LJ|#E0gq|?20`Wbkjq0DrG=9rW$0U&JFxPCLy)_*i5sn z$wd2uMtVg2Ev!2KTyf)KIuGu|_#;}%Rmn1UVgts-LiNZ66;tU?h*VXr-NMQz@L!}Z z#U8I6tZ(L~+&7*4e-Am`ckuuBb%y^8xun^*ZO^yPKIRIfs??}qTh1i1emvRT#hSYSBpZa`t*?Wo(Px}RnF9($Uy#rEU z9$nH6Lvm7W8_{}Xku-|9hEBNoWzzg&1~LWB_^GLfv(7v1Cms|67rY&UP2ddM`;v?9 zihHtHU!7aI1UL3aS)qPdwg_r$ql|0MS?s&W)20@cgEze$I*Bm~e{s>RrJ8k0+YJ8R zy~`I|uhX}U!Ug{yPinVI4q$%B+PcVZbs4BYW_B?L#{_L*=t=EkD$R?3r0NKYEY!+( zRGhzK_g`^K`L|U4KgR7_1oWFC?dbL|KAfV}UnFVoCKdHH?ZP}HIYrqXd2JYY!s#L% zNiY&63sdv=mLMs%*-fUkKO`S2@upzu&p_{TgDdSo^6CkFG#u^q3{wnK;};*FcYCP5 zQXS%iL4`!x1@L|H5Y4i~y68fGDvphq!WxMd(dpOiGzXF{*tvp7PQkAn#uS{_+^5=! zgXjG=>|1UNbeGXPsZ_L9>RR$wXHRX^W*rhY;FII|Rhg(g@}%44|HzfWN#|K|G?me! z1s#A0yjOYUI;*17yFnCF3YlNlp+WoMfyIlWJaZ3oK zw)Bg{+8|!<@ifBIg{TCLY5C}n!S`LSf;h2Wdb$8;L2yLFXpjqE%^RqSXT(|> z6WUHfZ*guQ7t;kF5Z#DdZG&)UW4M_177=In;e;o26Wbhn##hohb`FL2;O9{`68&d) z@XYJE&F9}Qc$B~k?P{FA-zc6X!ElFNMLXFzACfXkY zbHhEaAY-au8-~Z1eQrBI*RuVWWte$2)(J%p>1=mW#>wSRus=|bpIIO6dS#{N`PG8G zU6AC4gKE=V?MHqwD^CzN6A}9$G{pKvfc%+}B=Wb=IUeUc0bUXyC)UW==5 z=h&a#pWmY6B-eO;j3iQ$(Ax}>8L4p(4v0ELvAyR%UTH~y)nfOU5SIq*==}KB z;S}Qcq!1-`8CGQKEq9as-5ku^>?$>thEp(miZ12_cxs-C&UKq{+}EnGL8>ga9Q?7H zM>l|mw(JAgf;!!*FM}WpISZ(${z?%+$?2vCpcg- z_6}{rq~N+{^r{!39@aG@wmI29?Q)W)Ck|bO^RL^4kR!tvhaSJK`f8j_rpuuzR-~sFTaj{ofD00Lmk_c^cWc|5rMLN1R}WdK)k4bO zY_Z30#0 z(vbVt{eyXP9?M3}{qh}d62|?U0!@NbWO#g%WlTW4;k?Db!MtHx;AcB>f;(sOawGV3~Zbs>45)a>IOFSoz zGYHa0(uM*E(8~8s#WBYzoZ`-6(pOx_ThmQ%v&)H7cz$4v-pt&opCpx!B z13SU&fov5PARnslU~3V6Kh>pxZ*^*iJ@fAyWC&0O8G5N$S9j9JtCSL^Waa7^`o`o4gvleNXausCMwuTFQc%WO{2pkaXYx(L~h zx8s*KM7BSdqWe~V?nb(`;l}+RPH-I0AGqR~QQW>jcUMDC(Bn%_L!`bGlJ-z`sXJtS zsj-{tCVkj?uFP5p@oH~Gfp%tDoQ`Ya@A;(|#6w0J8OCNEQE#}Cy{nxFMMh^TmYSxV zS5+%6)XSB&*97nS{BT#UO_%F;(D*tHS=9%d!akdGV^J$E z%<>`oz(60AAZDj*7p2k_T=6q69LG{20Q8k+urxKrjnBxsxNbH)$4UdRe}#RuitT%d z`tgJDzja*y9=5-Cv;WVq>wVk${I#JbrRQj1`p@_cD6csnDq(#xr&uE}%g#oi$PqNe z7J>5#Qa9nr@>2XlQYiZg-!#HZX~}F?{|nXYdcX(3W(tNO8rEshen!qUentg1>!$iT z4!)~?rNOLDw;R-i-el?}YwO@m%fb8YEhGovynhJ3-d;qIKqnWIwy*^&l6ZkGci{J zY&p3|3~e;IQeT+Ks&AC?d{mWbZc##ASkt&jvAj&mfrXr}s-&q>tte1SCe}7hnW*>_ znEaT2o^7H;9PK`t=48RsxXyU_wLl%;hqV}0YN1LE*sTgEuJ)YRiEjd}Ol^GMQi3HS zAG_7rw`oycL9Fo(wXrwM-VdaG&{3foR`i*DCNACtT#Qujc=-7ms-Ep~TRUYz>O!!R zu~=>HG?P!9Qe(1wFw*>F_Z$J}Q79{I`Gv8DRLB#p{Br@KS_wlupG{*zhs6A79K%3r zw1sG|E|BMIiI&^L%n{4SN3NduT%th(xt(z2u>Ca?Q{nVal*)2tb#7pnIJW?oyH1(pa7woz*rxc=l zlHfJ$B)ws>8S5&|`rB1Htp@X{)2dDC0wgH^SmtWeR9dLY5{!@v{mO#0$C+}sO8qk< z`Uf!2n-24IBM$E3fr)fIuowEFfQYsOWquv6&t|bdzEKd`{Spw&_*J@)%=Y?Z?>rT@ z)Ya4^KXH2zR4C)9u!(pwu zMz|&Qkdv|cvKVU0*&;8YN&Q^9i3`M*;b3R8&f#7d|MtOoB1gp-n08=ZJ6$SK2*6VI z(vIRFT&>bFUY3yhU8b{yWrfJU7D%eFC4M_NMp@WVf<4GlkwpH;6ek1I9ysKwwx#G_ zREf+K@w4kU2GhkpC#2=Ka-IMu?co^8+PnvZhhSg6+BLn71YPGKpr%^t`hcJnyG}AG zk-hK#Bkdi7EZv%I;qJ0+cG=b{ciFaW+udEZZQHhO+qUgn``zcB@0|C>+24)05o`Ti zPeeXBSI!)nIda(4j&s@AUG(O`>Ic=8bG?J|`n=(ZZ3Hmie4EDKP7QyyA+n{L2Y~id ztOJ~a73>Wm?HTL+WEtE2Z0&zk`3&iqt(Ovv7DI61fFz7efa(Jqp@pNNFK!d~&_ zY-felg`G1pGCJD=3+7r&YG;p0??k1EdP=irv!uV_ZAWXUI^d5Oe$@(!TZ6=(koe3P zls3VkT&foWUsW5M&g{c35 z&l`S30A_p;YjelVweH~ARv|yr@xS@L$9beJS>Mylm!FxP+Ht>AN(y)%wS7t47NlPQ z5|PES<&VP4Nwi&CIwu1k3=5?M9uEF3o2BlE0TM(T_!Mr?l#!KX(NwYb!z|EtN$O{9 zjA&^L2|P&*hDXJfo(h1{4>O`m3gm4wX3Iw2zEVtVPASG7Hn)UEzsFvZ*IChVlZb`o238A@!cjCi@WDPrscFG3zn6Y-yBa--eZh@O z*#8QT|2vHAwzeu2;>xQxZMgq~1rc(_o39OKH8Wg`!$U~+U z$YsUl)vp|4EqiB-d{bcs@Jr^WMNB-)FC*x9>X`V2OmH&2ZZ5C0-7nTj{D|oZUhE%@ zC)qo1IWw1eGv8l0|LA!ZWPz)!PKR5(HBCgiJV(o4;cckU`>Op)Rj>uVWwfT0wXFw+ z7IpdItMR59XQx3B%ZaPnQxgVn=s7f1U(s5zy##GED!S}u5bK?fVfe`+@Hke|k!_J+ zjb2xGn&hk(mfeePg43&ukwn1(D%GepI?XD~Txi*Pkdoa@Ja^z!XlTn)6SL^Z)~FAF zF$h$Bn(|1v-3V2iOtS6SEwE}qhQYr6{G))cQc?^+3Wb?bWRUU3Pi3$&sAx-I`I5+} zhsh|{mu^IJ8r{$00-R=vLV+Nq#0%xkQ4RGJIJC<%w*Ki zak1_;HlaVte4>cw8uC(UnT5t`fV#QQv?-oGX%vBelKxKldx5BmOK6)Nf2yH)u_aY} zElw~{xU!ivD$VFnvvG7`dufJ(<8Qmm%1g8-ae=7of*J`2EFGZDWub;lc3&3eMvdaz9b6HVAgRw zJs={@U^dzj>lK+~rBCVKb~kSjQ$1yqC@8JG zcPJ4bqmMy5$f9t~*cJl#n(!)}Y33{J$c%zxnE0Vf7Gqd|em1Tk2A*EfCI{w6SM{_l zqwqwl@P3jc4jutgto{vL2K3fLcJHY z$tQNVtM}bNab97xpQQRb2JwKNzB{Ann1xSwl=`RQYNR;4=> z58ulrk;wgkeEIbwZ1`r+Dr}fX}mB^TG-e6 zgw!wj^Zz-kSNgxo>i@IY@*ffJUs>wcUSI(|Yik=vF>7ZV3nK+bJ$pxaCrhLM2#0b~ z62J@yUTUWm<@4tCLVclI-SD=2ZKC;!IkKwt4f&6bxR#Eoah44)jb8}h?fVBg!!nfi ziO`rH&&F7rn-~wz=EnE5EbShk1z<~%CBv&pf0TmZs(O6xD++jI+RNS#(NZ!V$s#*? zUGlm)Tn0r#f@2PBc(F&V@NBH&Br@O%|IyBFAI#vm?1de9%Gm^kdr|J*`eWk?O=}6U zmiQ}Xl2vDH3NL(nGbCJT8G&>$q5%{vDHQ1@hCHLCZI1j7Ar7XkkW^Pecbkgn+DwPi^LD zgcoSxruwF_RH(Pu

    +VTK^!FGEHEhI8SZBzUK&m z(rM_wmKf}3l6>t|`}R%wzZGr%{m#<=fAZjedQH&A$U)l1QNYI9!O6-<*vZoJzuj*2 za--q`3<%uErz`5^$|^g;cGxXck*iRM7X6IV`bNuqeUupm&dE}}uqX{?IVr33a} z%}tYv8#T+ue!8XiOVl6?a3C&Sg6<2ju{fTSo3&2avWk(-NroR6Aq;7FpOn|{VGEN$ z+Kmg0K1VCEV$hkG%oMU7K@M*P?>Wj5agLD9nHVqcN&CA>er!G3p##NdNO(y~rPH*$ z3Y5l@u_!2^$c9ys*nVbmLY^7U=E*q|w}x)8O)^ONI#XwSy0Jb)?b3}$Y>h_hQQHw8 zGRSiM@^v*L3k<4eCex|vQPm>O8q+SQ9Jj+QwWKQBuj+1i``3cH%%8B~lwY3X{zuR8 z{=azc?|)gl8l|TN_(6b8F=GfYlgIp$ zAyemRSLDlAS{l9!^?^1jTatXAsaXn{Z&(>$FfVN|x2mr%f4{3W-R3;(VCyAL4hDX| ze`RQM*=#>d^SD@^9Iq95JO`(b{@CuGXI>H#SZfLi(PCEIC~PuKYV*1QDB%^l75N36 zI<|xgyKd#nqo;3gKS$qS|83@#uJsr#(3f@8-H=~<_iE?=k= zf;r<8=22fttTKgqdWKaY2Tf*`Lg;otAnlDj?D*`l0-j{H`nF?7*omQ)H;!etG&*!_ zC|8nnD7T_aqAPu5!ceaCLBhzcJRQqaJ_pV14!=4j{D&&7E0tr*n6En4S^ntpthTxs zpIg~Xv0Nc3Jer(ngW7qvv3WFd0JrE2>WylyLZ2^~9A9Z$E^Wwgt5nsA-*`PgGi?zh zpHxfHy40y@JALDV5Vqq=(JU#v`V%$8Y&_lzj21~`snO)*$gTtb&MobWPiRH-c0GsJ zw2)3r{HaPikh8Be+leEx-rkNOeTL>79^`n0Kax|mp%ZnAsSWJ7 zRiq#qSnRMY*H^;t>p35NE=@(_kc*wJrrzrEA1YlZki9*sip(gxh}`hhHA2kbS&HWW349-dvkF zY&aCmW;KB^&wD}iET41*W#y;tCulVxS-KxY@Dmw#Jz86!l{XV{jS!$iQK zND3^htRHhV6W2qoh+$!Dx(r?14(v4f_JVkD+tdosP0KswXC@Osq{P@eN?YFs*boIU ziI^I8xr3ruM6!j9a-hPkdcg@P52|Yz$RP*zqgWc@^oE_X$f3z-NRRnr{=Alz2kk1+ zmXsMKK(EiNv6j}>nfRk`@bKC5|V%eh_Zcim^Xg zGTHAQ&VhlsHWt2Bx9GuFNz&xB#~iAsJ^f|Z#EvD|5W2|o_*wcII|=lRHU7=nSBQJB zk-3xT02$yBn%s-f??9^PPf4C&CC7-`)sw1vms{(1Y3C)7L6p2kF0{P`V+zSWUVuLs znTRhi-^8*s_JFf#>h8nuMB+O>Pjf!a;uqrSIpm|fope6KUp@xT0!rI}W4s+X9>H8& z(cvs7RaefP4A;y~c^+4W8%~P;TyzWo&xI6V6jbjW?KYHDx(LZAaq$2>Yhz2AFdR4x z^x|6C)OXfcTS>x=mTp8U`I4oT5htE8s1xcDqcBs02En#S@BM?(@6)so4W|Sg!fX(o z`DaPBSP|S8aqN=(GBqls zrP1(Zr4qugSuJYvT1J!xkLh(%$w^);!r7?pOn1w@CEUv)#hXr#3BCaPsRpZz-WHb? z`w6Im!InlIhZiK7Ag0_KDP2rGo;`UB2xmu3ovT+o2w3T$KV zI8xYx12jiBE#JD5(ifyfpEw+b!LE|2nCcDH+1a?kllaK8=jpwJTcq}jzz!d=*>aM(l(X`u;lU|*CuIIdx^99W@N472*94?(N=WG zRPi&LMyf7pub9X-hILRyUQT~}j5Ft&GF?GwvmAZHojZ==laWv4+e9bijha?)RK2fQ zUT+lf?rPragF^8A5yA1~nwEwc3Cu+mq8FGoAEnd zcPetfi8uSu(S0K;b7m6eh5fxJOJ@ce>|MOhUOeKCkGzezg%nEzpGL_@u9&a00KNH& z4pu~>+zW{78GGXo>@kV2cELN?yK;kT%&+c06pmu{`5f;PSt>_L8So;DphVjR^3p=y z@)uGvS@zpw@hZbPgiX?wn0Fp8zI>Il*1j7E>78P~nU84LAFrGtP4r8LqjvHKo0|%E zvto7a;!=up*#7YS&f!G{yB|(nlZUWWc*!VdUdW&hFFzRTmOmHTwQ?76eQCIQMQ6qI z{Sd#zx?_9c+-{47!&poIl0WV)q2dqMvPxo79vcKhdbQYa7z~w9S_% zRS9qhFo?((zGw@RPbjO=Yi64#%uWYt5vdHW6?Qj$cDmrl$=s&t(DjPoXfCuSMlCb2 zH%+!NA~wyw1pg|-L)-Mf*0r#przKI=s)`o^%@A}ng&L)OyWQ0F;X?I8RrFZ+82^fqp%1L66FX+N@X#TDKl^xY($;gzs61^bpLb;D;*Sex}E=2em@>N%M>&LM#|1Bai@h6P9@AK z48d7Zt}YYt&VvBVm7@oa)@UvUEniUYeUT2AXoCvx=)GSOTrJzz5SXT_YRaH%N|iZd zJ+c?_Fj$5%D>9xSg17L=+*c~z{6wG~ZtYike46%4RS)tPX+7qBd2 zgJu?AYL<49P7@~2Mp2CB+t~#yR(+!dD-jZU)QtnGV1$Oe_~9BnN=olybt5=4ohrA+ zuY_hZOZQVsIR=^%UiMRK<)vGXk%hFj9aZtwS!q2&D;hzNok9pa6x-c}F(lBaDG^iZ zD%WPgcbQ@fSd<=%x=P(hmXc5kuL6)0>+1b?=J^=ZJk;t%nacSUD%EbmEYuHca=7bs z>ut4|Xivk#sBolc5y>Hi+GOHD6_Q)K$5#|vW2zO+sYjiMGr5bGeWavLTccCTkV2`kG%=O^eUfg* zuLi>5Z+4373CpT{If*G{q+8N;mEx*M2IF&vFL2l!gWdS zjD4^>bDFnmjSVDzuhm8@>`d|pC=*>uO;~?`h3wzEatWKgw;HvqDdt{B7hXB;X}@i| zd-`XxT`jtsR$ae_-O$RqMK@qK+z`H614csATC)>hU3!(YtFbQzF-3dB-?(r&cx{Y* zQn&SXfRnFe*L-Gesl@HDt#{_-W63*0D!-c(k40ladSFG`7~{kS2V$;FT>kl_=lYO# z<&d3%wGoJ(_V)os`9lhV?(0-YSf`W=3v0nlX1#Ta4K#i zO7`Re;5QX<5>hz}*kQ=+qOpRzm|0rlMOb-|xBS*mADS?CoY(ZO+fx>C-tbhl8QPG6 zfgbETCpUtcX)!}(yf$V;dmYi+?)ob^S!E^2vU*E^7%S98U8d-${E`?X0M;031Ay9a`p zv596Z!*p3M^jS3lpe_cSyKs7P8@;8@Xq1m2Fh&*Y7LWzsRyr9p2fa8hGWpuxzDcy{ zJfmEmkYwW14;OwAJ%3#q<=i%gQjprUt20!F%|fEjqG`MXFs@n zqa}f*8SI7C`8(?Tpk73WOvHlrj3*4ke|1Id8VAwrTkiIrv}{`xo%Iy=ESSOeD2R1U zhi}8~%XF;=&yFub+$yyMYAJ>bzu;(LpxVm+d}MEBNP%ZBKsI?vBT2`=o^sI_?Amv5 z(qH3?!;d21ZIPSaa&XGN`7_xKg;BWHmeDJ!?el;|zOO5xk-`_{6oi zhSv;!T)yYk<@l6mv^E%psu9G~YjkAD3)i~U;8GtozJ|b4h-f1z_of;7CK}%Njrm}k z^-TY;hJkFc*4Hc0jSDujA9<^)OH<27+L2*SNHwpnu<+hM|Du|@2`Iu~tWIK38~0UI zq%q?1k@)!rzlR-nNj+P;@fm(6?N2*@ z1{@T?>!JOtCWbLV@`N)uxN6sY?*^g3LBH_=2%`AjK2zwj!_~0y2c`f|*gGYel8IA} zgt#zy?rA>wmUC+@SdZs$7UQfI+|_bOHL-fKIdnO7!US(K450f5?Gjp>U6s> z*0pS&)E?7jEzDVJM|WT;>e{|`gX=xMJ!@Hz;*4x3Z@Ux+UwSVSn>wzVg+Q4RMVTg# zn^KKaz?{gjqi(ZL6G1I16bCWmQa`3HD};Qamg;k2hGd&!Z%PDmjVjn-Nbx2!C4HE} zahw%$4KTmr8t;X^qi7Soy~di~mQw%2JI(JY7&^okTKwnaSg|EeSQa=uXY@!CYG%1E zq(GKPDtF%TyT2K&79X@3>~Eo`WpTL==^1r(ne&k;=PKy>91z|y#zN^LYg@TSC%-I#X zZ`Hv*aq@yV$Dj?=aJzdy89Y8_I~m+fbd1op#r0MmYaW$iehKpX2KyihLi(YxAK$s# z+vcM})99tSMT}JQti9xoY1xQAQMnWv+VpKb0ur^My=Xd1)4J}yn^r}|ta*-$)_{^G zGNmyz!h}Fcd72b$Jf8lD2}4Llk4r23n^y$x){5gaV@7ECqACe1+5pNM-fvkkJ8KT< ziT+b@zsBMrK72ja-)-J(RZHuE@DV8b8psj_Gn2ugWy|)I+Q`}sy~miN{#Ad zo7wW?yt)&Ts*FCjA8M8JGF1+2Lg!N}39mMW&L(u<}C;#`#@nX}BgLB>t2;3I5pr7l8p8xF0x$F#I%_ds0QV$Pt)6)E$NuNv&>saB1#-Q&R1#hGphs&2ifVK~F!Q z9tF5hxn;R^S_m(dNQSsC`)y}$n|2816ST?iuQFG#=J&VoZB|=~4-OR|S{?zvQt!tl zj=&l8YnivmC*<{bI3O3b7L_exZ_gI)&|0VSxz z%|MapxobLH5l2r)kX#<)WL)o0hyimEyMl;Fr#FqkX#>p%j<0NN00h9L`h5#S^utHr zJ*qYc6Td5C&Xh9~_6NthJpsjTT)HTt$pkI^wU(R# z@k!8f4g@Xs`_G(_@AS|KMCb`b{!S9XIzdSYB%0VYIw=LpF@zJch@ktTe8=3`IB0Wg z7A(^4Or8_%rn`F;rHftw?pcKxzFw|IIOEegT%^d6q~ z2#1<9dgWVkj&6qj5?AO6_cE#sho<>}o_(Ww9z%eXG~uW9P(YKn7i3-9{`D*QELD+< zJO2kJe{mz9Icexbzx|Sc>2cRHPb7$7<>Y9$tYw|40$IggFIHP%%HAU!4632fhU^}% zL2Xjopb0M?_+~G21dP^{Dg0neJBH}%R_>)fu^0TWl}Z1F@0ya})hQW$#xGxNuEHw> z+yQHMESVW5O+oI^#A6Xn0C%9vF(^*1j@|Sf_RXw>CeC{V+7y*0PrG>P5lc(@pvJLO zM8faAqbIcU{KjK9_rQ&;&Z*ZsTHM@Di(fB+%0icB$j6y0iZA$9VC|LTx$t#Hci9W# zpEC>7A}d~Z)eWf|^DW0o&a%D_HNq>GEK(jCwPyHcw5cKvs{v+s8pQ|o;qx%7&FbFg z{N+;(VT;PmT6m)*yGG;Zjp3|ZZ-9pB~J+rDC-VU6WX8*E0o zUM+~~CQ3&$6)5_-AC0>J8Wa5d-GI`SQnLG2RAu@XQ%I!Ue)7qh;;At37zP~31SZqK z_TwkE_70;d+M;W3;jb|?$FSCk9!v6@`pGxDHr@cED?{+uy{)F7re1#gT+Fv1uzR1r zb43uDzMB1JYuK9oG{vc@W2IMaO`rdoT+;e(qRNQ&?OV~8{^kGN8v18(%>UgC|EuGp zsAr=1)d8~pyCxm4Jn4WUg!19;61xl&>qm`1JkTWe?Gb!9%Lgi0E(nrZ4T#i&S{A-G z)fqD>9n-|5D6h>R-UU8`%e7_%7>&3%M&3qsf4tV^6K3CO(omH(mJzSvwLRmp{jt4L z$LSpZ^X-l551Xt)bT21m#FkG;Xp$U#YJV#wW726Z-DU8;SGA_Rt(t!bwAxtcyDv3b zjVj6kYPF`4temY>HqT%#dNp`NNmfC&^Y z$Jmq07;Eox$u5gi?*olY=Wppppj9>v%}4GDr^PF;i{%&bAF@(nVXkN~5NF&-aW5)f zxptQ=+ao#hp_IMZq>n24G!bYaV&;YvMOY0LG3>twtE{&3poQdxvU9OEuZSc{NT{bd zd#e$))*V+0Y&e|z;U-^&%8qjMD{sT6$O1C(pHuE|+3dlcdsWiAED%13<)q?DiOfm+ zlq}h@H1XKfVPapmL5Ar?9nU!R9_Q?mET&P|Smug9>!QSaAqM*G)9>c0!mweGCt1o= z(QL35NGdVwn$GDgnVYB#bul(^yFGpP9N#?C56`=5ZXyy7X%;ur(9~?q0ReijgV!+u z$QZ_e4KKb#;92!Uyzry40QhSD0il<1GeG3*j$yps%cm4t@AjdR_1xtR*!soLhkYkP z=NHff4^P)`Ko?}2>6E&SqOT^bShUr$u4IxV0X<_6Nhv7BqEUSK46}2`i1H z?yg|ZFV&nG_3^_Czk9SUBE}_LJAwIpS>7$~{Lj0fGgReN$qXDde>ZAabUgg-6{T8K z!q8+M31yz)#x?onBT9O9yXp#G$s3Bf8}_ly^e0HNMso)4-G?%z4If3gwcK$r&0TPh znVM^uI1oOfXZX-B$vT_aWwNBcLh>ypu>us*$YB%%#{QtND#2be$tW+B;@=c%!rgg3 zv0=Y{;s@A56%zGuoC9qtxWnx0mGM_{y=kJ&_xve3LeQ1~d35sa6#X`UYal%1Q*W?)(olI7hpA0N|t(AkK;1OMHy$2sWbPW6h zpM>xp_{VQC!3^$iH;;mQr+1TC(8Dc*XOn_^ses4Kp-!ae!(E0}tng)3X0}!$N8K?&vH_{IUO#V7q*zj< zDg{TT`~)9wGh_;-=pIR=h?Pm~CSBbG0@~)$D4LEPjkRmHEe;9BJ0O>g?D0dAZKk@- zDQX)QEJ6S5CM~E=)PR{eBvG>?Hhle@`UEj9s!y3Ttof}k5m|ceHKSt zJW*c9hJ&;!Jkd%*989R~xu!Tmm^7mc+OkDoSR|%tpVs=6yO_QG@W8f$=eo&I!yZ(7 zHMR3$nFhwxyjT5M8+qkaGcbo@b@Sr^Oi`8b)#mEaj9N~f}VN^kC&boMQHcvv1Pw_0ha;G+ouAcIT5%`oV zb~(xDB;|)zv5oiEYNQV%0DJum6svu6u~S@jip#*0)P`NYVnvVF_4*~gyI-FIv4Bya z(H?D3Jk-x+fA^E~m|}2<3A2E_bZvG6tRR5Tf-c>fK$_)`UTrbhlF9mvNNMrx<5a}! zQDIS~T0krS^hmUu5tbFf+l#mgaBkoXT>Ulg+(WyQ8MPsx&$7Dk^VP+}Jg^9gQz`5^H#Bc;5OAMI?P&62cYi1);Iu|JB;X`yXH_);mVZ8ua?4t|%vDVa!V#^=fYc$;oB@t3TQC+L^DCrOj4gKaHD zr5}v-_%_l4?iy|OpL)Uz46nr?54aOJEEsm02xfu&*93ff-W|p(4|RXWC4F)(XrrP` zrZVPew)F{`==2NMN*hH>QcDQ%`2}g^#_DFxcy=pgf5j@*mp; zl}N?C)mQaMJ(;%U{xQEYMV%gy-F{M!aE}Lq+dTF4sBTDsks-9$6w|S#phwf4Jk1%C z-|q;*_B)%Zj%Dic(reM8P3fzC`d)E_2zKS7Q;H7opQwlkFih)FVJreiL}#oHyIwIr9v#>|HDFB10w+ zse28DbEA!$+3*qB9L&!Y0%xHkrjlUgPTDiN*@(_0@TzA4wfHUa43gX~?i{k#sQk)w zgKs6`zlXXfW=$9TOi^ZGo{Cqo1#KiH>ptP{a}UExbKo-my(4 zC3>Qfhv3sYEG%8Asym|JSq56(()b~h)kdLycwSm|DYd5r0x}z%F_Bq#}U6<}k7$15M2n7hYoDk`W6W^v1M_~-|XRGFqrNBH$%n?RK`{DbA z3zg9A!WV(Zv8}FkV+T9bQ>8RIt~Z&+lyaJmuVuli8*8`v(`8?1wue>i~3SR3|Nfq-~?Ziof;A8ZPD4!P|IBc-b z%`lyiF&O8IkZpoZI;`)KX4Hf(x2T~;r~yNShd&~5dY^_zWH^6KAyflx$?`l@P6wfId9Q{_pqi!>kM-}|@?MoYf=McyI%8zEsFsH#`q@AGFuVpi0SzxFsIdxM_Byw z&lf>)EJQ}~2Fd1nC56Y$(~8VOA2-;z6FdQu$+_vjIQVtWoZOXiE8hRbP)*ZNMpI`EOv7sTtx8nIpu`!9oN0||EDX^9DFb$ob`f_&W5K;XD zLtR5%Abn#$JLzla8LQ~4d{kj9f5rrR<9@*_a0p#5x0c*5vktz#|1;d8{71tT+^ik- zT>oN-{B62ZBm-2>PXwXQzNC58BJ?Vx>4ERnwdf$-gxb2W5~53%y6YhADgNMBvO8di z*fa;Xp^rRcyKb$(s(L@BkdL7I{Ok%e<>y(IICtZ$@<_)HLcNTb5(dmh$5X7VG_@&d zZyiSPtp$QM4_FsN=p`!#hDWC<>!}TiAZIg)CV=0JAafIpX`}`M6|&_;lHS-f$OsXD ze&c?^`}-lRHxS%l{%re~?W^&jD|ug*o&2Ni)c?meL3H4qg9~EHCG?;d1@&1Fef6t(oWEE_VX3}wE^Alo-P}5l;D110fVjOC ze-Pz?zV?>$s7ql;nP8tn6^AWKH%J^~?T)4xS<_i6`<>}xyX-g>C)1BD&*#gzTTF6Q zDwaaTW;$I0EIp_Fx&sr{lldY&m`c zt15{s1g!djpXD4*630F%EJH&w$D2RQ?#4ho_39E*@T- ztNkcCogngHSs~A11e=Wc$TFkVGoD$AeneY_`0giG*Fc=@qyF&UfgqA(B z6X6!{mUK#M&n=TvWx8EB6)|)tEO=}KSLGCIU*0a``kP=%8YO~c~G7haE zL*%_ez;sNmQpTkjEU!oIIhUmd4XrJCdiK+fdVUVuQPXm+D*Apxc)_-+Gp&MaLAt5E z6jSNV$23#>PL#)W-|I@JAg(5i0(z;}f~ktp^Y)#zqN{9Ms@H4%dWp8h1y&m%c3Q7>+>At1NUcYsiBJzo0SRxH3Q>mG zGu-Ir=F@8ovIFtD-0$+L-H&B0HfnbiKJ7=s@21XHf^9Hk5^8QxMveTp_NG?w+`j|KG?p!zu zk!lAirU=(~@0OB(tPLURAGtqIt8BmrGW~} z!ee2hx?#!{GEl#?<+d&WR9cN~MLdh#?)FsP=^}sx0UZ7=f-Noi5q4|+iNmOMCWO%s zFamL+R^}L!ty%gF39T*xxhrv%s~z2p#TFkMf^*+UhBGj>(eB>@Z>YV8p07|0B`29d zyvfOKkkPYn&2@=KkZU3#1BOV?vcHVIUc^T12F7I;gsM@j63OE;290zo=5LETw7+|)nKM`!*9DlC(KB9^PVPm zCqOaa3Sx+ebdy1tBpkOc43bzk%OO0t&VqKe{CX~%R%!X?zrwD|ukkMIFNAXR#RdJJ zuN>lk4!i$(*@Q<_n*;Ho2wl$3JF%sZs}@cfTQMS>QTzWvke$NEVC!ue1pxP!Md?UH z!(ZhR+bCO7`zW+&v^gB6-|ioxcX0|cXzRm3ie*$dlUE(0CTYaLA1zqo`x{SG}Z)_b_%JqlV8n)=w$Ndvdg;qPD`7Tv@gh zI`U|}uV5C+x`@6qmlJn{G3Dzcs$Vp%J#qFK-BmF1mHYk#mrqa z^r;&ryGu6o$e`i+d%X(>&uP)z*E`VqZw$_V56>k3zi-Lm@0eV#3hAmikNR;rMr^}) z>jO#f^M{^JK(ZeMAp!!W;1szab2P-95u=-*_wbmZF%Vy=bGQ2GiV)2Tr9O?-dRGGh zV(C)&b;xJ?<#?(jqgqx9o!cetVa9FdeMaKoX6NPiZw^A)0a|zv zYn1q{>rLan{!c9dtK36_Y|LlZUEww(gN=K;tM;#Our4EyT6k;W9$ZVIUiR*l;G5kp z?N4|u%x90fC@t$p(U-4#yMNZ2H^VPShk>#1?s9Ozxm_W6uW}H0=dOrgc^|Tbt$EJ+ z6}fi$CAlagxeK=KU}apl1R9Bd$$LJ$ujqJh3Re$q+0RT5s00W??!B@+G;(O^t8jbRyK zYqVFQN{*q1E$O$vrjA14EhfN+NG|Fq81|x@8jV7J5-Qo%&VVL0Y(+r=PFlZ-(D4(h zEEjQSSeb~jN*AHK99NITQ;Is-9D=0hdTv;FP839;8U!<9V!_CRt9-JKXG{7B-lTZ0 zkYEi9wtxePt7czRD?0YjcHLnHk&}lkwU!rUie1fO6=^$;!1pf5f3J$4wzVuC5s?*G zybIApHaHw8S8~O+%$jS%5Eh>Pb>1r-knlQ_>Q58+ZwV@60a)3Au{MpTY{ zzyziM(O7dQX_DwnBD>oGNtkSzQkMQyE)WT}eL8I&bRu(5fD}wU{U?U~!~qE7{pYPhUCy(D_U!VpGML8+OKMQ5Gpk^>`2wEs-=@T zb2Vl|VzoBN@*hcGWJW?MEhmfNlm!^%;TN3m@#w6;8$@c99wYAU z8Q5~M&pt#!!IoQx_%vnPq2ye2t4N^%R5hC{ZOR<1B`KwRz6+vt{<(Z4kvHktiidx| z$9728l}EvXNdmyp9+c|Mms(iy^R0W)2&}g9F$IL{{O4vKdy$ig%0QsknnhgPpEf3W z32I1#1iPAr4@x1Ms%)t%OYbdFX1RMfu7 zFc4~lD*{mBpix+Be(w?;>loywww_0~R-QhwXwP0_ujTDJmLXz9Tan@tlr3BZM6g|J zz}g%?;r^;5qDBAA+Wl&`rjp>=?BaSe0I&JTPf0l@$P8v)qdz~DMs#jpYNq7x;>)K} z0Iw2hMLE79f6iRl;C^;YCRmXHHuu~vx7=L4?6bqDJKX&G&u9{h_e8y3Z zU9KF(-5*`FY zyilS!FBW$Vpep~VL`wv>)Kmk1KM&V%E-hg&^1S2)^Za}%{TsJxK$W%8Cq-wi<2#0- zjzw%h&T!MLc~yFvc%iYEhz6cM?7p?{yt51jgwMKb?9$m5_su8WF)bITq1D2Ku7pHp zmlXJby8=D%RFriJW7O8h0M+>X+A!;qX=q_Xsvck_k?279^~CYYkQkZ{{_Zx+_)9J|rG)VlcFZm6=oXMQLEW?`2< zN5u)+JY(9(v>6U(mH2mctMBRp;%*ze@L`UqZmrRY-O-iObaEKNsfw&%k^Tfk{jntZ z8S<{%G06ErgyIxi?%}+$N+&r{LT=zuofY=HbwbbJTiPlKo%o=kb&TcImCzZC<d;kgQD7>0WzAZIHW$gbu%4_H zQ=}Nhtj60KjI||dVWcblYb&3OL*TRhspQ}6G^6K0f7v1UuVYlJAR6iG`yyG^P*;IS zfCcpHk`-$qsc-4I0%-w^;WhQ0NXX*X$zx*Of5-PPI_^T`3kF?(?HI-i>D=7Yqhf`` zo)(Anr_5oK8vyJ;DyS8f=QP_>s-!61G`EqNFL^>}^RTNI>Z*6s6~sywC>Qchh3lKJ z30FKkW(ihhkCv`^e9K)p7cujiADY&}n2pOWE{VG>$r01SSlvszq;yIybT$w!J~ehN zOQ-x@TncUkceMrKrXMJA#{Q-`KV)~}iaua6mnoC~hxLUyM7~e98_f}G1ydNZ;CIYD zkq{~;hKq)o9}3~o-idQ77d6Q~8fx|20IO;tDrAg>pb$UkmyB9+t%{`ML&!Q(6I^y& z_Y0mUmcIU7>)4y5@L=RzZ@(9}Cn9Qll6K2p?w#%0!<8qrF{j?bD?b0TwBi$dP8&EX zkXBL^ao4sWIGnz`*St28xpz2(e)gjByv>CaXfbt?GFkMdVvaVzhq81 zRW}5t`G|Vj$yIkc5yZ^QZANL#=aZfx4TawT@rM%V@xVC_)N+Xh{ z2+#xfG+%7f$n+8A!m6#Xe4`by{V1V;Y=Y2uMV1`l(dJY`+o78&>(#n-D4%+a$!{wu zN^mP4%^T2*jyC-SVbfLRiKCpDMh8mQN+D6SclduIgBdL19mL!?t_DHg_9+)Uwp_Bz z0)3-DjDHyTO;b)<>%ngHi@Q^mKF~hdrfPL^C1vd_X8ZK`U69U$swIXs+h>ES2JUjZ z9@$;f?yd;FK@xTh3Ad%Dkqo-|VIsJKsIwVrr(TWs&%VLuGH>nWjX+wMO>Q@O=w<%w z1$LQga$#h<4fJ_*E)YlMX;3*Uwn%*A+1uurS6;kdiK~S9+aMDczc!ge*VgTteBKqN_6mUf3dw3KWB*BEJU!d? zklAhAvFo}ZeV|`(TmR&$rc3zb{Z%AIDVH%ceNFIx)(=d_~*`OZW z6R@RcBUKG(jR@E^so(E@6{EKz`k(USEDrL-`4T{_(y2r`qd{g{VyAN{vDY7^G2S(f2}I} z^$cQ$|0o*CZ+6v|g#T3PjD(JEJF5`zc{d|c78k)V03DkW-+YOx4pyH(c1KmdO;&aMfwC4U+K~=wCAeUiTa!H) zw+a|6uJ-k_D70i;mpT*VWJe0FL5Hzn6JL14UBI>X_^HZs zQuhKgU%`$B6Iwi{|C^Bm=>eEmKCU?>C9IUEu_lNvX5NPl7-NS`9eP!XYZBB*eILM* zIYZnX2Bz~$#u+dbGA8M7wA5^Ppg88Y&gM0F9dF;RMmivkb#7wN=lc2^8Z!r&sXEz} zCN!96@^u(8(_X%~kjcot82r)?J7pK)(SWN3BfT}~4oNj?tXqMkX@E-w=tJr$8>s-5#{BOwT-XxeN>g%!>ZaRc-sFgBY( z9rYNq1C@UNa6qBzaSGFI0v|H800H7Dn0^MUqbd?6)a3z7Ef>*%xJa9FKCPDJGj8+y z4)B&Qa#btx$4ImA6>1%2TB>YHt)J3*8_F%Z^LCT{uUewh&@@Z)7f`MF$Mz7_|HX;= z*O~bHMEu1c#Zkij_(+v9c44F-7;ji_=#nQNPnQ>mGAs6z)y;=Z@|!_JC|owHab&_a zCgTRQjpRe%6%COL>7gKmMEN1mqOya=Vav6FDsmy9A{1?=F6W80K(69h(8>&RI%V4!LAaK?tquEV)}#~Y z{ekc+D}z^YJkk;6e^K_%-7--Zw#|-h+qUiGjcwbuZQHhOf0;S!tUG7c zy|d2u2Ry&kQ&qca*WPq2|>&VU}KPgYs67I+?XmrP$5=+74-vMYoSIU@FO+$Ssu)L@frnd?79`ub*d7%#Q&TI z=sGizei-y}%oN@}R;(Zh3DvYba?9pmrihAOv=rI)KIH5+NEKQcPTM|{M zG%B7r2_Rb5H=J!$b8A~tmuhR_HY^b>;uxPdn-eX4I@g)L5VK>3xJ`rfrx?G_kFCsZ z!4G=dm=xuupTNcMEHP;1_F506!cvM#lUO@7mrkt_P4BprAaRe^OkNuhGY>nc&sTQ0 zHy3Nsp9qj}KRcuz%V{jvcZ+)@9@{|-b$1%XFJ9YN{-q>F%hIIe?v_`e0cvRuVF?=h zn9pWqW~#k{-sJA4X*5IMrWh%2#_X5+&Ubq#)u5;B`cMHz+#_Y*+QwnobQQ1QbBCC6 zD(8*owqa1}Wk{cAL>8_Q>xZ^CQ`cY&%1stnw`qIyi;d^Fy)3oL%F4m70g~nb943!DYekgclAGTmz>lgdL=N~5q<|P z_Hr4{a?o!wq6g6BqACcQ(a*GG6W(wSjSf|Fx>yMc@wx6uN=20DA|f@u5684N6H4F3ziFxPfrDSjtQ#Eg3hZh32>31iL@{&@}K5{e4?XEpGGz_;hTNy&T^A*LDRK1y;0ZIP=b}=X*Uy@Y$in$@n zom;POin-QNvXz5gz|>#SX&+lpCo5Ig376Q2;v~u6>r^=#KJY<7@4S`TYhHOmW1HXA z3fU(oH);{M;36B7T=TlQ;Bl22tmF?a+ED0~RZhAt2ALfNHHnLkx3jDFG7eYYrxVt# z7#pv5F(t5Bl%#B)IZt#k(I@3(BAcYz^>arlFcG}8cR64`4?|Lc%7&FKA7BTQ+ExES za`zEWcZDM?gN3yMQ|h1hwC_4Qhd8im!E$Z+3;Y>0S&>OZuKZFsyR;AoL{X9H7uaLo zHS?4j$r{=`aAa;qUe4#&JYzo{!ccBl9^KaOSXQWOx6vdQE+j!8&rDsyE35hnVQoqGNWSb5mMU<`1s}a^d9NXC(4Xez+%H#4)KM-%+ucjT$P1 zA(Nwsd2bE&>W=5FdPNA%^x|FH%x5Dp2H@ueJ5gzcAq(;GC*yQ~ux8UyMz}F@0%vYm zDKK<7f_~lALavu@zO*sEm5qKIv45a+IKVbM zJzONiQIR);I`S7Qdm&pL!2=Z}Lt|O0@JCPJ!6H(2Mu;_5yf>z5ugOLtRKt?w#*B5Q z+u8EfMc8P3AGQgQX7bTG!D1iPeJi>(r~hb;>~2Y!Zb^Ve`^$pu6A=_WsBR-5EF`u) zig_=F#XQ2hObNA&FT4wBy5qVHoK94D zfAV7#bxXso`p+`-V2Th-C~BDR99q@jG5R*HKi}&IzQ%oSvKC7zKO^KT2Xa~s2vPX8 zs>J{rWkAq1;-rDJvJW=dk4LG8&>DrxZdKN_74!JH8&Qu?uQdZG?uaQ`@1(KJXUax6 z$|cd@mX$#jt3l}WzG6nBJEFN<2p9efc)>x#LbKko7bjp2!9Kkhw zP}cUzq;I2MHu@~1IK@9squ@yM5T-W3 zi&4<0(%8rhkJ+#5Il684bwIF25E%aQO9G2~MggHg6kgb+F!dvepviqsCSm%oMls*g z4OH&A9q}9Z_)tRekfOlXLjU@Mz#ER<}+EXA$5EQKQRmn5EmSwYlAMS>bqL)0 zJh63-PL4@#JRgw#>yZaI1nJpyjm=oEhwb^aWb>s@zeQ+Hw09N@s8vSjQL@ z_kI81IDk==buE>j7}5q=(u(sNss^vYOn@^aNUSv|M9RZOHgfE@P;IE60 z^5;%&-ZO<0-kEmqLTAwK24VL~$1wZ}brf=;6aVHN)~E)wEXV++WSotj=(U)(P(Muq zrVj^ywZ$a;cPc*LobWLv%yGVKe|e#Q8DdKCiaBwmtP7W(;~vRB0yl+k8ejFB%O?B1 zWB)(<^?x7l{AXg%zYJ(33|;8o8k_Q^A@NgK>ECr2hbu+Y@hgm>e6 zADFMhXqiJc5M1Xjs*M**togd=I~SoOxN(T`IB}I`Z)IUGWzqn`q5F&F2qpdK9A;Uy z2`Bx?<=OVgh1342^N%DYnaS+t(dJRhR;K%veHMxJ*Hy#Z5BBR$KpEYnPH&*OO_kqU za&uM>+;5m>+&$hwY`Ggv?5?8SH%{(z{A)0OVNDglkOpfg4($s+5|7=^w~4*qkY@29 z0(hpvO?+qtc`tcmNi*+21bL>?O?YT=sIlU^!oZXQ=a8FsrCwO*8Jee74~>S&AcWOB ze3zb$#6T6&`(Pk5XOEKi*m4;4J2Va1GglN%TlJqIq;wftvTP5VVF^OvxD*F(;&v+1 zY%giXxD6EAStW9eW_x>Fj>N{;J|mrDCxX9_89<59k(VsBhccvbjpP1G!y@M_AoWSe z4CM|wpmZb%$Sb7Cc#>+~SCX1s{+^m^z+iAc4ePnhVj_PMFd2!(|KRmmZK7Bm;FJgx z0CnGOvpzmO(^G@TeR_C&WT2i~y%b@@1b+-nahhIT)R}S`%mC^S<|+fT8GL=iZ*fgX zN1cRB;To)F6H{M9=;&*n1IrJ;@BBMHN<8fbgjWea80ZfcnQUaS!;oWZyU3)@vV#qN} zc$u}NJ)CUF3(1ro2X=ilOcA|uGP?%cxe@Bf)Rp`gu}wp0kT-W=7comQ?D{1os!V1z zlFnMs!UgSp?S`rrgXn$Oz?fb*$-;@unw<`##x2~W74{1zCY@+;fg=(_bMM&rhQvlI zLrDf3oBrxYP^(Q|S~G0MI#+G*7=-C<^H0njM=R07xJ5@GbkBkoeuc?;m^su-3vAeJ zkwW3YazT0Je#ta~s7B+69bJMpsuT+NpNjiRAz&x{Ys$s>V)*)5l8E*WD5W!^`CMIY zHJ-?``;6zmh_g*&Bx?`eZ_dI6T(VYmLK)(!p}|$$4RhYvg7bqU;BAi14@zp24GEzg zFbH1m&0?;%1%np7v4fUzQe@2n9m1OkFccPBC(E< z`h`wD_Hej7@BKleJf26zzr4R3wBT?ZPJ!j)pGJn4%g>XK+1S_P-$5@9o*|At31;FZOR75l?d2 zUY6LCOm#e7KEI6I8E;}_aY%SajbnK^Sb5l84$rjgA=n#By`Noo;Bc{c?F5EEFbLC( zOK7p$8!@m^%ns@D4**i3HkdVfWzJSV@+9DtEA~@f8z7adYIo29 z=IE%EniJJIvW}s8d6UoVIAfJhrU5J!dnttvke&ySX&>!G-b8y;KMPb5)z{VotW6G5 z8l3>X5zOn|Hu|7_k3ae%CC9r)`kLi6HV~r;i;DAtAZ~G?Pm%|JVll9mY{y3~(U$GO zxMYaA+pj5tOP#U$^MHeS^qj?w-D98PLtsET#@H-1ZdaOo={Q?Ahe0DaBUq^^Ooo43 z`l+$0S%Cwm4#yN?-mlq6#zkhFyW=2npjS?76Z8>~IUPuYPoA;{u{gY=S<8Sf!=Ipm z2@&YB_jQgvR93TjtIvqOLu}69D7P1ETVh>pYyNaha*sG>je1&s-$LfNA*zD^xfwhD zG7yAvqS9i1e4FtMUR6Z%F0y-B1W9a4%)vMDQ9F3Vf&O3?SY}mjB(i;5IdN8NY)P&`cRs87YH6TlT z-Hz`+hLl4(JA2E_Ys2kk^;hE$5tlm;+8y4%Xvv} zaa@lFM<<(2!fwFP{Xd@T(y~7C4~*Q2BGnI>P6g%?q?^+YI{|CBy3xhVxxk-zbbof5 zCte=fp`-J8Wu_|hY2X>P%!IpPCHx@jLm(Og#Z3^NcVd$^paP$Lkvk;nA$9lR9@NHyJI}o{*G~*Da%8V>{VjKCLxBqSq1KRy#hZ?54GV#Ci zUBBcIOT-@!wMg6Q_BR3I$qOi$LMhvJe3X3%|kBPChTYs5pIKI_) zF$Y>vE=(3z&#I3SU)7Z+v)=!(_LiQg>+ZQm7;IW??zhVX#Z^0 zBZVnKrxqOXZw49%>tSKJqA(w7`dsuflDjdB%oTHn5J~r5Bo*zj{a(1ruGvS`Aey>eMjRzyz?8)Z8^gAyyu2~aSRnfR9 z4vH z(Xe$Xs#)RiFSBF+loi?kQF_5AUmeiNq#_!)80JQv)Zl`4cEY;?XoBtDDv|gUCHsUa zxa?{M&)PNX3GvC+=TixM1L27TQ{MZzBZTg}o%1qz1I_ecEnkXPpGz0CBKp+*@@ErH zZIlPFhcFL;ljkeE?dLog`0|i6SOh*XmuVdfJ6S!b9Y=S{C8DJbBkQR9=PDQa zn;sq?o>1DhiU6VdnSS@=4=1C}l$Dg0yRa*s9~RlN!e~=wE?RvMfYZj=(F@x6CG86a zh0Qen5gQgcHLuY(P1CMWE3wpp;ePxL6s4Cp6;)fV1Ud`BL1GP)BsH(w#5E0$g`{;= zvKJd%jVPS+nDBj>RZa7V2!+G^#Kr*|4vKn&zHFo6C2Q!1??*GI@uV{~tZ^oU) zL-bA+PH(A|d*!pDXHmN8^lr|mW4@qNU+1kIV%^ipYQLC zO6c~Gi&bp3Wk<_kn6TC{?$IDng&IY-ib=;{(?ND*H{BDJ2j9nk))Ao8CYS`>9g4A) zxHrLe_RDyLfk5ofb60^(pj#(V_+#>CEPgr4m-vJQ_Pdkgekk|pEfRB zNDm3q-wQsR|A8s~J#@JLx1sZoQyE?>S7#GLJH!78jO8??=?;aKJ>w zwBeHBC;>h2e7LH$l*eE@jTVMwC$Fiq&bwW+0t7pLINee7=}rbLthL*cQ}*1ioJB=P zuU7|1J}@dH`tUUP`E*%B;*zb5qDB4MnR)9Tk&H8-GnD=f72yJW5~3JWv6CZDfP{- zVN1RAQ_;)v`1kiR8%-~dzemPqMnfK7iwR1XrYmuSil}y-Lx5wD2o6bEt;ayAfV}s| zQ!YNx-pmnxzJ!LKlDqMTZ8eLv2MQL!p=^LAec9>b)KdKbamtg%FJWi%@;1fTahARQ z#{JIQJWWid+9$1iAIwDXVcfI8^0K~L7`0({}<>c_XO= z(<_sUHk0W>*<$uh8*>7$gw4#t15gu;4^FTGup`)+6p|~17X*W%(KGMvQHZXXSG3T= z<8p01nh{dt4=+^H3C_GnU4L5WV zasOOA(*TnA99h6Ae9qC&iH(1<4Camn+J?SEX8u3!g#WVz&A-6Ve}v5c3>Ae9dwD^` zFH3H>xi#@H(?3G6usMX5Cj(-Ft8xQi=#q1@@h~^0Y3KQ2O)ME}l11-ip0g}lm>IHg z8MfC8Un0gb-tOu^^~rzw##ZW%?wltx>%2ej&aQqG+N=%07QWI2J7Z}$#PrvPJ=vK4 zxZ1n@VMJ>_lI~9deW=;|+`Z~$vY?FRv7b#ijnnW;5gNlx{ck+T>!CyOMEl=LnHG|! ze4OFxlO>7#zC()^7jaxgGp6`%8Nr~^RV{7BnNSTV(h(&!N3`|Wn8qhA-O=(BN#7DN z3bR*wM&5mE&HFqjll#_N$^7`P4!ns}Z{rY$6rD;CGtEFFC0zX)#RE6Yw;!md3yF}c zvohWV(?mV7;mix*Ei1cL$&E9<+GZfWr5GFFXymFa7TsUKAs+-`74zT`tBuP7n%fFV z>9*{?0o(+%w-SrBvN4Pm!vI%Zy2X(Y7vY zO9ZKt=f-7w%Q2(Bg>KzZZw{!x!v#I3(MM!p+x@xyW+z2nJNZ8mPWjf{fWqnzdGqZC zEgyrO=#-=LrB+gB*tch_G7ZVLL-%W7Thk^VSO8&sqDI~sxX|_1MX`Ti#A7x|I{b^XNB;8`MLkR_x- zWI3KGY#a>kljrL#QPSV;h@1LcVJI#LxFJod|2FaKdvt`6r0hNQPsh<3^ zVsU^RQ@tg1_*~)>w+#kbQEMy*1yNTkY-OKx)G)IL1L)zaxv<)c>{umZ<$c*m>hU0X zSHnPb3|9`p4ry1{3rY!rE{&nTjA@xP0$ah0ZgGPJI}&=XUZk!*A^2%o<*HEgaIDpt zx5JZAt2*(B1y{I*yqBC;vp9cH zh#I!kUY6)uERS-bW47bEP{d+{-oebFI@+!7$%E+YuODinJaBw}deMLl>Kxb$?@(WE zb{}D?cYB=)t#)&5YvVo;;r5GN{3xq$G1Ias^%w(9@$ZHqTwXbihTUI1Z~xr(INczJ zaD;neL>KLfza-aB)1XKHP96{+of=pG;j7ZSfBomou^4YGYw$bSul&bk&+@O?aMBI3mKO5t7B0)|5BAS4Pqh){2gz^WQX9Aa)FV)Vjxn>=}mqYszN~% zCI8a-6EuR`#0G4$9As}Rf#*fwlHguVfK#c zY1I3|=So7j<`B%ayxj0%CRZaWnsUAN+O#a=ncA@FQhWmvE$7kubdxQ^fz1S<=s3ru zY6!zL*38>P=L3Raovp32on^DsCu5biAMwEek+nvu7lXD!y2CtITNA*+-1%2^+v4pA z5%sd1%R=G0AkYxQ*>-BsvwZm(TpL2;bIKo=c5x=d^C|ONz^Bf>`3X1@hi?0uiRnr( z)ll_ojaFXS&1>SpEaw)4cy)532YT6jExv7vIE@CA3vV%XowQ_#9lx;`W*~~$pXP($ zwMiMLHfKDFSMK0q&}{pL?8NSSVAJft{c@!=NF;ZrZlG~T*ZNrqj;0zdps{EMO5QA- zQ|;IEJo0#xM65g)Hm^4iN-N@;-o~*$)M6wgl*JdG{s~ueMNmX(C~a^m7z=Bv#nZDP zGlpf24=S)KnvS15Bk|*xH@a~%yjJ?rs^Hq zPT?m7{G?~36Rh=7qD%s=gz*_Bf@%nLoqf>$Ox%fsW#~!FdJli!!~txE!c5dlueYVR znk!UxxB@$DvQf%|Kag?ntS8d3t>UG4ab~r0#2sw28U2)#yO?v>hc?hNu{wH+dhJ+5 zT@6|9$kf~T2vT_2R~!<|Q}XU#`Q34FndyADAg@&6YN+nMXb?%1;YVJ=r!efSvK?Co z1!FPHH~&A$*&8Sn)BhScs-+ zHOm7b&ibhQ@pTaiR#3dI&lV#)xIMg73+cI0ie#CV-k}K%m@gIizNZdEwZ`8LBro<# zPMi7`$UYjHio5!OovS)Xgkz{t+1-Z(qwI-jJ2B)~?%KSQ(<5^#LS>nhGrhiSNNQCO zqEjp=7nZbQBb|)ZSwt!qHJep=cxW=M=P+yES`_=v1<}d)DOE>GxGTHN9y65@b=89D!1dN=h<|LR7TlH$m%ppT z_nN zYHw2z69*FmjI}?0eL^G97$^Cy&oZ{cd>RV-hGxRiOAH5z zND~cAXnyP%GsF*5177WM>(odq8Ako5AvXkTa1YYx1xL%K@QC&!i%M>Gg)S_!tQM~e zmTPjwxbTKY1t;Rt>^;_m>FM1hk-4P+llZ~v zE+MLb<*s^Cer;J(;~hnmsN~9t1u1=#;PiC=zK!~h;sl4eyv+lOI4ddAQN1!q%fJEo zyTDmK=}H8BA`L(fAC=9){oRBb^^^#cQ0|g8gnh=X9 z2b1g+k-QLm&R}cCq*>0nyPv+E0o;8q?!mME@0?3-aE8LPXoqi6GLzL&$n@l>k#LxF zuc;CG0g*ZhItLq9SDv5&2G5XIa+c9Zg|CtdEK&(1#g~W`oI-S^=pFW7LwFbw$v#bj?%P$LeDR(LLv62t3r;Zdz-TKV9mZwg4@2e)SuB*=WyR9Xu zUn)LZfi*zR0X6W>faX?lK$~H+Fu>jLxfb#%Wc`EQgUF`}K=)fa?gG@{=!~8dwVR)p z6LZkzJSk4t;7*q2`evxsO#(3V%LU(uq%S$tI^af<6KQbHh1kcquXrGX*MlPb7b|IO zP%mpZ!B0+p7Z9|_(d!J_(`p`{tKT;rxLT08JmJ63VRngXK0jy^_dt2u zF?;FS@%v!>S+Nf}Vf%Gp`Ez##V5@##rv^iV+R*#R|4di9CW=VU*KnJBW0!k9a43pdH8P-bbz<>s!4A7*E|)fL!+_#Q8fCsTGaEm=NMA5# zwrb$0pE8nL&lj9KMzTIt@0VL)`DkDT)9|p=@~}sJzFz(wp*Q;CJZY~*`GHokds1`W6yN2sCUiGsxW_Y zNKHvkXgn#Z4Hi$FXMSoXGAw*CY9{T6bc-NVbYHBRb)0`t01mE73eFBvWiUkdWZb=4 zfRznScBeNoo|LefhVSH_n~$43T()9pV#}CvO2u&8F+V+ur||UAQ$J4VMS3`(ST=uf zq>o}_Xd4ruq9`LYX&C}X@kS;BHW>no)jXHVCMly?hT@HmM>?xJt0D1TTZM-7di7r7 zM5@Y2^RF`3pY3QpQ`btsO<@U51TLUF%FV}q$I6CnX!#iwbo8!_tV%}}3Ubx#8CZk&GF+nQ*bVcVYPa>-n|rWA20Bl&f}ZsvpI=z697hxdMB!t(4{ zXLYeg>pw?lS!d8t`VuD!j5j$0#f4-LujUk^+9ogR=i2s^Dru;x5PRG#g13Kp6vL`z zHXTfB!F8{Id66x=BUR!@LX1#2`~~g;6ig?d(S^C&J|>Nr^)uw(G^byaWnRvT5B*9d z6%$AI%9Bwfj=#yfqlkX4=uMv*?>IU!xo8f2=QT+3?6@xoc|dvWxIT=Z{h;Dnxwq1l z^i*)=o{CK_CReS_no=zpR9q>qNg6-8k}!U3bc%^MbuKqeAz0Eg&3AvZD>N8}wS`j@ ziC=Z>RaulXDl_ay=;-Pheuy@8rvfUB0qZS@q86P-n z8kc9>qc_A&>umCD{l(0=b1*}FJ;h;IRaD)kawpVb?8c3o$}fllH@R32)sKC!0hGlC z(*AcV9PXXvF8S`TE<>Y<<-Vn|aAqt%2L&ClbT7w`D#*?N;~z-1w_~s(0@6y5xU72H z_~gIP6oJ5J2E@qI{#Iu2EmjKBboE+Ty2R$KGf|dVLQ0sTSUG5_fK(-d6QMg`=FHfx zi|MbxJLcrJ!rtAnDQm8g6hlNQB^9-5W))wuD{nX{Yl7Pgt@q3W-q17Oj* zmjkR}6IdcmstO6KQIM8{$kzcQ`*z=Hc#}pgWtW|bVgw+(wzjjn)?*w~Wp~cxk(4mK$&L*=|m;M=AbvqM|Q zb^9=Q|J1&P)zf&+925XW!uEx54vzQ}!W{atY8XV(RsNpaBJ}=f)^&8V1+mRt_~PYv z@bmQzH}x7eaa;Fs)a$WV|Nh*z@bizyPw7P5rj3Xb;thn%KM<^&8vWN5R-?JQru7?1 zh}LnPkB7@Yb8(eKGMflpK~w7aEsFY*0Y_r7C{)BWVkp2RdnXQUQkkev{26_Wv!x!n z&4*LBk~1x{YnWl!J@7SNK4f-s!}Uyx(wqUID&BgqaY}?{pmZ;!gI1V>^NlV1$xeq_ zQS7fb>N8%YVFbP{0fBpFehVO41}IPZ>{`1gbj;Hf>p1!IwukmV!dy4Ql^ww(1^OvJ z*-t8yitq?^Ppwn{)L1|nl)szh>|yI?bja1~*F?ioiE$*uq|f zH-xwr9mS??*RnrFa&jjqyq@0w{;P{5`|~f$mk8h$p{j%@iLiRo(UM-WNF0GRa!jHo z+E~@i6oo&{JaQ1a^_-5sE~qgh-duoViPDwJM-W6VX61~pJB`!VCHEP(e3wc$A*PpO z;u;10lY-;cIytyY|MzE)&@)NMp7#CQmcc^Qa@mpC>k4V%Dz2mmrx(3N`B8=W7EIbG)HHHws?7p0Gz8f`4uHfR` zdPAd(OV^DAK5^cMZQ`Bq(y{Z{)_^d_k-JJ~MhnL<_5|5U@32?W3qK$~)fG~@FSQZDWpzTcH2(*Z2~&8E0d>kWhthL| zU>4WWav>}~QZCi#DAfehQF0vi2Ea>cwKQPmz3F)c?kYX07lhR?d81274blg{m_b8R zp*1L2?h}vXg;tFn<@;S-6lz8a2-agNyVF?7FuA2wpezsTv*vJ z)c_8@*)!dI?iI761D654_1wbl|)Geck#4>0jp-|K2$NKbesKr*Z!0Jn~;V z=Y;>3)1gcuLP(7Ms{@Y;7BB(~|M%~(9~2lmq=4j)pGoZo*gHK2#2G2o#R{Q~O6C=- zp<-lyv$;rAq`>$(1dm#-jQNkKj?*K^Ol6>I9R9}(@lbKZmV7k<6OTS#Ae$f z2y)+8J{x4&zfIG6u9oI*lkRNZim-0E@p<3OffH>wwaI6q9HCQ=1L9Icag}%eA)$;YPIQvh&s|E&$QX&(DFdpy4!tw_Jxpc zy@^jkzqH>mWy!SN3(^|zlo|7_gIrqM?0(@F zj)R%Hn%QBD$_g6kA}-TiVKAe)a%@}&e*x7H2*xN+PfTiebz}Gkl>gC9p63UA!5HlN z;xhjByj)P@pqm;XAMFSKaM1v|F@nFpEhE7M(N;+sss2x#a(QM_ML42WS;3746HuCQ z?7tUbZ3L%&DvTpdOds6!O(ZN(sF#aNKoR~ajYidVUTho)C16g3v2=%lWf?Q88)O-9 z^8_?CY^#~{>F=u|v+22|kcLC(RPZ@0&HBo{x+g8XE8;*I<7^qs8{45}aEhYQ%2Gv{ zp+MY@@=2?i3Vq`D?vVkdr*YWWu8iKJDB?(DJLx}{9nC@>OMkCYbn=GWS2d_JM4r4c z;PtMH52=@rfwAOVS4E6o3+OoDFyFN`h^Ry?!R~6f1j0&*WdFW<>#t~QjUU=|6Z7?CW8fKzd0ooRax?2wi z{lMni6hjX#3wnGk=+34S2I}@wsQhNfNP|iy6;64ny@X?>-pH$*16_)8eZJC3G#?R_ z$p;JVcfHnhkoId34)pmRDOIhH0=xpg{KSDS^j?4t?r-1*Jz*cnZZO{ z-Ac~s97`Dl-{RFA!WQu3A3J@5&C5aB;%s5`@bg7*9=e>^d04Bqfj`a`&$!=zcRld- zHE_Q}E6??Ce_O>|^Md&6rVGxA1cc+?JIghgq-<3RXtxw-|tAf z^aV{c&jzx1J~Mps85}PyQtYb9fu6-rY{jbmj>rd31O+>yWb=(sv$OmgA}1|WiwvD_ zS1}vdr_MtP#eA-STMi(JueV)zKMSL-JnU7pj8a0$K zVNqhYs;`-rMylj$9;MZ%5~bmeIc6CxV&@8%+rTonRA~?~lR8pN@d4UYAcsl^?$L zJHGr%AfMy5BIirSyybkQ^52TsfgT zK*G4tw|$WZm>sV@hBkY4<fHbeJOIdkF(!?aV-)5pgUPm2+qI(YF9TLL2@=0N>a3KIp( z^JC&2MG?87J4n+TCQ(kB0cH-%mzNNw8A1Z&3-8R6F$TIts~^#9`g3~Q9>a20xYM4Y zdQe2+Ss%bbj^M2N>waQGPE8%GYuwbQzrLE2y@AHQhChyplorFN%1(hXnnrGKdrFTy=>#oR&bxJKZ)6uP8C zj1w6V9b5U?Lfu%5rAO#X<%b|z$*f1pJma1A;{PHxuLt4(#&F!vw7z0QH>5Q8ZT@MG zs7ux1*~-?aHog-$_l8#(mQ9gle2xIwrPYr@Z)abCHF%nP#qx_%n8dz=sM}t0u;uq2 zWSa(q1v{xks0Wv^>tX&T8)z-qRz89hmlJw`az*}$5@NIRAUUC065Ch0o}8hxUeD*X zE{)y$@;<0|V#j6FmF1aKv}|7Jw*Gr}9yC*GL=qAP9!FSx`3W!IQ^gm9VKCme@IF+s zBL&t=K)B%$G-BcP0P#-|qXAuDehSx#8FJ@lyU_%BIc&%2@C~t6%;u!mE27JFVJPfw z3BZ&FXRxbFFqud6^(*axR{)yJ@NV`ZH?&zpf9bDAI0n{QTV{v0#cok=cG-e=U14+0 z8|qNabbug5EM^}qrw~8Z5Ndio>asQZa+DR9Uyy7BlxoRdQ!qb?XE5D62(GszDi9V4 z)kwjhmhyQQXq_A>Z7U4;IiSv^EBr$%9)c1|@`Cr6J#E?fRQ1bCe!B*kVp}v)S{LXW z{&9-0aR=2kv!Ku%_XfE%#j@3e#NdX_uDHF9442a(mCl4^GSQn$@&9-Wst&oqnI?r^ z*~Tcv#8nh6k_D$mVyyucJn^y3vZ>?>4IQEj6fEBTBhdj7_?}8$<^z4wQC!d4HBNd{ z9;>@sVlv694>Gd7h^pg}QUCsKlm>>rgs+Ks{ZoCdt!L$-|S2Ylzh^^Gf`Xpj&thR4ubGIh@AkrckQcj}3_yM-F`Rn7IiT)u&uyVh^SEV2oy&PgDmje`g^bqX{TGE3o~ zs2mvuA>s%IAMmEz8mOy2`Asp&Q3oDulZ7{FEvYVByq<8fK!LE?f)VNesz)Qn_lhrp zd7DOeoLx}3gdQR4qBSBF&ILd-g5nt~-f?@$bgd;+>|CiIr>`29N_wdSwNg7whfEN8 zdxJSsTXoh6z88!RZiRUv?xlZdiMyG^hb-cAwF$$!4&Fhfz72sSkiiquOGOP#$py3T zH(`X}Q3})Z5CyhLLyh9-2R?@{Xx5J3DF#c${hODpb+#bh+0D4FbI-?c!-j==j{NIM z?fr;9()e9CnX+Hw3pUeh@qQaW&%>oa^Y%#0vu>SrU{}Z*hs8~j#fo9<0iS@poea1f zd6?YOVrnwHa1cHkJVLYHH~i_MwJXdqTn~7>j5Q#21v;{!E+Y{7u_%+zctlI0uC*mn z%CI6U$vbjkf(Q-fPS?drDkm;)>>F@XkEdLa-6OVM4zP|?Of%%Ia;$Q#u7yeex&8<} z;{?865^fVEoLg3`!wO=>kfH4S5oIqWzctUo#uPT)wjSK%TS_!;{}C+ z=7eVXih|CxGK|?|(zh`G?}ZR})*X?rn9-HL?Zo;NyKI4@BX+ytG#f-O(Y$anwc8KI z&H=Xc*8Cl*J$v@`#6^}x-;WvKCW8HQjCb9be^}Nt)Zf6%Kfo5Ab-!R*u-U-Z zjxCd#%A}IB2dSgI>UL2+UsPDa?7znT#a*@H&lITnF*Kt6{|t?Z|7(o!ABmzWHU@h7 zPL_K1ZvPq{2uJop`0>F7eJjs1jL>AZFBJx!EHV4>o#8p+8pS3m8)yRmsT72r5fr8b znbPC=+D%WLetrb08RqJt;v1>}wi8yKLd-Wx#6>5dB+*V? zk}&pPt|O(NkdMKr|_}47qX=G0PWoY5&6NZ(Cw79wVDv2U?akG9-T~p{E+| zZf<}}y+udEdN_24qT%YXzboFJ$MC&`Df;LB^BQ4abJb5Zxb^erCZKMI~jlZ|tYTK70OyNnPMSGXX#I6=phN2vsse)CFOP($ev|y~TFg%}%y@ zvq>eE#pJY8$-+MsrMa}ouYN^{^Q7sgvJ9f{nI5#`dow3YRMYI!s}5P)*KS_Z?C;O{ z?UcXrTq%7pupn{(fRr<^lZ@rkk_+90({g`B;T7eu`?zBz8ngMpca-fkN<@s^4;P?A z;zb4c*#RR$L_sRSl19nObaV40pvgcmO$tQgPJ&_Q_hT7M;|#4h&?@%e89j(pGV-=Nnx|B z1I$RVHK61C7C)%o%tY@&lUet>i5uA9amKF@GZue-A*`-hvDMRVZz8_)a)66zt+6-H zCl57<(XHH6^|}G7uL_L-m^RVSf~g`i_A{@rfDv9mt&%U9$@&0;C@S|+@LdDxxYm%FLWUIYCDW&&Dni;CotH+sDzWs zTJU4Y4Y+9*gw1a{%I|lRL(}G}s1&;Pl%c2IG?73cwo5VQGwz$tD@2fWKEc9YT#09b zkLBG~U>h%Rq1lu}Dud!1z#~f*d{XyN>4pK4v$|Nu z)LKyNjO^fV`tU>L8cF`dd*7UAH3aQuja^rR@Asd~o1uFd`~kH1oA{o>nZGD*hY$(p za!CTYiJT=Lh|0HfRJ-Vwkd>a%wQ`ydIn9Ibs2|~MGke-1I}jY29a%<7&#!5oP99bG zaMp;U!VN61SA3r+zSirNN&X*4b)r-}T~4sf^P750f2a~A+~X<%sbY44Rq{tv+@gs) zLTI!EXt#!WJbidPL-;)hvU8)!KaDbaNIPn?@5=s){P5+#{^;WTsVhLerRl0WL^F&c zv@GL3G3@GOn+Q?JgNew;)N6O5$sM-tp%!b`zwC*iOiC~Xr6}i$o;g5Ll)8c}$_IvA5f}ZJX}3oJG5sH%)SL zexeJ4(K`6A1d}}mH2^w|+&e|gH1HifnVKE+*V~#sU$Ip+{0%4ISC5wW!Qe|NR7>aY z4IPjRVd4CajCYBV=S|54*#nf&3sU<`EdSZxw6U}uNDwpzimM&g8O@{1^++B5lNJf? z^3v~&`!v4S^tZ_AXI@3KV(QO|V&ZMxLT%f`otX+< zrrwywA3ReT?M>iWOTi^gi}6XYLcB07?2qe<0Df7#a^65VtA!meQ^B3?Kw+K$LaUfa zN0>mr;9exHaPlb1*xodxIW@^9Jp8)3Q)ur=BbK{``vpcgOz?2v z^liPbsMdA>2>Y7D3d_Oh7U&!c>kxN}X=TU;Q_fZhdOYZMi=kbIC|kJSrpC8RF|eT~ z!;|({8A>U0|PPR}GbpTq|w&7>Mm%^XSRk~8LQn5lo z)~a~Q-0=KQ>o($Y^X8BK2>mR{{Nu>}Mdth83WfT=70SWLO3&KS%)sHl0Qo5X^Pl() z9L;R36|K$wu_f>?aj#UhP(@Tl+62M}(nFG$zYVm(|2?m8B1nb&CxPXM20^WXD~Q&| z#}FD1KG=2H-niKGg!_Q%NZqs8rlQLGDEKY@?O$I0z5$Lu`^&k~tJUGE^*F0@y7hP? z{o`@krW@#FP!``&w*lOPoDnsgyp_M$2QjkBmIKPBn(qaX9y!Eu? z)D@kTV;S|)zE#R`g}GjR9y=$nTu&4_d{%#G&%QJDmdSB}4sFae={zNio75SAl-0~^ z0v2N1ksy-%ayI1AdgIofp(3Y^MPh-rE-v2r`T5ZO8a?)dTdJh2^lr(xr`CHdiEsA z)YR}Ii}8*EDA##s{{C3=3BSZb%VG%P8T#R@GzDLqnxjc7?sxYrwPM|+RV3Ku9OeYE zA(3IOW#>68YDP)a$Ux7bC$y>{|HT@&d1|%s7-GWSiT2h6Wip})KND&5mCaUXK&k2c zYlF;Mbcd-3V<}SXNAikzHVd9>iL|Vhp|(uY$aG;w1KHK3gBU=xFWO%g1QyLqC&1(P zpG)oYT(Kxqi0q=7sny-L-8+@y1+xy53l}BKg}HiJxOXcD{wUm>h>@$n(W9oepM_S7 zz)qCiT1ubMm+Z9?!lcy6jRP-g^Zt$-&k64mpN$<>{VAeLc8t|KZlY#jk%wW{V;m;s zebp3u27Y>Yemp?$HQPM^SWLEH!O&Q}@<5pK|$Rbcs`z^l7wpzo>AYHxK*xMK{ zFfPoN6;sK+9xVnt9v`|pqOn)|Q9**T^J^IHs`Q+L?&*~z1(Q;9|z{UO8rS^ zf>H{jj23?dO7-3;3P+E`G&sQVn-))?$xTk1Bp>fbllm@zs{H(1NP1+F_q}fO*C! z%nO?&y+2pHHkq2<{T{K={T`wzadcB*$)@L)bT+yapunIt=K6UE<;uRCCQ|f<`jQLo zh^AyG)W~ge&c%^|s1ecaKKMpTcqp@?mTu(x%eB;KwiS6(mW*mIVBTNP3;ny3{ALOk z$<5|2&&GpP|2%cP)m<(oUryN&7J|96;p|_SEX;z=V0-4-0k%eWeQkOB4~L2A;GAm^L5VpXeC^Kz0vZ1L_UV zHHr5shbXs#TwH9KT-OG7T^X}aT9)B0Co6E8^Vx`@HLb-PL`3%G`us~CmR0iGScT?9^Ftc zN~cfPEXOy!9pDZz+O!QlVm}vgxshjx-YX;LTd`*b=2#V1;Q-aV;0zk>DYB^mk{Y1n z)B;GZdU*yk#fUy00ruQZ3i%GERH0oJ(es==71_&Q(Syg%L6iuRbQ44kl{>(TdRk>6 zENV~K2fi?6k9g4ylENNwt2f*vY_Jt)xAws6ja*@lVR1Fw+E0HA58BmVVHic%RerHh zq%EsqFTWCgivY_xpqI2lEogz58zXq;)N`5Ro=~V_yez8UD&yfd8pT~u0nZ$#CjvY$ z_~?MlNXCW`$pKWsCYSHqRDp?;Z}tE-y#v<;V0-6q2gzoVnQnZA>wk)WxOfyMvCPgJTwdulE^eg8S%7rv9skVOQIV-~`R8|y%H>l&K=cb8 zW_H|ewb4rh)UXlTt{`0Y?XJyDi4<<)sX^fj6%OqnBAa>`shvd7v>DnQ-Gv~!$cG^p zb^mdo$3isijvcg#C)uz8!$&2Q>?_<5s^n}?Ji{j^w8^Jh1nua-HS>occ~?a7XURZ{ z+;PC0Xl@q#nL6~JTLa`T@gQ%M!at9Si_4yD(beH|Hl{B{LB}7a1B478<4_;vp5Eip zHv63RJKGYs*RDDhA60VS_zRGEAH1J0v>jw|U8M8L0dHM39aIajhA%d$U(s^klnbzd zZ@lz7$hlqz$F;}IA1l$>JH-sIKN*X|z0P4D~?+r!&Q_7?G2Ze^4Q*LwvF%Nm9QFIq z>SxyoikGDd*WAr?jR0yZOO+TFjfo<36t8wSu_Ol=q#>SFr5(0QX*3SJgl(7)iOXEz z(@`MP>*T2Pf8D_ zV2me{cG;`^A9fR#= zOtB^g_9FQS^bF&Y+R;7+Ucm1JEvmBsF+{sQ_ZSJ$^N;z`>2eMl(v%;B7yLI(Z(Fo_oqdZg$sGMt$ z>7N!%Jc;kPjQB4iGZ>vEsF@Q*1w?cjdxm4_$otH$Sw*IQ8WYsdhp3;D(^y0dt;X+B zAW53EsAgq@ye!F3tk}X|AC1p0HiRk*^x}%c6uD1S(!(=-=M~K2**jhIzdLS((O|dN ziVoZCa&uSNg5ey_Zxal}Tt*E2^HGx5`m2ELM04-^0R|C$_bTRL&_Uu4q&m z)8{!U`+GPlhqs^NA$F~FJ;Nv>+##d3o80SCbw$r9WtN!;n9V5rYvh%RXjiIOI5w(u zN-CZ^HtJZ-*x~X}Ei`iA4A5(97gsGWh-h0Wq&qqJn_Bg4wzbKZq$}~MP6{-R)Cd<< z3RoeVr^~Gii@-hC*vhIaF+EyqU&`TYHuYVBGS@S3s7RkIku}-N&PFLR*1^3^_H!TkFs9C07;C(t;UFm>SJ23Xp-onZV*Nh< ztPOyV#vNtBQW3neL-EO?LITD#EU?grpjeSeP>8AX)PR_we9v zyKyfm^SSLidEgmr&#W-e3~Y=z147JX%}q-`Mv$SudwPH-fw5H$FBCk|3k?h7V_Ji^ zyozXY2JPR>UDDL#Yy+a6)%8fRy*BX$pU-!jLqnrO9O&%Q<<2As7Kcn0Uz5C0F224$ zCGB*Ms#QU@rd(K;X^`p`VXQw^ut8lgu8Eczf(<)M4Af%KY~#Rcl6D(3lwk3@28$vg zZKS}SZ~hbL?SW*jY|mge-6bHf?Z#|PxR_4!0ZBL9L~KkP3s@?G`G#d+UIJ!XA4s9I3?mz4EbI)xzCERj~t~PTk~> zr`{_+4R6*Qs?+tV?XK0ae1~E}JvBqCs`6@eQqzFp`mGkVDQ1L;zH_0P7rLb-5u_Qd zQl;lDIH8J85jbRlIa18wl+-KcWLw!iW+h*9%(`)DU5>Mk6r)uE(fCTY@SIxEs;N&O z^^Luu4a`mYW$WW4%;uYMy!GFD+2*d*y!-YDq;}(|cXp58#0dZkOBq3BrPw0k(wlTz z%#Z!H%StW5yQQT!Q2m;UoWHHW7=v~_;x33!4qcgzZ8xA;t$kpnQvxyRVOetl0jPu- z&1d|0?3q?6;QFzBghNNi@&-;2!V&7VQHX=usU@VI<(>crto$XrAf+41w3!8OqVtsW z5_sw0%CHBe0u9vo^^^M46B;vnFRCyK&(4DAj+u^v&PD02U)HyGdtV9FVqBzN>xReH zN4y3Dc5FKdTiSRiUGvxDw2CPo0;#`bK6yAr~@5=Dc} z!Nwhy;fhGVMR(kx4A}v8+#|l|gKhbOuvRWSQ8-+wEUOh|zByjT=n&NoUROeEE{C~L z&UBQxjjeykX!LyaGIy3g_ar(2CU#uLAfoSC?#|A_YsWeJ6Y{LVGZ!pku`JyAR3$=5 zQK3y6L@w{l-B2}pN6Q);P7uhX)i9Q{muvN;PFtxR1qCwtjKQ)NXJ)okM$>Wia;~C$ zq$Vuu2zZ0X%c_6GHpYb2=5uCuLbNr&03BSJ7-UEGNK&<68*sl|dj!a}f1~cP{Dci#lK`p0u`YA%7j{}b4#!q>ev)r@__l-o zErm!?Fc?-|RUG^RjvyoXHu=J6AKckFmuznCxD!aEc5!XnRGs&4i=(PTx$Mly9qm{e z7c0Zx=UGVk!8Kb)38Q2zEp#B>($v@XR$pG9L{;Y-Y{A(}hRRyB{PaQ3k{4E3{m$o{ z<#zLERgKUI5zY|l*cRuVNsTO+(s6>ULTy}0X2ZAi@7B`E!&WFQW05o;=w(*)tcQY1 z$;kUy-9twZhKX)>iL0iEevPS*zZ|uAwOu%2=#`@B*1Mx+-AS|W$aqFXJ$$B}p}M0L zTOeuofy{ZXlpkAUg>T@UV%qOM&R;TMcZBUPV}Dn`7%8%pw%axzUIpKPN{tbtJO&qN zCGAi9K12Ubj@p-T_xL*xEK<`4T9=il!e}zDXiIQRUJl_d!2_k(($8*5>V>%p?3}LM zL73ezxb~>rQjBP0Bye@Vzc(DGI&Ci${?rVnoa)W2o8OpnxF`C14?KmjJ8fG5FUE;t-rKR(EVwx);jH95k63nq`$ z&h0Cc|9T4$Q}Z{QOD^H$lnhP7P~DnlxEbxy5h9sQk5p7N{NXghA!*26ywEGs`S)?i zG+q22*yiiKkP}k$9u#|a-?ADbiT%t0`mu;|R_4ja3= z!l9vfyU-k(<8C#wj8oiDdu2K6ET}K8y=P$Kt*DwWt^u@{!1otA=V5kz(ubeiN1X5n z^V?f>%KNr%JzdoBEr|?bBTqR>YwMrhM_IKk?ld5qgf7~h${f@Wc1k61$^@l^i!stn zDmKKey4L-Yg`4DY6=jEay>qLtvwr~$4*$yXo5TG2RfzxJYS{mSZvA%+E1>6KW}x^# zUDbcpvH#8~(YBeVL*mw{H-hxF0v>u<3+BtKECYeFseIxCR>(Dq=TH{FBVlDM4c?b( zn)mLF-UWt({rKgDv`2!()W8!V*1CMWvElId;^XD@lGA5+1-d5W9Dv1^&?i_Lm-X+4 zzS@s5brVOhPz9IXb@M`vuHvZ>rTWg1Y62gZQornz>d1T`lIkYnVM9m*gf4))GVqkb zx)QHwaasz&?lK{?NS1(7L1TPHM7A~Y))u545#GDz8MhH#C5T~m<1k1G)TrJ`noZIRP;F8+IVPSnF{+#|Kku5>l_<{J zeb3i`i0p=bz`YP0mOJzOh~$+V4BkPo>E_)+*HmoY$mI1~hz;U>6SVn67PTnV+xF?B zy<^vR^RF)qlp_t0mZ)uQo8jsEc3QgqKL?kzwREfpd&##V=-v9Dv{y&tI4GaxQim2Q z9iad=#(N%ajj}_U7d0rVjB%Q;_URGL_vxG|Ys;4{xYq~6HZ>XB2aDRC>^*6(DAiZS zq1U^Moh)1-l`LEVR?clgFZMXyEz#1ov8utZ_5rV_(}VA~WV|pp`#_%PhDxv+x9iTH zA&#=wI7zo?HarCT`JUbpy*S6?E-&^OsbM!~;9Xp!(c4B-T_(fV`><+Q{CnhH9*GgW z4gEA)lgYUBC(&+?Oh6w(L)mM)=33PIj0|5;0B}gMY!xEsg1%}}k@!f~umOJBSy@|R zOk2+Kv^JA>Ki}-iwXRHPS5f8Mow97Rtv94qMM=F)-ru+-*EYYWnUq{jWWu_HzDq@@D^}FKwj0inFgDGkJe4? z-Yf&__sVpCsZBEsi@o_-GiQ~-1)v)_h^nM*U`9HY(dQ*A4ppEy#v%$emCI{O1Te2U z!i5YXx|>D{?a_Fz*C`6p2gnI0^aQi@*s{SB$pVQpFj&{^88c{DN=hnq=Ey?ZnMU-u z`VkvB&|!q1Z^zzx0Ldq63r2xG@3zcib<^TNDZBaCvYk_t<;Cb|?8RD92u4b>k_;AG z&j_Pu)8eMm!jyA)bIr6y3doDb7soO|)te*TMalpj$>}17XC>3|w9|?HIlFLPb-Q+g#GQ`f-aubaS;iPl;EsfL_ zJnkIjU>yF23sE4*<{^+YEH9Br4EVc+wT;jj9CvhwJ6cgY z48aJdN@YqZ^4kkU#{F0PNGJmbC!x#(mCD)Uo0@Zg7QA>Us@o>U-9SCkstBGoMIvvb z^!R{*P*>G9Le9@_=lye8X2v>jK-Z{3;j`FntdTlugw1S^0j{`hh}57Zo{|^Yo)TeG zd|QKGHM-Hg=nj9r{t5=zV5df_5Jewio#!A?=y2awNn7S}WNgV-U?2|)NhU*vX23%i zsQ&?Sy1;s!OBa;JuuLvMdVfH&qIHd=ZZolK0XOl+^1cLD*z6vAnw}X+0e*}zciLu% z;w<~Q-S=|UB%$2ca14fB4rr<0)$JG zj>peT7;&IK7;)J1&7i^g9Yp9r=?3hzHadWWi*uAD=uv(`F2-RoY;Ad|%ZPw>CRX$L z^`ZII!Za%o|9> z4tMeo?2pJy|@a^Mx`5GlQsv|3K^Q%aMMDB z7IU~o^Y%t485xZ^lj3fH`|3Lw3vdrtK4ZH~i^mc}`UuC-$GC>_dZ=xa0sr`?BfT(e zl=P_Tvg#@PQ1T_wy$gGAUdsGv`?w*xem|4nV6#=_M5q8q>7p;5#XgkojK5d_huc>8 zQJykV=~A)w>i~QEcNcavD)eseQbK&;{3*oB+rhnI2L2AI9)BSP{*I_ep719vr6Liw z-fB?3j2M4G1^y1RA$wu<)b8zOJors=L-OUXVF|pwciDWK4e=Fz)6WwJCu`v2a-$4< zyblOWdbi&W<>JT7J6iti%AER#s&8WO${tvj4=M5}$*K`Kt2BCAIC-3adHh|0r!WPcZ7EzA znWRApq4+bFFa?3Om;ri$8bxfOT^JM2pM0#;wU!uJF+`-%UNTw2>=+UW5@+hmUyUlU zB)8A;h2&vO$R>&!;s|!a`M%*y5-4VA1k%ZO@I$ci(#U2YglXi7V{=r(Y1EVQ1q@rM z;gm?F8LG&hc6AqtmdOhCIA%CgNre<;>|u@^-C5Jgz@F-4)NzG_VM>$kZ2m4uV&O<; zLI&mp5v@bbpa%SQaoS9d1%*#L3Hf4aUqNQ5(LuB|;Y*bx1rlWTP{j06T;$rH%JHMLJUd-wh%h!!Bohrz| zU#F+&;NNbLS#0HWzt$AB)Tq*KB{w)M2Bwx?u@Q9iS(PcZ6up7+7yATU=PKYD$uviMLTY z^jqJ8ZmG|=hj)0P+WFPfy1F}mYF(>42;I!C@olpbyIezCTAF5W1ScYv*9Ia;nc*xV z_vUd@+6gDS9sgChiYAw3HW}_xgeUa}p7zi^H~VqHP|%3bZN)4~o?N0`4pd9MR;|Au z+*d(dc)PMu=nUfSZ)eU!Ly}it|46^eWwR!xG)gR90~GbUO5tXszhV>KfI+Cj9|mfgcT{L)S|r`4Y1)Ev+)TW>k_Sd1WdCmcafaLW$kVU$&j!HUN=8Gc(xmpJZ zT_6vwuddNf|InG_)<7Z`&u(F}R@K^FH7LfkGKoAn5++QgL+b*3g>A=-g(!VhAOah@ zcZXiJvFpIx%89`h8Hts~(zl%VUBtv(j#Sz@d1fI~kb^)tU*sVqlM^mbRYOP~$n7<|(WB)yxcdvl96@tS z$JUY46$k(=LVQvDEy1p#e|m~h)i2PisO@T{+mt38@{6EJw~&v>G<|+!_xNB zu8l)ulT(G2nciTejipnix&3>H$lvth)#Y9FLknvo1w~Od`Wxgw(ZfgrQnwzEyZ z#Nq2dk`oE0T@^-z_#(mE(%Xm4va=7Ig~zq-EC$#7fz_){uRL2{ZF#cw}Yu`u)-`Jl%W zW;X}h;g}spgbrq$*(IWYp+J<&N1bGEW~pF{U5;Ndy+fDOc%GqIL@mB5OtOIA@}Q9k zdouY2E%P;jG{vmVJ(Z4~ky$i3pIB|O)ZMr>8;-vV?!pLT6tB1di|)eu zb$OtY2=Q={z^seU&2)3mi36IF)n1Vf`U~k$X#B}<%v$`nq~>ROm-Tpk)aX6PR3>tS z&N+86IbJE+?l~P^^L(~S2Xnsi1zZ?U=wgcK9qRW99{K$%{9bo($aV0$1;O^w_sbve>=AUm2OIe$x0YA64m!^+D7wP`g`o==pMms6cc)- zF%6`psowrhfr%qYG>BO~prX1C_ROxgW!N;Ani4?Wo;*y1iSOTl1qKc5O?g9NV2;V1 zG(6#AaG*c6LolmLXiyV(|M^N~h5!-0-=VwZuNA(s7qV57dO8b!54{(c`z>l_L;&TC zmXnB%GgCO10|H&b4`d#bgF{q;#m9*M#lpoDu?4~S=!|%Jd8GI7RI|gNY%>hixj4t@ zZ9`st5=@_}W<%^{ji@$kCI_Md$wg3;wlhoBVjsmPPg3<6a6YAH%U!hZzR~jtF=~+K zLHepOi?brO5otw1@ig0cU`$p%avE$0M2FL>>V|cZ_(`Y7s`kR&jW^HOa#Vz+5Zsf? zopHqEjY(29UHVYXdK=Y^OM;CA(XBmDmRSWlg4`v%<-v*+(;rD#C{6m5abT%zcw}T) zBW*aw`MV=@XYKVNM2O-SZ?*~8qYFl#(^+4wI%Mwy4x7lrla)6Yu808dC-wS+%Q#~~q6^XYY2>({(8=y^Am6NVq zk8S%kPY5qD%!$=c$7$)?E;Dh8G^=caC2uma2Xi0tt!Kg)yR_%qGc$O?jyLcRrIl5X z>6tMq6<$KNaJ9#I36ye^(@N!vtb7|Q{YS3O#_$r1pFOCBTOLu$^sEMNnTJ0YWD9^?|?ljFEdReZhM1pJg?I z-izurm>Ne4!cQ- zX+as?NWLV__)X8`{C}6MX)jSj&WT(a%1WG@E(iD^Lx9jZr8LZ-D)qaa$EYBH{B+@qg! z^{dAnTQZt^p{}W!$~4pEJeq9pVic(#$WqE#o&JoYl3Vl}MQR z9k?b1aovN)rbmSS)|Vq^C`UF&9+6wjD+ip@61WW2-{#m)5<$-zKLDyrOeMZvgt4!~ zjsHE%=fdd*DA;JRTI$I;aK|36gzD-n#fZu0CR^8n)cW4ISc#!Oho8j_h+o`cgmJW`-?-vm{r3 zR1l}AY$cP2bc!-80E6Q17q5sB#06x9^AWg#I7k6M=GGU&{*axy@gy!U&*Weadc*qC zE~3*GDc)+~VTLBi^s%P&qS6%)=NK-7lg% ztj7!0sO8KgM2X!5z^0g2a9TF%bbu4=E=p6YxeWX0u@j+`0gcW^EuQh=>)p8;JMK!G zZ1)XnV!E=4Q8r{yQzkN1+Qf0NpTl+lpcW}-MP0iEbuT$VywoX|B{3SGV~Ec{!Y?8> zlPNR4dMPJRmMQZ^2Q;)N#Re^zi)7Nvl>yDn26|Ql)u9G(oR6qf5rAn6zY!X)_p5w& z`u8)*QXa5s9`y9U?MYv%TChp3CR=ag0fr6+z!uT|+Ky*SP~EVm;RRA&X<5m1&{sFO5@c!Sdt4^@u^@8yX`B#9J<0nYm`;Jx`d9VPs%x zq5Z#QNDON^QGi~wvon-|U)C|Eb}v)_t8V~Ky(+07Y(nV7x85+-A$RXHg!!RsDCm>l zeoohZuiPo*@e`0CsHp-<;jzu&ysFi5gTFEY7iOyXP3`SPdBC>CHsU zcw}s_it=X^@ZZpONg=U{^6Cf6s1~CtVH5+8+>k@FhV>+_U4;&bC&^9%1s;0QxY8Tu zAm(Rakyk(>S76p{J8Q-WB4r7g1PgNaKa$@J4LH?>^Kd$m9pv#h=0~2~2$*n@)LD;- zBJh%bqE>zc9Ncq@PAyx5Hq3td1qY)}9=&c(BOkU}2T6A1*Pp1-8?b+p0oal%@4%RA)~^>dN|v@7yq3-*(57ae%x>;<}MYHQQiazzNjIRm;{X`^>_0fiP!82;>Un%Qa}cmhkNE@6xrdr z2qY8Py+`x!L<@emYwZF~t{zJ;n))Hd5NZ&p<9(Xql^PRoOc>^AOcD z7!t)6R5Q37hZKd;L ziCkgd8d6N5Ru@u}Wi03xOzt8tACY7f%1R&me4Uz560iX}6+o(8ym3g7sv?nX2~y~J zB$r}EmtsAYqTG?tOH1Jb*U?Y2m10us(lK!prx*_kdoCzR*pn`}0s3r7Et zOa($^uRj4@A!1Eh7)h4(?`;@vermKUH0lJlfH^m5N$FDmnQ|mc@0^P7;)I5Vo*gS+ zYk@$mJv}>DkdI=?wql+Va$M51GB*q|YRffHRm{}CulOgkCop_!c{k-^Msy5V{s-$r zt!w$gIjqowy|Z~MuYq(=pdjL*n7NptjoeW~+C#p;QsF}VP{`TE4# zb5k{jn1$(|Y|U?6`Xv+uJ7(%p%T_<#qNGFN9LiYUu#AJn=Y{f=RJj1xT?D<{2I*I( z=3fFqO-+Kk>iu14IC@@;%&i>;%4}D8*f=qX%@vbz{KDNB&8FDRmc-_ka|6g>4v3)b zP>_vcih5klD5Tw8)kDNfylSDwqLys%U^MONNiI zh40oVK~GCC-*hzeiTTv$Dv)gp9i>v}Z%9cGnE$;tHn(Wxo~wb^q(uvcqD8a&_OoVV zQKd<^$S-i+=`Me^oDsmF7RfA?IooQ@BxMC zB^FePS<;ihJ{SW)D2Ufmmp+#}N}$~?P~Wv8TY`Z9C*#WQIv#yQo>W#?=vL*$QTzMVN*I@p>%*Q?i}59d5f z^o|bw5$4rWXL}~!5_a`@qi)wm$I6+&h-~h{aXSqy%f;>$b}G6C@jAzXMj4o+bmnWM zfW{(D&qkpQMk|gh%f9?~RqkNiwdkbyewXyb4^w=y@CI)w)R)1ojn=tFC;EUuro+I< zl1&`PHwm%EnMG~Z>O+@PF(u5?7_N$hyt);Z#)yUf@OjO_RLsJVwpW?y_O2$-w((`; z?VpCx9sM$el^?gPso;N`BeVTyXN`cRp0&mQ*lTPp%^V$#{#RB`W&A(0a)wP#XXiD@ za`3)r{OS$&51)FU>c`%3sjI;S{l zO0k$x4vc6KLYTS=5ig%pos<~hAeOKatlpN$z*kJ2!6%ZKQ$@D^|Ut*fph2Mpg3{;5vSqML>*z^H%)e%JV^-M1)m2# ze=bLKKN`)v(fIrL!yXg#4+R*Dy0%O9LJc*F+S7==FA))_<5M5`|>>_eD7t#?vs z1P{)*_t1{4Wa~t?k-;l#4`FEND>4-W>rT#Gpb z>ztuVNvBy!3fB`*y;^Q3`$I$1x${LleGMza1s9d!%JK`+T}@W6%KQNsm2Y}YN^cg1 z2uy{sE@WyLubwOSr4`S6@abj{C;AdAFD2;vhVHr9U3JZ|gX7FrWAoSC+#5INUL>&H zcGOBO9?lB92a3>Q6dRgfiE#*V{rB#VxeFBRP~ZTb`iBME@n5qU{)^e`A2}+5HkOt~ z297rWWA<89b#c{HMgHd2oU1=D;pCK`GhP($P)MvOY7)1|IMg35y(A$b4>Wll^a@qU z%F37pE+i!8^93XZmPq}{{}d-Away7Z&beS1+bXvl`!L1(n3}I48sGQ#^1KPIn&N)m zaPWH0vYYn!$d2X#(FOiG>PK!7ADrY#*dd`^+CxF6z3t6R>rfi3hW+Dcw`%ks98l(7EiF>KGc|ZPeev!95c`a&qmw+1eTG zbj?QX#Z1WgB%MQ;GQmLLp#iQGiBcad7ZSI680Rj3aZ?pYPh8u z6>M98bv?|j^Ft6v(uN(^i+Z;Oj2^L7a21EgLC`J^;HcDB8_b7D@B+SH%UAK{i(bK} zq-&wj70u7>A(4a)cKYGC4cAmec}e#65$I!5QJOoQz;|xLsW&Hrq1yq6-wXE}bD^Cy zyg`khtXB+!ay*~~c5WJb3pFDq&Fh;5WQkP%gK9%ub$`TG%S!sW z3yX7|$Fh^NeP_?UXJb|3^%WaJ2$}fhid8eF4BG>%GOmv?5Nn$smy}W6lBOL+SBv#7 zL_9k0^Rfg*c{4qbQpd)ukryOPQ}R^nH+TsNtH(&Y)q=(qP7aFR-N)eZl`Uf{-c@{Y zT+{i&Uys~$PKK9KvvZh<0UCwp>33J`*cdzexh*^(XnOaaqAO=N{3R}kb{`!1&+Ls8 zSLq%mMpq~)vtzz!KVDbi?)pmkF6T>C(Dg1j^mg*1SFRV{9q+;o;YSLxSikIzA~bLR zG$d_ph$zzsplq#@Y)lh|S7;=KSK;0=g;#zrid=Uh&<9Mn>Mba=?0z)H7g2w9;3q2j z7X{n@9ONPK7HlAgo#Ay1US;J^SNH6GFF()?U!Fa1IKYGUc$(h$rULgSqePm(UhQ^J> zaadGTDyoVg+2(TZk8cMX7Q>%3pG~o7a&=VnIDHt)rD(T+-|oKU8YbT=v==Bg!?w{sKYFXhfCBV^#?-mle#1PPKQ5 z3-V*cn+0a49$Gf#dL^p5Wo>I^(#*2^9K@wzGy?Os8%ETM9H}BzP7ZUh)2yh9RtetyB(qhUL#rCWbPZ~)S_70y`{9k4X?r!%LjE*{WLhZc<*j_L z@IDjKx3=Wg=_sk0m3A{#hTbLJp-Ehzb@kf`^d9Ir)%+*kBiu4=1+9X5SSokL?C53^ zhm$<)E)gCr8)jUD>tW(Vwi%L zXBPtTeA@ibosFxlFj-q)W}AxA#Z12O5KSt{KEXNZiL@Y*mgHP!Kus-A#6#z=q&bB` zg2=Ih_~|3pOxVP|6fnFda_j_U6J?{Cq;OeeX=Yi2O8Tr1qp#qI^z-RAMQiCjL^ju~ zh8s!>qS>++?#U1Fm{b&rDg}G^j)kmWRCMILE`Nl}xpnKkln|igFoMN#phnMH)<)Pa zsM@o(sFb_6Zhs9VvmO6|7f$!YS&TKD!3OLKnja5T2!vqAY%opn2W5~H*Mc?hl%x`xV`BJ-$mV7OvxDLhEMSXL?r^(i2l}+o_yrwz*4r@i=sq* z-Z+(?>bC9Xbh`bl;GFPD)4TYs z9$xDmqV}Ln!(l!XhU!vu2U6ghG!DnY>5-Nrx2|0vIAj=eBeG( z;FS$CPkk?762l{4vX#h;-y4>#B3Z4=AI2G5ys#!9!4Hpt(so^##Euq`Ia z__swd?nulq#j(g>?{edFn(K6<@#R(9>vr{q2}+x)=50Qbr8{(wsQXFctG^${54k; zLRFsm;0Fx+>5_vbk|sLlzVd@}rriC(LxdKLw_(I6h3@?uqYMm{hIM7K zf>ci7pgG>iE0A5aBzm##(8VT@Oq4%6j)N}aOf&_sV9*#zPoGT1tm09MKH;3vAMh=A z@8F$GRPs@0Xi9NFK%{eWNk0wJlU1_pp;pgdNj{UW6wW|^IL#iQnHTuL0euTXtf zNv(b+Cbsf!R4u)j;9fp%I|2)6hAmwYF}g+%kRZmbTJu#ECB}hQtB!%><^gXg2@EtT zkf3Z3Vl?VU@+QlIsJ$?^l4tB7M}uB*akGUV$pq6H)W%jrwSf-ifHWk^DZ|i-h?Uot zXO=hTU6bTqLa8$cDEt!A>1QNcK&zs`uz?Ww;Y zGhex7R&p;L&Lv!>p`CPZ3+#_S4>L10^Y*RXxvw)b7;Hj}cIi46O5$wfV04?7;5y{Z zQ#1##3L)x-W=GOWl<@&uvh6u3(d|8SfmetG`=Eq;!jWnLwagxHjcf1rw2Pn9P* ztO~SYb)1R_WdvPK6juoo4glgCdrPw}U?8-Rx?g0*m%4D)rmXfhF_r(KK&a;R{B|JQ z3}W?IziwdV8VxJT>;#ly2k39N8lBnv(|fMG-~#UkULCP&3BJ}e6t5(5>!Nk-sawZP zwf!#S5!+?=j;8&Uz{844;S6zr)BCP&!z$*#zbZk~z>`KF&$+l%vD{Ga@Y$+AIpGE19z%-07KkA$WhgDrS~R3m}8^HH);g+ zN+=v5X8uN9+FnK?s`G59(QxG%ek>Yhk3!Bq-nc$PKG) zT+DW`C2*MF-;bseK^!`Z#$%!N;zst(2T5(KaSSc`#3+xZwFj#9p;YOTjNfUUFxKsG z40nzA>+pjc1pOgptq|7hkrdFN(P#GS2GUX1^(E*W>nO?W(i_Wfc&Wk8zU_3ISQyZc zl{X*S+^6}J~*P*f3#1Nh$Ssq{Iz1q6mDZKMX$ZPsl^Qd+Ki zQqry)j_5`dYLjfO-kRm7+;7ozc`27R?SiiBjzx2oSt@P>y7k8xS1re?Z`u0Re#q6Z zLp)HyS0G^{`oB2FY+Ai_!x+Y{Q@0Eza~#v?^pY8nscqV|ZisKPp~_mfNM1_OP4(hh zw&YFB3r*Lt)k)>OF>&B=3I|-YV(h#$9dbG`v!IWh;~PEhhQ- zj#rPMr715i8+TLf&IEg@9rkNtU#CYvVKNj@}eGL(@3-1i_fox=Mo z`hfju?ZZhME=ox)gz;-BJ~QdMj(;BKi#HS23b~ldchLp=eW`;Fg=D*p$7C(XChd}p ze!=i8pyx*`YVy34eK4}v;oetQKeR(AT)HVty@Xja?Ke(5+WkKvmXxQo*+}=|%7@u8 zWu`31<;>4zELXmnlloPrOj=7N6spz;_|G1t7DavIuu_e+LCK1`1!zw5jN$+ul9w-o z9YrOXTLJ{qKnerWn#_1<(j=PXh=(CiS2I3u+Gk{!emv;MP-eQo41mO=89G?I&y`<> zRHbVDi63f}woF&eU+1dDs5A6)$_lBRf!OpmBOfgl&H_2UR=Vi*VJ_z+A}pg-(b2h; zb7AKCr616k8QIx6>`QL_QwDVDC>K|eBPgXMk#!NGJW9#!$u;s@%Ipje%D0R9^p1~( z5!jB&9&Qy)RfgBuaovSk@XA`0Ya8+V8J6zfOZKm(-nT=Cq+0qGsa+g!fXxB%^e?Xk z;+$=Kz+FubH%8P*wp)we-DM-S;N8YV&tN;$Ig=4Ug){rD(NkP4n!%Z({_#hGlL7A- zd8t&Vf7KFE<`vy$bkh^#1*RWq5p zWyajXi^Uj~9~fl}V`QXNMzF&%_p+m^$&*kM_}9g6_SsLp3`1AY&2A43)sU9%r}NBV zWPf&~yCK=80lFpm2IEi)6-P&ECqQi|LM>?Wd+T8t1sfZ9fT;i{o;4nuzF^jhIVm!f z=)q+Wj~u7HR7i&@Al0fen_}=2w`csi=JPiVfe>VazM1mmXR|i9W6l(6Bq=+W-J|3N zBdh4o*VT3qo%=bJ_dv_l%{ub{fwJPje2mIeIqmfmhP$}AVD0$A24*CEMhh79I_Tkp z2$g*Im&Eqh@v2}jMHLIGK?x4f}?38kg`-n(9>B$rJwuuq%xM3dc7UB?X{JzE>43N zl_O&RHaa$zU51X%gCbU9a1LAL-)BW_gF3GK9J5!{yIIXRQfEmApamj z9CHyl#AB!m5+;n4RdX{Cl$Oe(4Xk!I75nW)w#ET7Jq|3EFDoxDR99KmR#$8G?=x|- zI6ksgxK7Q`c#3LZoSed5z2t4&IFTLq%%AVH0X>4sD=T%H(^`xDr59h~T(Y9L(;(ro z@7d%g2?rz@hX^w(gmM2s^v;PSEY<~&@b+jCdAM=|y<;)^LjK$p{!nvZpWh!@2L517 zmQp$Q=H+32lncrFjL%)bKl(%Xj}3_M)ZZdn7PePQC0#?IF!ytkHVrSZ%+&y8hyS&; zm_O}LJ|pzzI$LEeZ-kPfbT<}VxifmFCzDwHuf=2>8gIYYDrXwM2A+uftQWk076jzQ zOBhssV)sM*0A_+noiN7sg_>WHQQt7|g{X>T9eM5eL_QTN5--gX6IXRfz^>b;S!^{n zw$pnX?X)$vnnnA}J(@>k4gQoj8p|Iy)dVvKL|K`npG;n9;?H<~ZoBtsD#j>I*?H}q zOg&3X4L=_fIc*3^pJrXs>jnc!rI;s6B$LrQ7g^q$x|-Kgh6=x0B1vW4Xaz_jh7p;W zxxEm~xCP8Co*reM1j5#FFBQUn0E9@)vg8A%IZ@N{Q@L7@wXokXw8K=j<6O4_5WKNB z???ySVUW85D0jp#cSN$AKVhJhNpoc9$G{k2dcSTh%F1Tn|B_b`v@6f412B@?uy>LyE#i< zm~JZl^t`fhKsxXFfi&7Jn|*xP7cg+c%`gSVFs% zArrL5uo*|GJ1u3YqWbLh?zv*U>j7nQI_>lsKAC?_G&-_aNu1(J&noUw+iyP|Zh8*w zogR?ivDM^C}@;$)GQtX}UzG>Y7& z3T^Soe;AG0?pEjcEv+RM)w{rqQlqOKKlGLJ(htGm&UJsh6NSDS&=ypetc^Cl;YdF~lMk#y zuk9K~@JLimpdjR5U*vRxfQBC@)0n+}YoryC;9!8PxWx+@p`%)9Me}bMOVG9E(AK8d$Ejs42DVH99CY%PVH9B|B4MY-88%`(o-VQZfUnrzkxOL5 zkbJ-;7p!Tm2Y5Lnl(dp|be3Eyf{Z;rjX-b`lx(pa-|?39#1xmsbacc5|G!eQY+65+ znr>f}CRl4r5Nm?l_kgXW8|@1TB9sx6No(wPPHS&n)Q{~1tQU;Ahd-mo88nD{4clIR z?Y#63V|>PTAKZEjeg&Ak6G@*zMIDjsbd261#2)gE4}K&vv;s|<)f**v6=`&nNOY#E zv4eBfuQpYJywfPYg?cV0 zcVN6$FGVV?Agl(!t%5pQ+|Y&2R?HQZn~wNEeNa{hD4kwfC&eBARr$mjy)C`vfqu}& zuf3Y_*}djI?~yJ+L3MT|@5>?YyQv1Ta-P%^Gv=6~_k%`0wT-+OslAF(JK9O7{)g3M zC+-)H`M41pO(7=Rhf5_?G1ZsBj0(^EOUoD`(}aG&+QXIvY?tI4J3Rrw`sLndN;{;7 z%1lc>%04inyC^aQg^zHvn>ygmO|10QxkyCv$LD8`$Lwd0;At5EHQ}o?U?Cq6O7oq> zHAo3qTunogV*#NKrYhNaCHRls8RNI2RbgZh5JvLBG7y)2;!j+a8xm3;FuH*V0K^@6x`5kS+Pvf z{J4uyUsAWy>Stu9=GP3_t{k@2+O%E1vDNGB*mQNyBW=c=}s_s?PG zZPst+^!;yKo=-q{>O&PibA$(N7ktO8D1os%aqKUaq%WE*j77i6 z13BhTuBflDuSC(&b8rnqPC)|G#W!c>EdIhc6RhQQ-sDj@dD%yM?#{+_849+Uu|lww zMy{kLUNlq0crGo|4!A{Q&S~)C^T1q^!D#Cl6O8CZwp?gcPKKyQkJR|w97vG55lDRc zBNhmc*txvRe*4n=sifmiTK;cYyE{=QE5FvEs77-(CaiM;+;Ai9Ja9=^<%$0X{p6A3 zn+~yX$d+p?5|5gxv0-lb5)vw3TFo-0p79VTW=w%h;)Ds&&k|Y9x)tfkVkaiE}|`|28U=7@a3oMPzVaemFC{ zw{4Z6!f*m6SeS?e30^!sQjzFqwC+?;Kmg3{%#O{zybLai`QrO$x0n~uhS8Yy<0GS# zL+5&TzYZ(CTb=+n7E^kqqMTaBWPER3=Ky95#79RJt~=U>N|hiL3(k)1 z6WaE#m`@|1< z!$y}xiT5R%dS`cSDDOq1K}i}1&zjT6)X}eC#nghb3ZcKXXMfP_^c|OjdEk-N>u1fe zueMD^HvVo3t&Q8j{QN9{|B{ejSt&J*1SXx+hJE}6pXWqe?s2Wp!_XdMWs#(hQ6M?s zpc_QLhCUEAlN+#(Ltf)2OuQ5Q8*q)(bpRn&b&rmtSK;szco7#2J_1r+f;parHIT!X zTe3$NiOi9q8tt>0Y(Dn! zn9_GKnBY3^D+8>fL4y;yPqdyq+=#9XAgw3=$4-(AaU#>R&MXis1U*}ypb#1F9uK+5}XN4sM{s*7uiNu z53;|W`nC8#6@H0^G2FlUNvANCu)r1D#l>U@DR`t7Q@5}dM>^`9+q6Z|hZ!@~+yeh- zg@Ew%UKD^|>LQDLidI_&Mv`_Uk`%tGvx*p(L!O%N4+#@Nl$?Ibm5H$!A`7T!1K4g3 zgl;17r=LV)MvDHB4=#1Ls5YSvcT&U)p>Km1iy;+ez)izzw~iI6VFM!)2+W5d$R;&- z`DBZ0sH=l~NMAaH$a9aWPdtt*;_2NkjcxO?R=?x)Q&jz}%{wWjt|9iR8`EZi`4&*y6=F{1LicMwcjE!8xps!3( zVc<#F|G;fT;p({Tw4pc&nPv`_Ym#fAi+4WqoCqEDGYldfdzBLSATCc+8bo8oQ)uY7 zsVC?-;ZeqTW0i*RF5F+6KTl<6j*EqrJZiB`&ii`CDkRpX7tPhp5?#-Dm}v~b!sFq+ z-!IWuju~`j+!^nB>D&`%>0AjyrDU~b z<#KCyoBPiq8@H%Ah-l;tAMVntWe&e!p2%?FqS2H8%qCaxhUls8%_0}A$M@WzIRAzd zd*&Q3$X@wKcsuv1Ny=!3x_nOaq(TawQ)g8F2J5MPssqgE5z$*YSHKQ6zV)0t+Wv&j z5g5-~c>R$hFwHSws;CV(%>w?qsd}7#ik!(SsJrln^}}%B-S@27tQGSOaJ%%T@slkh zaaKOvJfq67OXKkU_GrE#^q`JQp7MP{#t_{sD$;?Q93Q<2pE4}aad!iDm(M-8s~@*N z$x1bhjQYre`sK?&&ln!naSKpXdg(qREYd&$T_IyS%pztO z?xMJRhZrtDbpo*WZ_hs?LFm(kwqq7-wChYYSzFk_8_t)05Dxb#n{k>ANFkK$kb*8N zRJ)3pWb!yPLBdLbi2S%u)GZQP?nHUyp1(grXNzHbt~{Vy81u&fbFoym8YOq!k5*zw zt_^HOdWee5=_IKc6__*B##Et;(OxLSU^%=S2S`w|7G5KOxTZ0eYF)x3Ku~Lv*drD# z!Z@iIfyaZxz0cx(#l!S8DPhS~WSMbaAL9KD+Pek&NyHt#e4fzpq?qGcmJ-IXilg(@ zFW<~P-z?m*R(Bq7dnhOxGb~eP$%ey}uL-xHI#OUYz^Sre3uq`-iU$G5RqsvW;=Ip^ z(8l}oQ^iX|XK`n3V_{xZO-pTeZGjRN#2NB%eHo99ZsxMDm02tyDCH&j53|mBvIlC) zQ1G-k^?3~f;s&9kS{|fk=U(grLq9XqKKZK(2s{q^Nrg!n^= zKSEZCS$Y}EUAhak-%M=qBsDndLi!?;dxN8{?y}s%rozs$+Cp3yuPwzz@xwzV{k5Ua z$jHb`SbWn&#^p>HcXmT-b-BM#+gIf@=W=XkX!*-pykptM3dw|64DE}-Czi#?<@#4; z7U4`h+A{dz{o0adQNH}n`%r>uaWKlG)i$m6+2_qV0>w%dEZ|4>JxmTFopPO_C9fn; z&Mz-G))8jv9*W|;TE>OmM5$T- zax(WQ_+8()5AOU|&^$iN%PA#2PNfeXT}>efL3M5W{Hc|-h7q&*O-b0m-PACG8@GMH zSbEeYj@QRvLixOfnkc%GG1t8XA0pt5zRKcEeNlCLOM81|zsf=f(W538hXgg8L{`1K zp<$R5@JIzP5h>m$z(G&^H&<1z_ryKa4Bo`rfkC2)>(vc=_($@zlSx=E=nY`upSV|Q z;0x}9a~LDyjZu>Hi-IGSS6KT2x5UObbOA8|R*9n&J4{0Q%9Px-Nh*|zW|c)~-J-dn z_zCHp%p}ZQQ}UcKhaIqps35z}IE_`HU7GrU%$;+tn;A9^C{3fRTYz+)zKm4pku)%W z$^qXa&aoW;;_{-@kYLu7o;xF>&kZ}XFE4T}{jMsHsI0)Q!stj|5!OsQNU?FBMR#VY zPu*uT(Dwm62xRE{w@wm#d1)OH)cjyFP^zhnJH~hB5C9J=oay?b|@9` ziBQ=YB#awqMCK;Z z(fzQM1fvmiGG?<$KN&d#SaFkxJu2#-P#m$SX^8vtEDS2NI?68NqxXc4mLB;E0FBZ|JP* zRIy-IvU%B>3zRcWm160_K4;R*Z@!!kpBH-JUr3463Z;~j$?V2{)nF7d8>Iftiu$0Q z{NrjkB~y(@N_Vo0n$6{G8Q|c-h9#?jvn{^3tc?9_9|Ft>QnQCBAGp9PRa`Qr*vK-x z43~SGKRG6(fA1*dn(AML*gW;O))pvA7;v%rA$wPX_AG(vZGi1U4TQb#@vIKG*@o_3 z1(a4i`W*x$#0nE(2u_Jn?!h+pNWDW zScTb0^TJ&q{=Qp0qw++;vS`Nae0ya(zfsJ@C=UZ6!`YO|xKTJ`6V5p2kHJq>2NlLE zDJdpnXM4wKWttd|E=K*c%FiP?jB`Ev&;JB>w8S*r9YT!{rwu~0=vf~H`eRbwwOL$} zWS6&DZ|DIMvZzZ~&A#z59?viM6^YLlMUDp%ZFqH;N~LyD+jM=op%Hl5oSZyr9)TV} zty6n^!|V3OsB%>{>R><9eRSU;cBY-|HQ3BL+pRohpFR^c&n&8NHBpG2kU{L}Yf{Rw z$a+j`m+I1`YkJ}CQBqdCb%|Yy&eYNOK3zBU+|jk3+D>1$)cvk7kwRBD`d~3Ze}ADX z7p;mA!_UR)xjAi%kJD{!?kqU~r*-BW{nCerjHiz!inPp3*#mRX0U@RJGv#T~H~bm- zH*e&+ku%7FCpwr{P>-zL0_qdV-e-1haoc&86ex$V|3`%gwl;hIEXWor(qDXtSv&oc z00&#;(lp2oHPA;;_h*c&iQG^gJIE3{!HN>BUU*^WpgQnZ7N}a-Gf{M*1<*It5TXm; zQPme7=lI;#B|4(fF3=gP`QPLX`G%>WdVqC`VcZvQ04%GgSkbNhmpH3*5%QIfh*L_+ zfqjnHEVY);Gp7ZCJkA$B#S8SNRNmk#ul69^q}-ucdj;NG8A?LygM#J@u1deT>NvF+ z=1FbrylBY@uNY=q`h3wwBtD2{!0W#1ebJP1yIqsCXkzgGX(dl?Xm(fymfd3j_`D$W za}-lgem1`L+Ji;dXRf^M973nZfE1hU0b;<^L(bI1;O#zWI6Q9~0Ic)~7NSFXLH|d| z&kC{QN!&V`{+eM+uJoZIm=HP13e$XLi54ZH0lRHvO?rX5vUifecGJpqcyiOAm~~E- zsTT4R&0kL2$&9F#j3n<-@$1s^las8liPgbH)deKwNU?=KUimEpSCPE*!h~^y+Pk2~ z2o~zjMxV^mAD}&>PUmK?!ug{x=3dUwDI3Rgw+&}?8_g)Lu$|G>SWFK{t4-^`7-F`r zS{(bXsZl!Qh%x2|Csk{;p@AfObFA8H&5jj5WF>{*3ZGB~)0`61Oh;p{rLOUshnJzG z`G3ZG-qZ{cSIU4ab9KS| z2dcqFb=}V3g^&5^i~Y609Lzh3WpHmkKWDA(GDy0iWk^bQ=$r?4Wu3e0u1&AA+ZHvW z7al0D%(SonTvn~=Xfhrdb4m7fBkhUfg#S1|m=afXjCGMC@HlI11?R7P$*o_$bBu4X zDqJ@kZh@Lb;BbK6;&D#V6OiZ{<>EMY7qUmp(-08$%LhOkL9bB&ax z1iF`cIdN;Hs=p}ZvuyM6-Z{U7axb9)<`wBGJJ>2#5usSA9}rYM?~+}CHW#`G6C9A& zKhF9v@F@a{{Q#l`%3}k0)r?+`y8Z}X;-8ZW<|uFdmqgW83;kq<{%Wfh<~kbi9$rdQ zA%vHboI!fdkz)NqV<5mQMshe*0V^mq#BB_Gh!Jy0=k_w)j zwQikN67mq-Y=l-HX{a?PM*)#j=P1jLUN1|=8?)iTZF7XnQ-QwMV5fEN*PZjlu@1JA zocty8>-+OUuE?2X*-t`dJR(a0smsda3omu~nvGAO#h{C?!ax~bq@;7{GFE}YdOjry zn?yKP{s6B4#xC^u!A1O>RtZ<9q{1g)wFct%sZ^Z;IaCz-0J5_VOu;6$0c&FX8Vaf3 z0q@X@cjjo5In!*Yg=a-1Y#~mxTYA<9Hg8Fxe?H!LXYFc_l1(Lx?oQ!)_*F23I z8Y?fc<-bni^LQPJvn9(hRcC61pH^C;vs%>L>|#6&W#$w+AMM@rX>8N+aiHyds(9p) zlj88HzlI3m3u)yehR-e(FReS*e`v1YDsI?Q9E5DrPN3CRj8mg77Or?DO97U86loBn zqqsXPt7S2jh%o1g>BTq{gtFR`x!a=ywPoEN6+MGzi&kI3-a+e{T{@u1-tF?)IC7#4 zzigI2TnaJ&(K(kW5J{cyQsr2VJv-#!H@SFDt(-HxuQG9`n%@5XztZppbnEtNs30Jw-#q&NI!pE6!0P|!Zr%Tphu3)XQ~u7w_gD`C zbO{Zh;n4;*LTLeX@<^088b#2Ak`-u}y5w<3{aG1L(^<*oF6V_Snw{m_SB6%YEzN-_ z@rDVl8!MViD;;$%FL`%|FIz7s(^&>WrQyC$X<1IYd@tFzTradQvbtZVixi;Rk$yu+ zqc+G}_`;C3QHE4E@%v89-nyX-BKBr*NnI_S#z3u5FJquuD1(>-!A;x&C@m!+SEEUfe-EquU;l0T=Bc z2k~pEwE)VXP&D+vd92udEhgMiqZW5fR@@>j#}yofzxh~0?2`BWE~vI|n!?B|*s-Mau6o3#Q}V(irh z#h~KS;H5vAV5SE9X)QZT?21A6x-HV@QB)oo@KV|~hGP;XfX%FPDiR9>XL4cT@xd;XRBPw#=0&68XhEed<*YI8*bK+vAMlvTYlJk$)f!eMv~D?}?Q~}MABj0Q zl`CaG0S${%8Cp%_zKiE9@1pNZH_ij~ZaA@IPXCNjc#M&q66T^aNNvcN?|0^n{Wf&- zT5VYNOCcYU1sCD93Je4%6C>zi;CRl1GYV>lOK2&%4Va1(cPYIMO@9pL=iG2y)x0^) zF)D{z?n+mPKX8roMCY>&l))wSXr&qlChx>5qDLsaq zmEFzp4mC(8O)`~|BT~tw8Y?}(>KbfG7r_;!vZF2Odn8~_x0+ZQXFMtvQWOI* zV`zZ+)fd*ngRxwDx0;MQwbw_`j=Jp8d5>JGCtYY^e?qgc7V6Kpv_y#xB!nQyv5j54 zj`0oSPC67?Y@Vbg+rE-?D$XQm76yZjH%t>b;ACxNF;mty=;qixtvBJNJ6x7J8SWp7 z_Y3a{U*6hk2r+OC^wfWF{9U}niTKMmQtyYDQCzDgr6(dQrr;8kE4UfTM`6p)FoRm2 zBnHPr!!;U}Q$A@?t`fq_QT6DPmeq-R*}LEv#``?w!6P0Mwt8R6+H_|ESdHq&GbOi) z8{?x}$(rGYc1j{c$kTOh(xOfg9rfg`GSKXqaORF>qAn3TZ8FV>oitXb8lI6&Y>90daBPRWGzLQ0MeK3m%^r3ld&`Y(-nrs2MeQ@iJ zAUbyiE^_;Z6P&*?=`PPlxQX0l#{PYch+Vy3gz_!@ws+tOj50WXqVz`Yt#bR45Q^DD zR*ena*B!RK<^T^~xWD|rf3`)j0{gSbpJai(7q7o|=I-6FZ3Pjfry)WDpp|#FGdT{y zMhphW)42$qxJug>C)6YB8bt>REwT{i zaAd;PzR0HTC7EuK! z&#pc7oUbjtUI*tS+ofp>u%y$=vW1D+=A5!@TI%IhlA&?MS=#Hf58NEYYlNsrf~^Yn zAT&6+>6o}JdT2G6ny(yM*UdXE+Hrv%Dz{ACIoyass>5sVLR@QBW2f-YiFh%#Sv5pW zQ1iyNZYHKW93}&65-CR+|Ah9!?iA^t{rNx>ygR}CHA^UD$e&7#kdKk6EUcKRtQ#ipz+9pHCMXxC09~PSD<~(_fSzAj_qx_W0oV1*fN1&r21p(M!l8A5WEbk~ zgG^Kvmw6vDD=v)kN_m`*RP+tgt0Aj%(dceh=2l^0Y0EWbDL(y1Hw#1|If#O=a4S{G zCiG%bQyj0#Cr=dN#YUXr1{FXc78@Pd7^FuYSHQ&J#XJiJgn?g+AFHd&-9Xrv;(k4DJObF%A??QYDZ$wuI8PeQh(UwoGUFz7vOH=$|NF#HU ziWH&>1aOL?Vg#?xfF;j&$F>I*pS>#2cbAL@C%zr=Iu)vmzr~g4e?T9WDJ>Bz!VBSQ zWfheLUc}H-_AKGR1L%m|LKxcel$T}&lHOky9A`_xkILx>OBFVr1Wgtl3Dnxzp=+r_ zq+i;3wed5Fe4DV6b~0Sv%vOFg%7`n6&-5f$cpBXI`ve>E<8T8*L1e-0j9a;Zq>4Rj zI=+$_B!;5oEatLW>f#aQy}9moeIY=mVpG|C)7VIRg`^XzxH?nYgv=8|HV%d9vWk-v zhb8T4dlWWoU{7XrUf(otjR#<-CO7mAPdB=4vbhhRA<8yI?{CGP>(nq_0l*d^nT_SE z3t+3dqGCS^Fn*I^_8_%4`v&j2bHi@T$e*vfQb2AECv|vbCrz~9;e-}YyraUoK-WE^ zssp7(jeq6<&#*A+YGHUDpy(6TZ7R7VqoP`N!YqIUHtvLIwbubFuAz-)#$HIZ*KjsW zjyO?UVRr@{qJu5bOo)pyUk$a?wAxHyR$Q@UJJsiqA+!+k6VB3EakJ7TVj;%{W4#KQ zcTgw$3auNX!aEx1d)mXVUs%ZA+Seuemi>7(6md3lmB*J(FF}n6|)G;Q}@ud0s6l=8O+ZXJA{QdhwN7L%% zJDk6U``-~O=Peh-U6V3G1WGj|XTysHn=)3iFL^u=667$ePSz%-jk>32^gT`Z&6WKqwaX6R$6Ku1_XOybx)dV% zEG|$O{k7m8gx`vm+!VpN5caf@jM`2Qklj}sroY}DxaOS2x#skFShCLLY3Omo4>Ke_ z*4Zj*i~1PbPs|}OZ9#iO{g1nstpA$C=(`;J^zHBZuV05~{_ASV|91t*nLjz#mg5TY|;<@T6 zS`#VWQX@)P()y>mRrgQNY;WNg;Qr0j6cxiX;IsN}Gvn61_r<;E)T`Gm*XRD80u;Bu zw@^Z#JTS{a8qIESGfF;0E9wrRONn=f>~I@-3@F2E8@GqBr4ig|Ulsi_=57Z8a}!&L zb&DG3W!%*Z^>P5NU_Ja(^isI+kHP$VxVew=$Y^1CpAR!X{xCXFkCz{Ln8=$sP;P%w z!TZOliMQ&=Y2g}4cH;dTC4L{Kv3CQM9!gRZa}Ta4E=%FR6v}64Cyv7^QBME5ad-KV zRkGiK3kF!3>#53g(oLjj?3baoZ4yvJRzFE0HW!RCgA--9=Q>y_kf*QI#1nDXS2FNb zlE5n~qIx*6nkif^IOj6hDNw!@2h&4O4Z$TPYb)Y4L-469wJ~itmJeIertFeyCRrC} z8DCG>(`VD9-ESWQM{4hA=vOFj-%!u$(B{#jBx{bx)%FM>~ zMzU$N#gFZ(dvFGhi47$bV#`(bci3K~ynFO68#R0s3og@tK#1t!=LFkzq3**Hni~~R8k(?A4P~NCVos%SF zO4;cPxMvIQ;M&au40)g<#wCQ#VPpcE2ErxlxKwU#(UmUL5tyV`fEu}3yt6VUsOHzD zL`nA6DQ3O{RYItfx;K}9I#NCL-v6fF*GG%HYjI&Nb9kgla{8^qsgDl*3n`lKaUQ{4 zu3aA1wVCanMt~NDxeP9f7Vjs;Phl$C(@IyX_a9AfMyEY+fRuI*gu81i+S@c&n~S8# z*g@wFfi4`XG7SRESodaJ%Jnb4#@gR^!t{g{0ot-8{xJ8{?frZ$P=ARIB-kH?$sKlr z@g>$27|3@~x8<8I#s+&w~#>roUfP{j^Zu?Y^H*0EZCI! znXA#umW{=XfsyVuJ=$0+3?s_9BrS!xi4-bTS<6vM&W(vsII?Eqs=kog#GN>@cpEIT zzs)->-3Pe=s!ix7W8+sMqh(_bmGV-%owhg=X<{oc27`*UbpnM`bSpEJR2X|T_|tAD z$fm{B(eFNeo$lLd!#=f-pl$`__c?TDNGUF@1kr9#0n9MXGLmRyUQQnRTOPkfA}t|RJ60j*Dc1}6Q-zpzin0cE@KISp>&k33 zwd6yTGPAmGjrPiT(t5eHDOr6ehj{ebgI%nxQQw$cXCJ&=68Wk}^$PjMK71WLVtGOL zyoE%{Z-W(!uTl1?Jt9ofvfUV7mJTCi26Q1g|e?A zQ2?ogn>WJ7IqIb+vMfDIfvtjSVk|X6xjF#U0zND!!`^QTt)oH}WhUxu2+ttPq#O&bv%qx6H z+O5+YSRon!njmkIrZR8xTyF0me3y3~xsMB*SYAc!DUr@@HHC)d2f+-trGbX!UwdG# z(AuZ>js2m0^WO#mla?m&>ouuansYC{Zayi$EbK|iolhMsMh+vm;T<49jP|(&4M!I1!-F8PvUPmFzp$Af$f|SDmrw?vBY2)SAv36+ znbusw?ul@u!^q(5=iWTF13HWj9A037zp$4WD+B@+YOhZm@PfoF2~OEz3NaKHk^acq zXT3Oz&2fgKY#mJffFRs)4PPO>uCL8cS!~w%y?GE0$p=d{1KfZMV-@1}QSgm?z(c?j z!jvaIByapDI^=<4oIW$Ymli=bs5{~cVPb3y=v4IQB)BQ)Eoue7U_p)T|$l%J#;B04S{r{3( zr~Dt+ll=c)FKGSE-?24tws8HQo!M{8wG)~s8eftRz?DUkFhLw85riCvJpi6E-#>s* z0eq6Cv+x0lB8v#l+V$|tn$Vv(5Ls_8DJ(FRUbnVdq{92qkgYlBBN9GWUS zST^DHu-%pEuTEpmdj)#s%5 zt3*hN7lz@$$eM@ae4Lz8XNpr6Qh{E&Bg=1AHoSHdvw5kGarD9YK(3@7D$x)M_HFjMLcarZ#V^$kCs4O=wkj45a!nDbenFiy;r^ zTW2xGxGv89ZtPHwi(_fWOLMlG1)tl>S^9%Ee~}%8GKx_KR|6#U-IPnm1Ls+|cr_L- z+Bi0H8QJ1t(h#rJaAG1`Eu#20jd7%ppj6gehmfbIes9Jp6NUxdx8&^Xa@?W8FgTj4 zkpx*YRG{`_I@S#o&fjY!@zO?>?Alc<&ICEb;Hc&9(ny(#6Bh1TX(`=A1-aPC_ZwTz zUT3Mf>GnIH&s=|{jg`FV0m9(z5uxB&Jb}Hkcv7nH_M@PvvS{@?!DNTS>+TRjX6oqQ zJi&mEn^f2P9lbgusZ=UmZTb%b>=tpmqVd0BccHg9p|0L4uMwo_`5Gu)hh(dfA%y;! zjyv(&-&0|pCMG1{Ze!UrNxvX(^bp&w>JQzj^nxri+Ibe%wX3V?NLkSfafk*2FvM0W zgX5+SHx#ORlWjL1quO0u?y*TOu3*OKWz~j;y~gMA^@pUpZd?(Mr3Rfj^;Qhsjhh>X z_e!ZfGI)cC5X(#-*xLLG>z~=x6^A55JxdHlT9+j%g@k+l$XXKsQ*_U2YZgBDPVDGR7VKYk8dZgAK zI(ys$8;^5Tzf2c72ejNBI0lWzc9kuWi!sfVN2DVkDiu(^83z2`h0)-+5>cpo*DR^? z_)$X{dOA0*UaQ2>^&93U26dk73!;@TS%>CeD2s|}IeQ$O_Z}rxcA8*kQBKaA0-H{u zr>K2QAQjzcJAwi1xcn%v1`Mz_>mNXtmZ=boVf=|lxkmfW^1R1! zxFpQdU%X7`45_I1ac&q8?{7sqJ>}W5L(**XC^IvHTiN6d3S@}!p5_j1GFa>=G3#3>Bj7WiV z!kW zzVg8U)o{o&7piGmYWc)3UQItx{o(@M12D0QYvQP-as>vnx`DBe?s*)?lC6_SV)5l$ zHgXrE!Z6;!IkM#PY`~POvpDuOZeJ_h9@gXv`a^j{F%%F*Q-YEnRA+O*1guHuw_-O^ z_T-dBsY*7!?Ff-Jt7y82(V=4~L|IgKDbdZqo&a(gAQQ`rLjD9pQM zvcr?ONycd5LC=<7EmHOHR9S2e!K=PYCCU}e6zqvyb_D#P&B3D0nIvIZepxstSI4)! zptNu9*}S?{I!7yUIJD72utr=i=J6v&WN5Ck@QP+X9Owd7#&zO47f5)I3` z!+yjb+s=5H6q)^OI7xoJY`?O;>e}vPdc=KmM(a_~O3Zzpi7be~<-^Q*-4&>gZb6Rc zC54FpBLzz@!8AHDQs+Gt?A@^^1}=pc+mYRr1P6|-G_yNQfPGX?RN=1F%Yae+BJZz5 zI-J@ubP(XTtiE61rwFxmEwt0%$M$?e18(zr1G}YcE843L`v-S?TlM;<9~{t=c*n-< zm-zX{a)Xnhmfr2`7pI@GtcOZUB$(`zB8Y3cb8>7Wr zJtJdTDvrVZa_wxCmn9@vj@`*i$IuU#bVeM18T(cDtB#N~Iu;vacDMw_Et<%o_>pX| zHj)`=uHSj;{IFyAjAp=PdPRgAG&7gARXr1Vw*jyeYSIveq#%`ffRGw7n%3#dLsjZ~7n-h<0tppBfIBmGp`9jQ z6M33suiAtBiLvi?P1-1^Q+$+wka)x3#Fm?=U}jv~!`ya?9@AtG>j_@OU7!TkSVx-b zJbMIbhw|q}t5@m_3($2{Fk7NFakLOlA~?!kyobaLrNpBlf--Fg8sACzsbDEp7}foX zmAU&mDt1mXq?jLV#_FOzqEan6?(ny-kY8beq)ECs!(fiB+q|@`^fX7~G@v;_7iy z-5-px(K`U%(thDo+FmSLtW3Xik$B|WS>?E_tY%fs3}GqjxAqF2XJNJsMK@-eiCl%| z!@nV%dhFtAEzl;=$HBYLDEI#E#ey#guHZ z@DrR`(O!|KZu{MOnX(@-ZW(oTRx4y_E0mFsL{|yj*SrIh43n1;`WY%2fEWc(IKec7 zf4A+&Cyfx!7PAwGB`!;gK4Xnl$dckMo_|Y^lunUF*{w+8=n7Y-AvbR9sd7o3wDZPI z-+v?KET%X+LMu$X@7(=Lz8nsju-?bY6>>)2A^;|1 zJ@|N{pA?PF@;m{h>k=j!?IwXrG%OpP5r;od%R3h5L>9ILCZ{x0G1mV1?%6NeC++l5o?~Csuzt|=bAIA;> zjcgO&n_AVvBL{Dvi!hOMtNkA9g32)7s&2F?78NFiV&30n`xeB;T2l*TsmCh zqt8B@zG4pm{}~9&cfp#qcR^^v75q6p3|f+37;f%}twY*%#*Q;5#GAG} zEAQsi>PB$~;<4G`_W(KS>iGtBAC&nR;uUhjyKb`F{g;n@(`>Bf`pIPCF#n0k{>KpB z-=a|9FD6s^l!sDg4vs);;Q!rm=@i8U+eZ&CZ1Ve1b*2a0G^ZCaFF!9A3Lin(h7bu{ zq^W^n*BTkySBM~kd8THt>uB=4Yb%<}7aW4Yo#7=QX9i6OT{^zJqL93BO2oW%=Gokt zFd%G|UY}7Ka4cx9Syz(Whp8BLf0=^aR90qGrNPzpV~JMsr0{4cbq%?YFhcX@giu0W zy%1$O-LUFj_PAOS-J5ScyPC2d;pa{+1|R;@_b$WI%iHtXdlF=!AuNw%$L-gX=`TNTnh=8_5qv1(3X-=ydF3pcXPQR?2+93 z!QI`~@!QmR=jkJ!Zr4|}UKNl(Y9T_sdCYBZT5-neX(-_3kQzF_hM6jUT($b4L9wD6 zRH-{uw4E|eAmcm=vsvo5x_e2ZMH!xg6KLr?1h~PE*aK$AN=>qt(ILW3L^o%6dTBaG zEc_n!g5L&M1CG-Gt5Fx8SljoOz2!yT2N~(k)|v{xH;xR_^*OzSa73j~0>gHqwAs1G zfRcdSskAYf-LpkFtl(h81Uu<4`Jn=MD z5B; zRQfox>;U6Al2^B|x_VwF;x={%KJt!<4{~ID+Wsn4rhq_NY zfe6CFu|HZNJHLc)fI*qFn5Qx8`RctnXriiZT*h5A#5T_fTP_TIyUvX;Df&TCX(eAj znp)4a{hY~RV*GeqZNvA4de04P(-m11J-m+^vYz@#B|shJsFvPBphC>lDj%A{63T`u zgbbiFc>tKLxWFz?8hY}PPj)F>Mq5*(dN;$4`UXv!1y&{tk!~C zqMqia!yIPbq|>R%NJkWcoEM=^Q=AS!@)0jbX?OzP66Ja9D89ZzMRPj393=9a?|MK~0AfcpH5(W@4uPn=}-LutLjM7FW6C@syY;?i!oCaV12 z;SVU;UdoppGtzJ6Yx)ORKcwgPR{z$0t;Y2<+z75Yewpab0nNnOq3{*tT67I-E$ zOP+p%;_32dR|c7nSnC%!w_ah75yLzV`vRF+bb{zHQZ9ZQ4%d^fqDZ4qYJ|@iS@$9!B4Gl6^S%lE|kS?NsRflsA$s;sOM?zZ9?u`6P%Z)6za4JlN$j1X=5#BW%;r)a%Zj`0RX8<%;g_?NqCcPCh!UZ>gGSj7(oAl+A= zJ?I3{3CB&=H{}RG)@%08vk!n&H?b^m`!7oJ5y^Ua`9xCje?-#%t}_3kBtc6XLyLc6 zDe3=WiK0PMQlJXTp6W9)HW{3Pyg}*fR|!h=AM|gn2`H#d?MA7rPb!E=SR^-JJ<0b| zPeD4>&PdWTvQnR?t}-~d>QDdPf9@Jq`9%W($ygvoL_Z7iw^pyh7hY;MqNspt6=Y)2 z?>iz$Fgj56WqQ)RoI=O3?*gAugOd$RChf-?HI>jo-%1r}s!KVnQ_iq1xTj_kSfgkn zkFhiLb3Iw)vHv>0MXiQv!#8KC#0>5mS`>d2T*i=I5QBi%#Qmo1K(663W4n3z-wcWC zO{L~&T8S@Kh|xXIWlFnv7igfKC<^VMv>C!slTJzgnxHpVtqa!uMJCXF906FC=KM zl^Q^~DEnhBdm^G;@jucYzlQ<^DiSp+x9uA&RUE`S=@Ocdq7w=>dAJvuGT5o7<*2k- z1TEXTUOIbaH-rQc41GR9l*_m(&GreRAEPmS*&`{JKP|q8J44JlPmP|W2eH%9uuY~S zv;*?6ssk|KNr@*)=nVn>kB=%PxRfj33H>JVN#Tu6yW2Ud8^e*>cm-L|gt6BAPXxL8 z4|JIW-ETea+cQdSQruOV*+u9lmV8WXLDi|AcV=LbArD%x_3yD&Qw5 zGD;(EC(wsf=tgWmA<`v6#N(SCGY{@cl^Pz0L1S*6`mR~D4TQRa9HL-D3SKRo9%q)GL~H^qyfl^*92{=Mqnq;d1mr!))`McU)ns4nxVT$ zfBzCf{JZ<_=b!eClrZLJVmaJrf#je49RKR*kp5fN60_I0veLKzFSKQT?g-UVb$Y*= z5Vv7=|LpaRqp_$xP)>`b7E8)>ji(v^kuYK(BJ6iT9Z`Vhwl^EW`J33_L=;N{U)xu( zhdLAq1mX-eklh}6cPD1)XF$MQ0aYOla@%ZDAuzNy|NXd&O_s>4Az=E!%jL5DG2`RS zr1khYa5>u>f004C-Ttq-S2}$ZJIYjg zckHgsVNbdJ-IdY9BY`K<2R>aF3Ezi&kWbuhHt?y5{3B}OeXz#`eBcqvwEq$CR!;q% z4*1aV{r)aw{6SHFg|^duy$!PCV|4M2@Fh6#3BjAX|6^?JBk&sOP05%qe)l-U^* zvY|**vGj!Er>2W1K?U-SEg3?wP4p^R8_NnX;F27>&hTa^N^R|EhJ7i6W zVyZg3)nWNfQj@$g!CZ6y25>HMn8?9iqlg;1)8kJmN-oH-sl$u}JY68q6=zdO^Wn${ zM<44XgA@DKh%OX}+_ZcY_2;KrTXQXszGmsJX~%e-%Mo#GNQmb?h{(*a&5t6PI!B6) z=kYV`oYKR2qTQr~M5%lA(m&tYktOQ_&fpzr*0Li<}nwU$< z?D!p0JRPRlw0Ojx$Eo_9$*t%TVeV19g&^jB+2~F(qB2|OU#qmXWmD);DU25=r4j+7 z7@9@cM#DiLBV{Bhw!PqC@sQcI!iksybmZDZAVK4TQ8p!4)R(2Tco?)K`#{YzTs#Ls zj%WaKEuE&){w8T`wfUNFV>%NW>r_89k`NLP3L+T1u@l3?g3qY7CL^r4U?B4CK)ivD zQ~Y)GK?%lxR%vYvar^8%e$0%_iIZI%1@p*6q~coX#Uto47R#+|@-+xuCdpJzLWsuT zu|F&L0=5z(s?e~(`0GTabo~O z?vluLL5W2CW{pv~RHK(TW13R2QVA#(4}J$5qya3mSJo#CYOb|BZ22aoTw3N@KhYai zs#1j~*`U%LZ%MCn{)-gioYZF1G>L~cDw+JSY&u!y>7SystzU1sIlqqJO( z1!&Y(AqNJRy!z^GlseanrE23k7bPx>rFDT~3Z9NyV6ev4x4taAosILYq)ifs~0Ozk3aE z*kLoe@Vw6=^4rZD>C}@u$sgz8RVD(y@_|@qUIZ{hQ8CV9e%pBgwuUZU_ky=6v2n zu$*Sx5t8Ilvm;(T8>Dq?(qgaU9{%oO0!0%P^qKkiUH7Eb|XHa$s$ZPKh*S1i8IOid}OQABEi9LkFB#7Nj;-= z2+UBYC`qRGs*xYen=tKip$8Q5n~&9$ng)kvu+S6)^>dTSY|gv$sUYL3PGVL4>3y&St%lczeM44!(!7GjA(qGsg?2KSlyBW{g%{ zeCmVQKFBLVpcV9UbXaPPyno>d*iLX9Y5)_7c8GT!!ft&8(*q^8&2hCTFG{xCF0@>< z!(P88`_ZpKZT7KQN7fzmC<}&jyN!OXmUXiB{#fX1X}(U)Y+5JhmSUhY+2x$1n@^j) zyB3Es;V@oQhS-h-*g@(eaqLa%2k|Z0VKO32P4K=BwIG#b4P2t>_?+tDX?dR}hr^wS zw%4~%L1&cUVSQ|x4-mgYX*9W*{-8hVjNv?~gTfoX#?BppTcKYhzNwg|-lM^{`SxAA zr5qZn9rPFM47#ri%(;j7*(^YnW#(u3p;UpSLTd9?j@c{2$SeC!r)`uOEzt)Ju1bdA z|4c8rGp4-A>Fd|9TR}LWsJcO3ZV3ZA!-0x{gh{7E=SmA1(95qPKC=Z828OF~1{vVd z>aUJ46WWYI6*AH#7_=m}TQB$S1@H^Byiri&iHtga-BiyazrIG@DHy_9ZvV#q!`qn(mxAUaR}DA7=jqGsF~Yz)LuZE$=akhG8tP8%w6nBdZ_ zo0;iar6UKxU-fHBeZgvgj^{=(Xn;kmY-#JS&*=wp zkHmNTAu|+f=VhRzQweFQgMF|B0089|s^rdddJh*-y=5~jEo6q*?37Ox=a%2OMCmD4 zMtqQ8G2aZ;Xdvh|5kj6YUkQehyIAH2^&|@}%U-d2a3L)HDk0>f|`Z;N{GtsB> z^g*@1V8R;_A~Oi8GK!m{lfn!*#Z;XX_-{!TOU=~=I$|&DFYm|B_`ljprh871@&b;WXf0hZM5ZJ*~i9>(y40D3mLg?s&cliFI4E3iGAP{i4e2xbE4z(;M zTC0=3KP@?hoLI=wTpw3I0;+lN69#dnTJ|QT;tfKTwDEWS(4u#&{Q!^VuYQa=Xrd~U zH=0DPjcan1Kq|3Xd9EUA_);=X9Jg(+4MR^9B#?lb2yCT2oE34Fbaork1i&~JMn-p` zI&H5x-AR)>spTRy6%UdjskH6ZY6fI8!Bet!pn@v;UX(=lB-p*vVUu_ww)~?#(svK`v&5AR|Gw^5Zs~7X7rup1g8SYM`@zCxB_p%$V zlKv|LrtYn#JszoAmt64fV|9&Sk~IZB7qC`UOC1RcgZhN9&a6ofiq9oL2c~loP7}#S3OmL^-Ca~Yp~DJOZcvJ# zV(^Pxn82Ii6YKxxu4)G;@`=qd6UNhA_9gu`C7nhxA)_rD?bsBC^^I2CCu8>r$>51- zWcPRH_9IOiWc6m)iWpXN#v?qNcJ*Y_hgtpbl2i}>b^R^v`EcS6uqdNfQD7JU$^bP`c29_Zmefg{L?MVKur zpQ2@@j6T@34tngU*15-b%rR8Dbc{~z(+BpVNIH1z_82*{;lO+fc}1%wg60j6w?}~o zN@=K6k0w0XmgF&Nhr+9TjQ{z&Gs1_j39(2!$z-N5e9c;J6!=;vd7m0w*T`1e$jmE9dp3DRP0Qf-BlY+} zawCvtpdK8>dY5NF`1w1_4+fom4b9Pm7joXB%8Q4J3+JmM0xz@UU_VuPy`BAKIl~>K zyA=yHdl5DeI7UhAeV;u{AL>2i*39DL+HSM3KdIp%!`M)2*)BlE>pcKe*74#K%2HVM zoIaf%md?Oe&&Z3(ALl7LM_tt($d>u*I8d;k-$U-ne&$O_0PtaMsHj?AUT%qA!e~FI zd2;rBr(`Q@s`&a>=u_3|>t}NnA;pu=)leGaV(5n)V4_7%&QU!!zn?SJ!6Y9^LHI_s z?7^&OH?iA`?WlRihI}6HjDNkVE0_2DTH-x~jPX#9tE1c?NEwG&_2zN7|0*>2PCwXks|?&5nD>X87Yh1=iN*`Ubv#O1Xc6xqsoLG6>lbirl46 zu~F&Sq6*%y$i}&%T`uGpvrY?5e#bj)=gBKd- ziIbRkEp6L7gL3y9LKMJly#xIwvA8UMj>LY|W|fR3E?~yR>6vom3^Wpvn+eas&oWY1 z7O9NLfo9^x60>u4zhgdpv-Fg_!hH4l%YG_b(%0#R{qhCl)2scbB>vZm2;KjKBo?u^ zx3QP8G5Y`d9pW@CK3(16k9f;E2`$Y^c`O_0&V`M&K)D+NLUDNnLEJR>nPxN2iu`si zeMSnDH*sF_5^!)nUpz_fdPs%7prv4rS3Z*|o9V#kKgYv#U#y-;5^T2z{Sg^gDDy&s zRTe8sHRo%JPV){8(sOOe1rcnC(9N|AL9>TR7rL^BL`D19G`{=Dio}LxTU0vA;)KBp zy@y5=x{X~kz+jd<5?&&W}JZ z_rM8;RX8n%1PfIa-X9ALcO)VO9hE|fwRg!=-aQXI(Xm7mR%PFRD;Ap^b>(IOV3`0U zQ<3^vfGSB*qBK$wm`pV!zhrP09_UX;V+b_MyY+2B^&#+v2yb*Jz3ikC#~a-rarpMU zNA`P)hm5e{b?D8DFeJTL7Kv^I*Sso(Y{Z~7ZcW+W z%MB1i5Kplg0;xl|)kwHb$@WAUT1GgiK^|g5pf(Kj;Eugc;L8@d#-?j|ZAR=ejG3sb zOcxEzb@CS4R7fnVL`wv3%+NO-I|UbNEKeGuce-<&@S-Ub6&PJjvPNe7U8F3h)K9B1 zwiIKKZY(cP)x>C6S{P?8eUQYsAAo^553`AD(t^Nu-xp?GP1knE7zzyPDQGRS%WKO8 zmKQ2dYAC3N8--4$yEV2{XmI+V4SjZbC~BNWLkTSd$VLh^+*KB9?&FH6Q`6IS<@8zm z10UVtB|WF~Ep3t^BPJOf2ajchm1NlYbS%-dUVD#5@wf_?l$qBjL-mQ@DJJ(2-qP1t zg|<(p05lw$lQwfkA!p5~u-{t{FkY}`#F_V|n$Z0;&1=hMCnQ}*@jdjABlKGc=Dx*5 zAVhJohgYM*9c|&s%6SwtnsfYe)CtXwa&j~x#O3kh!ji?-EJ$@iA0gvOmk*k4cfpAEM~k>cT%j%4ZL%!UX)F@2 z1W^TeP)llv+#D)vIECaktB8TABY#{i-ws5sk#Wxk(;kAb9$gWR%{^}D04Bu5>W$Fb z$qu1kG6Fn>$uRQnwe?%vUrffd6WNn##M-2m>=RiX8=Q5}RM{FjGC8azu-RtS=1gfg zEWCNQY}E--G#k&MWc_n1XAQXXZKh+9CEZD?rK-wRsx)ZRQS~1cke9vI7=I8lEz?)8 zrxhwZ|2a@>9w0-2Q@X=5t6PJGW;8<$*U(YotVkStU|l4i`O%$+{^#lhDx1+=Cx;D> zHZSl_MvHJ&Bq`YF_v~*edp$U6j%&=W?cLYOn?D)ryJV@N@XMz~e%9_5E;c#eI(_r+ zV~4Oe#z7vVdSL9dJ_vL|rhcZguoJ+M1yHq6+P*~ZI$jdUMKe9&W>|zkX9V=5=5f1{ zD%3GG2J7+6(0nTy{tVzF{yM-SGkMHU3VvWnY2}-x?BQct+!ANp=sH<|D}72<;XeZppb+ z7tX{dBr~ibkz0RY+YnI_)pAJNP{L1C1RC35=#l3M=CK73t{){hgI;ZN6&2F5D})3?k$ z4ie#`oC(A!hI+<+69eI+yx!jFh#w~KYTlhTW7W;UptBGZwh)BBF|K{p6(u8|2@vN; z`06*R-EgrmX`Kf_bCSoAeC4wToFl`j{`LX-*Yl?mL@Iae^O6jK{!jGuKjL5im7WxA zZ2nt4Th&7K^M>4HgOvIXdW#4isqu>lQm-Of1;)Je{wD~pVC|DB7qJj}s?iC3?pm^! z_Zi)Zxer(q<#?OQx~y~MJE`irm(5TNzpoma#b#@?!^5h>6t7F)_Q%@;m#@$huiu3@ zTQ2mzy{jxNlKoX%&}07!mH-jy;Y$#*%Kbs2pfz4;Lw!(MSzo^hEdOb3de zMGc8m=sL43;87~sut`Zx@*^bkSr#bvrHfp}A+s3{k)B(&!&j3CA^;?(p%lJfZBgSX zdk{3-CQH;agUq)eTw>U4$;?n$7o?j8z4f=o_MWT0A(g3~&I6Pwz`b3wan|7o?i((Z zcz9Fn2B;(#NqpS$FS_h;ci6)+n7?&yJwx|dhHrxA_Di1v_)j9@Sw0i1%_>r|88__= z$5aS1BJ^d^t4NmLjYraJM~rm6o*L-L@02Vno29K{ASC2nL3k`czBd%`5HXD#P{bhz z21T>9fcV$$s)l0SD$xut38_~`x!X>*<1S8ow!=?PtCv=3*Sc1YiCW|!M$cd?U>1}? zDl15ihKqz%29<^4X0TjAGE<{F&nC!PY#9v6TH_OB_0oZ;exJ7#-EQLiQL2!j*)?uF`Np6{UPF^?1G+Q5y229Gt_G zFu0xba#vABd)S1%(vZ*D^hs+N?MY$S%adfLscwvOs}}=D-t4(C%Hb&}wS;V#Q71bp zyoGqC%acim{>Ws-_Vx}+k$?y#GNS{ZwhZkL>NezEr!Ww#sbZF0>7$K?q{b>!5E6Ss zZ8#AsHgTit!HFcAZP}dqQf#@E{J`zDkQVV2!B{anwf4NCr)uR|G;G0?XR17q&0vu& zB0DQW@fuK0?<3*tj^fj;yZ^=ye%iga=4z)=-ut+`x(-5i_6K(n3MqpsZm|}#;%sl! z`PW`G#I=}c^a9_?x)yj%I8zhhv7j?i_C+1RqWcF_JNjP6uZ&tO_6G-+!TK-RT!>yj z;6uBDzjF)n^ZG}_Crr-}1>llLe2v;P-EocBw`v!z z6@z!h>-PrgZqyO<-aT`R92t+ZhS=vr{PIVxH%zXWqbrgWkc)I>Ks8k+*Di^FD96Jd zK?EQ$xxEKvA9MRQ(Cr9q?yA_YiD@Pj%W)b1{F9u3*8^$&C3%KfZqhghA|0B#hn}!Q zqK$q`%`i+lFF?U~eth6u#nK(6+BZ!?M_{mA@%BtGq(c~`HbM5B3}nn!9uZ4Tuz*ZS zx{^%Ee_h$MW$3o3H7kZs3ZC6iV;(pS||+IY$S2QI3778EL$F{!8ySQjlvGN!M?!! zL3=iZP=!EE3c$wO>+L(9vp?BSS%dyk89Hxja5GHg3i$L@p!s~}ws5wFNDe}(g&&A+M%g(Z-s`VWu%0>Cj{SYN7X(9lLc={p% z{+*c^H{YYsp`))gx6kcPIb-;}m}&civFd4RSn1_wrED$G9#YdsZ?hC1RU9JXbqX+{M1&_ z6{n6Sq}E%m%!$xP>uCLZXWCN`5$#eO7>ay$_^Rm(71v&W;+7{{2}Wn(YCSbL>%R8KP2S29Q7Kf>JKlX}gdfF9f zu>PTyg{nnj%~zp^b_E1G%47gVL_B>|+gl@5x{lPDJ0%jeKGf%KD8P8LlYlt@M+Fj2 zo=*QOT!}-xeLmDXts9od+sr;MTtJ+ajCBR)&KciBl)lNFcBdO}$xP*PuUw7~kt~t2 zRFk;w>&T2yy^7bDhtLjyq!A2DJ2;H;27wKM{4Qa3@^i+5z1103-Bra`dpxlmS>%R<5C!u5crB@~ z9%f#FZTH|B5c#j!Fv_Yel4ZVPY9Q$xIf;h}M&;&TCto7o$c??oVQ6|wCaFGJQ{R*e zHD1C0dOy64E}+4F%Gl>0AE)yLd8{v_IFIAoJ93I|Gb9i6WaW+L~;VU0up|G|LRhjA)L7u93LRmmeAljq$rq&ba~I1I(Gj1^VtI4A>7R zuv*Ms^dV5c#hjbjhzD>4@W`8Sr^=|MG=xDg(q8u^@i8Suoa|mKv!V1~F}?F27*fuX zd2`)g|AGYVjSW`oCnWxAIRB@k_^*x+`Mu#8L_v}=#|Pqt;dLAkmZ4vEc+`cpUSyQ!nJR>-TgM zC|>9g)n0zuWYVhPB=8%1c-ZcUu*osc+VpnYw2OLY z70!)jFC)<$)@E_*w3E=eY#gYchvO``?&rbKx$5iUwazpiq+NTN}TgL0=s4E z3=*T6Di@o!_x9>8klF|0!`h<<4|io%>TR9nJX>2#lDIcDltSe+=@cc~G~n+7NS04@ zD-z+{Wg1j7{2{JeH=A)cJqN+7>uQ_S$*KHgs7NRLewxkbLsK@;V$Kw5lK%ult?!$=s zILI1^%|F4gpUfbhRlMm&{Qz_8aQ}VxvG_YG)^`IZKZb~JVC4e)`Re!3gorZ7bZiZr z8aATHNGV{y)QKn*rJX#3?9+@pT47@|UZ#!e=0OslVg3TcGgcd1^CuYe{v#Ov_wo9_ z2M+9kM*r1rRv2&d-$n;)q5MFH(S6!r$^ELqBtqotjlLo!Vdy$*f(}+{x3!aaQ+e&@ zk$QjOOSsu+r<$Mv3a=d;+&yq~zh*eB>vng4fYk(dBFCwr=?eu&BLH9mkqzjJ12jH})55)lGqN{LIH0%45J!d@4Emv$b?fsQ5Kj+zb%dwHm0JEyz{rV{s?O6_U zR*M-q2Fqy;akQ^a?dpx7s@&y+zKH=ortaZE5{_z@#PMC9*aaeI}6iGgI@&vkz zEGrhPs}0UdZB8c{>?OnR>sHvkF>v?JTE|saFdOQ*Wfn&s$+{U$BGSQ>OV;uNb?1C_ z-9iUHh2jhN!xmDvVa}$oRI%HtAex9cmt*}%1T_LU5KvFltTP(mr7cz#V|$r!!d(S% zN$=>=QrU^@_R^cNx%%G+KJ?!#WAi^KA?*r#gz=D_+&KjUtnsZ;U-fj!!*{ZjLKmIN z)_T0gj=oV&=&2~|x$Ink$Gpn_~*eC{f`Ipe;*0@>tM<|eeRAhGd2VMvm27@-e#E> z0s?{vLdF@w*%<;>6e4QE;4yDuAwg0U!Wd?fToj^e=WQr5k)x%jj&~ZctaK?Vph-I4V{Z94S37$gFbnt3{DCSnGhq zKlG4`Uxg}Xr4H45kWfZ*y0J=_BSE$ldo{B%Li^*FvX+g>yQO5o`=ywq2INs)0xWN2 zgt>lCHjL-9Cg}|i#6=Zbfl8Y8(obgdZiDeQQ^zFB+6qA7^{c4 z%H?rEj~XcT2NPv}%32JJg)hS(-1{d$fcfrEe{U|7RiY8Q`7EIf|Hqg8zrVQ^oGkx& zf(lhM71veZ-=l19MYIHAXh?RGm}_Z5#77IY{DlP1mQq-qB_z@t`b_x+lF-$Sdmm$#q!2bCU=C$^q*3K^|#&0)BQ1r;V^HcD@nnx>Op+@V~Q z8CO|E^=|)}3~4u9z!2s95}!w+H~me>7Bk6W!LiZc>MY52N-L)m*~S zXWUq0u0F$vZoxj1cl-k|pG10paj+wtpGK$FHkKiIta3wiOKs!<%=-!Ks}{SIk@6^x zms9G##mV>((0pgS^| zy6zLj#;I3s-pw*#!>5>6z+Z*EZfoLC3mb$251>yHR>dyHWa^BklsS z)y%&*g$hgG!)=aKg?s~$-NVJ6O*tTbI4F~^lmR^X#o`RHYYme0zYZ>VM>hsdNN%FR z9Ea1=9y`%^g{@MGZR%>V3%&c{WV)Rfli6ii*aw!|GwxFV_LP+Kt{;8b-q)*{BSUbF zl1;z1OqXLr3g3xa9mOGVpB0*`1W4v4!AsqvC^`k~B=!U6Hg)K#2o*y~G8}zyd<0S_ z@rtU3S0N+qtfIcvNaqq^WxjwKB-70!OP!RGJ(6ser*aj4BCbpr4zA2*6F`-6Ab@!DMK!ac9)2JUZM0Us(m;CD93 z`1V8n_eJU7&l>*9D8g38*2Xsfm^J*P=6)Ak6&JAYqWHf`>|XACrqW90;^tx};y-F^ z(szyh_%6MfgdYq@AMx++*dK%Yh~7#~QP4p6ORwzV?q{!`;_78%Bzy}P7^&#^esTU7 zVhr@Pe|`85aFa-#V*Bsf8TcQo>%U*4`0I}-e4D!d_eyNSe=RLpw@_E$Qv~=afvjH< zMve-T$HNDN6#9dJhw!!-2M=}q`rR0A8yvp=GaPPL5MxG4RbzuH*Cb(qapC%X+StVB z{rw52mrI2~P99zaNd(PAq;CNlF;zN&9(mIESHNjQ|;z##jaMD ziLzCYXq6m-O7k`#fe7jbk{`>*WSpj(PhA$b<;5BZ#8_W~Po5H7wPs32VsUHtmi$8= z){%j~Ev1cA8jJQ>l7ldiP1I85LoS^cklT4sCeZU8&t-b{I;yY73KVVxgi&dgqxKL2 zKhXqpF@#p?&eW=p>?8D2J3i?)Oetw(10wg)9ay;pLW(lD8m}q>Mjot`={ECObBc8_ zvDdy+5P=BZuf+$jRna?xRzVgb*AjA?P{2E|42sPmZa$AcV}|j}==Cb=>UF4;;$OhQ z;M2g+!I^tB(_+BfS=iJ8_wYmnrc8%c`Jp^~b0Q{~VXgsA5aTQ)DflEH5VDD=L^(Fn zVN^skNU~b^_NC0fsLs~Oe&&#mfGUJ?yucKim*wc1VCACg#ensQU672oZZ7u=rLs%^ zjtwQ6n)heEuL>y;J6l&ZGGMzt&07_b(0=+wc#c&2>0Iu`K#cM24HB5EC( ziJrmj+&7@)d!y(*Q|ajM7BKYom@>)VD7pAQqGZBI`H@3*@_KCm ze-Bw&TSs;QNS+O!vsxq!mzoP`5Csj!LS@Zbr)-&|lDyVDL<&j21Acxl=dCRfiqV@4 z>`mTGJ8nCMe0&~EumX6lPWAQ@p|C((na~ARQ8mlUsn79^`3?QrcJ)@pr8|sl;&ZYZ zNy)B#leNYG$^QLNsC{x*yIq=`4n20#M{b&0(Z<6I+d)l(DKk-!HKZ}?(pgNT)fB^; za5wpzzEWp~B&(*(<Ppq}L}sUsd*pi6nOv&}X)W%W_6(mhKh{Vs z-AzmUg|o~n#veUu;pR?FQ;jycI8FL-D_gSAG-3Erf^DmsNNh`KoKHzoP*_&uq?0=Q z8(toZ427KbGNXqp7CEwAV0}j%BrE-oQ>$!-Vs$9`3+DI- zfa0c3MGSmCIsr?U6!{KckF_D+miYr_6M3D2%pMfbn=D zHz?6F!ujYkrwS>Cy*``e>dibvNxi2pBZASe8=8HBwJ(D8^_U4(TWr7Tc?h^8*3j$Y zBIsUk)_rk{y|gRtc>mUyedJb_5PnA-)c>*^{{Lss6rJ=P{w;g9{x|jvJTbOeQx656 ze-o9T2H zV*{_R_Xn&VYRf^GKqSAgjG7|$g1yG16W@rl{?=~lQR+de=`O7+_rfN-ksd8NA!V}R ziz~)_TIa>@^N@p$Y@MtX@0BL!g3F7H?!B#st^Ln)6MgoMq1Qu{k~9a;Izlw!79vvs^C{N`>rMS`nfXk4#P3wYg9*u`V&3;7DjY8)*o ze*}UF3bSoTsWIbe9MpeeQDG%ABApEn2I2Sxzf2vn_+pJPN)s~#qVP?iffPU!orD*~ zPls?-tR4ezP^HDt>KmF4WUGvtcGXW}s_RBZ_R-mYijP&WJj8NR?4Pl~Me5gem8^JC z(@EHJLW0r{@?Xnh1AD`>tu5+fc9=hg?f=CjUx7hl(S&AqM+SqtbvSOkM+Mp9$ zj8Ysmp)&<&n>DdyK64SQI0k;c*w?SZHZKI|Ne=i8nJ|?!1Y@jv>F)eeeEt72$qv`V z)$u6(0Bh_&M;eR9=||Z@PJg8Th$UYm5d#%&A*-F{{b`- zy=~|J^4^&60}>3)$R9lpvFc0||6^dVe;hv~B`DB5h!EwAx@_h86r2bZz9aD!_h054 zi&YF4-{u>39&eetIgTE*JKesYka|!X?WoO=bP0%a*%{EtfEiUEOA*YTfgLc9pRif%>o9T-k=JZf|*lu8^hvF>=t@MijppXQgSC0)h0k|jpA%2;L|^QzO@ zy~}Z&r=zR!VX+v3x^5`~_@N$M%Y3GW*5qaFMy?cx&XG}wH9v))9EJLs&1AlFGKUM8 z&5B#!k?9o3uzZSl5q%^K2CC8M_%FksTAY&PQk1Jwh6tMGo1)oyPiQy_fjz1{n5o15 z=4v6-r2+Z}ue2!GnVYCb&;vCHOkC)aK;2| z<{(G3KVCA^C)j!+G<@>+7eqp2{LFBT49Qx4$autz=F|f0)@XQb(iSgNFQ9d-=is-0 zkY?L|NXH8EBz{`d9s;|3Y$Gy1A|-;8Ua$ghkO<9jmmV%i+xD4QHEM%9$JP+l-%)LL&scQjw7%JepNZzTXxqOHd^L!Y_F+)B)c+2B`cTM%fxv){Xb zG%BXVtboE}VUt7_bOmAAzDUSf5vLibm#x2Ah$??hP zebzr*^t!wz*Bp@k;p$8F`#IlGWeEBQG`U(`8{d^?_y@TSF#6SBsEA@XOskkx;B~W5cn+hE7XcC_X_n{FEV1D-UxC|SMV*)b zL5ohd+21;XQ)~~k>XQMPR>sV9U!7z+tcFA&l_v`Gp1IOrY1)ZqQ64+KUydh~G5hurWR?oyN(^7>(R=AWy!>&=Z7 zJYHU3U^+NzAc%YU&HjKWag3G%^nM)ND+=_O`D5;EdtLqjL!CbKk$?dE7&v5Nb{g{3 z-DkOB2EkG_byGQ&-yyo*Z^H(1tXeB~D%g&;GwX(<=hC*ErtRGaM^9)DJ`HDw5#85o zkIA<7%I7UivO^RaNqL&IHOS8W7BAr{24UP)W)+MdPA0nY4A z%8RVbf%>m6?$a>W88VR_S>mSCB#A2Nv}Gr$HXSNuO`0v8t!lEE> znmq>e;xK81JF<1Kx3KDKaBuu!yI=#g%PM&vNY%i1VW;q=Y<{sd+0#$haHw_}@M?Lb z*abTr^Ez3<;!(*-0wLO_Us*D^1YS3AZBgb|IIKd`(8!YtTrPLn9D6ezw7)Fu*_}X+ z;1T%qs0GxLW<(yM994NOa#3p!1suMfKU2K{g0>x$_B5ZY;cc8ysgJE+$Oa1q2 zkpGWx`d^!O{dZda>mmGI{GOz2sfi?t?8A!Yf`k@_uhv-VHYF@wq)^2_A>0WhfRwws z?venluiubi!=hr{_2Bac`a9**-$$+@k9uaIBdO2?m7s*9~;l+Hrmy=bL3>hOV(@~ZXqHB?j{d9 z+Ol51k)Q?Goetw(-$^fh1Nqs4-+%fHFHMyRny!wVAv zlD?WG9Ei|is*YcaQX{nquG7Rg6AbZ>9DHv7*f+G*ovQS!3J;*td|GK%xX(^?VpM`NU^4#=BuO^u@r?78kT zpK191P?GtB3tPi#-4E=uRAnwYL5(1*RWtF$IVJ6fGEy$yh&_rylh>mRCbkZwT?* zl7Nj3M`*~@Z4&8OYZ#59dr-9^oGH_~H6P2}q@p!Q9!2*6i*U=m`&nfOS%d_8wb+ZI z`(Q0+2o$AcZsaX^%ei&m69w%SmAq6?u%NovUv>$$1((8CuZ4M=YeW{a?Z(dl&<-vLwHxCY;dyEtvtOGG-K0i+;Hb` zQRhwX_&9nFfLm`xLU2yKQ zftIlM`HWsz1F>FM!@*!2Vl0~?$U%yJ=~)ICGYcH)PEw#~j}2i-$h51FSr<2b6D&yd zO0-`(7%Ocv&MIyc%B4MS@3zd(l+IrjN*FmeUuhJBmK!>H!fdBjbUYgnkt<56Dj<#X=H3_i6Zfz`WXP7kVe6 z+XEXWj<#kPNHg-MX8^6C-F9$g7H*Y!3{}U6;F*0va)i-!knc@Xv=e%ol^VZEplod` zV8RrwUYiu`{^n?@K#uc;Q>}Hq!g!)SSkj%lhvudPpAvqeJ>Wz6VXAth6YDifg!eQm z%5^6n>ou8_69Kiaj#sb^e6%UCH7{7mBi`7}w~0l@vrWo^8XgN5Cdy+#!)p#^pFVJi zQ)Ckh#tp`2+zOgLSzB&Kt)tIIWjHHDaKIc~G{VwpcoPmU)W}e&6DFQqxpBIzki?;)$ zUhZLX8HG$ln$GjgGiB8_0avY24UGN+Y5JrtWRZ21#LFh@hW-~7v5DcxPySj*kq?pZN!OL8m2kb(3A+$TUoc%lROzr~3gVY>Sb zjLJXrvqAm=7~%b^GEH70#GZbmFr@G5^p9!4KQCU={Y#uC;B0PXBxG!7Y-40>W9TmW zmo2CMfA7X6sY1CSFQI(e)~~Hufq_ec6Qe_bqu0CRLs|s`;}HcmZk0ZS!je>*&@S&*tvHWOIL@>h9AYt|dHioxe%XU$a=5VzOH{at84*7zt;;4>}f9qz>* z+Uv_ zZO`E501t<#UGou9^Vx zqMW%uT&~h(K)#8Zc$u=4CRjYsG^oo(ee(2*#o%!Cnqk0XQcTDIaskY-S(HO+dYNY5 zQ$0d5nRxQbY*Z}OK6vaY-i^>CxI@86ePgqp3iT{JeuHxcQZxJoQdG%E-X3Jjq`J_) zzNJ4EjM9qb$*Co+4z++IbTLuJ&5MAP5>uzsubgjZs2zY z!_;kXl$~nqoUtVL#H!vRWM1=HbNIcmwn_gHD`&C>K|@~z*{CM{!rqm*TAoH;c-?LG zw2UQDuuFX1+-b4gwZ_6J-Pv~MuQvH@(5DWP`e|sz4QxxyKcnzXTyZMYvW34&>`rAs zV-`uUkfx|1iv~jY3sYeeOq@lD>OhWA;GVXN&BgI*Ed{1UU=*G%(`pFve$h zq$Cb~0DPB-pRpVAHAzQv9U_doQuK)WwPemd>I&d3h1vs$72el&XdCk|xGp_{Vmv@% z99_A1E9|8>f@T*Hqc~T2Fyod$|7Epgyr;>bVTW0<4^WCaXfR9~9vaiLTf@Pk&)8Rb zVBJ}8U@P##`I$$jVie&sNp)O;0%7TLKPYjJ&;IeGrfx?S)ND3Pu^^7hO(;(J42 z=vWJ9l^}iotlN10435W$<>W=Uah)(yvN|JFRmYFGV#h~jl2q-$R^o897dOL&;eM2t zC#}kpG!r$Sg!ksG-0PkQosq!7(b|AXQdv-!wr?3Gs2$zM86;r>HXB{2X^sH41s1>o|XR9Inpd*!sIh5+I zwKKT=IMt$luJnALyd!`$V@P`Z6>n3_YPws1x6OE1)~LVMwmG$AMeLk1h6V}+uWyDP z1a6p-;)c2j=Yq$>ZbT8CJsZp_b;$A`eg+&Twxe9~bo?lVM2rE|w!XHe)33`K^}%|L zs1l%(^xtvSwM}c2;DYkP%hHa~F|ah_i*xp}ACn8__`y|DOFW`6N(E7f%*H_mDIENX z(WAQ$!AE;;{opMb(piwq>f9^>;!`dAkyA3b^sp=>O{v9Z`K(w)+RAIfuu0|TZu3_; zaf#tmR}gw$LwA+9_iP`dmO`M$mnAur-8Nglh(x4%#UGv#elI~bU0p^%B%|e=iUq2K8=?pccbnbZdhxg)akM5_sa~e6F-g3*PHt^~ z>=U_+S!ZI=k7>9JCpts%S{u<6)5bmg7B74P#y>bjiV7FP7K&YQ z!kRh<*3ODR<)x2Vm;RPOFZO4|oFXmI7%nwIcimyLO#fRpq|m%1?{M6_uyH6d``ZSDL8tzH($^r}TUk zwr|-)Kk+b2F%OV<)Wy(P*$m+{grN=M!L_J;mMJT#U1Yexxu7^=5eZXUBSpBl7m2-? zwoYw5F>P05Lt`acS8#%;nlAU|>*b}tptcEZ+P7;%Id|$u+N-%%KFoX#T*8~&cI1Gf zOgh7$wPGj@8f|t4NnT;$rx=l-rZM6pj16j~ zUIa}=y<%?Ny0l+G#lrKSFv>T&8k$(<+(E;)S2mO2Rqg$v9}4PqWS%OEayYvPBA4{- zNA^)eNRv@y^gm?v39^gBXKG7%B?F)46HlzkGR3G*a-q>yOSQzPBGPoKGxQ7Q1H;*- zMT%Mrrkq7_cVH<*<@53B$fEg7ZM;2bj@v2xHa}9$fT#O5JEbPIQ=c|}UXiC-N+vnl z>*(=tMz-1pYwndZoa+@_u%ej;llLyV+la<_wcZ!v=$=4GAk;@L`JI^19rjXIlGVu1 zteB5rS&7;rirDIt+vZld0a_1rn6Fahv(gZPa~-BzdQzouz0g?q%JOI&K9l#FxX`~~ z^PYVxSNF+or$KI~6*ibtZd%}iL6$_n8~?c#`?3w+nLQVFFFawpEWQI&5Y&2kW)R>= zF}2LWc;&uc1=tk!0i=brjzM~k2D~28;2l%iPXLlmMA?DR)TxeZOxD!RZ?g=htOpoW z99+qx?Nf{SX*mehGPAlL**N}3FqdCsRj^<(SE2(lRI72*OMbu8y&KOIft-2&aQ>>3 zE$fg4WSkspZ0%BbVS7iVab>M+Lcs?rnuA{5Mq_AY&ki%UnpQO4=3hSVFIWK-)fV*i z*!*D&k+9h6wY)k&wDW91GXR8xC8ZAXtTClVbGpvm@+_T%f=}ip-|Qo z|F|vaO*1e{+BvSu3V9&M0P(@MquvtmDv}%Tnw+p$sy7zmdZ2}eDAT5bfEJpyD8w2c zkFg9^I6{^LA$iwmRfM`%)*R>r6KQl+*+rnpMf=c@OOC}huIUl}_!emai&LSqMLJ?$ zVW|zqhZqA>y76%Ut5;gMne8IrTDlqRlE1=m4LFWtj1t)9`i%gwepc)OjqPMN6jKVU2F#A(d#6=d%3JhBI{U{~-J1&6kI;U9w3 zMNp(xSWU8!#v+Q+>OAHH67MiBOXkYJF>jI-rF5H#pqxC?YfEu%JjkF0he^Y)f<$W9 z3@U3Zu&Ex2ZZcl2mA7z`)Z5$1cxh3#gez<*E58zNp&}ff-iO>l1be>TRV^*r$0D9q zM9lJXxor+(@d4nz2PI^D#jwtCvlL{_`8^0={&2IVDw>x&GsXXoN< zT?jCr$KMwhet=iBAPs(ex5?)JYqs{!t@6KCa|_8T{Zo5fqz>Vww6w%~GIh5-$(0NZ zO=ne~k(6t&SUXCS_zOT^9@RJ=nvO0Ff)NQ-vPq?I$wD(l1sDY(rO}Mi02*JVPouJV znWEX*x=MNDb*Xu|NWkCg%W-Fd7>U8(XD3$os$-(GUe?aAn?aI*QjLiCOXxQBZyhpWXL$(Z`wwP4+}A;=9^;0)`jbzt^wz&a>cth3g}{Jg1J`ssZOpkvS& zG>mS=Xglg)zTziqI+!!;42ffOqWI&+Dg*;sfidS?Gm;Bzq9-r7>3vB&I=xWFrN8v! z&^#kyy0z5W`+<{_-Q3F_hat04#-1FqY917d!Y(M_sQ2PHYHsEYrV&60vMNAYHBgxu zG)o;o#g&3b%BeA_U2!RS`pt8zOr>z3TFbT+2d{JBHz<`1bN+^?Cq z#Nya7yOHMbU69lS@ZSRqv`t>wGPr30`P~BZ8PnGi;bX)2>=JlQ_uK*IJG09P(=B-d z7T9vuxwU(J;nmW|>C`QHk_EO?aZdxcH6;k$Eqn3?zE)Xu{HE?cM8ZxHa zOxnn!gbg#Kf}&cC7`Iw(FXcgqtf`44PS+M+W>y$+mRav+plq)ISlHj>JSRt?)#+np ze-to*c>BuH)rARDhBz(6DZoi%C}5($&W$Js0>#_^TR)0v1iRItE2Hi{V`>iF+1=sAO^Kt7*~?d~^q#ZIbhG0i#GNlsY(t9}P?PxXNl0l50l%x|>9%#Q%7u4F(CuYYkbcWKl`PwreC+iV*ae_=uH6YjcQPoa|PAb+z)`CuA$f_ zoC@3$h6fo7sc#VgLoE!M3RXJSJP@B3?A^&(qiZ+}Rod1RW%0w#&_H5|5X%=Wj7T-i zgyhMT8iiv+u<7f#MBU#8fr599g{|hZ3ALIiw<5-khYcS%E8nQp4J&mvOEM(@{_-D= zOQf40Qp695f}){P;kSIzzM+7}NXhJ{S{S`_W$2X-dTH9jBoR0rZzIU=y%_#veX{9NpZ7khkT~(eJn}-CSr|Ei;I|U6SXlV0R#KcBede3_rh# z3S;w>d3$HnsLp5%?GWs$bIWHzW5uww65#MZ~y-Xu} zh!%873okK~G)61^R9AK%N%|$>f-?r<5G*Yb>=g73S2bx^}P#x4a!FQx4?VZDw^##Uf;jrb|I>C3wmv7gsp?EA@ z$SfgADI|-1Io(NV@U3?A6^H*xH14xwx56$={O$Cb^ecR4;l;bKA%-LIenyYly3sTw zzJhYd83#XrBd;rZWS4W9l4qA_ZE+yh_m_|D6k3e^1HV{ZZ$6{8U% zh7CKF0*_#;ZQ*v(g_zil1pHcbFFAxNj9MvCLJO;q4F(xlRkAYS!xbydzH=k*v zuBnjqp*p=O1g)~MMTi;me|VN&813U`IuP|tGFi_s;xt{BOhDZE?t7d+1wemb#H4v; zei1bwX^(YqWsmm)lV}GnIy9RD9Vt_E$th=mK&7VCSYvhj#>)cUGT5IOleU@k@r9WhuU1Yt}Ea{q*n7!d*F40^H zw{k>xT|R486>@*RSL4!CYvG6sq_WgHs#lr>;E>d_*sC;;8wothR@IIfFu@O<-k+qvZTFwcQi0HJ484-m)@BRAtvjtek8IxVFRg2e2tAxWM`S>0 zY5v9Rz)7u+orh^hSB3;T&S6n;vGT0s((-!0e7V$J!>8G-%hz3SS0B@ZL6G4ElF&1OaBqC#-&?q)cVVlG)sJP$Q(zYY)jF7EK~ z`*XA_EMwF>R6e|N8JkK!%CfG0G<*UD5Q4Zg<9D-QXP}A;9A=CwpPk6`Iti6~Ggg=H zn-FA2c~FvJ$QB-oA~{W0sqBInMh;qW>=kI=Ym~(29Z_~6?m0ik39+#QH=&JZB*v%w z(8|M6Ew>v8Ar+PX`NMHz%*%oc6NVCdxrVJDX3&=PUfuIPieucSGa;^GKti{Hu6#$} z5T`*XJ4@{>e&H}j#Z)}`*wm+$qniSZBAkjkLvme$j=S>G$zGKhzsW9I$vk-qmK`bT zmEOd|TH6B23Kd8^nD8zE*hvFRH#X&|4~ts1Tx|`t8DLMk3Cf`DZnVL&UP;yJi({TK zUZ_eDry7FDPW;yRY-8Jxs3vHCAImE6kDq+SlRu-_ANC^ZM`V){9}Pk!?aTJpU+5-i ze`F->4j2r^kljSskdgjO&n9%i?RIWbF^H#pKm-v?R8P<1t@;^AXJG{!`3Zj)KxJ+T z;8F)SmUU~s`2v%=J{P_$g^TWT@4h7Dj}zl?k&-iA*&qZCp^k-h&&kE5JRy=s!U((+ zYhFqG3u0sH{5&VTEmha&o^ zy+v|P2R)L+&(vAn-z}$Xp}WO!qbkTuai7?2ZZkRz@7X4I$!IU$KgK!@@SN{mZHsXM zPS>Q^rw(n4bs{6*yN*PVK%W%xEDLOXklKtQ0)2k`9Ch-0WlZ7-oCap{EAvmDu)<#; zz*IViY)?14VR2w>?xZB10UT3so!t^~0uO_f%Z;Xp2|fP7ZkCMf z3B}LHQAVhvwC&s#UZzud+Pl}tc8}T>UXBB`Yd0-uAXrIE!vLK$D|<)7iJM_XYT+rT zY%v4gteziFCvvDAkq-1UL0z<@yxKBDPN35HMNAphh0abW*2O4|Ndh<76uqho2}*%r z9wc3|6{k6k=`spI&Kd&+X4J7oKV@?@vW4t*#GSDVoIBGHJCowysU>b*%1=Daxxf5a zZYUe$b_%4;%4?2kPbV~V*DI4|RU65jqFFMQ&F@b+tO2!asPm}DJ#PeVWtaW%h_LyMthG94nC=0=qJoxJMT&5hRUoo5rx-ey0bibz^-NMZOZV0os{vw&DG7v zo)J$kS%BjB*av}`J4+cc8;3ZL(@8&j6mL34Vv=i?Re;!jG?+$fyhCq`2@Fy68LZC_ zHbhV%)tD*=N-g^e;5NWuck;rE&Qe@uT$4hhp`oh16bu01qAr=$H5iJCyqt=}8r3}Q z0m+C=@~`j7O_P|2jHxY|<&|lMn|Djy0HMc5pB>C?NTV4V5-*~eu&mAQjNFFi0KVxW zC-La*5|k_N2>vWPN16@R(w|Y-JHwX-?msIMnKfoFAv>+hVw5!*XEzN~WSTPu{J@2P zxCV*N{R1$y2tMt-D8Fx?=mxx$S#!(m( zxiYCtI##|V`gQFM&^G$*lW9Y<^CtBzaR)j$@O2{csdN(m^A7(={~heiiHPcs^f1YG zo~|9Eqh(h3!8%=RC-2M&D{1a`*oSLxL$~C_sSMUBTZNXxkKyuq%0K$ovTX=f&E zgWOaZ-P}?BK+jed?-30l=H@zQx> zZ3lLzoy=dK!4>+`!fZET+4+L>!h2C`Tn8iv|CTkky53XrBIDnBKvJq)c-zuA1)6t$ z1&Hx4lJQ+Wqeb8ICo`kVDU|2$WxiwBHrHYtGgM@Jw$Y%R1lMe}y;Iv{+dv(+*wdsaJg4p%wxskl{)w6?m@q&V627k8Cu6EvJo{;nq7LidXv#Urmqs3%8ftY2-P+vBR;t=ha0eAI?LWoTGsRG~ zet=>2Sh5ILXAY3R04+qSZ^t913q;)mb9TXm{WXZV*)NlR2AN@=rhYpqx}fKozv5H- z+jo8>m&tFq{P|RYg9*@<|6^i#1%F<{Z#({htn%=koTmq$16C9v+{;9KkQ4E=J&&a$ zmrt4FM;W5MK7X0w-M+wBu&w2LSaF{uJ)HUK%7}jmF!=QNB-VwUY7ZLKqdGEd1PgxpoX5=p%r`9b~vrDET6v zFRTZgeCcA!^oGdyEe3%_zCrW+^ZVaXw&Uf;@WB~o#=z0_fPuwIpcTaS2X4#(`MmQU z1i(hpn9=^@y-KmH97&lVh&QXwGux;%|}$MYdV?N`2>&R zn$F|;1-cUv>6MpqJLj>1P+IaJ8~AQF>MJdCQ~9bcu*c>16WDUtq{hI647I6YrUS7c<3ujhX=fIp{gRp?RKN`mf+eFYi+WnWC451}D+84=c-s=;sj&s2% zCV#Fi%9AN)tciV8mQ#!JKuSTfE_ej5y~@2RmDA}5Oo!$%J8dK7dF` zd_?4QzO_K%tVv9Z$dWt+y}5<`4Ram?yA>QaRv@YalfF}nfo`*O8coe9Q_}pzWC3Gt zLG%T;$n}Y3Y_BLf-y+fBsKasIuy`DlKKt!-2;9aMMwK0z$$^^Y3B>RSeR$qBS~-C* zauKImBTU*25%(@5beZ)4K@lZ87wi*r{s(H4BSgz9Q`;%v$1FLnI5iiHx)li{ncBhB zNnCuI)4)xbxP?P*war;Gb5A$$zsYgSagO!Z@42)%$B7zQ-3p&@W9NBJ z9C5bTSL8?CV-%)crFMZvoM@bs?BWa&VqGeC4Md|x*qZO$V>q9^MzXk;?P+ySS0~We zb&ex(a&AasP-&boxu(}*$=F11il*nd#@J(cTx5>Pr_HtYDv#Ty(PtcO4qv7@+vZ;Y zXzh6Vp|U*P>+X%aH(yY7_ul%Fk%-&yPT zD^AagI_L;C3VvN7owB*e*?K-%dALA+^wA$`;`xGWmvdKzB;#v;hI(m0uPdrG9-TT> zF0jfqW$~RHEo>JEKb^^I7-r>DrizuwEk0vY>Vcjw%JVZ;DXyQb!bUT={@|ok{4%3j%l8~^i zqM&Q2fSmjU>{wWoI*0o4Xcw&q<8oG*ThVi#sm0Xy!p*onAaDP`6Hd7)fF;LTjyOocYlYtA16X{qj6pIUsqk)1qI>d- z*iMK@v^h7QwPP^k4~&)nmveL(Xwp(zD+97>muBe+MqD&E5ksuNvg_=c9+snsl@8R# z8vaENOuvXo?eE%aw#SzMt#t?n4Xi!cn7PHtBdv!k9+ux0UeVgou@pDH3%-twTM8<> zU&&t^%ZHqwnpI=gpBqbsRcfkD^j^~gyn?(AAOvshn0>sqs-3YCD}4otGqvZ9zi9xv zqDZ%3y3AeIKQ~U0v5Pq|OM7tUpo;9CtCI>(@Ll&GJYg1FKF+e9%saR%nz>hadb18$ z?)Dv3e+Bt0Nx@RtU{s$o+7t; z6E96{KN#yF&eA2O?Ga*sw;VrGElrJ`SNf!;K3Fk>>5*Bv&3NGUiFCQgJH_u2thvug z-zN9}5MurF%!c$|3bFp?c`vPR zqi<^LKurI4jc~NW-_6?=Y&xv9t@wq6f(R);;MEC6BZq_ZEHPi>8o_Yg@E3j;YGb=j zIcYwky;PD8qYuFCZuJ;;HV{7+C_t;TKD!nHp#_i4jGx<*gFF!h?m z8T;s7faV}_m3s`j6n2qCH{l>~)tyVqXLNE8ks?DUS5@M!qQ^pEX`Oi!ur?>JuX(P9 z4$0oJ4YPxPkV2M1rcRV=wu4Cy{;}G41Fs1!soJ4w=d?xyv$1M4s;HV-N;&PeGN*0t zHZr*f6R?XDXY|J9{*-3QompBfcibhi1(_`nf~KwzfieQ&tKT2nOPJ$D7z97d$b$Y=7l!$Km0Perwb5^z|U= z9R2%(FBxwZXdChYP-;neoiTs_D=|3Gu&nNo14|sjE2S3Nl(PAwOR$uNj2RLqoB8qJdOCW!C}|qG z#AKdmWpM(rDU|eSdu2mw!fX$pSZ-S1fc_u8-YH6ys7ux@+qP}nwr$(C?b>DAwr$(C zy~{eg`}Vl!rO*GEBVSj}u`*`F7u~vN(5}4_!+JDBa5?k~oJ31GSmLg?j27hDM#;MX z?;UmN?v65N(g!qWIB6F+YaRL&NL=Kuc=PX0icF;D63~&f!eTBvv`xHNcPpNGg5K>i zN7O94b0RWk(nN+OnTLrkn^MfE_S=gKZer?Zam?CW=|MGVVs7GChlwKk!e#%}Vz|m6 zYbiyx=tg2_A3My9_OBg*>_}!wJE@`;li7!0wjIE ztYEe41vX+HNnB<$ZUmd_AB6}gr=eG5c(%CT|KhyOT6_xe0Cq;x%vugP<6o7U|FBu5 zTCrtGyX`alFmWrXH&+*1$)5~B!dUX6#P*XM6-Y}}YY%IVm`&pE{B$ho;p^GjRgKM7 z1IE%!$oAKc$UW7xO!+a<5G!wW zEI%ZF(ni&pQU;Z3Zfj%d>djVUtRj$XE)=v(*sG_^HOHt|?Wj?kUS;jHcyInN&hQeF zmjZaw3G zmvvU{awA3h3L&wB%$T?(E_@Ot1maRcq*%pi_pA+>5;Wp++nPlF z`UpY?>A{(6`7|~<5%GasUo$%-`FJjI$ndF@`12z%x$<-P%N`?_zwozxB|0G9Ovy66 z)l#2@PPN8O$h?wjDLH0rKp>xpC#vwaHR_Ay(MW|f;L?uOVxr5~*7oOwr}cb%xWq~7 zru*%P>f7It{){CtMPWa4rxkz_Ja&L*q9L()Ck|k;LSG44o43EVdIBGcyq}Ty?tSSo z$a3}t8F7r|gOq6PGTw0O0~z2a@K?lwWS!RsP#n4y8?pkLXE4R#rco3wNLEC+M_Gkjs!a+?T3eMf~0=FwoGSO zE$anW=Wa3fxmRo*`#Ts{NRaiSVDCb){em&s-f$k%1*F$v@z_PZq_}BKdTqG&VYwQX z|K{=By}4qc><^Cr?s3+Mt|ANO++T7TuhiP0Sf?%o&Lw3s|G+Sr-cWncJU!QsAdUD5 zeU%tnYkHZAj_)AJJi`0FnPd8g8-p7c6rs{M|L_TYG&WT4$5q9ozQU083YdsGmUjSr zmJ1BtlTE8;O?J+TN@dg)8gL38n?>ut)Jb}!N9TTG3`++jBz3b8H;zd^89$)wSlFG| zObs6Ke=Ebp@tNMMe9Bk_tJyb4O}NYbmyUOwcnvo`*wbO7VGePqBDSbk#0^4~f( zhkW7q4jI$72|tvG^_*L=NdH?}&*|#KmZSlu`?1)(6JE1G5@)axv32(5$>Jer1Zygf zrj>n@ffk-Tk%YOBtaXXH1Ao)A=snf*lU|YaA9Vk!TUdtPjRPDU71_l+O5s;jht}y zqWce&+Hkk+7rX`SeA3rqxVAK z^g+&~bh$i}&b>8n#fJy;9r(nEvyZq&f1zm5rP*KMBO-wt{$`+I0alp@#k1XOP6Pz^ zBX+B-9)s3c6cn(Hpel;WDl6w63p!V1)e;l}s4k?qpfc*l>VqzaVsiQXfuFK?TzLX} zjhq4+m8a~KHx`MOeLQpi>-j7)RFd0HX21j4+_s3$xErRgNHt7XczKWD=)r}GQ#4p~ z3=N;u=N%Ch_Xn+(SL(xX_QdCUnaIaWQ_u zp&--NU@%JwuMW3_a=gL>fvojk!;!R74oFV zLSPfM_aNu1l}37wy2-m~yfIFw6j-`aObl(uTQ;f^Hw<@Z+I(kAMpp%3*TDc?hEFvO z3+&OSz%=M{q)oYR7sQeVZ~mKr1>*jGIgi~!@A5RfVqF#y#t*oW6j}O^osYm4?hCrb zdTTOYSd4{{)Z8b%{H_LcQv~$tx}~0b1xjAYz5Z$ht{wST!_#21*LilvC*i)X`hWkg z=YZF6Nx#J96_$VV#o#Uf*1y8*xV2sbLi#_QJy;v z?y!^Bl6(LmL37yd95BMvPC+gNxc38e`=m_L$}iPVU5Xh94K+EXUv^nvT~_(1{t#+y zYM|8CP+=8^H9UN1W`^l718<0t*torTAyHjmezY#;EAlD&Mbn#A%>*BHnioK?RT*E6e9cu38*5MYR&V5p0T)xuo-(SrRPMw#wd!#P7 zTY~SWA$avmtANE)G@|s#-DZ=aPJHA;)M1sVGVE6lDl<|dPZE>aPg)6XKEr|siK^C} zCFw+v%UGl!zwubmWQyC8@6eI<&`YGkwN`1QS*Rk24RU4Q?j*_j9Mx+@^^)eF8Jt&V zDxvY<9)lP^C>($Mpvt><^}=39|7tP|ZV$i12bm!VCBD(n3P}fcA!B^DMYWeF-3vp( zKcsZ2NNQHfJdeC=I!U>7T07s2r~%;#cuapaDObza%g4k_|PK@1$ts;FcKW zUN;DfLnbSK0m0TTZC=#W0?`%98RvrqhCc?FPq>NT%`HU_6I3?~J4eDZlG4qq zqO~7@t3KGE-r%RY!@fE%NitFTFX|hr^%~`GQYHVdSYHSq7HzS=xVcIIFDTSmXeAM< z@&UL~{7*3T2x;9yozBVcR_ws{zp|_vE38%;Ux+?$l`zt^#Sn?ES)~{bIKD z52EZkcyno?XX^9kY>4eUK*PT9neWMO(93JAcWbFhDXE9UXPeuDy#WgVwlwMRwG3HW zUAY(SZ;+g`(;VYw*M!!VHQ}=-Y+u#hv~m|NSNKKH4r$hwftzwI@N%xH^T9+M*BCl3 zF?9UGdIh>^q-zJrpfnE^LqjCam|JIacU=Z95ngf2-sDli#{2m=g*)YCa^C%Jnl#-% zgb!8;Mje9y!_w;SQ{Uhfd{rAk*Qrz6#9&87D_K;>fa>6L#A!t0NIihY-(aveSprA) zfT3*(!h5C47yb*!UwFEk_yB4AK`-+6vt8%?zcEUG@uU{Q?+3+Q_={}!fj$^N&&#S8 z<}}Onn?CsYFl2KlmD^*a#TsGL%>NOvW~iF02KFY{3J3fb>k9OFM}L6=d<7=4KJZP< z`X1d$QGF$@7W6IuhKcoQHlFit-t*O%04Ljf&5U8&-TBwp+qQ09@=G{7U&;(J+LftW zL9Ll-=P)KuKvJN`72#mWb3P%?ZAv4S4Y!9oV9Jhc4Cx5E>PVJ3pt?RtHm8^`$mPna zKjL&|3UikHXssE6TBP_vOV>As$c5eo5Bwob?>R}?QMKDD5w5#0hpME)p(l&Ac5=$C ztt6qu+c-6B+H%M++%H3m0lRo)bPchd7;{ybe&+Pbq@&N^tQlYxP-=a_3l1;dq;a-7 zMkv`F8ZWSnWNHp8*9bPj&#zGZu^erlCoskOR{b$<_6DhQF8)0ILwJK%Pf3aRm7tj9@ zMOC(x{?S8p3oMbPLa^wZXd@_WQK@%ZP%GAnl(fSM>5yz!af49p4O&2L)f_^z&{|Lpnq{sK8*#&Z)Mso}IGDl?Q2;Ey5P);q`5bWw$= zPLD;RuY1amlt+QG-Bn>2(^N`SQZ#gw8)ZKPMnR%V+wiH>(+KKSCRZZKrSbM9vhMUh zG;OIj1)gzk6yACF8ro|2;&x9-D&(T6QAwwWLh=?o7iv-VmZwS~6^^8&Tt!Z&*r#!il)rZ(Q;92Gw>Q$) zp0lw(iKB6dYmUO!U98ponJKvdf1z*84P*XtlCz{ZN(^}*W??N>TyVfj!lDb*)(g)t8Kcp3exOC>Z!A;uEZKyTF$7DnPd8frcSBO^Wpl5`s!x?s2SpmXJLR&`ZZ zlRo~3#g-VPSvz%tx`kVF_4&M^Ry!wpCh z))75ibUv(^9UNk5loawctewzXXpEi+KYT7*z)JQ~O34>1gW(U0JGiw1&G`hopgZo9 zf7BoN)NJK#*xsL(#2Xx4Ad;H!T9`2xfyNA#s#Dk3oP>ePdZa;u|rqA74}_Frr#%Mqh&48J+jaPq5~~TIhaD@B^tEWYy>= zG;b&9T}UVk;l)&X74!nNSr*c)KM$zNPkL@Z^pb>=h}IdCxh>SD7~Pt{VAX);6`Q#z z)TgMdjlsev`0-{BB1zF)IxkEtv4~(+-puptl2L7*>?N)->$;8L@$}zD_7MU@0-%55 z@78~$k^JwFsQ><`{x6QF#mm!RX)NWpJ25_xg5e`7ggH`(0&p-@mOY#k`OHGLY`ksPj_syx+s2Ju{Lbzc@z$;PQ%<5O zvG9xgSJB*(x!G>F=hNxTr(X&D@5kd+OvA`m){zG6*OA8?pN|&&-O3RB=#bVMq3;)R z%U1-SpA7yl4FTCc`O!Y}TiV0hw|?YTMLsJs0+j!W+Xp)y<9)N#8*kcGtf`) z@GnZeV1J#&S4)5#U?1T_8xR}R8*XGDdc9;nzQh+jU>4|CBH1Uh?{8CpGU!+6@EmA1 z*?ynoS5-i9KwrUlM!*s%I8HyO??2HBQcu{ZCZN_!k3E<6=s5^_(DCTa!w*1G@6s_p zpm`rzBAX&#+d;BWK7h7ev`}9lem_ZqM?#=(A3TXeQy_0&St6T?fcT9CsSKJ!_#Tr4 zkH{c;Km3nJdO-C)AQC+KJpG#tQanNevJYCMK2id@4_l--6b6D1T%@_nnUY;S;9JrLD@dFgbiA~^gS9;2PAfY$5GF*MPUgHL63; zzAuRx$TqKEZk%UK?B9U+JH0(98|mPeGQ2n zvP0MYmLv|6L-@XVV!LpEPEelgp&Xz)WN-AaGsrgWTL(!l`99vj9Qgwf;473LVI(?a zyZn8$WVcBFcaXl+p(zj^!j}_LAI-ktKpnw@6d*jLA8O=3oPox@wM4gCKXH)0_~A1U z9_kkul0C|O`aXN2M^nHUXkX~CHYg9_n=Q#M-M-|&9l?Vfpgg1>dZatFht|EfM7MfB zbI_jn;Wv;Q^bbHJJd^{7f5dP&C=c};F$o{lKIZ^F@q;7a9P|%Jq&$>|;C-2dk5)h4 zKpvrETL3z!yM&KgzjP44_~8?f9@-Zu(kq0A=smimk7R#UP@l{pHIN?imnxDz@_pxi zUD8`v06U0((s14KQ(M4$W)@MR1yKhdniNP zi%}huN;SH@l43x&c6u!0LD$?shA==dpo-Brd8Mg8 z%uq0+@^d9PHe;|0xuzAi3JwW!ZLT7YYKwr8C*oe*pdu-86Im0_y<)-<-bpr+`)Rcn z1bZ{gh;%5$lodsTs!3bGvm7fMoRTdmoK2LwF^f=kkfX$htW<}n)3NNd0)On|#I%MA zPDOY+_>whBHWf8j*jk8KdaR1L!j`J8V8|QjA5 zsg0 z)0tt4$}&?D}orZtzc_Mk+LMJVt=vNs}x$tNWs{f!Luxx8AbQu@`tz= z(jBCom8(Z?;-ssWQ-)dAaEc8m$yM4gn~bnc2YWWj-G+lFEUf?7Wj-%pm^EhLCUTHr zvqw361~(WKcMMvYZYCep7t7$ljkIjd!>+{VUiDq9V7rE;%diWsI4V~*p9?DQ9CM2C zRj#Vdimza~@>NzUpA})Aii9?NMHu!a_BN{Mf5m_$~!Bhn)x3y$5^Vd)u?MG1EmS!EZs03N$!>
      XjKp~b;qsu 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%0Atvp@_}f_ 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

      E|NGhkM@=5uzJC6&$t6OpyfUyM?1O9)rys^| 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

      _y;CQL^g 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 Date: Tue, 29 Mar 2016 08:42:40 +0200 Subject: [PATCH 54/55] ANTLR/ : Final touches to ANTLR --- ANTLR/src/Test/ObsidiCode.g4 | 6 +- ANTLR/src/Test/ObsidiCode.tokens | 105 - ANTLR/src/Test/ObsidiCodeBaseListener.class | Bin 14030 -> 0 bytes ANTLR/src/Test/ObsidiCodeBaseListener.java | 735 --- ANTLR/src/Test/ObsidiCodeLexer.class | Bin 11466 -> 0 bytes ANTLR/src/Test/ObsidiCodeLexer.java | 287 -- ANTLR/src/Test/ObsidiCodeLexer.tokens | 105 - ANTLR/src/Test/ObsidiCodeListener.class | Bin 10001 -> 0 bytes ANTLR/src/Test/ObsidiCodeListener.java | 590 --- ...CodeParser$AdditiveExpressionContext.class | Bin 1411 -> 0 bytes ...eParser$AdditiveExpressionEndContext.class | Bin 1090 -> 0 bytes .../ObsidiCodeParser$AssignmentContext.class | Bin 1219 -> 0 bytes ...deParser$AssignmentExpressionContext.class | Bin 1305 -> 0 bytes ...Parser$ConditionAndExpressionContext.class | Bin 1239 -> 0 bytes ...eParser$ConditionOrExpressionContext.class | Bin 1268 -> 0 bytes ...eParser$ConditionalExpressionContext.class | Bin 1138 -> 0 bytes ...CodeParser$EqualityExpressionContext.class | Bin 1455 -> 0 bytes ...eParser$EqualityExpressionEndContext.class | Bin 1134 -> 0 bytes .../ObsidiCodeParser$ExpressionContext.class | Bin 1079 -> 0 bytes ...ObsidiCodeParser$LeftHandSideContext.class | Bin 1201 -> 0 bytes .../ObsidiCodeParser$ListOptContext.class | Bin 1024 -> 0 bytes .../ObsidiCodeParser$LiteralContext.class | Bin 1044 -> 0 bytes .../ObsidiCodeParser$MultiExprContext.class | Bin 1312 -> 0 bytes ...ObsidiCodeParser$MultiExprEndContext.class | Bin 1045 -> 0 bytes .../ObsidiCodeParser$PrimaryContext.class | Bin 1508 -> 0 bytes ...deParser$RelationalExpressionContext.class | Bin 1469 -> 0 bytes ...arser$RelationalExpressionEndContext.class | Bin 1136 -> 0 bytes .../ObsidiCodeParser$TypeNameContext.class | Bin 1128 -> 0 bytes .../ObsidiCodeParser$UnaryExprContext.class | Bin 1124 -> 0 bytes ...bsidiCodeParser$XOrExpressionContext.class | Bin 1196 -> 0 bytes ANTLR/src/Test/ObsidiCodeParser.class | Bin 55141 -> 0 bytes ANTLR/src/Test/ObsidiCodeParser.java | 4068 ----------------- ANTLR/src/Test/build.sh | 2 + ANTLR/src/Test/clean.sh | 3 + ANTLR/src/Test/run.sh | 1 + ANTLR/src/Test/test_decl.txt | 21 +- 36 files changed, 23 insertions(+), 5900 deletions(-) delete mode 100644 ANTLR/src/Test/ObsidiCode.tokens delete mode 100644 ANTLR/src/Test/ObsidiCodeBaseListener.class delete mode 100644 ANTLR/src/Test/ObsidiCodeBaseListener.java delete mode 100644 ANTLR/src/Test/ObsidiCodeLexer.class delete mode 100644 ANTLR/src/Test/ObsidiCodeLexer.java delete mode 100644 ANTLR/src/Test/ObsidiCodeLexer.tokens delete mode 100644 ANTLR/src/Test/ObsidiCodeListener.class delete mode 100644 ANTLR/src/Test/ObsidiCodeListener.java delete mode 100644 ANTLR/src/Test/ObsidiCodeParser$AdditiveExpressionContext.class delete mode 100644 ANTLR/src/Test/ObsidiCodeParser$AdditiveExpressionEndContext.class delete mode 100644 ANTLR/src/Test/ObsidiCodeParser$AssignmentContext.class delete mode 100644 ANTLR/src/Test/ObsidiCodeParser$AssignmentExpressionContext.class delete mode 100644 ANTLR/src/Test/ObsidiCodeParser$ConditionAndExpressionContext.class delete mode 100644 ANTLR/src/Test/ObsidiCodeParser$ConditionOrExpressionContext.class delete mode 100644 ANTLR/src/Test/ObsidiCodeParser$ConditionalExpressionContext.class delete mode 100644 ANTLR/src/Test/ObsidiCodeParser$EqualityExpressionContext.class delete mode 100644 ANTLR/src/Test/ObsidiCodeParser$EqualityExpressionEndContext.class delete mode 100644 ANTLR/src/Test/ObsidiCodeParser$ExpressionContext.class delete mode 100644 ANTLR/src/Test/ObsidiCodeParser$LeftHandSideContext.class delete mode 100644 ANTLR/src/Test/ObsidiCodeParser$ListOptContext.class delete mode 100644 ANTLR/src/Test/ObsidiCodeParser$LiteralContext.class delete mode 100644 ANTLR/src/Test/ObsidiCodeParser$MultiExprContext.class delete mode 100644 ANTLR/src/Test/ObsidiCodeParser$MultiExprEndContext.class delete mode 100644 ANTLR/src/Test/ObsidiCodeParser$PrimaryContext.class delete mode 100644 ANTLR/src/Test/ObsidiCodeParser$RelationalExpressionContext.class delete mode 100644 ANTLR/src/Test/ObsidiCodeParser$RelationalExpressionEndContext.class delete mode 100644 ANTLR/src/Test/ObsidiCodeParser$TypeNameContext.class delete mode 100644 ANTLR/src/Test/ObsidiCodeParser$UnaryExprContext.class delete mode 100644 ANTLR/src/Test/ObsidiCodeParser$XOrExpressionContext.class delete mode 100644 ANTLR/src/Test/ObsidiCodeParser.class delete mode 100644 ANTLR/src/Test/ObsidiCodeParser.java diff --git a/ANTLR/src/Test/ObsidiCode.g4 b/ANTLR/src/Test/ObsidiCode.g4 index 3bd8742..c4f19ea 100644 --- a/ANTLR/src/Test/ObsidiCode.g4 +++ b/ANTLR/src/Test/ObsidiCode.g4 @@ -159,14 +159,14 @@ methodInvocation ; ifStmt - : 'IF' '(' expression ')' '\n' block 'END IF' 'elseIfOpt' 'elseOpt' + : 'IF' '(' expression ')' '\n' block 'END IF' elseIfOpt elseOpt ; elseIfOpt - : elseIfOpt 'ELSE IF' '(' expression ')' '\n' block 'END ELSEIF' + : elseIfOpt '\n' 'ELSE IF' '(' expression ')' '\n' block 'END ELSEIF' | //lambda ; elseOpt - : 'ELSE' '\n' block 'END Else' + : '\n' 'ELSE' '\n' block 'END ELSE' | //lambda ; diff --git a/ANTLR/src/Test/ObsidiCode.tokens b/ANTLR/src/Test/ObsidiCode.tokens deleted file mode 100644 index 43f4fd5..0000000 --- a/ANTLR/src/Test/ObsidiCode.tokens +++ /dev/null @@ -1,105 +0,0 @@ -T__0=1 -T__1=2 -T__2=3 -T__3=4 -T__4=5 -T__5=6 -T__6=7 -T__7=8 -T__8=9 -T__9=10 -T__10=11 -T__11=12 -T__12=13 -T__13=14 -T__14=15 -T__15=16 -T__16=17 -T__17=18 -T__18=19 -T__19=20 -T__20=21 -T__21=22 -T__22=23 -T__23=24 -T__24=25 -T__25=26 -T__26=27 -T__27=28 -T__28=29 -T__29=30 -T__30=31 -T__31=32 -T__32=33 -T__33=34 -T__34=35 -T__35=36 -T__36=37 -T__37=38 -T__38=39 -T__39=40 -T__40=41 -T__41=42 -T__42=43 -T__43=44 -T__44=45 -T__45=46 -T__46=47 -T__47=48 -T__48=49 -Identifier=50 -NumLit=51 -CoordLit=52 -StringLit=53 -WS=54 -COMMENT=55 -EOLCOMMENT=56 -'TRUE'=1 -'FALSE'=2 -'.'=3 -'NUM'=4 -'BOOL'=5 -'STRING'=6 -'COORD'=7 -'LIST'=8 -'LOAD'=9 -'('=10 -')'=11 -'\n'=12 -':'=13 -','=14 -'='=15 -'END'=16 -'VOID'=17 -'HEAR'=18 -'END HEAR'=19 -'BREAK'=20 -'RETURN'=21 -'SIGNAL'=22 -'IF'=23 -'END IF'=24 -'elseIfOpt'=25 -'elseOpt'=26 -'ELSE IF'=27 -'END ELSEIF'=28 -'ELSE'=29 -'END Else'=30 -'REPEAT UNTIL'=31 -'END REPEAT'=32 -'FOREVER'=33 -'END FOREVER'=34 -'['=35 -']'=36 -'OR'=37 -'AND'=38 -'XOR'=39 -'IS'=40 -'NOT'=41 -'LESS_THAN'=42 -'GREATER_THAN'=43 -'LESS_THAN_EQUAL'=44 -'GREATER_THAN_EQUAL'=45 -'+'=46 -'-'=47 -'*'=48 -'/'=49 diff --git a/ANTLR/src/Test/ObsidiCodeBaseListener.class b/ANTLR/src/Test/ObsidiCodeBaseListener.class deleted file mode 100644 index e26c99a86eb4711e9fdab1753b40c8a19530bffd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14030 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 Vu+v~?!On)A2Rk2j5$s~o{5oRVQPuze diff --git a/ANTLR/src/Test/ObsidiCodeBaseListener.java b/ANTLR/src/Test/ObsidiCodeBaseListener.java deleted file mode 100644 index 959a028..0000000 --- a/ANTLR/src/Test/ObsidiCodeBaseListener.java +++ /dev/null @@ -1,735 +0,0 @@ -// Generated from ObsidiCode.g4 by ANTLR 4.5 - -import org.antlr.v4.runtime.ParserRuleContext; -import org.antlr.v4.runtime.misc.NotNull; -import org.antlr.v4.runtime.tree.ErrorNode; -import org.antlr.v4.runtime.tree.TerminalNode; - -/** - * This class provides an empty implementation of {@link ObsidiCodeListener}, - * which can be extended to create a listener which only needs to handle a subset - * of the available methods. - */ -public class ObsidiCodeBaseListener implements ObsidiCodeListener { - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterProg(ObsidiCodeParser.ProgContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitProg(ObsidiCodeParser.ProgContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterLiteral(ObsidiCodeParser.LiteralContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitLiteral(ObsidiCodeParser.LiteralContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterTypeName(ObsidiCodeParser.TypeNameContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitTypeName(ObsidiCodeParser.TypeNameContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterType(ObsidiCodeParser.TypeContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitType(ObsidiCodeParser.TypeContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterPrimitiveType(ObsidiCodeParser.PrimitiveTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitPrimitiveType(ObsidiCodeParser.PrimitiveTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterReferenceType(ObsidiCodeParser.ReferenceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitReferenceType(ObsidiCodeParser.ReferenceTypeContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterLoads(ObsidiCodeParser.LoadsContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitLoads(ObsidiCodeParser.LoadsContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterRoboDcl(ObsidiCodeParser.RoboDclContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitRoboDcl(ObsidiCodeParser.RoboDclContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterRoboBodyDcl(ObsidiCodeParser.RoboBodyDclContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitRoboBodyDcl(ObsidiCodeParser.RoboBodyDclContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterMemberDcl(ObsidiCodeParser.MemberDclContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitMemberDcl(ObsidiCodeParser.MemberDclContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterFieldDcl(ObsidiCodeParser.FieldDclContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitFieldDcl(ObsidiCodeParser.FieldDclContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterVariableDclList(ObsidiCodeParser.VariableDclListContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitVariableDclList(ObsidiCodeParser.VariableDclListContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterVariableDcl(ObsidiCodeParser.VariableDclContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitVariableDcl(ObsidiCodeParser.VariableDclContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterVariableInitializer(ObsidiCodeParser.VariableInitializerContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitVariableInitializer(ObsidiCodeParser.VariableInitializerContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterListInitializer(ObsidiCodeParser.ListInitializerContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitListInitializer(ObsidiCodeParser.ListInitializerContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterLitList(ObsidiCodeParser.LitListContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitLitList(ObsidiCodeParser.LitListContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterMethodDcl(ObsidiCodeParser.MethodDclContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitMethodDcl(ObsidiCodeParser.MethodDclContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterMethodHeader(ObsidiCodeParser.MethodHeaderContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitMethodHeader(ObsidiCodeParser.MethodHeaderContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterMethodDeclarator(ObsidiCodeParser.MethodDeclaratorContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitMethodDeclarator(ObsidiCodeParser.MethodDeclaratorContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterMethodBody(ObsidiCodeParser.MethodBodyContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitMethodBody(ObsidiCodeParser.MethodBodyContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterHearDcl(ObsidiCodeParser.HearDclContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitHearDcl(ObsidiCodeParser.HearDclContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterBlock(ObsidiCodeParser.BlockContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitBlock(ObsidiCodeParser.BlockContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterBlockStmtList(ObsidiCodeParser.BlockStmtListContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitBlockStmtList(ObsidiCodeParser.BlockStmtListContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterStatement(ObsidiCodeParser.StatementContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitStatement(ObsidiCodeParser.StatementContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterStmtNoSub(ObsidiCodeParser.StmtNoSubContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitStmtNoSub(ObsidiCodeParser.StmtNoSubContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterSignalStmt(ObsidiCodeParser.SignalStmtContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitSignalStmt(ObsidiCodeParser.SignalStmtContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterExprStmt(ObsidiCodeParser.ExprStmtContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitExprStmt(ObsidiCodeParser.ExprStmtContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterMethodInvocation(ObsidiCodeParser.MethodInvocationContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitMethodInvocation(ObsidiCodeParser.MethodInvocationContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterIfStmt(ObsidiCodeParser.IfStmtContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitIfStmt(ObsidiCodeParser.IfStmtContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterElseIfOpt(ObsidiCodeParser.ElseIfOptContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitElseIfOpt(ObsidiCodeParser.ElseIfOptContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterElseOpt(ObsidiCodeParser.ElseOptContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitElseOpt(ObsidiCodeParser.ElseOptContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterLoopStmt(ObsidiCodeParser.LoopStmtContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitLoopStmt(ObsidiCodeParser.LoopStmtContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterRepeatStmt(ObsidiCodeParser.RepeatStmtContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitRepeatStmt(ObsidiCodeParser.RepeatStmtContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterForeverStmt(ObsidiCodeParser.ForeverStmtContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitForeverStmt(ObsidiCodeParser.ForeverStmtContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterFormalArgs(ObsidiCodeParser.FormalArgsContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitFormalArgs(ObsidiCodeParser.FormalArgsContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterArgsList(ObsidiCodeParser.ArgsListContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitArgsList(ObsidiCodeParser.ArgsListContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterFormalParams(ObsidiCodeParser.FormalParamsContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitFormalParams(ObsidiCodeParser.FormalParamsContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterParamsList(ObsidiCodeParser.ParamsListContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitParamsList(ObsidiCodeParser.ParamsListContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterParam(ObsidiCodeParser.ParamContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitParam(ObsidiCodeParser.ParamContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterExpression(ObsidiCodeParser.ExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitExpression(ObsidiCodeParser.ExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterAssignmentExpression(ObsidiCodeParser.AssignmentExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitAssignmentExpression(ObsidiCodeParser.AssignmentExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterAssignment(ObsidiCodeParser.AssignmentContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitAssignment(ObsidiCodeParser.AssignmentContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterLeftHandSide(ObsidiCodeParser.LeftHandSideContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitLeftHandSide(ObsidiCodeParser.LeftHandSideContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterListOpt(ObsidiCodeParser.ListOptContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitListOpt(ObsidiCodeParser.ListOptContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterConditionalExpression(ObsidiCodeParser.ConditionalExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitConditionalExpression(ObsidiCodeParser.ConditionalExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterConditionOrExpression(ObsidiCodeParser.ConditionOrExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitConditionOrExpression(ObsidiCodeParser.ConditionOrExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterConditionAndExpression(ObsidiCodeParser.ConditionAndExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitConditionAndExpression(ObsidiCodeParser.ConditionAndExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterXOrExpression(ObsidiCodeParser.XOrExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitXOrExpression(ObsidiCodeParser.XOrExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterEqualityExpression(ObsidiCodeParser.EqualityExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitEqualityExpression(ObsidiCodeParser.EqualityExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterEqualityExpressionEnd(ObsidiCodeParser.EqualityExpressionEndContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitEqualityExpressionEnd(ObsidiCodeParser.EqualityExpressionEndContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterRelationalExpression(ObsidiCodeParser.RelationalExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitRelationalExpression(ObsidiCodeParser.RelationalExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterRelationalExpressionEnd(ObsidiCodeParser.RelationalExpressionEndContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitRelationalExpressionEnd(ObsidiCodeParser.RelationalExpressionEndContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterAdditiveExpression(ObsidiCodeParser.AdditiveExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitAdditiveExpression(ObsidiCodeParser.AdditiveExpressionContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterAdditiveExpressionEnd(ObsidiCodeParser.AdditiveExpressionEndContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitAdditiveExpressionEnd(ObsidiCodeParser.AdditiveExpressionEndContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterMultiExpr(ObsidiCodeParser.MultiExprContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitMultiExpr(ObsidiCodeParser.MultiExprContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterMultiExprEnd(ObsidiCodeParser.MultiExprEndContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitMultiExprEnd(ObsidiCodeParser.MultiExprEndContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterUnaryExpr(ObsidiCodeParser.UnaryExprContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitUnaryExpr(ObsidiCodeParser.UnaryExprContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterPrimary(ObsidiCodeParser.PrimaryContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitPrimary(ObsidiCodeParser.PrimaryContext ctx) { } - - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void enterEveryRule(ParserRuleContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void exitEveryRule(ParserRuleContext ctx) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void visitTerminal(TerminalNode node) { } - /** - * {@inheritDoc} - * - *

      The default implementation does nothing.

      - */ - @Override public void visitErrorNode(ErrorNode node) { } -} \ No newline at end of file diff --git a/ANTLR/src/Test/ObsidiCodeLexer.class b/ANTLR/src/Test/ObsidiCodeLexer.class deleted file mode 100644 index 74a81b3a63277a83d1206967f9acb758c21ae7bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11466 zcma)C30xJ)nXh`?(AAH})!u-jf<6ufIpm(1Afm&FFazie<4l+*zHt}@9K^W~@I(bg zJn>e%Z$LoBW7B7j%_i9-o6Tmk*=&+cGTB_4``)j<*GlW)?pi?j0)-n1zqpKKQ&1gNN z4U9H2x`xp=`1Ce$SS!(HH(5{Dh0r(YTO8hI^c{)5>n2-hzMClYJzjg?O+TO?O7tTx zTim3bwn}upL^n_pR6-A8=&HlHWi+r`O`6)>o-OShAkoqhr*VQ&d45tZr602%z z=1@XQC<%qGwapN9sc-c(^SThIXYjfhsAuweP@q1S*MkG~EMAua z^=w{efqD+F%Yk|>ue&J;f?U$(a1vq@jO?)qh7Pp}#tyRy1`oFhMvt%whL5xf##d~D z35>A`W-vBD(lLW^Ho*+W+XOS1U=z$>qD?S^NjAX@qHKa0MB4;2h_MM~Fxe)U!IS{W zzzkw-f*DM;31%?OCYZr=n_vcUHo*+yZGsuhunA@`(64&#UTs4alsi=JM;^ML@PP4&tae1kuB?oNl z8&~+teD(gd@E|QKeckt_FLkxAVP$H-Cp;8#)4J97HNt92OR9=13QKFs3KthwQW9QM zS-p5(d1*<}{TBDq@}k0dOG*nXswtT^`a`(1vDUYI-D+RcJK*2l+_=i$V5i`o?_bm8 zuk|(iS5PvkBJiv)h4WzfYJXuvLu0d#KemwTct@%uHsCI-X05-e&bPYmUH^*0sxnFx zhvtJpi8a_aW%T^`Ap!m1Ep(;7xyq5>xP-(}CrK=VX@u!0t!wbZS}pfCRrw(0fP<0Y zQWBStIC{(xB?uc_P}fk`{3Ipu38QNl!HEZh@%!rY6PLmmAJzBTrI zxGNjiHP!lgmXKlj^0jp<>iFE1`rr09rSNn;G>kG2_0UicjiGQPB#nCh^O$G^sa4k1 z!)|JBZ1T{tbexCmB3&M`o9y8ZHhSnLx)~A~iIuW4(?ezWaXRML!k4f8^w6#!wQc_R z`sMF;?*DkW_eX;*A74D;%Cl}VD!OEsD9C~+%Ayz~2Z_OQuqerr$YdtUvMjn~w-_Ra zh#uJ^hRUI0m>edC%i&^#93e)^k)k3i;uv|1I947jj+4iU3Edm?S5O$#SwdOP(dpmS>A8a*CKLr;2mrIbxceCZ@~jVuqX{X3Cl3TzRgTC1;7* za<-Tw=ZLv-u9zq1iTQHASRfY&t_MYM{1XLH2(nACaKA``voK+#$S_@j;uh|g5FteH zKnaBs1|=Ly1e8d-D8l_RMz~+b3Xhg?!blk}ILidVStbg+OnRt937;&{!owv-c(_a! zMk`Z<`z2O*v`iHqSEdQ0mFdF6B~BQ<#0&Al3@9_Pc!fYo5CSDp;3df}$-*bgEa7ow zw(!4~6yg6fCHgcL0 zH)h6I@3_SA$rENzOr4Y#l@UERCVO)3l>FEyram>TaC%W(as0v=B{LU!7blb_K9^LP zykyq%v#V2#o8fn@bk(_5W!BGa%z7hxZO*#fxAFv6u;?m!srG%*m7eeO z39k6~U{^>;c=+_`iHVfg)3h!_X`jDffZsbB%H**o9ZsQ_U z-N{9`x{r%U^)MG>)Dv8cQ_pZQK|ROCB=rIp(ds2GCaYJth*hs~F-`5`B2FFTVum`* zg;#6gB2nAQMY4v0W@{KIRXf5P)3oDUWN2r(n5*@2k*(e2B3EzaB42Ok;t72h7f$_+Gs&e+RYrE!3ZB?gZ6c>{-8ZS?cT zW#$GhUN$k$8WS~rCWfsw(ZFvWPcdRb?o z-CGvU;5+Y1OI@ya-;=6buJ_)To_D$4|3F&ka(y6jlMg?Vo_4uDQd^`VmrHF?Tct9P zt?GJd3CQ*82Ck}Z2px(B1|QTIwE!1sos z**#dH}s1P`gofs|V5ipn6DJ0R4v|Q2nra1cM$?kD}M3>M@LZOg)ZKk1MEl zLOqFUC)FPG)}x-ni8-a7MsKIbqS_httds=K&yGiWPCYLr13f_$oF zvQz-{atzWd>QyNP=+!Amuc^J#Q$TyCBJETAamM@A>p1G`>Hr2Fn2z0p>X7sTXb-73 zFuxn>O&rcm^%kn#ibu6!^|tg3sNGiYptn2fT^z<;^&U>ny_sB1YtdSHx7Mny=fSk~ z+6L}L+n{Zfri0w5ZQ^dUP1+BR)FHgDJ3QN3O3 zK=lr7hqM^_cO;?uPOTHwI<;M>woB{cOQ3aWyZJWKc58dEe~-2ov)Vfg&Gu>g`HE@# zwF7*}+5xSb?+2}0JBVrrwL=)~kan0ap>{Y0&5mfe;M!5`7~kpIu{qd$TswimPiQC6 z`lQx_L+{Z};m}WMr!mTD?F^coNk_A@+Bs<@csZw?ml{Bx*DgrwKwi);V*5qy5}IAo zE=#XL`(^D4UnlK~c2#Nuc~!e6y$SMKCc5j@`p~RT>qmF}+I4hyT^qpm0c{Y?2elzI zAJT51`Hd_zzp35ALEO@Yamd5kZJeUp8ZNtbN4txIxvSm7tnTS8d@y=T4ma0Z_4V9b zU$1ZAbD(d~H}W~qH|m?XnZ8NKW!E?BTey3Di{8fF>uvg0wA-q0<8JkB`gU}?JrCWs z>mAtLq2qI|@6dOm*-pI^+dB(TZI|AKv`gQO(Rb^6F!~;SFGk<1@5BCm`hGq)`hNWY zpBw#v-p%Jm?|u^99Mli--J&1T52N~F{fJZn{D^)O`BD8C-xm5Y9UpZ4xPAiNpU_Y8 z-KL+^doX;Dev0ox{gjRiub;GoZZ3d5Y$&!M|>`gv48uV27yFX$K1-9`Nprg2HX zjCz;#E11R={VMXS`ZY}Bn%;|Hdgr0rKD{5Ou3x{-7h1or51^X?eGttCb$s6SA^isO z8~RP`zd0YxZ|TF>JgncwtZwUfFsnN{F1&tMzlZMc87nw>Oy_`zoM z7K4jMx!hm0HO?uKy_-Q6^9 zp}SkgFuEHyaMg|5#vRnVW86hQca3{eCHTE(w(u=(wwSG4-)uG4^LXa^7kPMdgSnB9 z(%fj`qMMsceB8~=CZ6)<7PF0qHQP*l+|8}#Ha<#oo4K8bGq;=V*xzn;@U+Yh6Bpjx zVdBD@JIzki>ooD4H+Pv`JT0@!#B<)CEVfOI1d-J4;uYn-( zz0>S@4b@JWr^WPqmwEbiq-V?vXm!>+AG9*lWu7zfCD1%?;`@|&!90h07tD(&FRn&$ z$-IE_vUxSAZm!F`VqQjm6@GK$Ib939v4O<5PqWv&f$e?fb^cOi_L~D}ciqJILvz3! z#Qs6^x-ExL4w?AcYThvMr4(d<-)z9{Tjp*4YGMwXchKE!6JL_eJMgO^Pvfq6+m`oG z-m_Y`v|6n7{I$etwKi}&YrTc9#nuM+6_WRFwAR~l6Ut52W|W()HniJfZAH5_YYVn- zwYH($X0_RJJId`=JIZ#egTFIb9cz&8u)3sppgZBWQW0dQg|G3}E^80=cUhgb+>LU# zg>Tr_9;*xaUTYuP?`uN3-|Ciwz|8?`Kk{z)g_e)vVBifI6U{DJm$Cb@bp_=W3zyisYV~5+Yt~iN>$Px8SbY|56_B{a ztbS_%`>)$}1J)pa5w!*_+&b2fb%Vj1sCDCQt`^Q8hzqbE2VoE0g$3Sbb-~2IFYN+z zxja;YZ+}F{OqnauEgsrNw^EY&*pG~(-xl#ti*R!g@#qIuN<8z67Zffjt*TjEKED{g zJMu5v@Da4BnSZl|kN2Dhssel|hHt&zs){AWaPc5{7ZjFO@|xgH;TI9!vL%Z_27Bj~ zmzP3?c`K_bO3D^ORq_^9@)qKdgS;;whukZ%xvZQ|Ux>G~xU#aQ>ghs0 z#xU8>e$ZV8Tl>_bWqngwq%co4j^5t9&8y&mf3pS45y){7f;vyI#U zl+>?T%{SOKiEj7McG}^gJ7@HzJlsKx$f-+W)Q4>lv*GS{wJ>TlwA z)!;wjlXoqjY~eQ|i3y|JAdS+*bz?`(Wn`nkMup26xcKuo`Bw9Tg_3azC8J*Zg!6lz zcj}inuCA*MXofU5@^h%Lsmb>aJSA|mRRoX0ijl2D$@GL}MUT0!y1#6X+e~&pT=GER zz?E3}tMl!mj&i=eJMy8{v>_h5;n=0gO6s?(!jJSgl!)*>RuLElFHTrjebb z6Rtw%kr;kS1hp7`PXuxj*-Q2jO7=tDMGgS(cJPD14>|Z@;71(%DDYzrejNA-2R{kC z$H7klKkeXWfS+~nbHL9#_yyn>9sCmT%MN}8_*DnL2E5n7`+)a5_;ug|4n7Ec$iZ&_ zzvnz%2*=Ebz}c_~(It!NLC?_!k}g zAAoY{hKX36)JKB)NN^vKh6o!Va_@uSVTAv6MhyufuaGF>0~b?htnCOwV`_rp zel+3=P?-wj`b2Iak7}+2ooS=E^gOEgIw(#b&1LALn)RR=N8nV6tQHP^r&InAIm z1DfJ*15+)&se~zEH%Ry}iKreTk^Mvx?+~S0P{vgDlhBC#02y0ZEh^(GtAmvBmDRz@ zgvx43nOIrPlu4D<5y46nprk|tG9?C3Rwe_wl_`KBN-Us9nF<)HOaly4rUQm6aexs@ zJYb|U15i=UIs$>FAQ|1CrSF!-(lx)CwB?oYZk_$Lf$piE%`G5&Z0bru?1YnZ#Bw(`g z6yPl7Q-HITLckPd9$>0c1UN^T516JD1Ewnr05g<@fSJnEfOC}+z%1n%z-(m^V2)A> zn5!%X%u~u>jzc2SagHgU;&ML4&+;jLj!$s~pW;eT4OXfEC1nX9QkpN*!Q~@;cyTWfkBQWi?=|QV%#)X#kw2Gy+an)&RySZve(CO@K3$ zwSY5~Wkkd9j_1GiKrZmGGrrLu5KW#g90!7bG~Ox9QTk(NHvIz%?~6BktO!o2kp zD&$AOd3*OHDF6XgSJX|i(M2jbOSeemNb9DNRyS`|Hdk&W^z7f%VX_5IiZ;bFNVX1= zZT5{v;jJxM0RDH}CR+98#os6o;ZHAHp\3\2\2\2\u011a\u011b\7T\2\2\u011b\u011c\7G\2\2\u011c"+ - "\u011d\7R\2\2\u011d\u011e\7G\2\2\u011e\u011f\7C\2\2\u011f\u0120\7V\2\2"+ - "\u0120\u0121\7\"\2\2\u0121\u0122\7W\2\2\u0122\u0123\7P\2\2\u0123\u0124"+ - "\7V\2\2\u0124\u0125\7K\2\2\u0125\u0126\7N\2\2\u0126@\3\2\2\2\u0127\u0128"+ - "\7G\2\2\u0128\u0129\7P\2\2\u0129\u012a\7F\2\2\u012a\u012b\7\"\2\2\u012b"+ - "\u012c\7T\2\2\u012c\u012d\7G\2\2\u012d\u012e\7R\2\2\u012e\u012f\7G\2\2"+ - "\u012f\u0130\7C\2\2\u0130\u0131\7V\2\2\u0131B\3\2\2\2\u0132\u0133\7H\2"+ - "\2\u0133\u0134\7Q\2\2\u0134\u0135\7T\2\2\u0135\u0136\7G\2\2\u0136\u0137"+ - "\7X\2\2\u0137\u0138\7G\2\2\u0138\u0139\7T\2\2\u0139D\3\2\2\2\u013a\u013b"+ - "\7G\2\2\u013b\u013c\7P\2\2\u013c\u013d\7F\2\2\u013d\u013e\7\"\2\2\u013e"+ - "\u013f\7H\2\2\u013f\u0140\7Q\2\2\u0140\u0141\7T\2\2\u0141\u0142\7G\2\2"+ - "\u0142\u0143\7X\2\2\u0143\u0144\7G\2\2\u0144\u0145\7T\2\2\u0145F\3\2\2"+ - "\2\u0146\u0147\7]\2\2\u0147H\3\2\2\2\u0148\u0149\7_\2\2\u0149J\3\2\2\2"+ - "\u014a\u014b\7Q\2\2\u014b\u014c\7T\2\2\u014cL\3\2\2\2\u014d\u014e\7C\2"+ - "\2\u014e\u014f\7P\2\2\u014f\u0150\7F\2\2\u0150N\3\2\2\2\u0151\u0152\7"+ - "Z\2\2\u0152\u0153\7Q\2\2\u0153\u0154\7T\2\2\u0154P\3\2\2\2\u0155\u0156"+ - "\7K\2\2\u0156\u0157\7U\2\2\u0157R\3\2\2\2\u0158\u0159\7P\2\2\u0159\u015a"+ - "\7Q\2\2\u015a\u015b\7V\2\2\u015bT\3\2\2\2\u015c\u015d\7N\2\2\u015d\u015e"+ - "\7G\2\2\u015e\u015f\7U\2\2\u015f\u0160\7U\2\2\u0160\u0161\7a\2\2\u0161"+ - "\u0162\7V\2\2\u0162\u0163\7J\2\2\u0163\u0164\7C\2\2\u0164\u0165\7P\2\2"+ - "\u0165V\3\2\2\2\u0166\u0167\7I\2\2\u0167\u0168\7T\2\2\u0168\u0169\7G\2"+ - "\2\u0169\u016a\7C\2\2\u016a\u016b\7V\2\2\u016b\u016c\7G\2\2\u016c\u016d"+ - "\7T\2\2\u016d\u016e\7a\2\2\u016e\u016f\7V\2\2\u016f\u0170\7J\2\2\u0170"+ - "\u0171\7C\2\2\u0171\u0172\7P\2\2\u0172X\3\2\2\2\u0173\u0174\7N\2\2\u0174"+ - "\u0175\7G\2\2\u0175\u0176\7U\2\2\u0176\u0177\7U\2\2\u0177\u0178\7a\2\2"+ - "\u0178\u0179\7V\2\2\u0179\u017a\7J\2\2\u017a\u017b\7C\2\2\u017b\u017c"+ - "\7P\2\2\u017c\u017d\7a\2\2\u017d\u017e\7G\2\2\u017e\u017f\7S\2\2\u017f"+ - "\u0180\7W\2\2\u0180\u0181\7C\2\2\u0181\u0182\7N\2\2\u0182Z\3\2\2\2\u0183"+ - "\u0184\7I\2\2\u0184\u0185\7T\2\2\u0185\u0186\7G\2\2\u0186\u0187\7C\2\2"+ - "\u0187\u0188\7V\2\2\u0188\u0189\7G\2\2\u0189\u018a\7T\2\2\u018a\u018b"+ - "\7a\2\2\u018b\u018c\7V\2\2\u018c\u018d\7J\2\2\u018d\u018e\7C\2\2\u018e"+ - "\u018f\7P\2\2\u018f\u0190\7a\2\2\u0190\u0191\7G\2\2\u0191\u0192\7S\2\2"+ - "\u0192\u0193\7W\2\2\u0193\u0194\7C\2\2\u0194\u0195\7N\2\2\u0195\\\3\2"+ - "\2\2\u0196\u0197\7-\2\2\u0197^\3\2\2\2\u0198\u0199\7/\2\2\u0199`\3\2\2"+ - "\2\u019a\u019b\7,\2\2\u019bb\3\2\2\2\u019c\u019d\7\61\2\2\u019dd\3\2\2"+ - "\2\u019e\u019f\t\2\2\2\u019ff\3\2\2\2\u01a0\u01a3\5e\63\2\u01a1\u01a3"+ - "\t\3\2\2\u01a2\u01a0\3\2\2\2\u01a2\u01a1\3\2\2\2\u01a3h\3\2\2\2\u01a4"+ - "\u01a5\4\62;\2\u01a5j\3\2\2\2\u01a6\u01aa\5e\63\2\u01a7\u01a9\5g\64\2"+ - "\u01a8\u01a7\3\2\2\2\u01a9\u01ac\3\2\2\2\u01aa\u01a8\3\2\2\2\u01aa\u01ab"+ - "\3\2\2\2\u01abl\3\2\2\2\u01ac\u01aa\3\2\2\2\u01ad\u01af\5i\65\2\u01ae"+ - "\u01ad\3\2\2\2\u01af\u01b0\3\2\2\2\u01b0\u01ae\3\2\2\2\u01b0\u01b1\3\2"+ - "\2\2\u01b1\u01b8\3\2\2\2\u01b2\u01b4\7\60\2\2\u01b3\u01b5\5i\65\2\u01b4"+ - "\u01b3\3\2\2\2\u01b5\u01b6\3\2\2\2\u01b6\u01b4\3\2\2\2\u01b6\u01b7\3\2"+ - "\2\2\u01b7\u01b9\3\2\2\2\u01b8\u01b2\3\2\2\2\u01b8\u01b9\3\2\2\2\u01b9"+ - "n\3\2\2\2\u01ba\u01bc\7*\2\2\u01bb\u01bd\5i\65\2\u01bc\u01bb\3\2\2\2\u01bd"+ - "\u01be\3\2\2\2\u01be\u01bc\3\2\2\2\u01be\u01bf\3\2\2\2\u01bf\u01c0\3\2"+ - "\2\2\u01c0\u01c2\7.\2\2\u01c1\u01c3\5i\65\2\u01c2\u01c1\3\2\2\2\u01c3"+ - "\u01c4\3\2\2\2\u01c4\u01c2\3\2\2\2\u01c4\u01c5\3\2\2\2\u01c5\u01c6\3\2"+ - "\2\2\u01c6\u01c8\7.\2\2\u01c7\u01c9\5i\65\2\u01c8\u01c7\3\2\2\2\u01c9"+ - "\u01ca\3\2\2\2\u01ca\u01c8\3\2\2\2\u01ca\u01cb\3\2\2\2\u01cb\u01cc\3\2"+ - "\2\2\u01cc\u01cd\7+\2\2\u01cdp\3\2\2\2\u01ce\u01d2\7$\2\2\u01cf\u01d1"+ - "\n\4\2\2\u01d0\u01cf\3\2\2\2\u01d1\u01d4\3\2\2\2\u01d2\u01d0\3\2\2\2\u01d2"+ - "\u01d3\3\2\2\2\u01d3\u01d5\3\2\2\2\u01d4\u01d2\3\2\2\2\u01d5\u01d6\7$"+ - "\2\2\u01d6r\3\2\2\2\u01d7\u01d9\t\5\2\2\u01d8\u01d7\3\2\2\2\u01d9\u01da"+ - "\3\2\2\2\u01da\u01d8\3\2\2\2\u01da\u01db\3\2\2\2\u01db\u01dc\3\2\2\2\u01dc"+ - "\u01dd\b:\2\2\u01ddt\3\2\2\2\u01de\u01df\7\61\2\2\u01df\u01e0\7,\2\2\u01e0"+ - "\u01e4\3\2\2\2\u01e1\u01e3\13\2\2\2\u01e2\u01e1\3\2\2\2\u01e3\u01e6\3"+ - "\2\2\2\u01e4\u01e5\3\2\2\2\u01e4\u01e2\3\2\2\2\u01e5\u01e7\3\2\2\2\u01e6"+ - "\u01e4\3\2\2\2\u01e7\u01e8\7,\2\2\u01e8\u01e9\7\61\2\2\u01e9\u01ea\3\2"+ - "\2\2\u01ea\u01eb\b;\2\2\u01ebv\3\2\2\2\u01ec\u01ed\7\61\2\2\u01ed\u01ee"+ - "\7\61\2\2\u01ee\u01f2\3\2\2\2\u01ef\u01f1\13\2\2\2\u01f0\u01ef\3\2\2\2"+ - "\u01f1\u01f4\3\2\2\2\u01f2\u01f3\3\2\2\2\u01f2\u01f0\3\2\2\2\u01f3\u01f5"+ - "\3\2\2\2\u01f4\u01f2\3\2\2\2\u01f5\u01f6\7\f\2\2\u01f6\u01f7\3\2\2\2\u01f7"+ - "\u01f8\b<\2\2\u01f8x\3\2\2\2\17\2\u01a2\u01aa\u01b0\u01b6\u01b8\u01be"+ - "\u01c4\u01ca\u01d2\u01da\u01e4\u01f2\3\b\2\2"; - public static final ATN _ATN = - new ATNDeserializer().deserialize(_serializedATN.toCharArray()); - static { - _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; - for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { - _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); - } - } -} \ No newline at end of file diff --git a/ANTLR/src/Test/ObsidiCodeLexer.tokens b/ANTLR/src/Test/ObsidiCodeLexer.tokens deleted file mode 100644 index 43f4fd5..0000000 --- a/ANTLR/src/Test/ObsidiCodeLexer.tokens +++ /dev/null @@ -1,105 +0,0 @@ -T__0=1 -T__1=2 -T__2=3 -T__3=4 -T__4=5 -T__5=6 -T__6=7 -T__7=8 -T__8=9 -T__9=10 -T__10=11 -T__11=12 -T__12=13 -T__13=14 -T__14=15 -T__15=16 -T__16=17 -T__17=18 -T__18=19 -T__19=20 -T__20=21 -T__21=22 -T__22=23 -T__23=24 -T__24=25 -T__25=26 -T__26=27 -T__27=28 -T__28=29 -T__29=30 -T__30=31 -T__31=32 -T__32=33 -T__33=34 -T__34=35 -T__35=36 -T__36=37 -T__37=38 -T__38=39 -T__39=40 -T__40=41 -T__41=42 -T__42=43 -T__43=44 -T__44=45 -T__45=46 -T__46=47 -T__47=48 -T__48=49 -Identifier=50 -NumLit=51 -CoordLit=52 -StringLit=53 -WS=54 -COMMENT=55 -EOLCOMMENT=56 -'TRUE'=1 -'FALSE'=2 -'.'=3 -'NUM'=4 -'BOOL'=5 -'STRING'=6 -'COORD'=7 -'LIST'=8 -'LOAD'=9 -'('=10 -')'=11 -'\n'=12 -':'=13 -','=14 -'='=15 -'END'=16 -'VOID'=17 -'HEAR'=18 -'END HEAR'=19 -'BREAK'=20 -'RETURN'=21 -'SIGNAL'=22 -'IF'=23 -'END IF'=24 -'elseIfOpt'=25 -'elseOpt'=26 -'ELSE IF'=27 -'END ELSEIF'=28 -'ELSE'=29 -'END Else'=30 -'REPEAT UNTIL'=31 -'END REPEAT'=32 -'FOREVER'=33 -'END FOREVER'=34 -'['=35 -']'=36 -'OR'=37 -'AND'=38 -'XOR'=39 -'IS'=40 -'NOT'=41 -'LESS_THAN'=42 -'GREATER_THAN'=43 -'LESS_THAN_EQUAL'=44 -'GREATER_THAN_EQUAL'=45 -'+'=46 -'-'=47 -'*'=48 -'/'=49 diff --git a/ANTLR/src/Test/ObsidiCodeListener.class b/ANTLR/src/Test/ObsidiCodeListener.class deleted file mode 100644 index 95f2230ef18011835d3fccc849cf228ced5ebeb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10001 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 X37iX@2V4YP3|tOe0bB!IOKtxH3)EP~ diff --git a/ANTLR/src/Test/ObsidiCodeListener.java b/ANTLR/src/Test/ObsidiCodeListener.java deleted file mode 100644 index 501045c..0000000 --- a/ANTLR/src/Test/ObsidiCodeListener.java +++ /dev/null @@ -1,590 +0,0 @@ -// Generated from ObsidiCode.g4 by ANTLR 4.5 -import org.antlr.v4.runtime.misc.NotNull; -import org.antlr.v4.runtime.tree.ParseTreeListener; - -/** - * This interface defines a complete listener for a parse tree produced by - * {@link ObsidiCodeParser}. - */ -public interface ObsidiCodeListener extends ParseTreeListener { - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#prog}. - * @param ctx the parse tree - */ - void enterProg(ObsidiCodeParser.ProgContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#prog}. - * @param ctx the parse tree - */ - void exitProg(ObsidiCodeParser.ProgContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#literal}. - * @param ctx the parse tree - */ - void enterLiteral(ObsidiCodeParser.LiteralContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#literal}. - * @param ctx the parse tree - */ - void exitLiteral(ObsidiCodeParser.LiteralContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#typeName}. - * @param ctx the parse tree - */ - void enterTypeName(ObsidiCodeParser.TypeNameContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#typeName}. - * @param ctx the parse tree - */ - void exitTypeName(ObsidiCodeParser.TypeNameContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#type}. - * @param ctx the parse tree - */ - void enterType(ObsidiCodeParser.TypeContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#type}. - * @param ctx the parse tree - */ - void exitType(ObsidiCodeParser.TypeContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#primitiveType}. - * @param ctx the parse tree - */ - void enterPrimitiveType(ObsidiCodeParser.PrimitiveTypeContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#primitiveType}. - * @param ctx the parse tree - */ - void exitPrimitiveType(ObsidiCodeParser.PrimitiveTypeContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#referenceType}. - * @param ctx the parse tree - */ - void enterReferenceType(ObsidiCodeParser.ReferenceTypeContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#referenceType}. - * @param ctx the parse tree - */ - void exitReferenceType(ObsidiCodeParser.ReferenceTypeContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#loads}. - * @param ctx the parse tree - */ - void enterLoads(ObsidiCodeParser.LoadsContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#loads}. - * @param ctx the parse tree - */ - void exitLoads(ObsidiCodeParser.LoadsContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#roboDcl}. - * @param ctx the parse tree - */ - void enterRoboDcl(ObsidiCodeParser.RoboDclContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#roboDcl}. - * @param ctx the parse tree - */ - void exitRoboDcl(ObsidiCodeParser.RoboDclContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#roboBodyDcl}. - * @param ctx the parse tree - */ - void enterRoboBodyDcl(ObsidiCodeParser.RoboBodyDclContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#roboBodyDcl}. - * @param ctx the parse tree - */ - void exitRoboBodyDcl(ObsidiCodeParser.RoboBodyDclContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#memberDcl}. - * @param ctx the parse tree - */ - void enterMemberDcl(ObsidiCodeParser.MemberDclContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#memberDcl}. - * @param ctx the parse tree - */ - void exitMemberDcl(ObsidiCodeParser.MemberDclContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#fieldDcl}. - * @param ctx the parse tree - */ - void enterFieldDcl(ObsidiCodeParser.FieldDclContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#fieldDcl}. - * @param ctx the parse tree - */ - void exitFieldDcl(ObsidiCodeParser.FieldDclContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#variableDclList}. - * @param ctx the parse tree - */ - void enterVariableDclList(ObsidiCodeParser.VariableDclListContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#variableDclList}. - * @param ctx the parse tree - */ - void exitVariableDclList(ObsidiCodeParser.VariableDclListContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#variableDcl}. - * @param ctx the parse tree - */ - void enterVariableDcl(ObsidiCodeParser.VariableDclContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#variableDcl}. - * @param ctx the parse tree - */ - void exitVariableDcl(ObsidiCodeParser.VariableDclContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#variableInitializer}. - * @param ctx the parse tree - */ - void enterVariableInitializer(ObsidiCodeParser.VariableInitializerContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#variableInitializer}. - * @param ctx the parse tree - */ - void exitVariableInitializer(ObsidiCodeParser.VariableInitializerContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#listInitializer}. - * @param ctx the parse tree - */ - void enterListInitializer(ObsidiCodeParser.ListInitializerContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#listInitializer}. - * @param ctx the parse tree - */ - void exitListInitializer(ObsidiCodeParser.ListInitializerContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#litList}. - * @param ctx the parse tree - */ - void enterLitList(ObsidiCodeParser.LitListContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#litList}. - * @param ctx the parse tree - */ - void exitLitList(ObsidiCodeParser.LitListContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#methodDcl}. - * @param ctx the parse tree - */ - void enterMethodDcl(ObsidiCodeParser.MethodDclContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#methodDcl}. - * @param ctx the parse tree - */ - void exitMethodDcl(ObsidiCodeParser.MethodDclContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#methodHeader}. - * @param ctx the parse tree - */ - void enterMethodHeader(ObsidiCodeParser.MethodHeaderContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#methodHeader}. - * @param ctx the parse tree - */ - void exitMethodHeader(ObsidiCodeParser.MethodHeaderContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#methodDeclarator}. - * @param ctx the parse tree - */ - void enterMethodDeclarator(ObsidiCodeParser.MethodDeclaratorContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#methodDeclarator}. - * @param ctx the parse tree - */ - void exitMethodDeclarator(ObsidiCodeParser.MethodDeclaratorContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#methodBody}. - * @param ctx the parse tree - */ - void enterMethodBody(ObsidiCodeParser.MethodBodyContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#methodBody}. - * @param ctx the parse tree - */ - void exitMethodBody(ObsidiCodeParser.MethodBodyContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#hearDcl}. - * @param ctx the parse tree - */ - void enterHearDcl(ObsidiCodeParser.HearDclContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#hearDcl}. - * @param ctx the parse tree - */ - void exitHearDcl(ObsidiCodeParser.HearDclContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#block}. - * @param ctx the parse tree - */ - void enterBlock(ObsidiCodeParser.BlockContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#block}. - * @param ctx the parse tree - */ - void exitBlock(ObsidiCodeParser.BlockContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#blockStmtList}. - * @param ctx the parse tree - */ - void enterBlockStmtList(ObsidiCodeParser.BlockStmtListContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#blockStmtList}. - * @param ctx the parse tree - */ - void exitBlockStmtList(ObsidiCodeParser.BlockStmtListContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#statement}. - * @param ctx the parse tree - */ - void enterStatement(ObsidiCodeParser.StatementContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#statement}. - * @param ctx the parse tree - */ - void exitStatement(ObsidiCodeParser.StatementContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#stmtNoSub}. - * @param ctx the parse tree - */ - void enterStmtNoSub(ObsidiCodeParser.StmtNoSubContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#stmtNoSub}. - * @param ctx the parse tree - */ - void exitStmtNoSub(ObsidiCodeParser.StmtNoSubContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#signalStmt}. - * @param ctx the parse tree - */ - void enterSignalStmt(ObsidiCodeParser.SignalStmtContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#signalStmt}. - * @param ctx the parse tree - */ - void exitSignalStmt(ObsidiCodeParser.SignalStmtContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#exprStmt}. - * @param ctx the parse tree - */ - void enterExprStmt(ObsidiCodeParser.ExprStmtContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#exprStmt}. - * @param ctx the parse tree - */ - void exitExprStmt(ObsidiCodeParser.ExprStmtContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#methodInvocation}. - * @param ctx the parse tree - */ - void enterMethodInvocation(ObsidiCodeParser.MethodInvocationContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#methodInvocation}. - * @param ctx the parse tree - */ - void exitMethodInvocation(ObsidiCodeParser.MethodInvocationContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#ifStmt}. - * @param ctx the parse tree - */ - void enterIfStmt(ObsidiCodeParser.IfStmtContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#ifStmt}. - * @param ctx the parse tree - */ - void exitIfStmt(ObsidiCodeParser.IfStmtContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#elseIfOpt}. - * @param ctx the parse tree - */ - void enterElseIfOpt(ObsidiCodeParser.ElseIfOptContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#elseIfOpt}. - * @param ctx the parse tree - */ - void exitElseIfOpt(ObsidiCodeParser.ElseIfOptContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#elseOpt}. - * @param ctx the parse tree - */ - void enterElseOpt(ObsidiCodeParser.ElseOptContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#elseOpt}. - * @param ctx the parse tree - */ - void exitElseOpt(ObsidiCodeParser.ElseOptContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#loopStmt}. - * @param ctx the parse tree - */ - void enterLoopStmt(ObsidiCodeParser.LoopStmtContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#loopStmt}. - * @param ctx the parse tree - */ - void exitLoopStmt(ObsidiCodeParser.LoopStmtContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#repeatStmt}. - * @param ctx the parse tree - */ - void enterRepeatStmt(ObsidiCodeParser.RepeatStmtContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#repeatStmt}. - * @param ctx the parse tree - */ - void exitRepeatStmt(ObsidiCodeParser.RepeatStmtContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#foreverStmt}. - * @param ctx the parse tree - */ - void enterForeverStmt(ObsidiCodeParser.ForeverStmtContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#foreverStmt}. - * @param ctx the parse tree - */ - void exitForeverStmt(ObsidiCodeParser.ForeverStmtContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#formalArgs}. - * @param ctx the parse tree - */ - void enterFormalArgs(ObsidiCodeParser.FormalArgsContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#formalArgs}. - * @param ctx the parse tree - */ - void exitFormalArgs(ObsidiCodeParser.FormalArgsContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#argsList}. - * @param ctx the parse tree - */ - void enterArgsList(ObsidiCodeParser.ArgsListContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#argsList}. - * @param ctx the parse tree - */ - void exitArgsList(ObsidiCodeParser.ArgsListContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#formalParams}. - * @param ctx the parse tree - */ - void enterFormalParams(ObsidiCodeParser.FormalParamsContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#formalParams}. - * @param ctx the parse tree - */ - void exitFormalParams(ObsidiCodeParser.FormalParamsContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#paramsList}. - * @param ctx the parse tree - */ - void enterParamsList(ObsidiCodeParser.ParamsListContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#paramsList}. - * @param ctx the parse tree - */ - void exitParamsList(ObsidiCodeParser.ParamsListContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#param}. - * @param ctx the parse tree - */ - void enterParam(ObsidiCodeParser.ParamContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#param}. - * @param ctx the parse tree - */ - void exitParam(ObsidiCodeParser.ParamContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#expression}. - * @param ctx the parse tree - */ - void enterExpression(ObsidiCodeParser.ExpressionContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#expression}. - * @param ctx the parse tree - */ - void exitExpression(ObsidiCodeParser.ExpressionContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#assignmentExpression}. - * @param ctx the parse tree - */ - void enterAssignmentExpression(ObsidiCodeParser.AssignmentExpressionContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#assignmentExpression}. - * @param ctx the parse tree - */ - void exitAssignmentExpression(ObsidiCodeParser.AssignmentExpressionContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#assignment}. - * @param ctx the parse tree - */ - void enterAssignment(ObsidiCodeParser.AssignmentContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#assignment}. - * @param ctx the parse tree - */ - void exitAssignment(ObsidiCodeParser.AssignmentContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#leftHandSide}. - * @param ctx the parse tree - */ - void enterLeftHandSide(ObsidiCodeParser.LeftHandSideContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#leftHandSide}. - * @param ctx the parse tree - */ - void exitLeftHandSide(ObsidiCodeParser.LeftHandSideContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#listOpt}. - * @param ctx the parse tree - */ - void enterListOpt(ObsidiCodeParser.ListOptContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#listOpt}. - * @param ctx the parse tree - */ - void exitListOpt(ObsidiCodeParser.ListOptContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#conditionalExpression}. - * @param ctx the parse tree - */ - void enterConditionalExpression(ObsidiCodeParser.ConditionalExpressionContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#conditionalExpression}. - * @param ctx the parse tree - */ - void exitConditionalExpression(ObsidiCodeParser.ConditionalExpressionContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#conditionOrExpression}. - * @param ctx the parse tree - */ - void enterConditionOrExpression(ObsidiCodeParser.ConditionOrExpressionContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#conditionOrExpression}. - * @param ctx the parse tree - */ - void exitConditionOrExpression(ObsidiCodeParser.ConditionOrExpressionContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#conditionAndExpression}. - * @param ctx the parse tree - */ - void enterConditionAndExpression(ObsidiCodeParser.ConditionAndExpressionContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#conditionAndExpression}. - * @param ctx the parse tree - */ - void exitConditionAndExpression(ObsidiCodeParser.ConditionAndExpressionContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#xOrExpression}. - * @param ctx the parse tree - */ - void enterXOrExpression(ObsidiCodeParser.XOrExpressionContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#xOrExpression}. - * @param ctx the parse tree - */ - void exitXOrExpression(ObsidiCodeParser.XOrExpressionContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#equalityExpression}. - * @param ctx the parse tree - */ - void enterEqualityExpression(ObsidiCodeParser.EqualityExpressionContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#equalityExpression}. - * @param ctx the parse tree - */ - void exitEqualityExpression(ObsidiCodeParser.EqualityExpressionContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#equalityExpressionEnd}. - * @param ctx the parse tree - */ - void enterEqualityExpressionEnd(ObsidiCodeParser.EqualityExpressionEndContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#equalityExpressionEnd}. - * @param ctx the parse tree - */ - void exitEqualityExpressionEnd(ObsidiCodeParser.EqualityExpressionEndContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#relationalExpression}. - * @param ctx the parse tree - */ - void enterRelationalExpression(ObsidiCodeParser.RelationalExpressionContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#relationalExpression}. - * @param ctx the parse tree - */ - void exitRelationalExpression(ObsidiCodeParser.RelationalExpressionContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#relationalExpressionEnd}. - * @param ctx the parse tree - */ - void enterRelationalExpressionEnd(ObsidiCodeParser.RelationalExpressionEndContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#relationalExpressionEnd}. - * @param ctx the parse tree - */ - void exitRelationalExpressionEnd(ObsidiCodeParser.RelationalExpressionEndContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#additiveExpression}. - * @param ctx the parse tree - */ - void enterAdditiveExpression(ObsidiCodeParser.AdditiveExpressionContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#additiveExpression}. - * @param ctx the parse tree - */ - void exitAdditiveExpression(ObsidiCodeParser.AdditiveExpressionContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#additiveExpressionEnd}. - * @param ctx the parse tree - */ - void enterAdditiveExpressionEnd(ObsidiCodeParser.AdditiveExpressionEndContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#additiveExpressionEnd}. - * @param ctx the parse tree - */ - void exitAdditiveExpressionEnd(ObsidiCodeParser.AdditiveExpressionEndContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#multiExpr}. - * @param ctx the parse tree - */ - void enterMultiExpr(ObsidiCodeParser.MultiExprContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#multiExpr}. - * @param ctx the parse tree - */ - void exitMultiExpr(ObsidiCodeParser.MultiExprContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#multiExprEnd}. - * @param ctx the parse tree - */ - void enterMultiExprEnd(ObsidiCodeParser.MultiExprEndContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#multiExprEnd}. - * @param ctx the parse tree - */ - void exitMultiExprEnd(ObsidiCodeParser.MultiExprEndContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#unaryExpr}. - * @param ctx the parse tree - */ - void enterUnaryExpr(ObsidiCodeParser.UnaryExprContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#unaryExpr}. - * @param ctx the parse tree - */ - void exitUnaryExpr(ObsidiCodeParser.UnaryExprContext ctx); - /** - * Enter a parse tree produced by {@link ObsidiCodeParser#primary}. - * @param ctx the parse tree - */ - void enterPrimary(ObsidiCodeParser.PrimaryContext ctx); - /** - * Exit a parse tree produced by {@link ObsidiCodeParser#primary}. - * @param ctx the parse tree - */ - void exitPrimary(ObsidiCodeParser.PrimaryContext ctx); -} \ No newline at end of file diff --git a/ANTLR/src/Test/ObsidiCodeParser$AdditiveExpressionContext.class b/ANTLR/src/Test/ObsidiCodeParser$AdditiveExpressionContext.class deleted file mode 100644 index 39d856066cbe29b108689853dc59173ad118dfed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1411 zcma)5U279T6g`uT*(Tl8BsHzAQ5&1qP10s77JNt%Bvc5bRc!Hn(;dQSvMIZpkiX)8 z@IhY`eUSRLJd~9I1#k|bjy>rh!cg~sla{loXfcw}{kxxLu9Tn>;3JJuq zp<;6$G2E4luA;~g@ATT9*dLra45@?3cdcuCeBd!?b=&4nt!=t4cNsSHV&h5E6_%)V zE&kMWT<#Qts47ELZZlkM2%8`FI!*2zo6R<5GNxq-PxQHDE8cxslM28zAfu8l+ ze9Tj=7oU@;E$+!=-M09ELD7qKGJ=!jj!ZM`T++{T__*mYeKmyZadM|BdnS)O^W^1$ zc{&z)jt|6;gduU%?Kvm>v5>8^LHjB%%)Y6j#E=heg`Cw;#uh^n1ltnz$rQ3zr~I&p1wx8c;!gB1!84{S_$BC~BoeFy$R0XJBvWpI#oV zF}bIGr8R{NtwDq`LMTDRH>zDk_5wt7gop+a->H^-8za_fDuwvfQaSe?SKj&qB@m&3 zejuj(q|)nH83S%ml*dp~yRZG?(e%G)V->PMPXB-!Pzz+rpAmb7WcduS(g&y!NRr6# z)FYDLNNazPqbw;Q0t||3zoJEsB65$2b!wEsw7m6ZG2z4C*fbVCt(s$~XrWNT6z8=3Hjxn{VcuU%$Wq0B{dw6KffmSkEAhf{80jNaCtC*GybD zaf4y8(+iZ?8yri9?Ed&(?}myG6ob_WLoVxq7ezc`*mTOxSFK3+qTcoSYfna8mS(eR z3`y-~SZ<1tzwC8dTpoI@fPPXtA{1(u;il8<%C_r;Dv)mfzAJm75*_Z2FyHh79&@NQ z%5RBBn=Ad<2z@?aFr0FOxN~AD^*6(vzu+m!W6(poHASR2HB{4>_JQ(_-tT+IF}E}y zh+z?i%t5y&kN7j8p;u=+zWvVYdnPs*inFe{VOS_()50>c4EbsFn23cfY+G=!&2Ve# zjwk!X_k|LDuI1rTB)Z{V=ufmM{M)^Cw)v9mvvnEH#p9mT+Hsn?X*ck~wmV!0(&elQ zGOP`iI+ZWOU1xr$P7NJzgck3z7VFd~6lvqrwEw^YXh~p^wdqxYK{vpvtbiF`kT?PR zL~m-BY)bp=8d=hctj^e=41-RyQZ0Oi@p%%QL4tyJk+L6AXb$-}VVzE0!pJ`OI0+sh zKPJZt&c}fd34kDwul_{x1MKPvl9g{*NI(}!3>l4z)RD8FVpW5J2Y@@+k#S8y7T0CmP>{pAjEzO4u_>0S zjGHpH7*w0T^`Dteziah5L&f;Z+#fkUpZFBiaUAaM+otDnk3rMw#><{(^{xF;pT9C) zkGs``#5Ti%h+w#2SPp+N9`?9zw}xDw7WjH>^ANnCic7>Z^ z_aAt^%R|sZIvJMdbDBYU%o9_F z#!#KTN}8;SIvNZcbFp&+Qc=N0hH@NvR)3NlwD+$TNJv4OJTwa?V>2DSpOIWi@KrQru8ze&?>5bKmY`Ra`PwB zACPaJBHj3gObUV|74$GAxrdT+A6Lms{gxTr*XhMS3*v9t-ZpiAgG`mZ~U-3Wq zpf4JIF!j~nV`8F4oeSF~fff65KjzMyGc#xI*WaH$1GtNQ8P`;#a9zd?6$-Xx?5rSx zU9ps8+>~*PA>SQ3JBCh$#CoyoBWCD7FPZ zqDUTCj^#gKsO#;a+c!+dw_W4(p5cxh-x_dZn(6bA%>(d8tMY=X>vLZiTTYLU86>^Z zVo)d_?g}%*?SJ6;E)PJD>D0D7pHrI}0yBN&o84DW%#)zX6dzj?5-Rv;IC8uEu_d7M z^L^ZZX`Y%gbcVh8r==~{P(hVpXCY{zQySKAnISjxJkMN14RsBBs8bJT&w;=*pxNYv zA{CatmMsqDO{pI(=g@lO*Fs1!vfp2pg5I80^Klj`BPoAEETR zP&Ud5+w>h3`kX)#Bs$HmO z?-Kw)AXoc>#A~E$XGl~(A{m1qiA`#llKeqd1vbb^^=2u2^M4@n0*ERRNPGqoLt(;F Yghu=3q?21%p*~C4LYDRv?PVx`0cR>sTL1t6 diff --git a/ANTLR/src/Test/ObsidiCodeParser$ConditionAndExpressionContext.class b/ANTLR/src/Test/ObsidiCodeParser$ConditionAndExpressionContext.class deleted file mode 100644 index 74ca2b5de7ea5472047181e490d99110a3552d62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1239 zcma)5U2hUW6g|Thma>bb^g}JJT1)FL7*=i7D7A?pnvkG1wlTggFd?gSXl9p&zv6%J zL0>fbVCt(s%6Mm4p@FsbWoGB@z2}^J?#!>>-+utuMp?&N1{$vExSl~8H*~BUNaChi zHgpsjvV(p3Y;Y{O?|VJLu=w`uxz-Z_9|R0$T?j5~UDx-y&tO}2W54NpZLijA^H;9) zxh%$2RvBhg3d3B(6Z~cWsLAD_+w4+gxz!VGFCf~dqJ37w8qvo57>T(T$9`@N$w=*b z!VC5oZd;9>>^QCny3#q>ab#Zv-Vt|(UA*phc|=sL+i$4z4i8kYF4}y+pjmdEVV09G zQiU1r`~xqLJOVwWuZHIboGh#=%#oBLT3%3|5Q_1JLWg?FShWxnduX+;}Y!fBe3|kj-ks&w68G6icDKd35 z(p{^eT64Ot=s4juBlj;lCx${ekNBn-wyo*Q8lM~K35T?zh7zBKb$V23dSXBdbQ@sO znx#{b;*55)v;d}kLE;qb6P>B!C>KVBPIH)#snCWM+GNFD%B6`!6&u8%5t?2quYSeM z=Mj7c3BcGv%D7Ldi&%;Z3bZRxTCVbOl&o~actGniF4L;iKO_KxK)(DF$q&euPmwHr zLn;A9k_dYkl03q^@fcSqO8u%fgc5Pcgraq2oWO=+QR3Y3PD4_fmjaY%)PB9J1b6w!*ildPhJbW^RJDu0Fl zzyU5GIG}RnS0Et)5=ih15VMYPs^W%Tc0J>nH}l@ie*FFJJ%C%Nm{_)8;DU*Z7Sgz6 zVr2?RT-L{`i2}oXt0&vS7d?4Tw(k%2756+c7?x|XKgjFzfzM#qrR1vCbv=)J3^$9V z#&**aZBgsB`6E|(TouMbR2e38EW>m|NdBHIU7iIqUL$b`_L6L(8^*%=MAkHBVls?jhH*UOGsV(4!i-g_VGx>G zuH@ff;#CB1Apuxlkg~o~=vmB#2}^YAri|?Rizrz44eJ}7^EgMR?*0w|5Cn3S4@f>o zrgDg6`7Kfj=pu=L!?4JA%ve8gp1j0YQ(5>Qi1{zbPXhTh0!d&osIr79-2>HQ$ipIa J4Z5?K`~xlIM*#o; diff --git a/ANTLR/src/Test/ObsidiCodeParser$ConditionalExpressionContext.class b/ANTLR/src/Test/ObsidiCodeParser$ConditionalExpressionContext.class deleted file mode 100644 index 297330b26b8a6b77017bfab03acd5cf25bb74613..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1138 zcma)5O>fgc5Pch`aq2oWNeLfq_-LE9PEs&m5{Fb=B9I~(ifF~%NmkK zaDWS_2&xtd4*V#@tm7tC389zS-PxHpZ|BYa`u*hyz(Z7ZEE>?UWFU*OjvI4GfhR|S0t5Ak{NBI0jf3MBuuG{v=li3o!h@LQPT23H)w(Ccpv=1KHvhPP? zkK051SACBsd>XClYvR=7k#e^DE*~&xR<*@2%Zag6ZiajRz>6eLKzC{9h%n;xxQ4>a z?L=w#+ayJ&BQ$N48?Kg zDJc`{*f3#XV=A!gjkO$UHkNea_4>tn&5$3{8Y;nXDQW$v)|Ta{2H2kK_w0B~NTZ9Y z$*>r!HX5L_d>I~CQ)caK=;?GQA+IapCIVuaen^)73orv37?@;pbgDq39bncLz_d?D z9fN(KGd-7VM%@{QWJxQsDr1#0G+Omqz5E&4$5F6>6a{}p#`s2|1r(EnC0bPpEx-AG z6g)&eqKgGwP68hj070NwKSBB(a`j`RYloOgK@~~GjD|%{P%yruq(H$6lz!!ZAep~G eeh|pdF-Qtm<0{uMr#MhOYA6iql}_t2X8!;nWF*i4 diff --git a/ANTLR/src/Test/ObsidiCodeParser$EqualityExpressionContext.class b/ANTLR/src/Test/ObsidiCodeParser$EqualityExpressionContext.class deleted file mode 100644 index b1a4d9c5b2320411a772476a6932991a2ab5baba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1455 zcma)6-*3`T7(JI_JD^NpV{;qo=5Q9+C`J<>SbQOvkl>GOi|=LJkZMvzui?m2Bwe!u?!;1+5M){>BLO~JZ?ViE~l zSFn+Sj2mLn6qFd|9c~$(*|!a=IXrZ@>(VvD%FdK>qi=hB=rO1*+vZNgGF+Ft3^lFP ze%Nu%uG#2!`6I(|xl=rYpw18%oeUS-rp+G=4m#Y~GddPka{SrAuuSjy-_tBLBgN4y z)oJ4Y>?i4bRH12i846Jl)kiuv&!;nnkd(Y_+NO7xVN+}Oot|#kp5^FAw{>S=d*%Vx z1Fv=l77ummt48;jp{hbhm0{z2#xrEbJV7iBvtbUS0k^fba6`8YyQll_KLs{D zifFV9i++Sr0~mBI`UOS%PG1s{=Yq&D+JZIuUv9jpz(!ZLW0$_jqgL5kk#!_XO{+livPg} zebMNHsjvPh;~CgO0vq(@%*?rb=R24A{pZI|08dacv6X^}d~>%E94-S-IhRizHIRXOE}Sv^ z@xT)yoqDVChA8z!pp`Az6+;HYuCy4I1rb(Stw~1X1xkdVr*vz(ejuo}y2ebO1pMsX zOMVe@ONya8O2Uvj=?~PIc;Ra3joIQKyychN#2!^KYg*J73nlDZSVe{*Hx0bzWTA`$ z3pNfI?oZ8Oznkv|+;f8u(Rd4nDz diff --git a/ANTLR/src/Test/ObsidiCodeParser$ExpressionContext.class b/ANTLR/src/Test/ObsidiCodeParser$ExpressionContext.class deleted file mode 100644 index acd7399349a274f32f48228f73ce570f7a9fef82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1079 zcma)4U279T6g`tovq`#XleG0K^`mXtY!Yz=1s_rb2?~K#i!HuynjwrPvt@Qu@>lvF ze9#v~AEdqtf(i=yW5hejHVa9pzTBC)ALpKX&wT##;Uj=MsG7Kvg^5xYX{?*Lx`-sM zX>;Ag4HKITt6mU@uIzIeJ{%q?PA^|Flpf4+H+>oMVaQ;$q~xmEqgoy?+_tOk({>;_ zqUm?|o~Ht?%I5$y7?L`ZVc8XuKN!LX|>h73)`m3C{A^YKE(BhUl7xgrQT&DPME zx&6>PeEHZrinyiuP>h-|WcU4nI^>UphF+T<{?-fc*fX(3Q%r}>+lz%Vwk<3p&rpmD z&p27wLB)cN3d3d`j`kg^H<76@$G7u;OJ&GUcVJkGc06gYYrA?DAB1~82QSpN%9!^ zI|Wv-8YSK%0D?fV{t3wwA?_3}sF4 zJKc(5dzMo*NbG?9sn~~_E;y)IhTX0BuZv{5sGtmKU%2@;84B9s%bbsxJO`m%N+>mdi9Pxz z3HmfZ3?v_tw64)94~cewTFin;UlBP2`%Gtg+(9gq=X6RTvm`?rXGr0U7Zgi^1sOT2 zArYEfENy+m%9km;f(W3zL`-=_q3gI3By5ruO-ZTZr)jY08_H{1ui_f5qWcE~KoH23 zej)l1$ffyj#>T>^PK1BqbMud)S|?1sfgc5PfT>aq2j2l2X1}C~ZUPBnTsc#32=z2&71cqPF7hG^=RAwWGCDjWabiyF!;`>4X3*_Mmtm0;O{v@rxBh__OP+!r(#;i7%xR*w!Ym!c-qEv% z-Z14>;A4?AAz==}kv!rLgo0k39r@-{@5D2(&9F5anpeX@4c9F!qs&m9rvG7Lp^hC3 zHg*^`rr}gum9;mFvwbYhI_hT=k)b?`&9IbenxXI7uA0p8y zhgSTc1&hA=qr^L#G=X-d_;T;;<=k`6Jv00J&&er(ZFqTPaVrl8w;ik$VB?Mns}Alt zSZB!Yj)rZa8ERg&9jQShkUCV2gPn#NNiBxFp%v$iE>}Y#gK#(M^Cm;4MVVo#EhHy` z9#`F<7gA-R6-BC_5av2s2{}m4+2=wE{et0GY^sDa}+yU37 z=*vDIGuU3$XUK6vBv^(g|KLkRC!}4H-xjgvlB=fSEOvCTxBn{ma3-0LMKXjT--$+Q zkG~XVmF3sHSoDS2bfWI@``{pO@cAdY#=u$6iz7wjVE$*OL&&!sWh_y6NE-NetS4u*=?zC?9mW5L)q zYbu>@!8*M=hn^rPk~-ul=IQG`y*@^Hp;p?qzkwannV~>2o74{}x@qX0H1rXni)rYm zY3R>{rkkT^lx&a^o3c}@uYQMhG!v4CMdvRh=qo`>xH@fEp=_jEnNKt9L^SPzGOkT= z!ple?+nV6L#$w84G5Hl`K1%aZKDNxK33v#f(|LjO5Bik{?8JIw!GkBbjoO OtOhMg|2Xbq4Y|K{km0ic diff --git a/ANTLR/src/Test/ObsidiCodeParser$MultiExprContext.class b/ANTLR/src/Test/ObsidiCodeParser$MultiExprContext.class deleted file mode 100644 index 881d44e9664eb36963f66fcd14d2c9383673c410..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1312 zcma)5%Wl&^6g?9MyGiYm2jx);G&C(vQsPP=SfpZ86)93m5iRVUW)vA5r*fPUkN^oJ z_y+!g1#CdDKxNBEA@11DL~?@YX70?~bI*O8ncshY`~+|dn;J@4D7da+RYN(84AwNP z&qKuxv6vbv44I*4`!9AzM?ORD@p!-8_X0i&81$y+aev#j2LnD}STifFz4pNAINSXW ze`xyy?w6BM4TiLEGn{QX9)B?GwYh&_w_Uo)^oDNW#OZd&dzo$~e-cLgx}@3hIt)b# zp`#=-XB9gGNqp*-<2k`Sh7GgT_q&$u1+H%$-?sdr7dSm`MXf#>x;&ssLpB~4DN9`S`L$yTU1bNXpZ_gM8% zAR&nKphSNxLq87CKoY^Ab%9Q0x@TndY7tENiqr|%XFAijpj8z01}@}5XOOh{6=8fLi$o$OLL`xVTSG746ZCz~dF4w=8ZIyvC;`#UotgVM_uPBt+wb=u0Nh2{z!eh)mQ7@^V&LimQn;qf zbptmH++>)Kg(shH_l_k)_UZ6m?}~``A_l7=1ef)|3qu|{L@`NEIxGu(2TUD^E4CZb(mizpHub`KvC%%2)op=UT8H&@PnPpfgVa>uKvJClg_K=8$b!=F0 zu)$Cohm+0j#6jdMZMH>wBuU|~-u1I>lSH2G!f-BG?x@9<(^Mn6fhRg{Uwl&Gta>rz z`npWgWGFkcA7?USsJ0R&tAv;gqDY@OLth%01L+QntWB>Hbh-gnr2wYCfp!Y^irzF6 z*|dt;pUBes$*PJ~s?g~)D%F*@&|i;|O=y(-8EN|qrRI=N3YO_qE%fZ>%Te+G`6~qq zIG-eL5&%IUU;T*G3)t0Dq$=+)r$IH*`iurmz9VP)$5%Tf7-|AC}uL4Fd*uQ7;* Xi~TN_u%I|lKZeUNX;%iFMa=&Jh_L;@ diff --git a/ANTLR/src/Test/ObsidiCodeParser$PrimaryContext.class b/ANTLR/src/Test/ObsidiCodeParser$PrimaryContext.class deleted file mode 100644 index 7c6fef2c24c05a85de225198db27b50a57610298..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1508 zcma)5+fEZv6kVs&c6y`S#2Y9G1$#jT6+r{>g+OeqfIu+OrvXmLXgh6Yrlfp||KNkZ zX!OD0s~=@tb8&!aiM*VBE^DoQ_Fm`w{`2D}fX8^MVkUzO?yD%OD5)rCkVQqsY!)gW zxWk+ZO~pe2wQe}l((3~Gnm=1@nvU!^0=cSbN^7;Q+qSd?ri!K7=Duwl8mrAixusjS zvzF+4~Ms`}3v~8nl3Jk7=i!j|xFa0hYQ>2`emfX-A zZkpX-8mbg}sYFoJVA-~_*C`RlctNw; zreidu<~L}&U6+CKa<#O_rXESh-K?62vLm1rOI3liWXmmgTVVbYJ;#!P=q_jOr6t{2 zb~XEU9R1+KE4>x8Iwd=XmxNv4X|}Bcxo)`9BT@V2-s{J@ibn$D(W8j7IXc)=A#=kSMy3>;4HQ8 zBwtEkU8ufNtho);>biNPdH;kSU-dQcDR{02HxwuoyT8}P>w9KrU2}td+~Y6L^3MY) zP!Rnb2e>Lg;S9)?har@&h@C=w=9)i`W70j#uW=m0HI7k+;xm*e;{~xJxY2_V_Zjgh z<0Y{-ak~d2;WH9Z#s;zUK446-4uv;X%ayTjNPY=R$RNfNUL%>`CiD*O282;Yw{T_P z*{2Zf*So`maZCijB??diLzQ1pKccU4$|T>Bios11^ZMi`*~4J|4LeOyh(XdP|0j~} r7I{mNcV{9oOnF%f$TOCapzJjIkYf_*eWN ze9#w-KA8FHA7woKAsFZ;FZZ&~z#gg!w$hMrQ^B@^LK-RDQm``% z8MpmKQ&42cbHgw_vo8(?XO3`PvuiV~Jeo+>yS66=9)sGjZQ;}{?z+NdsA$FJ)3$3G zX1!~OXWVgxQ@9XbV@UdS3|E_`EuQpF+rl~KZHqDsj%?rG&6?{ftuhSK=f#dfPGW0%f7fruOQaLW2r<)aa+ zxP~SAl1H$=M^+|?%U(jijLWDGqcuuwRSd2j=Lqu{M@seuEy$G>QT}h;`l*;R0apm){p)?ZI z&@0I5YbssFN(5M==pRGM-upN#4!eIt8>{dO{O%tR0Z|}d{t5X5GUao~rEgFY@I?~A zsY8*s$f+Fbl%)yf2!8#4Br}sF29bynNdg;z$_=O#SA*GaVwRkdu!$VSB*g`!{s7Lv BdK&-$ diff --git a/ANTLR/src/Test/ObsidiCodeParser$RelationalExpressionEndContext.class b/ANTLR/src/Test/ObsidiCodeParser$RelationalExpressionEndContext.class deleted file mode 100644 index 936050bdeb781471e63364453a69c0f6e8f6e301..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1136 zcma)6U279T6g`tovuV1qNoxH{tk%YMlSo%+!G{znxnz+SK;I1n}*%!NmVc72Ac52l=rt{;j)$Y3>nU#N!1gFplfn|7u3q#a0C zHoC5O%2gm#d1iW@A*tgS7F*I6k9$XLp$>T4BTs5a`ZB!FaK~NK=E6=E)jtI50>APaUVAz!=!@Qt!m3A}Soq-oB5rZDkS4#$=pw8+V zGrJ%1!xxYEaa>zk3}i&YklF9{)S-ANHT3di>zmJcpPN`?s7@Zuo{EJsZd+JHj`SF( z{j12rIyNlW*kEwR$MLN9gvUctjeBDScYSxH*UDJ|>*pIbLvE6r;X*w75!;U4(i3nz z?suH%l8{K}m6M?~lx;L=MW@%T3L0^DX zT>>+{B5?xtnfBB)*_1xBUXdl$$m)zW$}ng(tF_WM7+*%g86+t9HB#0a3eBSsClqPb z6h?0A!zg%&{FV-ua4`fgc5Pj=3ahf`9no>SWft04jaVm@ei9;$bk&rBff@s9uX_jcIv#Hij6@Ci; zfdgDXa6skCe?Ulp1QPrP#H`~aQd(5F%&vFmy?HZl{qgs^_W*8TD+dD?O8%RX7)5c#Md@T5}Bt30M^9UkdJPqz7hA!S!QhFNNu zD}Bsx<1c)1!!c=-T5pIj;v~DKIrF=bzqfziKNz*k2O=&)!`$ul)gHemH1+ayU)P`d zhrWd}HcV_Xl&0^e`?hcmwuMC$8H$tSkr)dVI2NjK7&cFI?buMr8yZNnx6h>>rRV*J z-GzyQAuq#xGTpJc+jc|u=mx&*xUt7%!@n9vlZ}lTxzDg+pZ+#tm$d^U7}n^uXXyt3 zG9a^&qc}%jC8THvWSzpz)N8Ppw5J!6oQSvVsL#^)L;r IVji=900mSFI{*Lx diff --git a/ANTLR/src/Test/ObsidiCodeParser$UnaryExprContext.class b/ANTLR/src/Test/ObsidiCodeParser$UnaryExprContext.class deleted file mode 100644 index f28fe3a26605e9de8bde11ea53829cf786c5e402..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1124 zcma)4O>fgc5PfSWapE{>no_=6C?RRF6NHgK0x1=j2&6~>sk<0At?96*JZ|CRlZ{GntLPNtX9SpZMZ0X42j)qDeY21~j zs-eb^8~cuU_k1!E45c^cerxE5d=fGkZQtjjb&j-ZqIEEdwkCk0T;FT zswP89J~OOzT%W%h54v0&I$e(<+DNzqB4jA;O}&JwdKvb`Btp*Yy1pAeW4Ld2hN5pf ze&`AN^sz0*e&`OkJ#A`#?C}`6*|y%&AblRnVB7EU34>}{Z5p1_m_mjb9{vL_6g&n! zB(LKJAtyze60>j+I!7ljol!homQUP>gh4+Tj>Qpw;Y#TBdC49eJEx9@ZHCJH(}J1? zc5shjYa#KXGzQ98V<^wk&RaEL!ZJ{Y#jvxSWV8x1oT;GnVX=bAhwYjjIfv~ze&3E( zgrr{fQwT2-KUp4X&Rk-*BHg9VNg*n<;aS>uAVXdb2H67LYEa1ojQSdw`Wea@*hjh( zb)1XBFS@N@^^yv8TA|KY{GnWuIV)K%#$A@>(Bv<4Ue diff --git a/ANTLR/src/Test/ObsidiCodeParser$XOrExpressionContext.class b/ANTLR/src/Test/ObsidiCodeParser$XOrExpressionContext.class deleted file mode 100644 index 37011496a63edddeebf72764cf72aa9a4d9030e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1196 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%0DWsPj_WugA|8#GCXTUYX5)xnNn#sjy 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 GDC&O*kOI8` diff --git a/ANTLR/src/Test/ObsidiCodeParser.java b/ANTLR/src/Test/ObsidiCodeParser.java deleted file mode 100644 index 12d773e..0000000 --- a/ANTLR/src/Test/ObsidiCodeParser.java +++ /dev/null @@ -1,4068 +0,0 @@ -// Generated from ObsidiCode.g4 by ANTLR 4.5 -import org.antlr.v4.runtime.atn.*; -import org.antlr.v4.runtime.dfa.DFA; -import org.antlr.v4.runtime.*; -import org.antlr.v4.runtime.misc.*; -import org.antlr.v4.runtime.tree.*; -import java.util.List; -import java.util.Iterator; -import java.util.ArrayList; - -@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) -public class ObsidiCodeParser extends Parser { - static { RuntimeMetaData.checkVersion("4.5", RuntimeMetaData.VERSION); } - - protected static final DFA[] _decisionToDFA; - protected static final PredictionContextCache _sharedContextCache = - new PredictionContextCache(); - public static final int - T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9, - T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, T__16=17, - T__17=18, T__18=19, T__19=20, T__20=21, T__21=22, T__22=23, T__23=24, - T__24=25, T__25=26, T__26=27, T__27=28, T__28=29, T__29=30, T__30=31, - T__31=32, T__32=33, T__33=34, T__34=35, T__35=36, T__36=37, T__37=38, - T__38=39, T__39=40, T__40=41, T__41=42, T__42=43, T__43=44, T__44=45, - T__45=46, T__46=47, T__47=48, T__48=49, Identifier=50, NumLit=51, CoordLit=52, - StringLit=53, WS=54, COMMENT=55, EOLCOMMENT=56; - public static final int - RULE_prog = 0, RULE_literal = 1, RULE_typeName = 2, RULE_type = 3, RULE_primitiveType = 4, - RULE_referenceType = 5, RULE_loads = 6, RULE_roboDcl = 7, RULE_roboBodyDcl = 8, - RULE_memberDcl = 9, RULE_fieldDcl = 10, RULE_variableDclList = 11, RULE_variableDcl = 12, - RULE_variableInitializer = 13, RULE_listInitializer = 14, RULE_litList = 15, - RULE_methodDcl = 16, RULE_methodHeader = 17, RULE_methodDeclarator = 18, - RULE_methodBody = 19, RULE_hearDcl = 20, RULE_block = 21, RULE_blockStmtList = 22, - RULE_statement = 23, RULE_stmtNoSub = 24, RULE_signalStmt = 25, RULE_exprStmt = 26, - RULE_methodInvocation = 27, RULE_ifStmt = 28, RULE_elseIfOpt = 29, RULE_elseOpt = 30, - RULE_loopStmt = 31, RULE_repeatStmt = 32, RULE_foreverStmt = 33, RULE_formalArgs = 34, - RULE_argsList = 35, RULE_formalParams = 36, RULE_paramsList = 37, RULE_param = 38, - RULE_expression = 39, RULE_assignmentExpression = 40, RULE_assignment = 41, - RULE_leftHandSide = 42, RULE_listOpt = 43, RULE_conditionalExpression = 44, - RULE_conditionOrExpression = 45, RULE_conditionAndExpression = 46, RULE_xOrExpression = 47, - RULE_equalityExpression = 48, RULE_equalityExpressionEnd = 49, RULE_relationalExpression = 50, - RULE_relationalExpressionEnd = 51, RULE_additiveExpression = 52, RULE_additiveExpressionEnd = 53, - RULE_multiExpr = 54, RULE_multiExprEnd = 55, RULE_unaryExpr = 56, RULE_primary = 57; - public static final String[] ruleNames = { - "prog", "literal", "typeName", "type", "primitiveType", "referenceType", - "loads", "roboDcl", "roboBodyDcl", "memberDcl", "fieldDcl", "variableDclList", - "variableDcl", "variableInitializer", "listInitializer", "litList", "methodDcl", - "methodHeader", "methodDeclarator", "methodBody", "hearDcl", "block", - "blockStmtList", "statement", "stmtNoSub", "signalStmt", "exprStmt", "methodInvocation", - "ifStmt", "elseIfOpt", "elseOpt", "loopStmt", "repeatStmt", "foreverStmt", - "formalArgs", "argsList", "formalParams", "paramsList", "param", "expression", - "assignmentExpression", "assignment", "leftHandSide", "listOpt", "conditionalExpression", - "conditionOrExpression", "conditionAndExpression", "xOrExpression", "equalityExpression", - "equalityExpressionEnd", "relationalExpression", "relationalExpressionEnd", - "additiveExpression", "additiveExpressionEnd", "multiExpr", "multiExprEnd", - "unaryExpr", "primary" - }; - - private static final String[] _LITERAL_NAMES = { - null, "'TRUE'", "'FALSE'", "'.'", "'NUM'", "'BOOL'", "'STRING'", "'COORD'", - "'LIST'", "'LOAD'", "'('", "')'", "'\n'", "':'", "','", "'='", "'END'", - "'VOID'", "'HEAR'", "'END HEAR'", "'BREAK'", "'RETURN'", "'SIGNAL'", "'IF'", - "'END IF'", "'elseIfOpt'", "'elseOpt'", "'ELSE IF'", "'END ELSEIF'", "'ELSE'", - "'END Else'", "'REPEAT UNTIL'", "'END REPEAT'", "'FOREVER'", "'END FOREVER'", - "'['", "']'", "'OR'", "'AND'", "'XOR'", "'IS'", "'NOT'", "'LESS_THAN'", - "'GREATER_THAN'", "'LESS_THAN_EQUAL'", "'GREATER_THAN_EQUAL'", "'+'", - "'-'", "'*'", "'/'" - }; - private static final String[] _SYMBOLIC_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, "Identifier", "NumLit", "CoordLit", "StringLit", "WS", "COMMENT", - "EOLCOMMENT" - }; - public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); - - /** - * @deprecated Use {@link #VOCABULARY} instead. - */ - @Deprecated - public static final String[] tokenNames; - static { - tokenNames = new String[_SYMBOLIC_NAMES.length]; - for (int i = 0; i < tokenNames.length; i++) { - tokenNames[i] = VOCABULARY.getLiteralName(i); - if (tokenNames[i] == null) { - tokenNames[i] = VOCABULARY.getSymbolicName(i); - } - - if (tokenNames[i] == null) { - tokenNames[i] = ""; - } - } - } - - @Override - @Deprecated - public String[] getTokenNames() { - return tokenNames; - } - - @Override - - public Vocabulary getVocabulary() { - return VOCABULARY; - } - - @Override - public String getGrammarFileName() { return "ObsidiCode.g4"; } - - @Override - public String[] getRuleNames() { return ruleNames; } - - @Override - public String getSerializedATN() { return _serializedATN; } - - @Override - public ATN getATN() { return _ATN; } - - public ObsidiCodeParser(TokenStream input) { - super(input); - _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); - } - public static class ProgContext extends ParserRuleContext { - public RoboDclContext roboDcl() { - return getRuleContext(RoboDclContext.class,0); - } - public LoadsContext loads() { - return getRuleContext(LoadsContext.class,0); - } - public RoboBodyDclContext roboBodyDcl() { - return getRuleContext(RoboBodyDclContext.class,0); - } - public ProgContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_prog; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterProg(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitProg(this); - } - } - - public final ProgContext prog() throws RecognitionException { - ProgContext _localctx = new ProgContext(_ctx, getState()); - enterRule(_localctx, 0, RULE_prog); - try { - enterOuterAlt(_localctx, 1); - { - setState(116); - roboDcl(); - setState(117); - loads(0); - setState(118); - roboBodyDcl(0); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class LiteralContext extends ParserRuleContext { - public TerminalNode NumLit() { return getToken(ObsidiCodeParser.NumLit, 0); } - public TerminalNode CoordLit() { return getToken(ObsidiCodeParser.CoordLit, 0); } - public TerminalNode StringLit() { return getToken(ObsidiCodeParser.StringLit, 0); } - public LiteralContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_literal; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterLiteral(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitLiteral(this); - } - } - - public final LiteralContext literal() throws RecognitionException { - LiteralContext _localctx = new LiteralContext(_ctx, getState()); - enterRule(_localctx, 2, RULE_literal); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(120); - _la = _input.LA(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << T__1) | (1L << NumLit) | (1L << CoordLit) | (1L << StringLit))) != 0)) ) { - _errHandler.recoverInline(this); - } else { - consume(); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class TypeNameContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(ObsidiCodeParser.Identifier, 0); } - public TypeNameContext typeName() { - return getRuleContext(TypeNameContext.class,0); - } - public TypeNameContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_typeName; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterTypeName(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitTypeName(this); - } - } - - public final TypeNameContext typeName() throws RecognitionException { - return typeName(0); - } - - private TypeNameContext typeName(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - TypeNameContext _localctx = new TypeNameContext(_ctx, _parentState); - TypeNameContext _prevctx = _localctx; - int _startState = 4; - enterRecursionRule(_localctx, 4, RULE_typeName, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - setState(123); - match(Identifier); - } - _ctx.stop = _input.LT(-1); - setState(130); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,0,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - { - _localctx = new TypeNameContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_typeName); - setState(125); - if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(126); - match(T__2); - setState(127); - match(Identifier); - } - } - } - setState(132); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,0,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class TypeContext extends ParserRuleContext { - public ReferenceTypeContext referenceType() { - return getRuleContext(ReferenceTypeContext.class,0); - } - public PrimitiveTypeContext primitiveType() { - return getRuleContext(PrimitiveTypeContext.class,0); - } - public TypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_type; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitType(this); - } - } - - public final TypeContext type() throws RecognitionException { - TypeContext _localctx = new TypeContext(_ctx, getState()); - enterRule(_localctx, 6, RULE_type); - try { - setState(135); - switch (_input.LA(1)) { - case T__5: - case T__6: - case T__7: - enterOuterAlt(_localctx, 1); - { - setState(133); - referenceType(); - } - break; - case T__3: - case T__4: - enterOuterAlt(_localctx, 2); - { - setState(134); - primitiveType(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class PrimitiveTypeContext extends ParserRuleContext { - public PrimitiveTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_primitiveType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterPrimitiveType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitPrimitiveType(this); - } - } - - public final PrimitiveTypeContext primitiveType() throws RecognitionException { - PrimitiveTypeContext _localctx = new PrimitiveTypeContext(_ctx, getState()); - enterRule(_localctx, 8, RULE_primitiveType); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(137); - _la = _input.LA(1); - if ( !(_la==T__3 || _la==T__4) ) { - _errHandler.recoverInline(this); - } else { - consume(); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ReferenceTypeContext extends ParserRuleContext { - public ReferenceTypeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_referenceType; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterReferenceType(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitReferenceType(this); - } - } - - public final ReferenceTypeContext referenceType() throws RecognitionException { - ReferenceTypeContext _localctx = new ReferenceTypeContext(_ctx, getState()); - enterRule(_localctx, 10, RULE_referenceType); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(139); - _la = _input.LA(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__6) | (1L << T__7))) != 0)) ) { - _errHandler.recoverInline(this); - } else { - consume(); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class LoadsContext extends ParserRuleContext { - public LoadsContext loads() { - return getRuleContext(LoadsContext.class,0); - } - public TerminalNode StringLit() { return getToken(ObsidiCodeParser.StringLit, 0); } - public LoadsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_loads; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterLoads(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitLoads(this); - } - } - - public final LoadsContext loads() throws RecognitionException { - return loads(0); - } - - private LoadsContext loads(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - LoadsContext _localctx = new LoadsContext(_ctx, _parentState); - LoadsContext _prevctx = _localctx; - int _startState = 12; - enterRecursionRule(_localctx, 12, RULE_loads, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - } - _ctx.stop = _input.LT(-1); - setState(150); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,2,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - { - _localctx = new LoadsContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_loads); - setState(142); - if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); - setState(143); - match(T__8); - setState(144); - match(T__9); - setState(145); - match(StringLit); - setState(146); - match(T__10); - setState(147); - match(T__11); - } - } - } - setState(152); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,2,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class RoboDclContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(ObsidiCodeParser.Identifier, 0); } - public RoboDclContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_roboDcl; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterRoboDcl(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitRoboDcl(this); - } - } - - public final RoboDclContext roboDcl() throws RecognitionException { - RoboDclContext _localctx = new RoboDclContext(_ctx, getState()); - enterRule(_localctx, 14, RULE_roboDcl); - try { - enterOuterAlt(_localctx, 1); - { - setState(153); - match(Identifier); - setState(154); - match(T__12); - setState(155); - match(T__11); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class RoboBodyDclContext extends ParserRuleContext { - public MemberDclContext memberDcl() { - return getRuleContext(MemberDclContext.class,0); - } - public RoboBodyDclContext roboBodyDcl() { - return getRuleContext(RoboBodyDclContext.class,0); - } - public RoboBodyDclContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_roboBodyDcl; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterRoboBodyDcl(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitRoboBodyDcl(this); - } - } - - public final RoboBodyDclContext roboBodyDcl() throws RecognitionException { - return roboBodyDcl(0); - } - - private RoboBodyDclContext roboBodyDcl(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - RoboBodyDclContext _localctx = new RoboBodyDclContext(_ctx, _parentState); - RoboBodyDclContext _prevctx = _localctx; - int _startState = 16; - enterRecursionRule(_localctx, 16, RULE_roboBodyDcl, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - setState(158); - memberDcl(); - } - _ctx.stop = _input.LT(-1); - setState(164); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,3,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - { - _localctx = new RoboBodyDclContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_roboBodyDcl); - setState(160); - if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); - setState(161); - memberDcl(); - } - } - } - setState(166); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,3,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class MemberDclContext extends ParserRuleContext { - public FieldDclContext fieldDcl() { - return getRuleContext(FieldDclContext.class,0); - } - public MethodDclContext methodDcl() { - return getRuleContext(MethodDclContext.class,0); - } - public MemberDclContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_memberDcl; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterMemberDcl(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitMemberDcl(this); - } - } - - public final MemberDclContext memberDcl() throws RecognitionException { - MemberDclContext _localctx = new MemberDclContext(_ctx, getState()); - enterRule(_localctx, 18, RULE_memberDcl); - try { - setState(170); - switch ( getInterpreter().adaptivePredict(_input,4,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(167); - fieldDcl(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(168); - methodDcl(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); - { - setState(169); - match(T__11); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class FieldDclContext extends ParserRuleContext { - public TypeContext type() { - return getRuleContext(TypeContext.class,0); - } - public VariableDclListContext variableDclList() { - return getRuleContext(VariableDclListContext.class,0); - } - public FieldDclContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_fieldDcl; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterFieldDcl(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitFieldDcl(this); - } - } - - public final FieldDclContext fieldDcl() throws RecognitionException { - FieldDclContext _localctx = new FieldDclContext(_ctx, getState()); - enterRule(_localctx, 20, RULE_fieldDcl); - try { - enterOuterAlt(_localctx, 1); - { - setState(172); - type(); - setState(173); - variableDclList(0); - setState(174); - match(T__11); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class VariableDclListContext extends ParserRuleContext { - public VariableDclContext variableDcl() { - return getRuleContext(VariableDclContext.class,0); - } - public VariableDclListContext variableDclList() { - return getRuleContext(VariableDclListContext.class,0); - } - public VariableDclListContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_variableDclList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterVariableDclList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitVariableDclList(this); - } - } - - public final VariableDclListContext variableDclList() throws RecognitionException { - return variableDclList(0); - } - - private VariableDclListContext variableDclList(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - VariableDclListContext _localctx = new VariableDclListContext(_ctx, _parentState); - VariableDclListContext _prevctx = _localctx; - int _startState = 22; - enterRecursionRule(_localctx, 22, RULE_variableDclList, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - setState(177); - variableDcl(); - } - _ctx.stop = _input.LT(-1); - setState(184); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,5,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - { - _localctx = new VariableDclListContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_variableDclList); - setState(179); - if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(180); - match(T__13); - setState(181); - variableDcl(); - } - } - } - setState(186); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,5,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class VariableDclContext extends ParserRuleContext { - public VariableInitializerContext variableInitializer() { - return getRuleContext(VariableInitializerContext.class,0); - } - public TerminalNode Identifier() { return getToken(ObsidiCodeParser.Identifier, 0); } - public ListInitializerContext listInitializer() { - return getRuleContext(ListInitializerContext.class,0); - } - public VariableDclContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_variableDcl; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterVariableDcl(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitVariableDcl(this); - } - } - - public final VariableDclContext variableDcl() throws RecognitionException { - VariableDclContext _localctx = new VariableDclContext(_ctx, getState()); - enterRule(_localctx, 24, RULE_variableDcl); - try { - setState(191); - switch ( getInterpreter().adaptivePredict(_input,6,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(187); - variableInitializer(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(188); - match(Identifier); - setState(189); - match(T__14); - setState(190); - listInitializer(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class VariableInitializerContext extends ParserRuleContext { - public AssignmentExpressionContext assignmentExpression() { - return getRuleContext(AssignmentExpressionContext.class,0); - } - public TerminalNode Identifier() { return getToken(ObsidiCodeParser.Identifier, 0); } - public VariableInitializerContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_variableInitializer; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterVariableInitializer(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitVariableInitializer(this); - } - } - - public final VariableInitializerContext variableInitializer() throws RecognitionException { - VariableInitializerContext _localctx = new VariableInitializerContext(_ctx, getState()); - enterRule(_localctx, 26, RULE_variableInitializer); - try { - setState(195); - switch ( getInterpreter().adaptivePredict(_input,7,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(193); - assignmentExpression(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(194); - match(Identifier); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ListInitializerContext extends ParserRuleContext { - public LitListContext litList() { - return getRuleContext(LitListContext.class,0); - } - public TerminalNode Identifier() { return getToken(ObsidiCodeParser.Identifier, 0); } - public ListInitializerContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_listInitializer; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterListInitializer(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitListInitializer(this); - } - } - - public final ListInitializerContext listInitializer() throws RecognitionException { - ListInitializerContext _localctx = new ListInitializerContext(_ctx, getState()); - enterRule(_localctx, 28, RULE_listInitializer); - try { - setState(202); - switch ( getInterpreter().adaptivePredict(_input,8,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(197); - litList(0); - setState(198); - match(T__15); - setState(199); - match(Identifier); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class LitListContext extends ParserRuleContext { - public PrimaryContext primary() { - return getRuleContext(PrimaryContext.class,0); - } - public LitListContext litList() { - return getRuleContext(LitListContext.class,0); - } - public LitListContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_litList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterLitList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitLitList(this); - } - } - - public final LitListContext litList() throws RecognitionException { - return litList(0); - } - - private LitListContext litList(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - LitListContext _localctx = new LitListContext(_ctx, _parentState); - LitListContext _prevctx = _localctx; - int _startState = 30; - enterRecursionRule(_localctx, 30, RULE_litList, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - setState(205); - primary(); - } - _ctx.stop = _input.LT(-1); - setState(212); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,9,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - { - _localctx = new LitListContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_litList); - setState(207); - if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); - setState(208); - match(T__13); - setState(209); - primary(); - } - } - } - setState(214); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,9,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class MethodDclContext extends ParserRuleContext { - public MethodHeaderContext methodHeader() { - return getRuleContext(MethodHeaderContext.class,0); - } - public MethodBodyContext methodBody() { - return getRuleContext(MethodBodyContext.class,0); - } - public HearDclContext hearDcl() { - return getRuleContext(HearDclContext.class,0); - } - public MethodDclContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_methodDcl; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterMethodDcl(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitMethodDcl(this); - } - } - - public final MethodDclContext methodDcl() throws RecognitionException { - MethodDclContext _localctx = new MethodDclContext(_ctx, getState()); - enterRule(_localctx, 32, RULE_methodDcl); - try { - setState(219); - switch (_input.LA(1)) { - case T__3: - case T__4: - case T__5: - case T__6: - case T__7: - case T__16: - enterOuterAlt(_localctx, 1); - { - setState(215); - methodHeader(); - setState(216); - methodBody(); - } - break; - case T__17: - enterOuterAlt(_localctx, 2); - { - setState(218); - hearDcl(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class MethodHeaderContext extends ParserRuleContext { - public TypeContext type() { - return getRuleContext(TypeContext.class,0); - } - public MethodDeclaratorContext methodDeclarator() { - return getRuleContext(MethodDeclaratorContext.class,0); - } - public MethodHeaderContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_methodHeader; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterMethodHeader(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitMethodHeader(this); - } - } - - public final MethodHeaderContext methodHeader() throws RecognitionException { - MethodHeaderContext _localctx = new MethodHeaderContext(_ctx, getState()); - enterRule(_localctx, 34, RULE_methodHeader); - try { - setState(226); - switch (_input.LA(1)) { - case T__3: - case T__4: - case T__5: - case T__6: - case T__7: - enterOuterAlt(_localctx, 1); - { - setState(221); - type(); - setState(222); - methodDeclarator(); - } - break; - case T__16: - enterOuterAlt(_localctx, 2); - { - setState(224); - match(T__16); - setState(225); - methodDeclarator(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class MethodDeclaratorContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(ObsidiCodeParser.Identifier, 0); } - public FormalParamsContext formalParams() { - return getRuleContext(FormalParamsContext.class,0); - } - public MethodDeclaratorContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_methodDeclarator; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterMethodDeclarator(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitMethodDeclarator(this); - } - } - - public final MethodDeclaratorContext methodDeclarator() throws RecognitionException { - MethodDeclaratorContext _localctx = new MethodDeclaratorContext(_ctx, getState()); - enterRule(_localctx, 36, RULE_methodDeclarator); - try { - enterOuterAlt(_localctx, 1); - { - setState(228); - match(Identifier); - setState(229); - match(T__9); - setState(230); - formalParams(); - setState(231); - match(T__10); - setState(232); - match(T__11); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class MethodBodyContext extends ParserRuleContext { - public BlockContext block() { - return getRuleContext(BlockContext.class,0); - } - public TerminalNode Identifier() { return getToken(ObsidiCodeParser.Identifier, 0); } - public MethodBodyContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_methodBody; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterMethodBody(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitMethodBody(this); - } - } - - public final MethodBodyContext methodBody() throws RecognitionException { - MethodBodyContext _localctx = new MethodBodyContext(_ctx, getState()); - enterRule(_localctx, 38, RULE_methodBody); - try { - enterOuterAlt(_localctx, 1); - { - setState(234); - block(); - setState(235); - match(T__15); - setState(236); - match(Identifier); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class HearDclContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(ObsidiCodeParser.Identifier, 0); } - public FormalParamsContext formalParams() { - return getRuleContext(FormalParamsContext.class,0); - } - public BlockContext block() { - return getRuleContext(BlockContext.class,0); - } - public HearDclContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_hearDcl; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterHearDcl(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitHearDcl(this); - } - } - - public final HearDclContext hearDcl() throws RecognitionException { - HearDclContext _localctx = new HearDclContext(_ctx, getState()); - enterRule(_localctx, 40, RULE_hearDcl); - try { - enterOuterAlt(_localctx, 1); - { - setState(238); - match(T__17); - setState(239); - match(Identifier); - setState(240); - match(T__9); - setState(241); - formalParams(); - setState(242); - match(T__10); - setState(243); - match(T__11); - setState(244); - block(); - setState(245); - match(T__18); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class BlockContext extends ParserRuleContext { - public BlockStmtListContext blockStmtList() { - return getRuleContext(BlockStmtListContext.class,0); - } - public BlockContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_block; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterBlock(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitBlock(this); - } - } - - public final BlockContext block() throws RecognitionException { - BlockContext _localctx = new BlockContext(_ctx, getState()); - enterRule(_localctx, 42, RULE_block); - try { - setState(249); - switch (_input.LA(1)) { - case T__0: - case T__1: - case T__3: - case T__4: - case T__5: - case T__6: - case T__7: - case T__9: - case T__11: - case T__19: - case T__20: - case T__21: - case T__22: - case T__30: - case T__32: - case T__45: - case T__46: - case Identifier: - case NumLit: - case CoordLit: - case StringLit: - enterOuterAlt(_localctx, 1); - { - setState(247); - blockStmtList(0); - } - break; - case T__15: - case T__18: - case T__23: - case T__27: - case T__29: - case T__31: - case T__33: - enterOuterAlt(_localctx, 2); - { - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class BlockStmtListContext extends ParserRuleContext { - public StatementContext statement() { - return getRuleContext(StatementContext.class,0); - } - public BlockStmtListContext blockStmtList() { - return getRuleContext(BlockStmtListContext.class,0); - } - public BlockStmtListContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_blockStmtList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterBlockStmtList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitBlockStmtList(this); - } - } - - public final BlockStmtListContext blockStmtList() throws RecognitionException { - return blockStmtList(0); - } - - private BlockStmtListContext blockStmtList(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - BlockStmtListContext _localctx = new BlockStmtListContext(_ctx, _parentState); - BlockStmtListContext _prevctx = _localctx; - int _startState = 44; - enterRecursionRule(_localctx, 44, RULE_blockStmtList, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - setState(252); - statement(); - setState(253); - match(T__11); - } - _ctx.stop = _input.LT(-1); - setState(261); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,13,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - { - _localctx = new BlockStmtListContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_blockStmtList); - setState(255); - if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); - setState(256); - statement(); - setState(257); - match(T__11); - } - } - } - setState(263); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,13,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class StatementContext extends ParserRuleContext { - public TypeContext type() { - return getRuleContext(TypeContext.class,0); - } - public VariableDclListContext variableDclList() { - return getRuleContext(VariableDclListContext.class,0); - } - public StmtNoSubContext stmtNoSub() { - return getRuleContext(StmtNoSubContext.class,0); - } - public IfStmtContext ifStmt() { - return getRuleContext(IfStmtContext.class,0); - } - public LoopStmtContext loopStmt() { - return getRuleContext(LoopStmtContext.class,0); - } - public StatementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_statement; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterStatement(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitStatement(this); - } - } - - public final StatementContext statement() throws RecognitionException { - StatementContext _localctx = new StatementContext(_ctx, getState()); - enterRule(_localctx, 46, RULE_statement); - try { - setState(270); - switch (_input.LA(1)) { - case T__3: - case T__4: - case T__5: - case T__6: - case T__7: - enterOuterAlt(_localctx, 1); - { - setState(264); - type(); - setState(265); - variableDclList(0); - } - break; - case T__0: - case T__1: - case T__9: - case T__11: - case T__19: - case T__20: - case T__21: - case T__45: - case T__46: - case Identifier: - case NumLit: - case CoordLit: - case StringLit: - enterOuterAlt(_localctx, 2); - { - setState(267); - stmtNoSub(); - } - break; - case T__22: - enterOuterAlt(_localctx, 3); - { - setState(268); - ifStmt(); - } - break; - case T__30: - case T__32: - enterOuterAlt(_localctx, 4); - { - setState(269); - loopStmt(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class StmtNoSubContext extends ParserRuleContext { - public SignalStmtContext signalStmt() { - return getRuleContext(SignalStmtContext.class,0); - } - public ExprStmtContext exprStmt() { - return getRuleContext(ExprStmtContext.class,0); - } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public StmtNoSubContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_stmtNoSub; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterStmtNoSub(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitStmtNoSub(this); - } - } - - public final StmtNoSubContext stmtNoSub() throws RecognitionException { - StmtNoSubContext _localctx = new StmtNoSubContext(_ctx, getState()); - enterRule(_localctx, 48, RULE_stmtNoSub); - try { - setState(278); - switch (_input.LA(1)) { - case T__11: - enterOuterAlt(_localctx, 1); - { - } - break; - case T__21: - enterOuterAlt(_localctx, 2); - { - setState(273); - signalStmt(); - } - break; - case T__0: - case T__1: - case T__9: - case T__45: - case T__46: - case Identifier: - case NumLit: - case CoordLit: - case StringLit: - enterOuterAlt(_localctx, 3); - { - setState(274); - exprStmt(); - } - break; - case T__19: - enterOuterAlt(_localctx, 4); - { - setState(275); - match(T__19); - } - break; - case T__20: - enterOuterAlt(_localctx, 5); - { - setState(276); - match(T__20); - setState(277); - expression(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class SignalStmtContext extends ParserRuleContext { - public TerminalNode Identifier() { return getToken(ObsidiCodeParser.Identifier, 0); } - public ArgsListContext argsList() { - return getRuleContext(ArgsListContext.class,0); - } - public SignalStmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_signalStmt; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterSignalStmt(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitSignalStmt(this); - } - } - - public final SignalStmtContext signalStmt() throws RecognitionException { - SignalStmtContext _localctx = new SignalStmtContext(_ctx, getState()); - enterRule(_localctx, 50, RULE_signalStmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(280); - match(T__21); - setState(281); - match(Identifier); - setState(282); - match(T__9); - setState(283); - argsList(0); - setState(284); - match(T__10); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ExprStmtContext extends ParserRuleContext { - public AssignmentExpressionContext assignmentExpression() { - return getRuleContext(AssignmentExpressionContext.class,0); - } - public MethodInvocationContext methodInvocation() { - return getRuleContext(MethodInvocationContext.class,0); - } - public ExprStmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_exprStmt; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterExprStmt(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitExprStmt(this); - } - } - - public final ExprStmtContext exprStmt() throws RecognitionException { - ExprStmtContext _localctx = new ExprStmtContext(_ctx, getState()); - enterRule(_localctx, 52, RULE_exprStmt); - try { - setState(288); - switch ( getInterpreter().adaptivePredict(_input,16,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(286); - assignmentExpression(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(287); - methodInvocation(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class MethodInvocationContext extends ParserRuleContext { - public TypeNameContext typeName() { - return getRuleContext(TypeNameContext.class,0); - } - public FormalArgsContext formalArgs() { - return getRuleContext(FormalArgsContext.class,0); - } - public MethodInvocationContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_methodInvocation; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterMethodInvocation(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitMethodInvocation(this); - } - } - - public final MethodInvocationContext methodInvocation() throws RecognitionException { - MethodInvocationContext _localctx = new MethodInvocationContext(_ctx, getState()); - enterRule(_localctx, 54, RULE_methodInvocation); - try { - enterOuterAlt(_localctx, 1); - { - setState(290); - typeName(0); - setState(291); - match(T__9); - setState(292); - formalArgs(); - setState(293); - match(T__10); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class IfStmtContext extends ParserRuleContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public BlockContext block() { - return getRuleContext(BlockContext.class,0); - } - public IfStmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_ifStmt; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterIfStmt(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitIfStmt(this); - } - } - - public final IfStmtContext ifStmt() throws RecognitionException { - IfStmtContext _localctx = new IfStmtContext(_ctx, getState()); - enterRule(_localctx, 56, RULE_ifStmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(295); - match(T__22); - setState(296); - match(T__9); - setState(297); - expression(); - setState(298); - match(T__10); - setState(299); - match(T__11); - setState(300); - block(); - setState(301); - match(T__23); - setState(302); - match(T__24); - setState(303); - match(T__25); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ElseIfOptContext extends ParserRuleContext { - public ElseIfOptContext elseIfOpt() { - return getRuleContext(ElseIfOptContext.class,0); - } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public BlockContext block() { - return getRuleContext(BlockContext.class,0); - } - public ElseIfOptContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_elseIfOpt; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterElseIfOpt(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitElseIfOpt(this); - } - } - - public final ElseIfOptContext elseIfOpt() throws RecognitionException { - return elseIfOpt(0); - } - - private ElseIfOptContext elseIfOpt(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - ElseIfOptContext _localctx = new ElseIfOptContext(_ctx, _parentState); - ElseIfOptContext _prevctx = _localctx; - int _startState = 58; - enterRecursionRule(_localctx, 58, RULE_elseIfOpt, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - } - _ctx.stop = _input.LT(-1); - setState(317); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,17,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - { - _localctx = new ElseIfOptContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_elseIfOpt); - setState(306); - if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); - setState(307); - match(T__26); - setState(308); - match(T__9); - setState(309); - expression(); - setState(310); - match(T__10); - setState(311); - match(T__11); - setState(312); - block(); - setState(313); - match(T__27); - } - } - } - setState(319); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,17,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class ElseOptContext extends ParserRuleContext { - public BlockContext block() { - return getRuleContext(BlockContext.class,0); - } - public ElseOptContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_elseOpt; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterElseOpt(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitElseOpt(this); - } - } - - public final ElseOptContext elseOpt() throws RecognitionException { - ElseOptContext _localctx = new ElseOptContext(_ctx, getState()); - enterRule(_localctx, 60, RULE_elseOpt); - try { - setState(326); - switch (_input.LA(1)) { - case T__28: - enterOuterAlt(_localctx, 1); - { - setState(320); - match(T__28); - setState(321); - match(T__11); - setState(322); - block(); - setState(323); - match(T__29); - } - break; - case EOF: - enterOuterAlt(_localctx, 2); - { - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class LoopStmtContext extends ParserRuleContext { - public RepeatStmtContext repeatStmt() { - return getRuleContext(RepeatStmtContext.class,0); - } - public ForeverStmtContext foreverStmt() { - return getRuleContext(ForeverStmtContext.class,0); - } - public LoopStmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_loopStmt; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterLoopStmt(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitLoopStmt(this); - } - } - - public final LoopStmtContext loopStmt() throws RecognitionException { - LoopStmtContext _localctx = new LoopStmtContext(_ctx, getState()); - enterRule(_localctx, 62, RULE_loopStmt); - try { - setState(330); - switch (_input.LA(1)) { - case T__30: - enterOuterAlt(_localctx, 1); - { - setState(328); - repeatStmt(); - } - break; - case T__32: - enterOuterAlt(_localctx, 2); - { - setState(329); - foreverStmt(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class RepeatStmtContext extends ParserRuleContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public BlockContext block() { - return getRuleContext(BlockContext.class,0); - } - public RepeatStmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_repeatStmt; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterRepeatStmt(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitRepeatStmt(this); - } - } - - public final RepeatStmtContext repeatStmt() throws RecognitionException { - RepeatStmtContext _localctx = new RepeatStmtContext(_ctx, getState()); - enterRule(_localctx, 64, RULE_repeatStmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(332); - match(T__30); - setState(333); - match(T__9); - setState(334); - expression(); - setState(335); - match(T__10); - setState(336); - match(T__11); - setState(337); - block(); - setState(338); - match(T__31); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ForeverStmtContext extends ParserRuleContext { - public BlockContext block() { - return getRuleContext(BlockContext.class,0); - } - public ForeverStmtContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_foreverStmt; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterForeverStmt(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitForeverStmt(this); - } - } - - public final ForeverStmtContext foreverStmt() throws RecognitionException { - ForeverStmtContext _localctx = new ForeverStmtContext(_ctx, getState()); - enterRule(_localctx, 66, RULE_foreverStmt); - try { - enterOuterAlt(_localctx, 1); - { - setState(340); - match(T__32); - setState(341); - match(T__11); - setState(342); - block(); - setState(343); - match(T__33); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class FormalArgsContext extends ParserRuleContext { - public ArgsListContext argsList() { - return getRuleContext(ArgsListContext.class,0); - } - public FormalArgsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_formalArgs; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterFormalArgs(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitFormalArgs(this); - } - } - - public final FormalArgsContext formalArgs() throws RecognitionException { - FormalArgsContext _localctx = new FormalArgsContext(_ctx, getState()); - enterRule(_localctx, 68, RULE_formalArgs); - try { - setState(347); - switch (_input.LA(1)) { - case T__0: - case T__1: - case T__9: - case T__45: - case T__46: - case Identifier: - case NumLit: - case CoordLit: - case StringLit: - enterOuterAlt(_localctx, 1); - { - setState(345); - argsList(0); - } - break; - case T__10: - enterOuterAlt(_localctx, 2); - { - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ArgsListContext extends ParserRuleContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public ArgsListContext argsList() { - return getRuleContext(ArgsListContext.class,0); - } - public ArgsListContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_argsList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterArgsList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitArgsList(this); - } - } - - public final ArgsListContext argsList() throws RecognitionException { - return argsList(0); - } - - private ArgsListContext argsList(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - ArgsListContext _localctx = new ArgsListContext(_ctx, _parentState); - ArgsListContext _prevctx = _localctx; - int _startState = 70; - enterRecursionRule(_localctx, 70, RULE_argsList, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - setState(350); - expression(); - } - _ctx.stop = _input.LT(-1); - setState(357); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,21,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - { - _localctx = new ArgsListContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_argsList); - setState(352); - if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); - setState(353); - match(T__13); - setState(354); - expression(); - } - } - } - setState(359); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,21,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class FormalParamsContext extends ParserRuleContext { - public ParamsListContext paramsList() { - return getRuleContext(ParamsListContext.class,0); - } - public FormalParamsContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_formalParams; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterFormalParams(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitFormalParams(this); - } - } - - public final FormalParamsContext formalParams() throws RecognitionException { - FormalParamsContext _localctx = new FormalParamsContext(_ctx, getState()); - enterRule(_localctx, 72, RULE_formalParams); - try { - setState(362); - switch (_input.LA(1)) { - case T__3: - case T__4: - case T__5: - case T__6: - case T__7: - enterOuterAlt(_localctx, 1); - { - setState(360); - paramsList(0); - } - break; - case T__10: - enterOuterAlt(_localctx, 2); - { - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ParamsListContext extends ParserRuleContext { - public ParamContext param() { - return getRuleContext(ParamContext.class,0); - } - public ParamsListContext paramsList() { - return getRuleContext(ParamsListContext.class,0); - } - public ParamsListContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_paramsList; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterParamsList(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitParamsList(this); - } - } - - public final ParamsListContext paramsList() throws RecognitionException { - return paramsList(0); - } - - private ParamsListContext paramsList(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - ParamsListContext _localctx = new ParamsListContext(_ctx, _parentState); - ParamsListContext _prevctx = _localctx; - int _startState = 74; - enterRecursionRule(_localctx, 74, RULE_paramsList, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - setState(365); - param(); - } - _ctx.stop = _input.LT(-1); - setState(372); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,23,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - { - _localctx = new ParamsListContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_paramsList); - setState(367); - if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)"); - setState(368); - match(T__13); - setState(369); - param(); - } - } - } - setState(374); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,23,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class ParamContext extends ParserRuleContext { - public TypeContext type() { - return getRuleContext(TypeContext.class,0); - } - public TerminalNode Identifier() { return getToken(ObsidiCodeParser.Identifier, 0); } - public ParamContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_param; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterParam(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitParam(this); - } - } - - public final ParamContext param() throws RecognitionException { - ParamContext _localctx = new ParamContext(_ctx, getState()); - enterRule(_localctx, 76, RULE_param); - try { - enterOuterAlt(_localctx, 1); - { - setState(375); - type(); - setState(376); - match(Identifier); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ExpressionContext extends ParserRuleContext { - public AssignmentExpressionContext assignmentExpression() { - return getRuleContext(AssignmentExpressionContext.class,0); - } - public ExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_expression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitExpression(this); - } - } - - public final ExpressionContext expression() throws RecognitionException { - ExpressionContext _localctx = new ExpressionContext(_ctx, getState()); - enterRule(_localctx, 78, RULE_expression); - try { - enterOuterAlt(_localctx, 1); - { - setState(378); - assignmentExpression(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class AssignmentExpressionContext extends ParserRuleContext { - public ConditionalExpressionContext conditionalExpression() { - return getRuleContext(ConditionalExpressionContext.class,0); - } - public AssignmentContext assignment() { - return getRuleContext(AssignmentContext.class,0); - } - public AssignmentExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_assignmentExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterAssignmentExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitAssignmentExpression(this); - } - } - - public final AssignmentExpressionContext assignmentExpression() throws RecognitionException { - AssignmentExpressionContext _localctx = new AssignmentExpressionContext(_ctx, getState()); - enterRule(_localctx, 80, RULE_assignmentExpression); - try { - setState(382); - switch ( getInterpreter().adaptivePredict(_input,24,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(380); - conditionalExpression(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - setState(381); - assignment(); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class AssignmentContext extends ParserRuleContext { - public LeftHandSideContext leftHandSide() { - return getRuleContext(LeftHandSideContext.class,0); - } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public AssignmentContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_assignment; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterAssignment(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitAssignment(this); - } - } - - public final AssignmentContext assignment() throws RecognitionException { - AssignmentContext _localctx = new AssignmentContext(_ctx, getState()); - enterRule(_localctx, 82, RULE_assignment); - try { - enterOuterAlt(_localctx, 1); - { - setState(384); - leftHandSide(); - setState(385); - match(T__14); - setState(386); - expression(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class LeftHandSideContext extends ParserRuleContext { - public TypeNameContext typeName() { - return getRuleContext(TypeNameContext.class,0); - } - public ListOptContext listOpt() { - return getRuleContext(ListOptContext.class,0); - } - public LeftHandSideContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_leftHandSide; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterLeftHandSide(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitLeftHandSide(this); - } - } - - public final LeftHandSideContext leftHandSide() throws RecognitionException { - LeftHandSideContext _localctx = new LeftHandSideContext(_ctx, getState()); - enterRule(_localctx, 84, RULE_leftHandSide); - try { - enterOuterAlt(_localctx, 1); - { - setState(388); - typeName(0); - setState(389); - listOpt(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ListOptContext extends ParserRuleContext { - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public ListOptContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_listOpt; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterListOpt(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitListOpt(this); - } - } - - public final ListOptContext listOpt() throws RecognitionException { - ListOptContext _localctx = new ListOptContext(_ctx, getState()); - enterRule(_localctx, 86, RULE_listOpt); - try { - setState(396); - switch ( getInterpreter().adaptivePredict(_input,25,_ctx) ) { - case 1: - enterOuterAlt(_localctx, 1); - { - setState(391); - match(T__34); - setState(392); - expression(); - setState(393); - match(T__35); - } - break; - case 2: - enterOuterAlt(_localctx, 2); - { - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ConditionalExpressionContext extends ParserRuleContext { - public ConditionOrExpressionContext conditionOrExpression() { - return getRuleContext(ConditionOrExpressionContext.class,0); - } - public ConditionalExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_conditionalExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterConditionalExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitConditionalExpression(this); - } - } - - public final ConditionalExpressionContext conditionalExpression() throws RecognitionException { - ConditionalExpressionContext _localctx = new ConditionalExpressionContext(_ctx, getState()); - enterRule(_localctx, 88, RULE_conditionalExpression); - try { - enterOuterAlt(_localctx, 1); - { - setState(398); - conditionOrExpression(0); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class ConditionOrExpressionContext extends ParserRuleContext { - public ConditionAndExpressionContext conditionAndExpression() { - return getRuleContext(ConditionAndExpressionContext.class,0); - } - public ConditionOrExpressionContext conditionOrExpression() { - return getRuleContext(ConditionOrExpressionContext.class,0); - } - public ConditionOrExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_conditionOrExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterConditionOrExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitConditionOrExpression(this); - } - } - - public final ConditionOrExpressionContext conditionOrExpression() throws RecognitionException { - return conditionOrExpression(0); - } - - private ConditionOrExpressionContext conditionOrExpression(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - ConditionOrExpressionContext _localctx = new ConditionOrExpressionContext(_ctx, _parentState); - ConditionOrExpressionContext _prevctx = _localctx; - int _startState = 90; - enterRecursionRule(_localctx, 90, RULE_conditionOrExpression, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - setState(401); - conditionAndExpression(0); - } - _ctx.stop = _input.LT(-1); - setState(408); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,26,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - { - _localctx = new ConditionOrExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_conditionOrExpression); - setState(403); - if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(404); - match(T__36); - setState(405); - conditionAndExpression(0); - } - } - } - setState(410); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,26,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class ConditionAndExpressionContext extends ParserRuleContext { - public XOrExpressionContext xOrExpression() { - return getRuleContext(XOrExpressionContext.class,0); - } - public ConditionAndExpressionContext conditionAndExpression() { - return getRuleContext(ConditionAndExpressionContext.class,0); - } - public ConditionAndExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_conditionAndExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterConditionAndExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitConditionAndExpression(this); - } - } - - public final ConditionAndExpressionContext conditionAndExpression() throws RecognitionException { - return conditionAndExpression(0); - } - - private ConditionAndExpressionContext conditionAndExpression(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - ConditionAndExpressionContext _localctx = new ConditionAndExpressionContext(_ctx, _parentState); - ConditionAndExpressionContext _prevctx = _localctx; - int _startState = 92; - enterRecursionRule(_localctx, 92, RULE_conditionAndExpression, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - setState(412); - xOrExpression(0); - } - _ctx.stop = _input.LT(-1); - setState(419); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,27,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - { - _localctx = new ConditionAndExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_conditionAndExpression); - setState(414); - if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(415); - match(T__37); - setState(416); - xOrExpression(0); - } - } - } - setState(421); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,27,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class XOrExpressionContext extends ParserRuleContext { - public EqualityExpressionContext equalityExpression() { - return getRuleContext(EqualityExpressionContext.class,0); - } - public XOrExpressionContext xOrExpression() { - return getRuleContext(XOrExpressionContext.class,0); - } - public XOrExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_xOrExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterXOrExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitXOrExpression(this); - } - } - - public final XOrExpressionContext xOrExpression() throws RecognitionException { - return xOrExpression(0); - } - - private XOrExpressionContext xOrExpression(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - XOrExpressionContext _localctx = new XOrExpressionContext(_ctx, _parentState); - XOrExpressionContext _prevctx = _localctx; - int _startState = 94; - enterRecursionRule(_localctx, 94, RULE_xOrExpression, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - setState(423); - equalityExpression(0); - } - _ctx.stop = _input.LT(-1); - setState(430); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,28,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - { - _localctx = new XOrExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_xOrExpression); - setState(425); - if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(426); - match(T__38); - setState(427); - equalityExpression(0); - } - } - } - setState(432); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,28,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class EqualityExpressionContext extends ParserRuleContext { - public RelationalExpressionContext relationalExpression() { - return getRuleContext(RelationalExpressionContext.class,0); - } - public EqualityExpressionContext equalityExpression() { - return getRuleContext(EqualityExpressionContext.class,0); - } - public EqualityExpressionEndContext equalityExpressionEnd() { - return getRuleContext(EqualityExpressionEndContext.class,0); - } - public EqualityExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_equalityExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterEqualityExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitEqualityExpression(this); - } - } - - public final EqualityExpressionContext equalityExpression() throws RecognitionException { - return equalityExpression(0); - } - - private EqualityExpressionContext equalityExpression(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - EqualityExpressionContext _localctx = new EqualityExpressionContext(_ctx, _parentState); - EqualityExpressionContext _prevctx = _localctx; - int _startState = 96; - enterRecursionRule(_localctx, 96, RULE_equalityExpression, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - setState(434); - relationalExpression(0); - } - _ctx.stop = _input.LT(-1); - setState(440); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,29,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - { - _localctx = new EqualityExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_equalityExpression); - setState(436); - if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(437); - equalityExpressionEnd(); - } - } - } - setState(442); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,29,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class EqualityExpressionEndContext extends ParserRuleContext { - public RelationalExpressionContext relationalExpression() { - return getRuleContext(RelationalExpressionContext.class,0); - } - public EqualityExpressionEndContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_equalityExpressionEnd; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterEqualityExpressionEnd(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitEqualityExpressionEnd(this); - } - } - - public final EqualityExpressionEndContext equalityExpressionEnd() throws RecognitionException { - EqualityExpressionEndContext _localctx = new EqualityExpressionEndContext(_ctx, getState()); - enterRule(_localctx, 98, RULE_equalityExpressionEnd); - try { - setState(447); - switch (_input.LA(1)) { - case T__39: - enterOuterAlt(_localctx, 1); - { - setState(443); - match(T__39); - setState(444); - relationalExpression(0); - } - break; - case T__40: - enterOuterAlt(_localctx, 2); - { - setState(445); - match(T__40); - setState(446); - relationalExpression(0); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class RelationalExpressionContext extends ParserRuleContext { - public AdditiveExpressionContext additiveExpression() { - return getRuleContext(AdditiveExpressionContext.class,0); - } - public RelationalExpressionContext relationalExpression() { - return getRuleContext(RelationalExpressionContext.class,0); - } - public RelationalExpressionEndContext relationalExpressionEnd() { - return getRuleContext(RelationalExpressionEndContext.class,0); - } - public RelationalExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_relationalExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterRelationalExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitRelationalExpression(this); - } - } - - public final RelationalExpressionContext relationalExpression() throws RecognitionException { - return relationalExpression(0); - } - - private RelationalExpressionContext relationalExpression(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - RelationalExpressionContext _localctx = new RelationalExpressionContext(_ctx, _parentState); - RelationalExpressionContext _prevctx = _localctx; - int _startState = 100; - enterRecursionRule(_localctx, 100, RULE_relationalExpression, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - setState(450); - additiveExpression(0); - } - _ctx.stop = _input.LT(-1); - setState(456); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,31,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - { - _localctx = new RelationalExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_relationalExpression); - setState(452); - if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(453); - relationalExpressionEnd(); - } - } - } - setState(458); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,31,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class RelationalExpressionEndContext extends ParserRuleContext { - public AdditiveExpressionContext additiveExpression() { - return getRuleContext(AdditiveExpressionContext.class,0); - } - public RelationalExpressionEndContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_relationalExpressionEnd; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterRelationalExpressionEnd(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitRelationalExpressionEnd(this); - } - } - - public final RelationalExpressionEndContext relationalExpressionEnd() throws RecognitionException { - RelationalExpressionEndContext _localctx = new RelationalExpressionEndContext(_ctx, getState()); - enterRule(_localctx, 102, RULE_relationalExpressionEnd); - try { - setState(467); - switch (_input.LA(1)) { - case T__41: - enterOuterAlt(_localctx, 1); - { - setState(459); - match(T__41); - setState(460); - additiveExpression(0); - } - break; - case T__42: - enterOuterAlt(_localctx, 2); - { - setState(461); - match(T__42); - setState(462); - additiveExpression(0); - } - break; - case T__43: - enterOuterAlt(_localctx, 3); - { - setState(463); - match(T__43); - setState(464); - additiveExpression(0); - } - break; - case T__44: - enterOuterAlt(_localctx, 4); - { - setState(465); - match(T__44); - setState(466); - additiveExpression(0); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class AdditiveExpressionContext extends ParserRuleContext { - public MultiExprContext multiExpr() { - return getRuleContext(MultiExprContext.class,0); - } - public AdditiveExpressionContext additiveExpression() { - return getRuleContext(AdditiveExpressionContext.class,0); - } - public AdditiveExpressionEndContext additiveExpressionEnd() { - return getRuleContext(AdditiveExpressionEndContext.class,0); - } - public AdditiveExpressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_additiveExpression; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterAdditiveExpression(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitAdditiveExpression(this); - } - } - - public final AdditiveExpressionContext additiveExpression() throws RecognitionException { - return additiveExpression(0); - } - - private AdditiveExpressionContext additiveExpression(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - AdditiveExpressionContext _localctx = new AdditiveExpressionContext(_ctx, _parentState); - AdditiveExpressionContext _prevctx = _localctx; - int _startState = 104; - enterRecursionRule(_localctx, 104, RULE_additiveExpression, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - setState(470); - multiExpr(0); - } - _ctx.stop = _input.LT(-1); - setState(476); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,33,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - { - _localctx = new AdditiveExpressionContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_additiveExpression); - setState(472); - if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(473); - additiveExpressionEnd(); - } - } - } - setState(478); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,33,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class AdditiveExpressionEndContext extends ParserRuleContext { - public MultiExprContext multiExpr() { - return getRuleContext(MultiExprContext.class,0); - } - public AdditiveExpressionEndContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_additiveExpressionEnd; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterAdditiveExpressionEnd(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitAdditiveExpressionEnd(this); - } - } - - public final AdditiveExpressionEndContext additiveExpressionEnd() throws RecognitionException { - AdditiveExpressionEndContext _localctx = new AdditiveExpressionEndContext(_ctx, getState()); - enterRule(_localctx, 106, RULE_additiveExpressionEnd); - try { - setState(483); - switch (_input.LA(1)) { - case T__45: - enterOuterAlt(_localctx, 1); - { - setState(479); - match(T__45); - setState(480); - multiExpr(0); - } - break; - case T__46: - enterOuterAlt(_localctx, 2); - { - setState(481); - match(T__46); - setState(482); - multiExpr(0); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class MultiExprContext extends ParserRuleContext { - public UnaryExprContext unaryExpr() { - return getRuleContext(UnaryExprContext.class,0); - } - public MultiExprContext multiExpr() { - return getRuleContext(MultiExprContext.class,0); - } - public MultiExprEndContext multiExprEnd() { - return getRuleContext(MultiExprEndContext.class,0); - } - public MultiExprContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_multiExpr; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterMultiExpr(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitMultiExpr(this); - } - } - - public final MultiExprContext multiExpr() throws RecognitionException { - return multiExpr(0); - } - - private MultiExprContext multiExpr(int _p) throws RecognitionException { - ParserRuleContext _parentctx = _ctx; - int _parentState = getState(); - MultiExprContext _localctx = new MultiExprContext(_ctx, _parentState); - MultiExprContext _prevctx = _localctx; - int _startState = 108; - enterRecursionRule(_localctx, 108, RULE_multiExpr, _p); - try { - int _alt; - enterOuterAlt(_localctx, 1); - { - { - setState(486); - unaryExpr(); - } - _ctx.stop = _input.LT(-1); - setState(492); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,35,_ctx); - while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { - if ( _alt==1 ) { - if ( _parseListeners!=null ) triggerExitRuleEvent(); - _prevctx = _localctx; - { - { - _localctx = new MultiExprContext(_parentctx, _parentState); - pushNewRecursionContext(_localctx, _startState, RULE_multiExpr); - setState(488); - if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)"); - setState(489); - multiExprEnd(); - } - } - } - setState(494); - _errHandler.sync(this); - _alt = getInterpreter().adaptivePredict(_input,35,_ctx); - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public static class MultiExprEndContext extends ParserRuleContext { - public UnaryExprContext unaryExpr() { - return getRuleContext(UnaryExprContext.class,0); - } - public MultiExprEndContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_multiExprEnd; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterMultiExprEnd(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitMultiExprEnd(this); - } - } - - public final MultiExprEndContext multiExprEnd() throws RecognitionException { - MultiExprEndContext _localctx = new MultiExprEndContext(_ctx, getState()); - enterRule(_localctx, 110, RULE_multiExprEnd); - try { - setState(499); - switch (_input.LA(1)) { - case T__47: - enterOuterAlt(_localctx, 1); - { - setState(495); - match(T__47); - setState(496); - unaryExpr(); - } - break; - case T__48: - enterOuterAlt(_localctx, 2); - { - setState(497); - match(T__48); - setState(498); - unaryExpr(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class UnaryExprContext extends ParserRuleContext { - public UnaryExprContext unaryExpr() { - return getRuleContext(UnaryExprContext.class,0); - } - public PrimaryContext primary() { - return getRuleContext(PrimaryContext.class,0); - } - public UnaryExprContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_unaryExpr; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterUnaryExpr(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitUnaryExpr(this); - } - } - - public final UnaryExprContext unaryExpr() throws RecognitionException { - UnaryExprContext _localctx = new UnaryExprContext(_ctx, getState()); - enterRule(_localctx, 112, RULE_unaryExpr); - try { - setState(506); - switch (_input.LA(1)) { - case T__45: - enterOuterAlt(_localctx, 1); - { - setState(501); - match(T__45); - setState(502); - unaryExpr(); - } - break; - case T__46: - enterOuterAlt(_localctx, 2); - { - setState(503); - match(T__46); - setState(504); - unaryExpr(); - } - break; - case T__0: - case T__1: - case T__9: - case Identifier: - case NumLit: - case CoordLit: - case StringLit: - enterOuterAlt(_localctx, 3); - { - setState(505); - primary(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public static class PrimaryContext extends ParserRuleContext { - public LiteralContext literal() { - return getRuleContext(LiteralContext.class,0); - } - public ExpressionContext expression() { - return getRuleContext(ExpressionContext.class,0); - } - public TypeNameContext typeName() { - return getRuleContext(TypeNameContext.class,0); - } - public ListOptContext listOpt() { - return getRuleContext(ListOptContext.class,0); - } - public PrimaryContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - @Override public int getRuleIndex() { return RULE_primary; } - @Override - public void enterRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).enterPrimary(this); - } - @Override - public void exitRule(ParseTreeListener listener) { - if ( listener instanceof ObsidiCodeListener ) ((ObsidiCodeListener)listener).exitPrimary(this); - } - } - - public final PrimaryContext primary() throws RecognitionException { - PrimaryContext _localctx = new PrimaryContext(_ctx, getState()); - enterRule(_localctx, 114, RULE_primary); - try { - setState(516); - switch (_input.LA(1)) { - case T__0: - case T__1: - case NumLit: - case CoordLit: - case StringLit: - enterOuterAlt(_localctx, 1); - { - setState(508); - literal(); - } - break; - case T__9: - enterOuterAlt(_localctx, 2); - { - setState(509); - match(T__9); - setState(510); - expression(); - setState(511); - match(T__10); - } - break; - case Identifier: - enterOuterAlt(_localctx, 3); - { - setState(513); - typeName(0); - setState(514); - listOpt(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } - finally { - exitRule(); - } - return _localctx; - } - - public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { - switch (ruleIndex) { - case 2: - return typeName_sempred((TypeNameContext)_localctx, predIndex); - case 6: - return loads_sempred((LoadsContext)_localctx, predIndex); - case 8: - return roboBodyDcl_sempred((RoboBodyDclContext)_localctx, predIndex); - case 11: - return variableDclList_sempred((VariableDclListContext)_localctx, predIndex); - case 15: - return litList_sempred((LitListContext)_localctx, predIndex); - case 22: - return blockStmtList_sempred((BlockStmtListContext)_localctx, predIndex); - case 29: - return elseIfOpt_sempred((ElseIfOptContext)_localctx, predIndex); - case 35: - return argsList_sempred((ArgsListContext)_localctx, predIndex); - case 37: - return paramsList_sempred((ParamsListContext)_localctx, predIndex); - case 45: - return conditionOrExpression_sempred((ConditionOrExpressionContext)_localctx, predIndex); - case 46: - return conditionAndExpression_sempred((ConditionAndExpressionContext)_localctx, predIndex); - case 47: - return xOrExpression_sempred((XOrExpressionContext)_localctx, predIndex); - case 48: - return equalityExpression_sempred((EqualityExpressionContext)_localctx, predIndex); - case 50: - return relationalExpression_sempred((RelationalExpressionContext)_localctx, predIndex); - case 52: - return additiveExpression_sempred((AdditiveExpressionContext)_localctx, predIndex); - case 54: - return multiExpr_sempred((MultiExprContext)_localctx, predIndex); - } - return true; - } - private boolean typeName_sempred(TypeNameContext _localctx, int predIndex) { - switch (predIndex) { - case 0: - return precpred(_ctx, 1); - } - return true; - } - private boolean loads_sempred(LoadsContext _localctx, int predIndex) { - switch (predIndex) { - case 1: - return precpred(_ctx, 2); - } - return true; - } - private boolean roboBodyDcl_sempred(RoboBodyDclContext _localctx, int predIndex) { - switch (predIndex) { - case 2: - return precpred(_ctx, 2); - } - return true; - } - private boolean variableDclList_sempred(VariableDclListContext _localctx, int predIndex) { - switch (predIndex) { - case 3: - return precpred(_ctx, 1); - } - return true; - } - private boolean litList_sempred(LitListContext _localctx, int predIndex) { - switch (predIndex) { - case 4: - return precpred(_ctx, 2); - } - return true; - } - private boolean blockStmtList_sempred(BlockStmtListContext _localctx, int predIndex) { - switch (predIndex) { - case 5: - return precpred(_ctx, 2); - } - return true; - } - private boolean elseIfOpt_sempred(ElseIfOptContext _localctx, int predIndex) { - switch (predIndex) { - case 6: - return precpred(_ctx, 2); - } - return true; - } - private boolean argsList_sempred(ArgsListContext _localctx, int predIndex) { - switch (predIndex) { - case 7: - return precpred(_ctx, 2); - } - return true; - } - private boolean paramsList_sempred(ParamsListContext _localctx, int predIndex) { - switch (predIndex) { - case 8: - return precpred(_ctx, 2); - } - return true; - } - private boolean conditionOrExpression_sempred(ConditionOrExpressionContext _localctx, int predIndex) { - switch (predIndex) { - case 9: - return precpred(_ctx, 1); - } - return true; - } - private boolean conditionAndExpression_sempred(ConditionAndExpressionContext _localctx, int predIndex) { - switch (predIndex) { - case 10: - return precpred(_ctx, 1); - } - return true; - } - private boolean xOrExpression_sempred(XOrExpressionContext _localctx, int predIndex) { - switch (predIndex) { - case 11: - return precpred(_ctx, 1); - } - return true; - } - private boolean equalityExpression_sempred(EqualityExpressionContext _localctx, int predIndex) { - switch (predIndex) { - case 12: - return precpred(_ctx, 1); - } - return true; - } - private boolean relationalExpression_sempred(RelationalExpressionContext _localctx, int predIndex) { - switch (predIndex) { - case 13: - return precpred(_ctx, 1); - } - return true; - } - private boolean additiveExpression_sempred(AdditiveExpressionContext _localctx, int predIndex) { - switch (predIndex) { - case 14: - return precpred(_ctx, 1); - } - return true; - } - private boolean multiExpr_sempred(MultiExprContext _localctx, int predIndex) { - switch (predIndex) { - case 15: - return precpred(_ctx, 1); - } - return true; - } - - public static final String _serializedATN = - "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3:\u0209\4\2\t\2\4"+ - "\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t"+ - "\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ - "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+ - "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+ - "\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4"+ - ",\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t"+ - "\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\3\2\3\2\3\2"+ - "\3\2\3\3\3\3\3\4\3\4\3\4\3\4\3\4\3\4\7\4\u0083\n\4\f\4\16\4\u0086\13\4"+ - "\3\5\3\5\5\5\u008a\n\5\3\6\3\6\3\7\3\7\3\b\3\b\3\b\3\b\3\b\3\b\3\b\7\b"+ - "\u0097\n\b\f\b\16\b\u009a\13\b\3\t\3\t\3\t\3\t\3\n\3\n\3\n\3\n\3\n\7\n"+ - "\u00a5\n\n\f\n\16\n\u00a8\13\n\3\13\3\13\3\13\5\13\u00ad\n\13\3\f\3\f"+ - "\3\f\3\f\3\r\3\r\3\r\3\r\3\r\3\r\7\r\u00b9\n\r\f\r\16\r\u00bc\13\r\3\16"+ - "\3\16\3\16\3\16\5\16\u00c2\n\16\3\17\3\17\5\17\u00c6\n\17\3\20\3\20\3"+ - "\20\3\20\3\20\5\20\u00cd\n\20\3\21\3\21\3\21\3\21\3\21\3\21\7\21\u00d5"+ - "\n\21\f\21\16\21\u00d8\13\21\3\22\3\22\3\22\3\22\5\22\u00de\n\22\3\23"+ - "\3\23\3\23\3\23\3\23\5\23\u00e5\n\23\3\24\3\24\3\24\3\24\3\24\3\24\3\25"+ - "\3\25\3\25\3\25\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\27\3\27"+ - "\5\27\u00fc\n\27\3\30\3\30\3\30\3\30\3\30\3\30\3\30\3\30\7\30\u0106\n"+ - "\30\f\30\16\30\u0109\13\30\3\31\3\31\3\31\3\31\3\31\3\31\5\31\u0111\n"+ - "\31\3\32\3\32\3\32\3\32\3\32\3\32\5\32\u0119\n\32\3\33\3\33\3\33\3\33"+ - "\3\33\3\33\3\34\3\34\5\34\u0123\n\34\3\35\3\35\3\35\3\35\3\35\3\36\3\36"+ - "\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\37\3\37\3\37\3\37\3\37\3\37"+ - "\3\37\3\37\3\37\3\37\7\37\u013e\n\37\f\37\16\37\u0141\13\37\3 \3 \3 \3"+ - " \3 \3 \5 \u0149\n \3!\3!\5!\u014d\n!\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\""+ - "\3#\3#\3#\3#\3#\3$\3$\5$\u015e\n$\3%\3%\3%\3%\3%\3%\7%\u0166\n%\f%\16"+ - "%\u0169\13%\3&\3&\5&\u016d\n&\3\'\3\'\3\'\3\'\3\'\3\'\7\'\u0175\n\'\f"+ - "\'\16\'\u0178\13\'\3(\3(\3(\3)\3)\3*\3*\5*\u0181\n*\3+\3+\3+\3+\3,\3,"+ - "\3,\3-\3-\3-\3-\3-\5-\u018f\n-\3.\3.\3/\3/\3/\3/\3/\3/\7/\u0199\n/\f/"+ - "\16/\u019c\13/\3\60\3\60\3\60\3\60\3\60\3\60\7\60\u01a4\n\60\f\60\16\60"+ - "\u01a7\13\60\3\61\3\61\3\61\3\61\3\61\3\61\7\61\u01af\n\61\f\61\16\61"+ - "\u01b2\13\61\3\62\3\62\3\62\3\62\3\62\7\62\u01b9\n\62\f\62\16\62\u01bc"+ - "\13\62\3\63\3\63\3\63\3\63\5\63\u01c2\n\63\3\64\3\64\3\64\3\64\3\64\7"+ - "\64\u01c9\n\64\f\64\16\64\u01cc\13\64\3\65\3\65\3\65\3\65\3\65\3\65\3"+ - "\65\3\65\5\65\u01d6\n\65\3\66\3\66\3\66\3\66\3\66\7\66\u01dd\n\66\f\66"+ - "\16\66\u01e0\13\66\3\67\3\67\3\67\3\67\5\67\u01e6\n\67\38\38\38\38\38"+ - "\78\u01ed\n8\f8\168\u01f0\138\39\39\39\39\59\u01f6\n9\3:\3:\3:\3:\3:\5"+ - ":\u01fd\n:\3;\3;\3;\3;\3;\3;\3;\3;\5;\u0207\n;\3;\2\22\6\16\22\30 .@BDFHJLNPRTVXZ\\^`bdfhjlnprt\2\5\4\2\3\4\65\67\3\2\6\7\3\2\b\n\u01ff"+ - "\2v\3\2\2\2\4z\3\2\2\2\6|\3\2\2\2\b\u0089\3\2\2\2\n\u008b\3\2\2\2\f\u008d"+ - "\3\2\2\2\16\u008f\3\2\2\2\20\u009b\3\2\2\2\22\u009f\3\2\2\2\24\u00ac\3"+ - "\2\2\2\26\u00ae\3\2\2\2\30\u00b2\3\2\2\2\32\u00c1\3\2\2\2\34\u00c5\3\2"+ - "\2\2\36\u00cc\3\2\2\2 \u00ce\3\2\2\2\"\u00dd\3\2\2\2$\u00e4\3\2\2\2&\u00e6"+ - "\3\2\2\2(\u00ec\3\2\2\2*\u00f0\3\2\2\2,\u00fb\3\2\2\2.\u00fd\3\2\2\2\60"+ - "\u0110\3\2\2\2\62\u0118\3\2\2\2\64\u011a\3\2\2\2\66\u0122\3\2\2\28\u0124"+ - "\3\2\2\2:\u0129\3\2\2\2<\u0133\3\2\2\2>\u0148\3\2\2\2@\u014c\3\2\2\2B"+ - "\u014e\3\2\2\2D\u0156\3\2\2\2F\u015d\3\2\2\2H\u015f\3\2\2\2J\u016c\3\2"+ - "\2\2L\u016e\3\2\2\2N\u0179\3\2\2\2P\u017c\3\2\2\2R\u0180\3\2\2\2T\u0182"+ - "\3\2\2\2V\u0186\3\2\2\2X\u018e\3\2\2\2Z\u0190\3\2\2\2\\\u0192\3\2\2\2"+ - "^\u019d\3\2\2\2`\u01a8\3\2\2\2b\u01b3\3\2\2\2d\u01c1\3\2\2\2f\u01c3\3"+ - "\2\2\2h\u01d5\3\2\2\2j\u01d7\3\2\2\2l\u01e5\3\2\2\2n\u01e7\3\2\2\2p\u01f5"+ - "\3\2\2\2r\u01fc\3\2\2\2t\u0206\3\2\2\2vw\5\20\t\2wx\5\16\b\2xy\5\22\n"+ - "\2y\3\3\2\2\2z{\t\2\2\2{\5\3\2\2\2|}\b\4\1\2}~\7\64\2\2~\u0084\3\2\2\2"+ - "\177\u0080\f\3\2\2\u0080\u0081\7\5\2\2\u0081\u0083\7\64\2\2\u0082\177"+ - "\3\2\2\2\u0083\u0086\3\2\2\2\u0084\u0082\3\2\2\2\u0084\u0085\3\2\2\2\u0085"+ - "\7\3\2\2\2\u0086\u0084\3\2\2\2\u0087\u008a\5\f\7\2\u0088\u008a\5\n\6\2"+ - "\u0089\u0087\3\2\2\2\u0089\u0088\3\2\2\2\u008a\t\3\2\2\2\u008b\u008c\t"+ - "\3\2\2\u008c\13\3\2\2\2\u008d\u008e\t\4\2\2\u008e\r\3\2\2\2\u008f\u0098"+ - "\b\b\1\2\u0090\u0091\f\4\2\2\u0091\u0092\7\13\2\2\u0092\u0093\7\f\2\2"+ - "\u0093\u0094\7\67\2\2\u0094\u0095\7\r\2\2\u0095\u0097\7\16\2\2\u0096\u0090"+ - "\3\2\2\2\u0097\u009a\3\2\2\2\u0098\u0096\3\2\2\2\u0098\u0099\3\2\2\2\u0099"+ - "\17\3\2\2\2\u009a\u0098\3\2\2\2\u009b\u009c\7\64\2\2\u009c\u009d\7\17"+ - "\2\2\u009d\u009e\7\16\2\2\u009e\21\3\2\2\2\u009f\u00a0\b\n\1\2\u00a0\u00a1"+ - "\5\24\13\2\u00a1\u00a6\3\2\2\2\u00a2\u00a3\f\4\2\2\u00a3\u00a5\5\24\13"+ - "\2\u00a4\u00a2\3\2\2\2\u00a5\u00a8\3\2\2\2\u00a6\u00a4\3\2\2\2\u00a6\u00a7"+ - "\3\2\2\2\u00a7\23\3\2\2\2\u00a8\u00a6\3\2\2\2\u00a9\u00ad\5\26\f\2\u00aa"+ - "\u00ad\5\"\22\2\u00ab\u00ad\7\16\2\2\u00ac\u00a9\3\2\2\2\u00ac\u00aa\3"+ - "\2\2\2\u00ac\u00ab\3\2\2\2\u00ad\25\3\2\2\2\u00ae\u00af\5\b\5\2\u00af"+ - "\u00b0\5\30\r\2\u00b0\u00b1\7\16\2\2\u00b1\27\3\2\2\2\u00b2\u00b3\b\r"+ - "\1\2\u00b3\u00b4\5\32\16\2\u00b4\u00ba\3\2\2\2\u00b5\u00b6\f\3\2\2\u00b6"+ - "\u00b7\7\20\2\2\u00b7\u00b9\5\32\16\2\u00b8\u00b5\3\2\2\2\u00b9\u00bc"+ - "\3\2\2\2\u00ba\u00b8\3\2\2\2\u00ba\u00bb\3\2\2\2\u00bb\31\3\2\2\2\u00bc"+ - "\u00ba\3\2\2\2\u00bd\u00c2\5\34\17\2\u00be\u00bf\7\64\2\2\u00bf\u00c0"+ - "\7\21\2\2\u00c0\u00c2\5\36\20\2\u00c1\u00bd\3\2\2\2\u00c1\u00be\3\2\2"+ - "\2\u00c2\33\3\2\2\2\u00c3\u00c6\5R*\2\u00c4\u00c6\7\64\2\2\u00c5\u00c3"+ - "\3\2\2\2\u00c5\u00c4\3\2\2\2\u00c6\35\3\2\2\2\u00c7\u00c8\5 \21\2\u00c8"+ - "\u00c9\7\22\2\2\u00c9\u00ca\7\64\2\2\u00ca\u00cd\3\2\2\2\u00cb\u00cd\3"+ - "\2\2\2\u00cc\u00c7\3\2\2\2\u00cc\u00cb\3\2\2\2\u00cd\37\3\2\2\2\u00ce"+ - "\u00cf\b\21\1\2\u00cf\u00d0\5t;\2\u00d0\u00d6\3\2\2\2\u00d1\u00d2\f\4"+ - "\2\2\u00d2\u00d3\7\20\2\2\u00d3\u00d5\5t;\2\u00d4\u00d1\3\2\2\2\u00d5"+ - "\u00d8\3\2\2\2\u00d6\u00d4\3\2\2\2\u00d6\u00d7\3\2\2\2\u00d7!\3\2\2\2"+ - "\u00d8\u00d6\3\2\2\2\u00d9\u00da\5$\23\2\u00da\u00db\5(\25\2\u00db\u00de"+ - "\3\2\2\2\u00dc\u00de\5*\26\2\u00dd\u00d9\3\2\2\2\u00dd\u00dc\3\2\2\2\u00de"+ - "#\3\2\2\2\u00df\u00e0\5\b\5\2\u00e0\u00e1\5&\24\2\u00e1\u00e5\3\2\2\2"+ - "\u00e2\u00e3\7\23\2\2\u00e3\u00e5\5&\24\2\u00e4\u00df\3\2\2\2\u00e4\u00e2"+ - "\3\2\2\2\u00e5%\3\2\2\2\u00e6\u00e7\7\64\2\2\u00e7\u00e8\7\f\2\2\u00e8"+ - "\u00e9\5J&\2\u00e9\u00ea\7\r\2\2\u00ea\u00eb\7\16\2\2\u00eb\'\3\2\2\2"+ - "\u00ec\u00ed\5,\27\2\u00ed\u00ee\7\22\2\2\u00ee\u00ef\7\64\2\2\u00ef)"+ - "\3\2\2\2\u00f0\u00f1\7\24\2\2\u00f1\u00f2\7\64\2\2\u00f2\u00f3\7\f\2\2"+ - "\u00f3\u00f4\5J&\2\u00f4\u00f5\7\r\2\2\u00f5\u00f6\7\16\2\2\u00f6\u00f7"+ - "\5,\27\2\u00f7\u00f8\7\25\2\2\u00f8+\3\2\2\2\u00f9\u00fc\5.\30\2\u00fa"+ - "\u00fc\3\2\2\2\u00fb\u00f9\3\2\2\2\u00fb\u00fa\3\2\2\2\u00fc-\3\2\2\2"+ - "\u00fd\u00fe\b\30\1\2\u00fe\u00ff\5\60\31\2\u00ff\u0100\7\16\2\2\u0100"+ - "\u0107\3\2\2\2\u0101\u0102\f\4\2\2\u0102\u0103\5\60\31\2\u0103\u0104\7"+ - "\16\2\2\u0104\u0106\3\2\2\2\u0105\u0101\3\2\2\2\u0106\u0109\3\2\2\2\u0107"+ - "\u0105\3\2\2\2\u0107\u0108\3\2\2\2\u0108/\3\2\2\2\u0109\u0107\3\2\2\2"+ - "\u010a\u010b\5\b\5\2\u010b\u010c\5\30\r\2\u010c\u0111\3\2\2\2\u010d\u0111"+ - "\5\62\32\2\u010e\u0111\5:\36\2\u010f\u0111\5@!\2\u0110\u010a\3\2\2\2\u0110"+ - "\u010d\3\2\2\2\u0110\u010e\3\2\2\2\u0110\u010f\3\2\2\2\u0111\61\3\2\2"+ - "\2\u0112\u0119\3\2\2\2\u0113\u0119\5\64\33\2\u0114\u0119\5\66\34\2\u0115"+ - "\u0119\7\26\2\2\u0116\u0117\7\27\2\2\u0117\u0119\5P)\2\u0118\u0112\3\2"+ - "\2\2\u0118\u0113\3\2\2\2\u0118\u0114\3\2\2\2\u0118\u0115\3\2\2\2\u0118"+ - "\u0116\3\2\2\2\u0119\63\3\2\2\2\u011a\u011b\7\30\2\2\u011b\u011c\7\64"+ - "\2\2\u011c\u011d\7\f\2\2\u011d\u011e\5H%\2\u011e\u011f\7\r\2\2\u011f\65"+ - "\3\2\2\2\u0120\u0123\5R*\2\u0121\u0123\58\35\2\u0122\u0120\3\2\2\2\u0122"+ - "\u0121\3\2\2\2\u0123\67\3\2\2\2\u0124\u0125\5\6\4\2\u0125\u0126\7\f\2"+ - "\2\u0126\u0127\5F$\2\u0127\u0128\7\r\2\2\u01289\3\2\2\2\u0129\u012a\7"+ - "\31\2\2\u012a\u012b\7\f\2\2\u012b\u012c\5P)\2\u012c\u012d\7\r\2\2\u012d"+ - "\u012e\7\16\2\2\u012e\u012f\5,\27\2\u012f\u0130\7\32\2\2\u0130\u0131\7"+ - "\33\2\2\u0131\u0132\7\34\2\2\u0132;\3\2\2\2\u0133\u013f\b\37\1\2\u0134"+ - "\u0135\f\4\2\2\u0135\u0136\7\35\2\2\u0136\u0137\7\f\2\2\u0137\u0138\5"+ - "P)\2\u0138\u0139\7\r\2\2\u0139\u013a\7\16\2\2\u013a\u013b\5,\27\2\u013b"+ - "\u013c\7\36\2\2\u013c\u013e\3\2\2\2\u013d\u0134\3\2\2\2\u013e\u0141\3"+ - "\2\2\2\u013f\u013d\3\2\2\2\u013f\u0140\3\2\2\2\u0140=\3\2\2\2\u0141\u013f"+ - "\3\2\2\2\u0142\u0143\7\37\2\2\u0143\u0144\7\16\2\2\u0144\u0145\5,\27\2"+ - "\u0145\u0146\7 \2\2\u0146\u0149\3\2\2\2\u0147\u0149\3\2\2\2\u0148\u0142"+ - "\3\2\2\2\u0148\u0147\3\2\2\2\u0149?\3\2\2\2\u014a\u014d\5B\"\2\u014b\u014d"+ - "\5D#\2\u014c\u014a\3\2\2\2\u014c\u014b\3\2\2\2\u014dA\3\2\2\2\u014e\u014f"+ - "\7!\2\2\u014f\u0150\7\f\2\2\u0150\u0151\5P)\2\u0151\u0152\7\r\2\2\u0152"+ - "\u0153\7\16\2\2\u0153\u0154\5,\27\2\u0154\u0155\7\"\2\2\u0155C\3\2\2\2"+ - "\u0156\u0157\7#\2\2\u0157\u0158\7\16\2\2\u0158\u0159\5,\27\2\u0159\u015a"+ - "\7$\2\2\u015aE\3\2\2\2\u015b\u015e\5H%\2\u015c\u015e\3\2\2\2\u015d\u015b"+ - "\3\2\2\2\u015d\u015c\3\2\2\2\u015eG\3\2\2\2\u015f\u0160\b%\1\2\u0160\u0161"+ - "\5P)\2\u0161\u0167\3\2\2\2\u0162\u0163\f\4\2\2\u0163\u0164\7\20\2\2\u0164"+ - "\u0166\5P)\2\u0165\u0162\3\2\2\2\u0166\u0169\3\2\2\2\u0167\u0165\3\2\2"+ - "\2\u0167\u0168\3\2\2\2\u0168I\3\2\2\2\u0169\u0167\3\2\2\2\u016a\u016d"+ - "\5L\'\2\u016b\u016d\3\2\2\2\u016c\u016a\3\2\2\2\u016c\u016b\3\2\2\2\u016d"+ - "K\3\2\2\2\u016e\u016f\b\'\1\2\u016f\u0170\5N(\2\u0170\u0176\3\2\2\2\u0171"+ - "\u0172\f\4\2\2\u0172\u0173\7\20\2\2\u0173\u0175\5N(\2\u0174\u0171\3\2"+ - "\2\2\u0175\u0178\3\2\2\2\u0176\u0174\3\2\2\2\u0176\u0177\3\2\2\2\u0177"+ - "M\3\2\2\2\u0178\u0176\3\2\2\2\u0179\u017a\5\b\5\2\u017a\u017b\7\64\2\2"+ - "\u017bO\3\2\2\2\u017c\u017d\5R*\2\u017dQ\3\2\2\2\u017e\u0181\5Z.\2\u017f"+ - "\u0181\5T+\2\u0180\u017e\3\2\2\2\u0180\u017f\3\2\2\2\u0181S\3\2\2\2\u0182"+ - "\u0183\5V,\2\u0183\u0184\7\21\2\2\u0184\u0185\5P)\2\u0185U\3\2\2\2\u0186"+ - "\u0187\5\6\4\2\u0187\u0188\5X-\2\u0188W\3\2\2\2\u0189\u018a\7%\2\2\u018a"+ - "\u018b\5P)\2\u018b\u018c\7&\2\2\u018c\u018f\3\2\2\2\u018d\u018f\3\2\2"+ - "\2\u018e\u0189\3\2\2\2\u018e\u018d\3\2\2\2\u018fY\3\2\2\2\u0190\u0191"+ - "\5\\/\2\u0191[\3\2\2\2\u0192\u0193\b/\1\2\u0193\u0194\5^\60\2\u0194\u019a"+ - "\3\2\2\2\u0195\u0196\f\3\2\2\u0196\u0197\7\'\2\2\u0197\u0199\5^\60\2\u0198"+ - "\u0195\3\2\2\2\u0199\u019c\3\2\2\2\u019a\u0198\3\2\2\2\u019a\u019b\3\2"+ - "\2\2\u019b]\3\2\2\2\u019c\u019a\3\2\2\2\u019d\u019e\b\60\1\2\u019e\u019f"+ - "\5`\61\2\u019f\u01a5\3\2\2\2\u01a0\u01a1\f\3\2\2\u01a1\u01a2\7(\2\2\u01a2"+ - "\u01a4\5`\61\2\u01a3\u01a0\3\2\2\2\u01a4\u01a7\3\2\2\2\u01a5\u01a3\3\2"+ - "\2\2\u01a5\u01a6\3\2\2\2\u01a6_\3\2\2\2\u01a7\u01a5\3\2\2\2\u01a8\u01a9"+ - "\b\61\1\2\u01a9\u01aa\5b\62\2\u01aa\u01b0\3\2\2\2\u01ab\u01ac\f\3\2\2"+ - "\u01ac\u01ad\7)\2\2\u01ad\u01af\5b\62\2\u01ae\u01ab\3\2\2\2\u01af\u01b2"+ - "\3\2\2\2\u01b0\u01ae\3\2\2\2\u01b0\u01b1\3\2\2\2\u01b1a\3\2\2\2\u01b2"+ - "\u01b0\3\2\2\2\u01b3\u01b4\b\62\1\2\u01b4\u01b5\5f\64\2\u01b5\u01ba\3"+ - "\2\2\2\u01b6\u01b7\f\3\2\2\u01b7\u01b9\5d\63\2\u01b8\u01b6\3\2\2\2\u01b9"+ - "\u01bc\3\2\2\2\u01ba\u01b8\3\2\2\2\u01ba\u01bb\3\2\2\2\u01bbc\3\2\2\2"+ - "\u01bc\u01ba\3\2\2\2\u01bd\u01be\7*\2\2\u01be\u01c2\5f\64\2\u01bf\u01c0"+ - "\7+\2\2\u01c0\u01c2\5f\64\2\u01c1\u01bd\3\2\2\2\u01c1\u01bf\3\2\2\2\u01c2"+ - "e\3\2\2\2\u01c3\u01c4\b\64\1\2\u01c4\u01c5\5j\66\2\u01c5\u01ca\3\2\2\2"+ - "\u01c6\u01c7\f\3\2\2\u01c7\u01c9\5h\65\2\u01c8\u01c6\3\2\2\2\u01c9\u01cc"+ - "\3\2\2\2\u01ca\u01c8\3\2\2\2\u01ca\u01cb\3\2\2\2\u01cbg\3\2\2\2\u01cc"+ - "\u01ca\3\2\2\2\u01cd\u01ce\7,\2\2\u01ce\u01d6\5j\66\2\u01cf\u01d0\7-\2"+ - "\2\u01d0\u01d6\5j\66\2\u01d1\u01d2\7.\2\2\u01d2\u01d6\5j\66\2\u01d3\u01d4"+ - "\7/\2\2\u01d4\u01d6\5j\66\2\u01d5\u01cd\3\2\2\2\u01d5\u01cf\3\2\2\2\u01d5"+ - "\u01d1\3\2\2\2\u01d5\u01d3\3\2\2\2\u01d6i\3\2\2\2\u01d7\u01d8\b\66\1\2"+ - "\u01d8\u01d9\5n8\2\u01d9\u01de\3\2\2\2\u01da\u01db\f\3\2\2\u01db\u01dd"+ - "\5l\67\2\u01dc\u01da\3\2\2\2\u01dd\u01e0\3\2\2\2\u01de\u01dc\3\2\2\2\u01de"+ - "\u01df\3\2\2\2\u01dfk\3\2\2\2\u01e0\u01de\3\2\2\2\u01e1\u01e2\7\60\2\2"+ - "\u01e2\u01e6\5n8\2\u01e3\u01e4\7\61\2\2\u01e4\u01e6\5n8\2\u01e5\u01e1"+ - "\3\2\2\2\u01e5\u01e3\3\2\2\2\u01e6m\3\2\2\2\u01e7\u01e8\b8\1\2\u01e8\u01e9"+ - "\5r:\2\u01e9\u01ee\3\2\2\2\u01ea\u01eb\f\3\2\2\u01eb\u01ed\5p9\2\u01ec"+ - "\u01ea\3\2\2\2\u01ed\u01f0\3\2\2\2\u01ee\u01ec\3\2\2\2\u01ee\u01ef\3\2"+ - "\2\2\u01efo\3\2\2\2\u01f0\u01ee\3\2\2\2\u01f1\u01f2\7\62\2\2\u01f2\u01f6"+ - "\5r:\2\u01f3\u01f4\7\63\2\2\u01f4\u01f6\5r:\2\u01f5\u01f1\3\2\2\2\u01f5"+ - "\u01f3\3\2\2\2\u01f6q\3\2\2\2\u01f7\u01f8\7\60\2\2\u01f8\u01fd\5r:\2\u01f9"+ - "\u01fa\7\61\2\2\u01fa\u01fd\5r:\2\u01fb\u01fd\5t;\2\u01fc\u01f7\3\2\2"+ - "\2\u01fc\u01f9\3\2\2\2\u01fc\u01fb\3\2\2\2\u01fds\3\2\2\2\u01fe\u0207"+ - "\5\4\3\2\u01ff\u0200\7\f\2\2\u0200\u0201\5P)\2\u0201\u0202\7\r\2\2\u0202"+ - "\u0207\3\2\2\2\u0203\u0204\5\6\4\2\u0204\u0205\5X-\2\u0205\u0207\3\2\2"+ - "\2\u0206\u01fe\3\2\2\2\u0206\u01ff\3\2\2\2\u0206\u0203\3\2\2\2\u0207u"+ - "\3\2\2\2)\u0084\u0089\u0098\u00a6\u00ac\u00ba\u00c1\u00c5\u00cc\u00d6"+ - "\u00dd\u00e4\u00fb\u0107\u0110\u0118\u0122\u013f\u0148\u014c\u015d\u0167"+ - "\u016c\u0176\u0180\u018e\u019a\u01a5\u01b0\u01ba\u01c1\u01ca\u01d5\u01de"+ - "\u01e5\u01ee\u01f5\u01fc\u0206"; - public static final ATN _ATN = - new ATNDeserializer().deserialize(_serializedATN.toCharArray()); - static { - _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; - for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { - _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); - } - } -} \ No newline at end of file diff --git a/ANTLR/src/Test/build.sh b/ANTLR/src/Test/build.sh index ecae7b4..3dfe127 100644 --- a/ANTLR/src/Test/build.sh +++ b/ANTLR/src/Test/build.sh @@ -1,6 +1,8 @@ #!/bin/bash export CLASSPATH=".:antlr-4.5-complete.jar:$CLASSPATH" +echo building the parser via ANTLR4... java -Xmx500M -cp "antlr-4.5-complete.jar:$CLASSPATH" org.antlr.v4.Tool ObsidiCode.g4 +echo compiling paser... javac ObsidiCode*.java diff --git a/ANTLR/src/Test/clean.sh b/ANTLR/src/Test/clean.sh index 6ccaad9..6534b8c 100644 --- a/ANTLR/src/Test/clean.sh +++ b/ANTLR/src/Test/clean.sh @@ -1,4 +1,7 @@ #!/bin/bash +echo cleaning binaries rm *.class +echo cleaning java files rm ObsidiCode*.java +echo cleaning tokens rm *.tokens diff --git a/ANTLR/src/Test/run.sh b/ANTLR/src/Test/run.sh index 0535141..874e330 100644 --- a/ANTLR/src/Test/run.sh +++ b/ANTLR/src/Test/run.sh @@ -1,4 +1,5 @@ #!/bin/bash/ export CLASSPATH=".:antlr-4.5-complete.jar:$CLASSPATH" +echo starting up... java org.antlr.v4.runtime.misc.TestRig ObsidiCode prog -gui $1 diff --git a/ANTLR/src/Test/test_decl.txt b/ANTLR/src/Test/test_decl.txt index a800aaa..9105854 100644 --- a/ANTLR/src/Test/test_decl.txt +++ b/ANTLR/src/Test/test_decl.txt @@ -1,21 +1,28 @@ Test_robo: LOAD("Attack-bot") -LOAD("Bow-bot") //This be le tests con many! /*Whattup maite!?*/ -NUM a = 5.2, b = 2 -STRING string -BOOL bool -COORD chest = (5,1,23) - VOID Start() NUM c = 10 - //a = b + c <--- not allowed in this grammar, needs expression part! + a = b + c SIGNAL guardian (a, b) END Start NUM TestNumMethod(NUM x, STRING s) RETURN s + x END TestNumMethod + +VOID AnotherTestMethod(BOOL atHome) + FOREVER + COORD currentPos = (1,23,45) + + IF(currentPos.x GREATER_THAN 10) + BREAK + END IF + ELSE IF (atHome) + //Something to find chest mayby + END ELSEIF + END FOREVERi +END AnotherTestMethod From 9e591dc969b2b73ec2bcc37e113b56f2c8fbcc59 Mon Sep 17 00:00:00 2001 From: Tobias Morell Date: Fri, 1 Apr 2016 08:35:50 +0200 Subject: [PATCH 55/55] ANTLR/ : Done implementing grammar - started implementing AST --- ANTLR/src/Test/ObsidiCode.g4 | 10 ++++++---- ANTLR/src/Test/build.sh | 3 +-- ANTLR/src/Test/test_decl.txt | 5 ++++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/ANTLR/src/Test/ObsidiCode.g4 b/ANTLR/src/Test/ObsidiCode.g4 index c4f19ea..de59657 100644 --- a/ANTLR/src/Test/ObsidiCode.g4 +++ b/ANTLR/src/Test/ObsidiCode.g4 @@ -37,7 +37,7 @@ prog : roboDcl loads roboBodyDcl; //Types and literals: literal - : NumLit + : NumLit | 'TRUE' | 'FALSE' | CoordLit @@ -63,7 +63,7 @@ referenceType ; loads - : loads 'LOAD' '(' StringLit ')' '\n' + : loads 'LOAD' '(' StringLit ')' '\n' | //lambda ; @@ -94,7 +94,7 @@ variableDcl ; variableInitializer : assignmentExpression - | Identifier + | Identifier ; listInitializer : litList 'END' Identifier @@ -260,4 +260,6 @@ unaryExpr primary : literal | '(' expression ')' - | typeName listOpt; + | typeName listOpt + | methodInvocation +; diff --git a/ANTLR/src/Test/build.sh b/ANTLR/src/Test/build.sh index 3dfe127..923b6eb 100644 --- a/ANTLR/src/Test/build.sh +++ b/ANTLR/src/Test/build.sh @@ -2,7 +2,6 @@ export CLASSPATH=".:antlr-4.5-complete.jar:$CLASSPATH" echo building the parser via ANTLR4... -java -Xmx500M -cp "antlr-4.5-complete.jar:$CLASSPATH" org.antlr.v4.Tool ObsidiCode.g4 +java -Xmx500M -cp "antlr-4.5-complete.jar:$CLASSPATH" org.antlr.v4.Tool -package ObsidiCode.g4 echo compiling paser... javac ObsidiCode*.java - diff --git a/ANTLR/src/Test/test_decl.txt b/ANTLR/src/Test/test_decl.txt index 9105854..d33f023 100644 --- a/ANTLR/src/Test/test_decl.txt +++ b/ANTLR/src/Test/test_decl.txt @@ -1,5 +1,8 @@ Test_robo: LOAD("Attack-bot") +LOAD("Bow-bot") + +BOOL works = true //This be le tests con many! /*Whattup maite!?*/ @@ -24,5 +27,5 @@ VOID AnotherTestMethod(BOOL atHome) ELSE IF (atHome) //Something to find chest mayby END ELSEIF - END FOREVERi + END FOREVER END AnotherTestMethod