From 287dc589baa8656a20d978d0b06aa4f1f4aa3c07 Mon Sep 17 00:00:00 2001 From: aldosa <590340+aldosa@users.noreply.github.com> Date: Fri, 10 Sep 2021 14:27:57 -0700 Subject: [PATCH 01/82] update readme.md Fixed syntax, spelling, orthography,etc. Advise removing other unnecessary md files to wiki. --- README.md | 90 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 48 insertions(+), 42 deletions(-) diff --git a/README.md b/README.md index bc7f371d..15d203ab 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# C# Lex Yacc # +# C# lex and yacc # ![Test status](http://teststatusbadge.azurewebsites.net/api/status/mmaitre314/securestringcodegen) @@ -11,89 +11,95 @@ [![NuGet](https://img.shields.io/nuget/v/sly.svg)](https://www.nuget.org/packages/sly) -CSLY is highly inspired by the python lex yacc library ([PLY](http://www.dabeaz.com/ply/)) and aims at easen the writing of lexer and parser with C#. +Csly is inspired by the Python lex yacc library ([PLY](http://www.dabeaz.com/ply/)) and aims +to simplify generating lexer/parsers in C#. ## Getting started ## -If you're too impatient to further read this readme here is -a [quick getting started](https://github.com/b3b00/csly/wiki/getting-started) that will guide you through the implementation of a dumb parser. +If you'd like to get coding right away, read +the [quick getting-started guide](https://github.com/b3b00/csly/wiki/getting-started) hich will guide you through the implementation of a basic parser.parser. -## full documentation ## +## Documentation and examples ## -Complete documentation can be found in the [wiki](https://github.com/b3b00/csly/wiki) +Complete documentation can be found in the [wiki](https://github.com/b3b00/csly/wiki). For a list of more advanced +samples check out the samples folder in the repo. -## CSLY special features ## +## Csly special features ## -CSLY provide some special features that make it easier or safer to use. +Csly is packed with special features that make it simpler to use, maintainable, and type-safe. -### fully embedded ### +### Fully embeddable ### -CSLY has been thought to avoid any extra build step. Parser generators often need a build time step to generate target language source code that do the parse job. -Juste include a nuget and configure your lexer/parser in pure C# code. +Csly has been designed to avoid extra build steps. Parser generators often need a build-time step + to generate target language source code. That is not the case with csly. + A simple Nuget command will configure csly with for use in a 100% .NET implementation. ->### CSLY does not need a build time step and easen your build / CI process +>### Csly does not need a build-time step, simplifying the build/CI process -### compact lexer/parser definition ### +### Compact lexer/parser definition ### -A lexer/parser is defined with only 2 files : - * a C# ```enum``` for the lexer - * a C# ```class``` for the parser +The csly lexer/parser is defined with only 2 types: + - a C# ```enum``` for the lexer + - a C# ```class``` for the parser -Lexeme and parser production rules are defined with c# ```attributes``` making notation even more compact. -this features already exists with parser combinators (like [sprache](https://github.com/sprache/Sprache) or [Eto.Parse](https://github.com/picoe/Eto.Parse)), but productions rules are defined using either [BNF](https://github.com/b3b00/csly/wiki/BNF-Parser) or [EBNF](https://github.com/b3b00/csly/wiki/EBNF-Parser) notation which I think is more natural and easier to understand for maintenance. +Lexeme and parser production rules are defined using C# ```custom attributes``` making your code compact and readable. + Although these features already exists with parser combinators (like [Sprache](https://github.com/sprache/Sprache) + or [Eto.Parse](https://github.com/picoe/Eto.Parse)), + csly can use productions rules are defined using either [BNF](https://github.com/b3b00/csly/wiki/BNF-Parser) or + [EBNF](https://github.com/b3b00/csly/wiki/EBNF-Parser) notation, which I think is more natural and easier to understand, assuring maintainability. ->### Define languages in a very compact and isolated way. +>### Define languages in a very compact and dependency-free way. -See [Lexer](https://github.com/b3b00/csly/wiki/Lexer) for lexers definition. -And [BNF](https://github.com/b3b00/csly/wiki/BNF-Parser) or [EBNF](https://github.com/b3b00/csly/wiki/EBNF-Parser) for parser definitions. +See [Lexer](https://github.com/b3b00/csly/wiki/Lexer) for lexers definition and [BNF](https://github.com/b3b00/csly/wiki/BNF-Parser) or [EBNF](https://github.com/b3b00/csly/wiki/EBNF-Parser) for parser definitions. ### Fully and Strictly typed ### - CSLY is strictly typed, every parser is defines according to its input and output types. For further reading about parser typing, head to [typing section](typing) to correctly type your parser. + Csly is strictly typed, so every parser you define renders according to its input and output types. + For additional details on parser typing, head to the [typing section](typing). >### Be more confident in parser inputs and outputs validity. -### expression parsing ### +### Expression parsing ### -Many language needs parsing expressions (boolean or numeric). - A recursive descent parser is hard to maintain when parsing expressions with multiple precedence levels. - So CSLY offers a way to express expression parsing using only operator tokens and precedence level. - CSLY will then generates production rules to parse expressions. It also manages precedence and left or right associativity. +Many domain-specific languages need parsing expressions (boolean or numeric). + A recursive-descent parser is hard to maintain when parsing expressions with multiple precedence levels. For that reason, csly offers a way to express expression-parsing using only operator tokens and + a simple-to-understand precedence scheme. + Csly will then generate production rules to parse expressions, managing precedence and either left-or-right associativity. ->### Get rid of the burden of writing an expression parser. +>### Avoid burdensome expression parser home-made implementations. see [expression parsing](https://github.com/b3b00/csly/wiki/expression-parsing) -### indented languages support ### +### Indentable languages support ### -Some languages use indentation to deonte blocks (think of Python or Yaml ). -CSLY provides a way to manage this. Head to [Indented Languages](https://github.com/b3b00/csly/wiki/indented-languages) +Some languages use indentation to denote functional blocks, like Python or Yaml. +Csly provides native support for indentation. Head to [Indented Languages](https://github.com/b3b00/csly/wiki/Indented-languages) ->### Easily use indentation to make your language structure more readable. +>### Easily use indentation to make your language more readable. -### generic lexer ### +### Generic lexer ### -Lexemes are often similar from one language to another. So CSLY introduces a Generic Lexer that defines common lexemes that can be reused across languages. furthermore the generic has better performance than a regex based lexer. +Lexemes are often similar from one language to another. Csly introduces a generic lexer that defines common lexemes and which can be reused across languages. +The generic lexer has better performance than a regex-based lexer. >### Reuse common token definition and take avantage of a better lexer performance. +See [Generic lexer](https://github.com/b3b00/csly/wiki/GenericLexer) for the generic lexer implementation and [Lexer](https://github.com/b3b00/wiki/Lexer) for a general presentation on rolling your own. -See [Generic lexer](https://github.com/b3b00/csly/wiki/GenericLexer) for generic lexer and [Lexer](https://github.com/b3b00/wiki/Lexer) for general presentation. +### What Csly is and isn't ### -### What is and what is not CSLY ### +#### Csly is not #### -#### CSLY is not #### +Csly is not a fully-featured parser generator like [ANTLR](http://www.antlr.org/). +You should therefore not use it to define strongly-typed languages like C# or Java. -CSLY is not a full featured parser generator like [ANTLR](http://www.antlr.org/). -Hence you should not use it to define a full featured language (say C# or Java). +#### Csly is #### -#### CSLY is #### - -CSLY is dedicated to small [Domain-Specific Languages](https://en.wikipedia.org/wiki/Domain-specific_language) that can easily be embedded in a C# code base. +Csly is perfect for small [Domain-Specific Languages](https://en.wikipedia.org/wiki/Domain-specific_language) that are bundled in C# applications. ## Installation ## From 30e8614899af2a653411da876975ac50cba4c8ad Mon Sep 17 00:00:00 2001 From: aldosa <590340+aldosa@users.noreply.github.com> Date: Fri, 10 Sep 2021 15:07:34 -0700 Subject: [PATCH 02/82] Update README.md Fixed additional typos --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 15d203ab..635c82f4 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ to simplify generating lexer/parsers in C#. ## Getting started ## If you'd like to get coding right away, read -the [quick getting-started guide](https://github.com/b3b00/csly/wiki/getting-started) hich will guide you through the implementation of a basic parser.parser. +the [quick getting-started guide](https://github.com/b3b00/csly/wiki/getting-started), which will guide you through the implementation of a basic parser. ## Documentation and examples ## From 5575421703a3f74312027450fabfa64c78b291bf Mon Sep 17 00:00:00 2001 From: aldosa <590340+aldosa@users.noreply.github.com> Date: Fri, 10 Sep 2021 15:14:17 -0700 Subject: [PATCH 03/82] Update README.md Fixed syntax, orthography and readability. --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 635c82f4..7ce7b830 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ Csly is packed with special features that make it simpler to use, maintainable, Csly has been designed to avoid extra build steps. Parser generators often need a build-time step to generate target language source code. That is not the case with csly. - A simple Nuget command will configure csly with for use in a 100% .NET implementation. + A simple Nuget command will configure csly for use in a 100% .NET implementation. >### Csly does not need a build-time step, simplifying the build/CI process @@ -44,9 +44,9 @@ The csly lexer/parser is defined with only 2 types: - a C# ```class``` for the parser Lexeme and parser production rules are defined using C# ```custom attributes``` making your code compact and readable. - Although these features already exists with parser combinators (like [Sprache](https://github.com/sprache/Sprache) + Although these features already exist with parser combinators (like [Sprache](https://github.com/sprache/Sprache) or [Eto.Parse](https://github.com/picoe/Eto.Parse)), - csly can use productions rules are defined using either [BNF](https://github.com/b3b00/csly/wiki/BNF-Parser) or + csly can use productions rules defined using either [BNF](https://github.com/b3b00/csly/wiki/BNF-Parser) or [EBNF](https://github.com/b3b00/csly/wiki/EBNF-Parser) notation, which I think is more natural and easier to understand, assuring maintainability. @@ -59,16 +59,16 @@ See [Lexer](https://github.com/b3b00/csly/wiki/Lexer) for lexers definition and Csly is strictly typed, so every parser you define renders according to its input and output types. For additional details on parser typing, head to the [typing section](typing). ->### Be more confident in parser inputs and outputs validity. +>### Be more confident that your parser will generate valid inputs and outputs. ### Expression parsing ### Many domain-specific languages need parsing expressions (boolean or numeric). - A recursive-descent parser is hard to maintain when parsing expressions with multiple precedence levels. For that reason, csly offers a way to express expression-parsing using only operator tokens and + A recursive-descent parser is hard to maintain when parsing expressions have multiple precedence levels. For that reason, csly offers a way to generate expression-parsing rules using only operator tokens and a simple-to-understand precedence scheme. Csly will then generate production rules to parse expressions, managing precedence and either left-or-right associativity. ->### Avoid burdensome expression parser home-made implementations. +>### Avoid burdensome home-made expression parser implementations. see [expression parsing](https://github.com/b3b00/csly/wiki/expression-parsing) @@ -83,9 +83,9 @@ Csly provides native support for indentation. Head to [Indented Languages](https ### Generic lexer ### Lexemes are often similar from one language to another. Csly introduces a generic lexer that defines common lexemes and which can be reused across languages. -The generic lexer has better performance than a regex-based lexer. +The built-in generic lexer has better performance than a regex-based lexer. ->### Reuse common token definition and take avantage of a better lexer performance. +>### Reuse common token definition and take avantage of better lexer performance. See [Generic lexer](https://github.com/b3b00/csly/wiki/GenericLexer) for the generic lexer implementation and [Lexer](https://github.com/b3b00/wiki/Lexer) for a general presentation on rolling your own. @@ -95,7 +95,7 @@ See [Generic lexer](https://github.com/b3b00/csly/wiki/GenericLexer) for the gen #### Csly is not #### Csly is not a fully-featured parser generator like [ANTLR](http://www.antlr.org/). -You should therefore not use it to define strongly-typed languages like C# or Java. +You should therefore not use it to define strong-typed languages like C# or Java. #### Csly is #### From 28746a96f601dc2ac393e449a62eed266966bd42 Mon Sep 17 00:00:00 2001 From: aldosa <590340+aldosa@users.noreply.github.com> Date: Fri, 10 Sep 2021 15:15:14 -0700 Subject: [PATCH 04/82] Update README.md Removed additional period in banner --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7ce7b830..64075af7 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ Lexeme and parser production rules are defined using C# ```custom attributes``` [EBNF](https://github.com/b3b00/csly/wiki/EBNF-Parser) notation, which I think is more natural and easier to understand, assuring maintainability. ->### Define languages in a very compact and dependency-free way. +>### Define languages in a very compact and dependency-free way See [Lexer](https://github.com/b3b00/csly/wiki/Lexer) for lexers definition and [BNF](https://github.com/b3b00/csly/wiki/BNF-Parser) or [EBNF](https://github.com/b3b00/csly/wiki/EBNF-Parser) for parser definitions. From c10ed4d4236bf874a2bd2effdc8b4da759ad8c92 Mon Sep 17 00:00:00 2001 From: aldosa <590340+aldosa@users.noreply.github.com> Date: Fri, 10 Sep 2021 15:46:24 -0700 Subject: [PATCH 05/82] Still fighting formatting rules --- README.md | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 64075af7..ea2801c7 100644 --- a/README.md +++ b/README.md @@ -40,15 +40,13 @@ Csly has been designed to avoid extra build steps. Parser generators often need ### Compact lexer/parser definition ### The csly lexer/parser is defined with only 2 types: - - a C# ```enum``` for the lexer - - a C# ```class``` for the parser - -Lexeme and parser production rules are defined using C# ```custom attributes``` making your code compact and readable. - Although these features already exist with parser combinators (like [Sprache](https://github.com/sprache/Sprache) - or [Eto.Parse](https://github.com/picoe/Eto.Parse)), - csly can use productions rules defined using either [BNF](https://github.com/b3b00/csly/wiki/BNF-Parser) or - [EBNF](https://github.com/b3b00/csly/wiki/EBNF-Parser) notation, which I think is more natural and easier to understand, assuring maintainability. + - a C# ```enum``` for the lexer, + - a C# ```class``` for the parser. +Lexeme and parser production rules are defined using C# custom attributes making your code compact and readable. +Although these features already exist with parser combinators (like [Sprache](https://github.com/sprache/Sprache) +or [Eto.Parse](https://github.com/picoe/Eto.Parse)), +csly can use productions rules defined using either [BNF](https://github.com/b3b00/csly/wiki/BNF-Parser) or [EBNF](https://github.com/b3b00/csly/wiki/EBNF-Parser) notation, which I think is more natural and easier to understand, assuring maintainability. >### Define languages in a very compact and dependency-free way @@ -64,9 +62,7 @@ See [Lexer](https://github.com/b3b00/csly/wiki/Lexer) for lexers definition and ### Expression parsing ### Many domain-specific languages need parsing expressions (boolean or numeric). - A recursive-descent parser is hard to maintain when parsing expressions have multiple precedence levels. For that reason, csly offers a way to generate expression-parsing rules using only operator tokens and - a simple-to-understand precedence scheme. - Csly will then generate production rules to parse expressions, managing precedence and either left-or-right associativity. +A recursive-descent parser is hard to maintain when parsing expressions have multiple precedence levels. For that reason, csly offers a way to generate expression-parsing rules using only operator tokens and a simple-to-understand precedence scheme. Csly will then generate production rules to parse expressions, managing precedence and either left-or-right associativity. >### Avoid burdensome home-made expression parser implementations. From 97764e2bf47eca8db88db483e275f289025c4d80 Mon Sep 17 00:00:00 2001 From: aldosa <590340+aldosa@users.noreply.github.com> Date: Fri, 10 Sep 2021 15:49:53 -0700 Subject: [PATCH 06/82] Update README.md small corrections --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ea2801c7..8dac292f 100644 --- a/README.md +++ b/README.md @@ -95,7 +95,7 @@ You should therefore not use it to define strong-typed languages like C# or Jav #### Csly is #### -Csly is perfect for small [Domain-Specific Languages](https://en.wikipedia.org/wiki/Domain-specific_language) that are bundled in C# applications. +Csly is perfect for small [domain-specific languages (DSLs)](https://en.wikipedia.org/wiki/Domain-specific_language) that can be bundled in C# applications for end-users to interact with your application using natural language, for example. ## Installation ## From eae687e954f543a825b944a6f454e88354d37173 Mon Sep 17 00:00:00 2001 From: "codesee-architecture-diagrams[bot]" <86324825+codesee-architecture-diagrams[bot]@users.noreply.github.com> Date: Tue, 28 Sep 2021 19:11:55 +0000 Subject: [PATCH 07/82] Add CodeSee architecture diagram workflow to repository --- .github/workflows/codesee-arch-diagram.yml | 81 ++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 .github/workflows/codesee-arch-diagram.yml diff --git a/.github/workflows/codesee-arch-diagram.yml b/.github/workflows/codesee-arch-diagram.yml new file mode 100644 index 00000000..0e91a385 --- /dev/null +++ b/.github/workflows/codesee-arch-diagram.yml @@ -0,0 +1,81 @@ +on: + push: + branches: + - dev + pull_request_target: + types: [opened, synchronize, reopened] + +name: CodeSee Map + +jobs: + test_map_action: + runs-on: ubuntu-latest + continue-on-error: true + name: Run CodeSee Map Analysis + steps: + - name: checkout + id: checkout + uses: actions/checkout@v2 + with: + repository: ${{ github.event.pull_request.head.repo.full_name }} + ref: ${{ github.event.pull_request.head.ref }} + fetch-depth: 0 + + # codesee-detect-languages has an output with id languages. + - name: Detect Languages + id: detect-languages + uses: Codesee-io/codesee-detect-languages-action@latest + + - name: Configure JDK 16 + uses: actions/setup-java@v2 + if: ${{ fromJSON(steps.detect-languages.outputs.languages).java }} + with: + java-version: '16' + distribution: 'zulu' + + # CodeSee Maps Go support uses a static binary so there's no setup step required. + + - name: Configure Node.js 14 + uses: actions/setup-node@v2 + if: ${{ fromJSON(steps.detect-languages.outputs.languages).javascript }} + with: + node-version: '14' + + - name: Configure Python 3.x + uses: actions/setup-python@v2 + if: ${{ fromJSON(steps.detect-languages.outputs.languages).python }} + with: + python-version: '3.x' + architecture: 'x64' + + - name: Configure Ruby '3.x' + uses: ruby/setup-ruby@v1 + if: ${{ fromJSON(steps.detect-languages.outputs.languages).ruby }} + with: + ruby-version: '3.0' + + # CodeSee Maps Rust support uses a static binary so there's no setup step required. + + - name: Generate Map + id: generate-map + uses: Codesee-io/codesee-map-action@latest + with: + step: map + github_ref: ${{ github.ref }} + languages: ${{ steps.detect-languages.outputs.languages }} + + - name: Upload Map + id: upload-map + uses: Codesee-io/codesee-map-action@latest + with: + step: mapUpload + api_token: ${{ secrets.CODESEE_ARCH_DIAG_API_TOKEN }} + github_ref: ${{ github.ref }} + + - name: Insights + id: insights + uses: Codesee-io/codesee-map-action@latest + with: + step: insights + api_token: ${{ secrets.CODESEE_ARCH_DIAG_API_TOKEN }} + github_ref: ${{ github.ref }} From 1f487235971e9ec8541cdd392fe148ecef4a2283 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Fri, 1 Oct 2021 13:55:31 +0200 Subject: [PATCH 08/82] cleaning --- .../generator/ExpressionRulesGenerator.cs | 26 +++++++++---------- sly/parser/syntax/grammar/TerminalClause.cs | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/sly/parser/generator/ExpressionRulesGenerator.cs b/sly/parser/generator/ExpressionRulesGenerator.cs index dca82d1c..55b8d054 100644 --- a/sly/parser/generator/ExpressionRulesGenerator.cs +++ b/sly/parser/generator/ExpressionRulesGenerator.cs @@ -55,9 +55,9 @@ public ExpressionRulesGenerator(string i18n = null) I18n = i18n; } - public BuildResult> BuildExpressionRules( + public BuildResult> BuildExpressionRules( ParserConfiguration configuration, Type parserClass, - BuildResult> result) where IN : struct + BuildResult> result) { var methods = parserClass.GetMethods().ToList(); methods = methods.Where(m => @@ -108,8 +108,8 @@ public BuildResult> BuildExpressionRules( return result; } - private string GetOperandNonTerminal(Type parserClass, ParserConfiguration configuration, - BuildResult> result) where IN : struct + private string GetOperandNonTerminal(Type parserClass, ParserConfiguration configuration, + BuildResult> result) { List methods; methods = parserClass.GetMethods().ToList(); @@ -133,12 +133,12 @@ private string GetOperandNonTerminal(Type parserClass, ParserConfigurat if (operandMethods.Count == 1) { var operandMethod = operandMethods.Single(); - operandNonTerminalName = GetNonTerminalNameFromProductionMethod(operandMethod); + operandNonTerminalName = GetNonTerminalNameFromProductionMethod(operandMethod); } else { operandNonTerminalName = $"{parserClass.Name}_operand"; - var operandNonTerminals = operandMethods.Select(x => GetNonTerminalNameFromProductionMethod(x)); + var operandNonTerminals = operandMethods.Select(GetNonTerminalNameFromProductionMethod); var operandNonTerminal = new NonTerminal(operandNonTerminalName); @@ -162,7 +162,7 @@ private string GetOperandNonTerminal(Type parserClass, ParserConfigurat return operandNonTerminalName; } - private string GetNonTerminalNameFromProductionMethod(MethodInfo operandMethod) where IN : struct + private string GetNonTerminalNameFromProductionMethod(MethodInfo operandMethod) { string operandNonTerminal = null; if (operandMethod.GetCustomAttributes().ToList() @@ -176,9 +176,9 @@ private string GetNonTerminalNameFromProductionMethod(MethodInfo operan } - private void GenerateExpressionParser(ParserConfiguration configuration, + private void GenerateExpressionParser(ParserConfiguration configuration, string operandNonTerminal, Dictionary>> operationsByPrecedence, - string parserClassName) where IN : struct + string parserClassName) { var precedences = operationsByPrecedence.Keys.ToList(); precedences.Sort(); @@ -209,7 +209,7 @@ private void GenerateExpressionParser(ParserConfiguration conf entrypoint.Rules.Add(rule); } - private NonTerminal BuildPrecedenceNonTerminal(string name, string nextName, List> operations) where IN : struct + private NonTerminal BuildPrecedenceNonTerminal(string name, string nextName, List> operations) { var nonTerminal = new NonTerminal(name, new List>()); @@ -283,8 +283,8 @@ private NonTerminal BuildPrecedenceNonTerminal(string name, string nextN return nonTerminal; } - private string GetNonTerminalNameForPrecedence(int precedence, - Dictionary>> operationsByPrecedence, string operandName) where IN : struct + private string GetNonTerminalNameForPrecedence(int precedence, + Dictionary>> operationsByPrecedence, string operandName) { if (precedence > 0) { @@ -295,7 +295,7 @@ private string GetNonTerminalNameForPrecedence(int precedence, return operandName; } - private string GetNonTerminalNameForPrecedence(int precedence, List operators) where IN : struct + private string GetNonTerminalNameForPrecedence(int precedence, List operators) { var operatorsPart = operators .Select(oper => oper.ToString()) diff --git a/sly/parser/syntax/grammar/TerminalClause.cs b/sly/parser/syntax/grammar/TerminalClause.cs index 7bcd2b85..6bccbbdc 100644 --- a/sly/parser/syntax/grammar/TerminalClause.cs +++ b/sly/parser/syntax/grammar/TerminalClause.cs @@ -82,7 +82,7 @@ public override string ToString() return b.ToString(); } - public string Dump() + public new string Dump() { return ExpectedToken.ToString(); } From 8c80b5497b368c540069e82512297a8d9d696637 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Wed, 6 Oct 2021 16:12:25 +0200 Subject: [PATCH 09/82] clean todos --- ParserTests/res/coverage.info | 8979 +++++++++++++++++ sly/lexer/fsm/FSMLexer.cs | 7 +- .../EBNFRecursiveDescentSyntaxParser.cs | 5 - 3 files changed, 8981 insertions(+), 10 deletions(-) create mode 100644 ParserTests/res/coverage.info diff --git a/ParserTests/res/coverage.info b/ParserTests/res/coverage.info new file mode 100644 index 00000000..d891acaa --- /dev/null +++ b/ParserTests/res/coverage.info @@ -0,0 +1,8979 @@ +SF:C:\Users\olduh\dev\csly\sly\EnumConverter.cs +FN:8,IN sly.EnumConverter::ConvertIntToEnum(System.Int32) +FNDA:138,IN sly.EnumConverter::ConvertIntToEnum(System.Int32) +DA:9,138 +DA:10,138 +DA:11,138 +DA:12,3458 +DA:13,1591 +DA:14,1591 +DA:15,1591 +DA:16,1591 +DA:17,138 +DA:18,138 +DA:20,1453 +DA:22,0 +DA:23,138 +BRDA:11,20,0,138 +BRDA:12,118,1,1591 +BRDA:16,103,0,138 +BRDA:16,103,1,1453 +BRDA:12,118,0,0 +BRDA:11,20,1,0 +FN:25,IN sly.EnumConverter::ConvertStringToEnum(System.String) +FNDA:99,IN sly.EnumConverter::ConvertStringToEnum(System.String) +DA:26,99 +DA:27,99 +DA:28,99 +DA:29,1 +DA:30,1 +DA:32,98 +DA:33,98 +BRDA:28,22,0,1 +BRDA:28,22,1,98 +LF:20 +LH:19 +BRF:8 +BRH:6 +FNF:2 +FNH:2 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\parser\ParseError.cs +FN:13,sly.parser.ErrorType sly.parser.ParseError::get_ErrorType() +FNDA:13403,sly.parser.ErrorType sly.parser.ParseError::get_ErrorType() +DA:14,13403 +FN:14,System.Int32 sly.parser.ParseError::get_Column() +FNDA:19,System.Int32 sly.parser.ParseError::get_Column() +DA:15,19 +FN:15,System.String sly.parser.ParseError::get_ErrorMessage() +FNDA:0,System.String sly.parser.ParseError::get_ErrorMessage() +DA:16,0 +FN:16,System.Int32 sly.parser.ParseError::get_Line() +FNDA:20,System.Int32 sly.parser.ParseError::get_Line() +DA:17,20 +FN:26,System.Int32 sly.parser.ParseError::CompareTo(System.Object) +FNDA:61,System.Int32 sly.parser.ParseError::CompareTo(System.Object) +DA:27,61 +DA:28,61 +DA:29,61 +DA:30,61 +DA:31,61 +DA:32,61 +DA:33,61 +DA:35,62 +DA:36,105 +DA:37,77 +DA:38,61 +DA:40,61 +DA:41,61 +BRDA:30,16,0,61 +BRDA:32,30,0,0 +BRDA:32,30,1,61 +BRDA:33,58,0,0 +BRDA:33,58,1,61 +BRDA:35,84,0,1 +BRDA:35,84,1,61 +BRDA:36,96,0,44 +BRDA:36,96,1,61 +BRDA:37,109,0,16 +BRDA:37,109,1,61 +BRDA:30,16,1,61 +LF:17 +LH:16 +BRF:12 +BRH:10 +FNF:5 +FNH:4 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\parser\Parser.cs +FN:20,System.String sly.parser.Parser`2::get_I18n() +FNDA:485,System.String sly.parser.Parser`2::get_I18n() +DA:21,485 +FN:22,sly.lexer.ILexer`1 sly.parser.Parser`2::get_Lexer() +FNDA:1077,sly.lexer.ILexer`1 sly.parser.Parser`2::get_Lexer() +DA:23,1077 +FN:23,System.Object sly.parser.Parser`2::get_Instance() +FNDA:474,System.Object sly.parser.Parser`2::get_Instance() +DA:24,474 +FN:24,sly.parser.ISyntaxParser`2 sly.parser.Parser`2::get_SyntaxParser() +FNDA:1540,sly.parser.ISyntaxParser`2 sly.parser.Parser`2::get_SyntaxParser() +DA:25,1540 +FN:25,sly.parser.generator.visitor.SyntaxTreeVisitor`2 sly.parser.Parser`2::get_Visitor() +FNDA:1056,sly.parser.generator.visitor.SyntaxTreeVisitor`2 sly.parser.Parser`2::get_Visitor() +DA:26,1056 +FN:26,sly.parser.generator.ParserConfiguration`2 sly.parser.Parser`2::get_Configuration() +FNDA:8383,sly.parser.generator.ParserConfiguration`2 sly.parser.Parser`2::get_Configuration() +DA:27,8383 +FN:33,sly.buildresult.BuildResult`1> sly.parser.Parser`2::BuildExpressionParser(sly.buildresult.BuildResult`1>,System.String) +FNDA:237,sly.buildresult.BuildResult`1> sly.parser.Parser`2::BuildExpressionParser(sly.buildresult.BuildResult`1>,System.String) +DA:34,237 +DA:35,237 +DA:36,237 +DA:37,237 +DA:38,236 +DA:39,236 +DA:40,236 +DA:41,236 +DA:42,236 +DA:43,236 +DA:44,236 +DA:46,236 +DA:47,0 +DA:49,236 +DA:50,236 +DA:51,236 +BRDA:40,88,0,236 +BRDA:40,88,1,236 +BRDA:46,126,0,0 +BRDA:46,126,1,236 +FN:57,sly.parser.ParseResult`2 sly.parser.Parser`2::Parse(System.String,System.String) +FNDA:832,sly.parser.ParseResult`2 sly.parser.Parser`2::Parse(System.String,System.String) +DA:58,832 +DA:59,832 +DA:60,830 +FN:63,sly.parser.ParseResult`2 sly.parser.Parser`2::ParseWithContext(System.String,System.Object,System.String) +FNDA:835,sly.parser.ParseResult`2 sly.parser.Parser`2::ParseWithContext(System.String,System.Object,System.String) +DA:64,835 +DA:65,835 +DA:66,835 +DA:67,835 +DA:68,5 +DA:69,5 +DA:70,5 +DA:71,5 +DA:72,5 +DA:73,5 +DA:76,830 +DA:77,830 +DA:78,830 +DA:79,11966 +DA:80,5153 +DA:81,5153 +DA:82,5153 +DA:83,5149 +DA:84,5149 +DA:85,5149 +DA:86,5149 +DA:87,5149 +DA:88,5153 +DA:90,830 +DA:93,828 +DA:94,833 +BRDA:67,26,0,5 +BRDA:67,26,1,830 +BRDA:79,181,1,5153 +BRDA:82,117,0,5 +BRDA:82,117,1,5148 +BRDA:82,133,0,5149 +BRDA:82,133,1,5153 +BRDA:79,181,0,830 +FN:99,sly.parser.ParseResult`2 sly.parser.Parser`2::ParseWithContext(System.Collections.Generic.IList`1>,System.Object,System.String) +FNDA:830,sly.parser.ParseResult`2 sly.parser.Parser`2::ParseWithContext(System.Collections.Generic.IList`1>,System.Object,System.String) +DA:100,830 +DA:101,830 +DA:103,830 +DA:104,830 +DA:105,830 +DA:106,830 +DA:107,819 +DA:108,819 +DA:109,817 +DA:110,817 +DA:111,817 +DA:112,817 +DA:114,11 +DA:115,11 +DA:116,11 +DA:117,61 +DA:118,11 +DA:119,55 +DA:120,11 +DA:121,50 +DA:122,11 +DA:123,11 +DA:124,11 +DA:126,11 +DA:127,11 +DA:128,11 +DA:130,828 +DA:131,828 +BRDA:106,41,0,819 +BRDA:106,41,1,11 +BRDA:106,57,0,819 +BRDA:106,57,1,11 +BRDA:117,155,0,7 +BRDA:117,155,1,11 +BRDA:117,191,0,7 +BRDA:117,191,1,11 +BRDA:119,347,1,11 +BRDA:121,260,0,7 +BRDA:121,260,1,11 +BRDA:119,347,0,11 +FN:13,System.Void sly.parser.Parser`2::.ctor(System.String,sly.parser.ISyntaxParser`2,sly.parser.generator.visitor.SyntaxTreeVisitor`2) +FNDA:237,System.Void sly.parser.Parser`2::.ctor(System.String,sly.parser.ISyntaxParser`2,sly.parser.generator.visitor.SyntaxTreeVisitor`2) +DA:14,237 +DA:15,237 +DA:16,237 +DA:17,237 +DA:18,237 +DA:19,237 +LF:85 +LH:84 +BRF:24 +BRH:23 +FNF:11 +FNH:11 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\parser\ParseResult.cs +FN:7,OUT sly.parser.ParseResult`2::get_Result() +FNDA:1749,OUT sly.parser.ParseResult`2::get_Result() +DA:8,1749 +FN:9,sly.parser.syntax.tree.ISyntaxNode`1 sly.parser.ParseResult`2::get_SyntaxTree() +FNDA:819,sly.parser.syntax.tree.ISyntaxNode`1 sly.parser.ParseResult`2::get_SyntaxTree() +DA:10,819 +FN:11,System.Boolean sly.parser.ParseResult`2::get_IsError() +FNDA:1664,System.Boolean sly.parser.ParseResult`2::get_IsError() +DA:12,1664 +FN:13,System.Boolean sly.parser.ParseResult`2::get_IsOk() +FNDA:39,System.Boolean sly.parser.ParseResult`2::get_IsOk() +DA:14,39 +FN:15,System.Collections.Generic.List`1 sly.parser.ParseResult`2::get_Errors() +FNDA:60,System.Collections.Generic.List`1 sly.parser.ParseResult`2::get_Errors() +DA:16,60 +LF:5 +LH:5 +BRF:0 +BRH:0 +FNF:5 +FNH:5 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\parser\SyntaxParseResult.cs +FN:7,sly.parser.syntax.tree.ISyntaxNode`1 sly.parser.SyntaxParseResult`1::get_Root() +FNDA:139614,sly.parser.syntax.tree.ISyntaxNode`1 sly.parser.SyntaxParseResult`1::get_Root() +DA:8,139614 +FN:9,System.Boolean sly.parser.SyntaxParseResult`1::get_IsError() +FNDA:320990,System.Boolean sly.parser.SyntaxParseResult`1::get_IsError() +DA:10,320990 +FN:11,System.Boolean sly.parser.SyntaxParseResult`1::get_IsOk() +FNDA:60430,System.Boolean sly.parser.SyntaxParseResult`1::get_IsOk() +DA:12,60430 +FN:13,System.Collections.Generic.List`1> sly.parser.SyntaxParseResult`1::get_Errors() +FNDA:314791,System.Collections.Generic.List`1> sly.parser.SyntaxParseResult`1::get_Errors() +DA:14,314791 +FN:15,System.Int32 sly.parser.SyntaxParseResult`1::get_EndingPosition() +FNDA:267611,System.Int32 sly.parser.SyntaxParseResult`1::get_EndingPosition() +DA:16,267611 +FN:17,System.Boolean sly.parser.SyntaxParseResult`1::get_IsEnded() +FNDA:53705,System.Boolean sly.parser.SyntaxParseResult`1::get_IsEnded() +DA:18,53705 +FN:19,System.Collections.Generic.List`1 sly.parser.SyntaxParseResult`1::get_Expecting() +FNDA:46401,System.Collections.Generic.List`1 sly.parser.SyntaxParseResult`1::get_Expecting() +DA:20,46401 +FN:22,System.Void sly.parser.SyntaxParseResult`1::AddExpectings(System.Collections.Generic.IEnumerable`1) +FNDA:15467,System.Void sly.parser.SyntaxParseResult`1::AddExpectings(System.Collections.Generic.IEnumerable`1) +DA:23,15467 +DA:24,15467 +DA:25,15467 +DA:26,15467 +DA:27,15467 +DA:28,15467 +DA:29,15467 +BRDA:24,12,0,15467 +BRDA:24,12,1,15467 +LF:14 +LH:14 +BRF:2 +BRH:2 +FNF:8 +FNH:8 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\parser\UnexpectedTokenSyntaxError.cs +FN:32,sly.lexer.Token`1 sly.parser.UnexpectedTokenSyntaxError`1::get_UnexpectedToken() +FNDA:13793,sly.lexer.Token`1 sly.parser.UnexpectedTokenSyntaxError`1::get_UnexpectedToken() +DA:33,13793 +FN:34,System.Collections.Generic.List`1 sly.parser.UnexpectedTokenSyntaxError`1::get_ExpectedTokens() +FNDA:74754,System.Collections.Generic.List`1 sly.parser.UnexpectedTokenSyntaxError`1::get_ExpectedTokens() +DA:35,74754 +FN:39,System.Int32 sly.parser.UnexpectedTokenSyntaxError`1::get_Line() +FNDA:126,System.Int32 sly.parser.UnexpectedTokenSyntaxError`1::get_Line() +DA:40,126 +DA:41,126 +DA:42,126 +DA:43,126 +BRDA:41,8,0,0 +BRDA:41,8,1,126 +BRDA:41,28,0,0 +BRDA:41,28,1,126 +BRDA:42,60,0,0 +BRDA:42,60,1,126 +FN:48,System.Int32 sly.parser.UnexpectedTokenSyntaxError`1::get_Column() +FNDA:126,System.Int32 sly.parser.UnexpectedTokenSyntaxError`1::get_Column() +DA:49,126 +DA:50,126 +DA:51,126 +DA:52,126 +BRDA:50,8,0,0 +BRDA:50,8,1,126 +BRDA:50,28,0,0 +BRDA:50,28,1,126 +BRDA:51,60,0,0 +BRDA:51,60,1,126 +FN:57,System.String sly.parser.UnexpectedTokenSyntaxError`1::get_ErrorMessage() +FNDA:0,System.String sly.parser.UnexpectedTokenSyntaxError`1::get_ErrorMessage() +DA:58,0 +DA:59,0 +DA:60,0 +DA:61,0 +DA:62,0 +DA:63,0 +DA:64,0 +DA:65,0 +DA:66,0 +DA:67,0 +DA:69,0 +DA:70,0 +DA:71,0 +DA:72,0 +DA:73,0 +DA:74,0 +DA:75,0 +DA:78,0 +DA:80,0 +DA:81,0 +DA:84,0 +DA:85,0 +DA:86,0 +DA:87,0 +DA:88,0 +DA:89,0 +DA:91,0 +DA:93,0 +DA:94,0 +BRDA:60,16,0,0 +BRDA:63,27,0,0 +BRDA:63,27,1,0 +BRDA:63,47,0,0 +BRDA:63,47,1,0 +BRDA:60,16,1,0 +BRDA:71,65,0,0 +BRDA:71,65,1,0 +BRDA:71,85,0,0 +BRDA:71,85,1,0 +BRDA:80,104,0,0 +BRDA:80,104,1,0 +BRDA:80,124,0,0 +BRDA:84,187,1,0 +BRDA:84,187,0,0 +BRDA:80,124,1,0 +FN:97,System.String sly.parser.UnexpectedTokenSyntaxError`1::ToString() +FNDA:0,System.String sly.parser.UnexpectedTokenSyntaxError`1::ToString() +DA:98,0 +DA:99,0 +DA:100,0 +FN:13,System.Void sly.parser.UnexpectedTokenSyntaxError`1::.ctor(sly.lexer.Token`1,System.String,T[]) +FNDA:13382,System.Void sly.parser.UnexpectedTokenSyntaxError`1::.ctor(sly.lexer.Token`1,System.String,T[]) +DA:14,13382 +DA:15,13382 +DA:16,13382 +DA:17,13382 +DA:19,13382 +DA:20,13382 +DA:21,13382 +DA:22,13382 +DA:23,13382 +DA:24,13382 +DA:26,0 +DA:27,0 +DA:28,0 +DA:30,13382 +BRDA:17,22,0,8829 +BRDA:17,22,1,4553 +BRDA:20,48,0,13382 +BRDA:20,48,1,0 +LF:56 +LH:21 +BRF:32 +BRH:9 +FNF:7 +FNH:5 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\syntax\tree\GroupSyntaxNode.cs +FN:6,System.Void sly.parser.syntax.tree.GroupSyntaxNode`1::.ctor(System.String) +FNDA:17,System.Void sly.parser.syntax.tree.GroupSyntaxNode`1::.ctor(System.String) +DA:7,17 +DA:8,17 +DA:9,17 +FN:10,System.Void sly.parser.syntax.tree.GroupSyntaxNode`1::.ctor(System.String,System.Collections.Generic.List`1>) +FNDA:17,System.Void sly.parser.syntax.tree.GroupSyntaxNode`1::.ctor(System.String,System.Collections.Generic.List`1>) +DA:11,17 +DA:12,17 +DA:13,17 +DA:14,17 +LF:7 +LH:7 +BRF:0 +BRH:0 +FNF:2 +FNH:2 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\syntax\tree\ManySyntaxNode.cs +FN:10,System.Boolean sly.parser.syntax.tree.ManySyntaxNode`1::get_IsManyTokens() +FNDA:116,System.Boolean sly.parser.syntax.tree.ManySyntaxNode`1::get_IsManyTokens() +DA:11,116 +FN:12,System.Boolean sly.parser.syntax.tree.ManySyntaxNode`1::get_IsManyValues() +FNDA:234,System.Boolean sly.parser.syntax.tree.ManySyntaxNode`1::get_IsManyValues() +DA:13,234 +FN:14,System.Boolean sly.parser.syntax.tree.ManySyntaxNode`1::get_IsManyGroups() +FNDA:17,System.Boolean sly.parser.syntax.tree.ManySyntaxNode`1::get_IsManyGroups() +DA:15,17 +FN:18,System.Void sly.parser.syntax.tree.ManySyntaxNode`1::Add(sly.parser.syntax.tree.ISyntaxNode`1) +FNDA:129,System.Void sly.parser.syntax.tree.ManySyntaxNode`1::Add(sly.parser.syntax.tree.ISyntaxNode`1) +DA:19,129 +DA:20,129 +DA:21,129 +FN:6,System.Void sly.parser.syntax.tree.ManySyntaxNode`1::.ctor(System.String) +FNDA:106,System.Void sly.parser.syntax.tree.ManySyntaxNode`1::.ctor(System.String) +DA:7,106 +DA:8,106 +DA:9,106 +LF:9 +LH:9 +BRF:0 +BRH:0 +FNF:5 +FNH:5 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\syntax\tree\OptionSyntaxNode.cs +FN:7,System.Boolean sly.parser.syntax.tree.OptionSyntaxNode`1::get_IsGroupOption() +FNDA:34,System.Boolean sly.parser.syntax.tree.OptionSyntaxNode`1::get_IsGroupOption() +DA:8,34 +FN:9,System.Void sly.parser.syntax.tree.OptionSyntaxNode`1::.ctor(System.String,System.Collections.Generic.List`1>,System.Reflection.MethodInfo) +FNDA:26,System.Void sly.parser.syntax.tree.OptionSyntaxNode`1::.ctor(System.String,System.Collections.Generic.List`1>,System.Reflection.MethodInfo) +DA:10,26 +DA:11,26 +DA:12,52 +LF:4 +LH:4 +BRF:0 +BRH:0 +FNF:2 +FNH:2 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\syntax\tree\SyntaxLeaf.cs +FN:14,sly.lexer.Token`1 sly.parser.syntax.tree.SyntaxLeaf`1::get_Token() +FNDA:4682,sly.lexer.Token`1 sly.parser.syntax.tree.SyntaxLeaf`1::get_Token() +DA:15,4682 +FN:15,System.Boolean sly.parser.syntax.tree.SyntaxLeaf`1::get_Discarded() +FNDA:649,System.Boolean sly.parser.syntax.tree.SyntaxLeaf`1::get_Discarded() +DA:16,649 +FN:16,System.String sly.parser.syntax.tree.SyntaxLeaf`1::get_Name() +FNDA:19,System.String sly.parser.syntax.tree.SyntaxLeaf`1::get_Name() +DA:17,19 +FN:6,System.Void sly.parser.syntax.tree.SyntaxLeaf`1::.ctor(sly.lexer.Token`1,System.Boolean) +FNDA:40455,System.Void sly.parser.syntax.tree.SyntaxLeaf`1::.ctor(sly.lexer.Token`1,System.Boolean) +DA:7,40455 +DA:8,40455 +DA:9,40455 +DA:10,40455 +DA:11,40455 +LF:8 +LH:8 +BRF:0 +BRH:0 +FNF:4 +FNH:4 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\syntax\tree\SyntaxNode.cs +FN:16,System.Collections.Generic.List`1> sly.parser.syntax.tree.SyntaxNode`1::get_Children() +FNDA:37345,System.Collections.Generic.List`1> sly.parser.syntax.tree.SyntaxNode`1::get_Children() +DA:17,37345 +FN:18,System.Reflection.MethodInfo sly.parser.syntax.tree.SyntaxNode`1::get_Visitor() +FNDA:47735,System.Reflection.MethodInfo sly.parser.syntax.tree.SyntaxNode`1::get_Visitor() +DA:19,47735 +FN:20,System.Boolean sly.parser.syntax.tree.SyntaxNode`1::get_IsByPassNode() +FNDA:47442,System.Boolean sly.parser.syntax.tree.SyntaxNode`1::get_IsByPassNode() +DA:21,47442 +FN:22,System.Boolean sly.parser.syntax.tree.SyntaxNode`1::get_IsEmpty() +FNDA:16,System.Boolean sly.parser.syntax.tree.SyntaxNode`1::get_IsEmpty() +DA:23,16 +BRDA:23,6,0,16 +BRDA:23,6,1,0 +FN:24,sly.parser.generator.Affix sly.parser.syntax.tree.SyntaxNode`1::get_ExpressionAffix() +FNDA:4786,sly.parser.generator.Affix sly.parser.syntax.tree.SyntaxNode`1::get_ExpressionAffix() +DA:25,4786 +FN:27,System.Boolean sly.parser.syntax.tree.SyntaxNode`1::get_Discarded() +FNDA:5,System.Boolean sly.parser.syntax.tree.SyntaxNode`1::get_Discarded() +DA:28,5 +FN:28,System.String sly.parser.syntax.tree.SyntaxNode`1::get_Name() +FNDA:20046,System.String sly.parser.syntax.tree.SyntaxNode`1::get_Name() +DA:29,20046 +FN:32,sly.parser.generator.OperationMetaData`1 sly.parser.syntax.tree.SyntaxNode`1::get_Operation() +FNDA:25501,sly.parser.generator.OperationMetaData`1 sly.parser.syntax.tree.SyntaxNode`1::get_Operation() +DA:33,25501 +FN:34,System.Boolean sly.parser.syntax.tree.SyntaxNode`1::get_IsExpressionNode() +FNDA:4957,System.Boolean sly.parser.syntax.tree.SyntaxNode`1::get_IsExpressionNode() +DA:35,4957 +FN:36,System.Boolean sly.parser.syntax.tree.SyntaxNode`1::get_IsBinaryOperationNode() +FNDA:4745,System.Boolean sly.parser.syntax.tree.SyntaxNode`1::get_IsBinaryOperationNode() +DA:37,4745 +BRDA:37,6,0,219 +BRDA:37,6,1,4526 +FN:37,System.Boolean sly.parser.syntax.tree.SyntaxNode`1::get_IsUnaryOperationNode() +FNDA:0,System.Boolean sly.parser.syntax.tree.SyntaxNode`1::get_IsUnaryOperationNode() +DA:38,0 +BRDA:38,6,0,0 +BRDA:38,6,1,0 +FN:38,System.Int32 sly.parser.syntax.tree.SyntaxNode`1::get_Precedence() +FNDA:34,System.Int32 sly.parser.syntax.tree.SyntaxNode`1::get_Precedence() +DA:39,34 +BRDA:39,6,0,0 +BRDA:39,6,1,34 +FN:41,sly.parser.generator.Associativity sly.parser.syntax.tree.SyntaxNode`1::get_Associativity() +FNDA:81,sly.parser.generator.Associativity sly.parser.syntax.tree.SyntaxNode`1::get_Associativity() +DA:42,81 +BRDA:42,6,0,81 +BRDA:42,6,1,0 +BRDA:42,14,0,0 +BRDA:42,14,1,81 +FN:43,System.Boolean sly.parser.syntax.tree.SyntaxNode`1::get_IsLeftAssociative() +FNDA:81,System.Boolean sly.parser.syntax.tree.SyntaxNode`1::get_IsLeftAssociative() +DA:44,81 +FN:48,sly.parser.syntax.tree.ISyntaxNode`1 sly.parser.syntax.tree.SyntaxNode`1::get_Left() +FNDA:9,sly.parser.syntax.tree.ISyntaxNode`1 sly.parser.syntax.tree.SyntaxNode`1::get_Left() +DA:49,9 +DA:50,9 +DA:51,9 +DA:52,9 +DA:53,9 +DA:54,18 +DA:55,18 +DA:56,9 +DA:58,9 +DA:59,9 +BRDA:51,11,0,9 +BRDA:54,24,0,9 +BRDA:54,24,1,9 +BRDA:55,39,0,9 +BRDA:55,39,1,9 +BRDA:51,11,1,9 +FN:64,sly.parser.syntax.tree.ISyntaxNode`1 sly.parser.syntax.tree.SyntaxNode`1::get_Right() +FNDA:43,sly.parser.syntax.tree.ISyntaxNode`1 sly.parser.syntax.tree.SyntaxNode`1::get_Right() +DA:65,43 +DA:66,43 +DA:67,43 +DA:68,43 +DA:69,43 +DA:70,43 +DA:71,43 +DA:72,0 +DA:73,86 +DA:74,43 +DA:76,43 +DA:77,43 +BRDA:67,11,0,43 +BRDA:70,24,0,43 +BRDA:70,24,1,0 +BRDA:72,40,0,0 +BRDA:72,40,1,43 +BRDA:73,52,0,43 +BRDA:73,52,1,43 +BRDA:67,11,1,43 +FN:9,System.Void sly.parser.syntax.tree.SyntaxNode`1::.ctor(System.String,System.Collections.Generic.List`1>,System.Reflection.MethodInfo) +FNDA:20030,System.Void sly.parser.syntax.tree.SyntaxNode`1::.ctor(System.String,System.Collections.Generic.List`1>,System.Reflection.MethodInfo) +DA:10,20030 +DA:11,20030 +DA:12,20030 +DA:13,20030 +DA:14,20030 +DA:15,20030 +BRDA:13,33,0,0 +BRDA:13,33,1,20030 +LF:42 +LH:40 +BRF:28 +BRH:19 +FNF:17 +FNH:16 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\syntax\grammar\ChoiceClause.cs +FN:9,System.Boolean sly.parser.syntax.grammar.ChoiceClause`1::get_IsDiscarded() +FNDA:439,System.Boolean sly.parser.syntax.grammar.ChoiceClause`1::get_IsDiscarded() +DA:10,439 +FN:10,System.Boolean sly.parser.syntax.grammar.ChoiceClause`1::get_IsTerminalChoice() +FNDA:5182,System.Boolean sly.parser.syntax.grammar.ChoiceClause`1::get_IsTerminalChoice() +DA:11,5182 +BRDA:11,12,0,12 +BRDA:11,12,1,701 +BRDA:11,48,0,12 +BRDA:11,48,1,701 +FN:11,System.Boolean sly.parser.syntax.grammar.ChoiceClause`1::get_IsNonTerminalChoice() +FNDA:278,System.Boolean sly.parser.syntax.grammar.ChoiceClause`1::get_IsNonTerminalChoice() +DA:12,278 +BRDA:12,12,0,5 +BRDA:12,12,1,52 +BRDA:12,48,0,5 +BRDA:12,48,1,52 +FN:13,System.Collections.Generic.List`1> sly.parser.syntax.grammar.ChoiceClause`1::get_Choices() +FNDA:3088,System.Collections.Generic.List`1> sly.parser.syntax.grammar.ChoiceClause`1::get_Choices() +DA:14,3088 +FN:37,System.Boolean sly.parser.syntax.grammar.ChoiceClause`1::MayBeEmpty() +FNDA:30,System.Boolean sly.parser.syntax.grammar.ChoiceClause`1::MayBeEmpty() +DA:38,30 +DA:39,30 +DA:40,30 +FN:14,System.Void sly.parser.syntax.grammar.ChoiceClause`1::.ctor(sly.parser.syntax.grammar.IClause`1) +FNDA:127,System.Void sly.parser.syntax.grammar.ChoiceClause`1::.ctor(sly.parser.syntax.grammar.IClause`1) +DA:15,127 +DA:16,127 +DA:17,127 +DA:18,127 +FN:19,System.Void sly.parser.syntax.grammar.ChoiceClause`1::.ctor(System.Collections.Generic.List`1>) +FNDA:54,System.Void sly.parser.syntax.grammar.ChoiceClause`1::.ctor(System.Collections.Generic.List`1>) +DA:20,54 +DA:21,54 +DA:22,54 +DA:23,54 +FN:24,System.Void sly.parser.syntax.grammar.ChoiceClause`1::.ctor(sly.parser.syntax.grammar.IClause`1,System.Collections.Generic.List`1>) +FNDA:85,System.Void sly.parser.syntax.grammar.ChoiceClause`1::.ctor(sly.parser.syntax.grammar.IClause`1,System.Collections.Generic.List`1>) +DA:25,85 +DA:26,85 +DA:27,85 +DA:28,85 +FN:33,System.String sly.parser.syntax.grammar.ChoiceClause`1/<>c::b__15_0(sly.parser.syntax.grammar.IClause`1) +FNDA:74,System.String sly.parser.syntax.grammar.ChoiceClause`1/<>c::b__15_0(sly.parser.syntax.grammar.IClause`1) +DA:34,74 +LF:20 +LH:20 +BRF:8 +BRH:8 +FNF:9 +FNH:9 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\syntax\grammar\ClauseSequence.cs +FN:14,System.Collections.Generic.List`1> sly.parser.syntax.grammar.ClauseSequence`1::get_Clauses() +FNDA:4185,System.Collections.Generic.List`1> sly.parser.syntax.grammar.ClauseSequence`1::get_Clauses() +DA:15,4185 +FN:17,System.Boolean sly.parser.syntax.grammar.ClauseSequence`1::MayBeEmpty() +FNDA:0,System.Boolean sly.parser.syntax.grammar.ClauseSequence`1::MayBeEmpty() +DA:18,0 +DA:19,0 +DA:20,0 +FN:23,System.Void sly.parser.syntax.grammar.ClauseSequence`1::AddRange(System.Collections.Generic.List`1>) +FNDA:540,System.Void sly.parser.syntax.grammar.ClauseSequence`1::AddRange(System.Collections.Generic.List`1>) +DA:24,540 +DA:25,540 +DA:26,540 +FN:28,System.Void sly.parser.syntax.grammar.ClauseSequence`1::AddRange(sly.parser.syntax.grammar.ClauseSequence`1) +FNDA:540,System.Void sly.parser.syntax.grammar.ClauseSequence`1::AddRange(sly.parser.syntax.grammar.ClauseSequence`1) +DA:29,540 +DA:30,540 +DA:31,540 +FN:8,System.Void sly.parser.syntax.grammar.ClauseSequence`1::.ctor(sly.parser.syntax.grammar.IClause`1) +FNDA:1215,System.Void sly.parser.syntax.grammar.ClauseSequence`1::.ctor(sly.parser.syntax.grammar.IClause`1) +DA:9,1215 +DA:10,1215 +DA:11,1215 +DA:12,1215 +DA:13,1215 +FN:35,System.String sly.parser.syntax.grammar.ClauseSequence`1/<>c::b__8_0(sly.parser.syntax.grammar.IClause`1) +FNDA:0,System.String sly.parser.syntax.grammar.ClauseSequence`1/<>c::b__8_0(sly.parser.syntax.grammar.IClause`1) +DA:36,0 +LF:16 +LH:12 +BRF:0 +BRH:0 +FNF:6 +FNH:4 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\syntax\grammar\GroupClause.cs +FN:19,System.Collections.Generic.List`1> sly.parser.syntax.grammar.GroupClause`1::get_Clauses() +FNDA:332,System.Collections.Generic.List`1> sly.parser.syntax.grammar.GroupClause`1::get_Clauses() +DA:20,332 +FN:28,System.Void sly.parser.syntax.grammar.GroupClause`1::AddRange(sly.parser.syntax.grammar.GroupClause`1) +FNDA:56,System.Void sly.parser.syntax.grammar.GroupClause`1::AddRange(sly.parser.syntax.grammar.GroupClause`1) +DA:29,56 +DA:30,56 +DA:31,56 +FN:33,System.String sly.parser.syntax.grammar.GroupClause`1::Dump() +FNDA:0,System.String sly.parser.syntax.grammar.GroupClause`1::Dump() +DA:34,0 +DA:35,0 +DA:36,0 +DA:37,0 +DA:38,0 +DA:39,0 +DA:40,0 +BRDA:37,32,0,0 +BRDA:37,32,1,0 +BRDA:37,68,0,0 +BRDA:37,68,1,0 +FN:9,System.Void sly.parser.syntax.grammar.GroupClause`1::.ctor(sly.parser.syntax.grammar.IClause`1) +FNDA:90,System.Void sly.parser.syntax.grammar.GroupClause`1::.ctor(sly.parser.syntax.grammar.IClause`1) +DA:10,90 +DA:11,90 +DA:12,90 +DA:13,90 +FN:14,System.Void sly.parser.syntax.grammar.GroupClause`1::.ctor(sly.parser.syntax.grammar.ChoiceClause`1) +FNDA:21,System.Void sly.parser.syntax.grammar.GroupClause`1::.ctor(sly.parser.syntax.grammar.ChoiceClause`1) +DA:15,21 +DA:16,21 +DA:17,21 +DA:18,21 +LF:19 +LH:12 +BRF:4 +BRH:0 +FNF:5 +FNH:4 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\syntax\grammar\ManyClause.cs +FN:4,sly.parser.syntax.grammar.IClause`1 sly.parser.syntax.grammar.ManyClause`1::get_Clause() +FNDA:863,sly.parser.syntax.grammar.IClause`1 sly.parser.syntax.grammar.ManyClause`1::get_Clause() +DA:5,863 +LF:1 +LH:1 +BRF:0 +BRH:0 +FNF:1 +FNH:1 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\syntax\grammar\NonTerminalClause.cs +FN:11,System.String sly.parser.syntax.grammar.NonTerminalClause`1::get_NonTerminalName() +FNDA:73614,System.String sly.parser.syntax.grammar.NonTerminalClause`1::get_NonTerminalName() +DA:12,73614 +FN:13,System.Boolean sly.parser.syntax.grammar.NonTerminalClause`1::get_IsGroup() +FNDA:6175,System.Boolean sly.parser.syntax.grammar.NonTerminalClause`1::get_IsGroup() +DA:14,6175 +FN:16,System.Boolean sly.parser.syntax.grammar.NonTerminalClause`1::MayBeEmpty() +FNDA:12347,System.Boolean sly.parser.syntax.grammar.NonTerminalClause`1::MayBeEmpty() +DA:17,12347 +DA:18,12347 +DA:19,12347 +FN:6,System.Void sly.parser.syntax.grammar.NonTerminalClause`1::.ctor(System.String) +FNDA:3121,System.Void sly.parser.syntax.grammar.NonTerminalClause`1::.ctor(System.String) +DA:7,3121 +DA:8,3121 +DA:9,3121 +DA:10,3121 +LF:9 +LH:9 +BRF:0 +BRH:0 +FNF:4 +FNH:4 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\syntax\grammar\OneOrMoreClause.cs +FN:19,System.Boolean sly.parser.syntax.grammar.OneOrMoreClause`1::MayBeEmpty() +FNDA:18,System.Boolean sly.parser.syntax.grammar.OneOrMoreClause`1::MayBeEmpty() +DA:20,18 +DA:21,18 +DA:22,18 +FN:6,System.Void sly.parser.syntax.grammar.OneOrMoreClause`1::.ctor(sly.parser.syntax.grammar.IClause`1) +FNDA:20,System.Void sly.parser.syntax.grammar.OneOrMoreClause`1::.ctor(sly.parser.syntax.grammar.IClause`1) +DA:7,20 +DA:8,20 +DA:9,20 +DA:10,20 +LF:7 +LH:7 +BRF:0 +BRH:0 +FNF:2 +FNH:2 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\syntax\grammar\OptionClause.cs +FN:11,sly.parser.syntax.grammar.IClause`1 sly.parser.syntax.grammar.OptionClause`1::get_Clause() +FNDA:293,sly.parser.syntax.grammar.IClause`1 sly.parser.syntax.grammar.OptionClause`1::get_Clause() +DA:12,293 +FN:13,System.Boolean sly.parser.syntax.grammar.OptionClause`1::get_IsGroupOption() +FNDA:4,System.Boolean sly.parser.syntax.grammar.OptionClause`1::get_IsGroupOption() +DA:14,4 +BRDA:14,11,0,4 +BRDA:14,11,1,0 +FN:16,System.Boolean sly.parser.syntax.grammar.OptionClause`1::MayBeEmpty() +FNDA:22,System.Boolean sly.parser.syntax.grammar.OptionClause`1::MayBeEmpty() +DA:17,22 +DA:18,22 +DA:19,22 +FN:6,System.Void sly.parser.syntax.grammar.OptionClause`1::.ctor(sly.parser.syntax.grammar.IClause`1) +FNDA:42,System.Void sly.parser.syntax.grammar.OptionClause`1::.ctor(sly.parser.syntax.grammar.IClause`1) +DA:7,42 +DA:8,42 +DA:9,42 +DA:10,42 +LF:9 +LH:9 +BRF:2 +BRH:1 +FNF:4 +FNH:4 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\syntax\grammar\Rule.cs +FN:17,System.Boolean sly.parser.syntax.grammar.Rule`1::get_IsByPassRule() +FNDA:5734,System.Boolean sly.parser.syntax.grammar.Rule`1::get_IsByPassRule() +DA:18,5734 +FN:20,System.Collections.Generic.Dictionary`2> sly.parser.syntax.grammar.Rule`1::get_VisitorMethodsForOperation() +FNDA:1087,System.Collections.Generic.Dictionary`2> sly.parser.syntax.grammar.Rule`1::get_VisitorMethodsForOperation() +DA:21,1087 +FN:23,System.Reflection.MethodInfo sly.parser.syntax.grammar.Rule`1::get_Visitor() +FNDA:29631,System.Reflection.MethodInfo sly.parser.syntax.grammar.Rule`1::get_Visitor() +DA:24,29631 +FN:25,System.Boolean sly.parser.syntax.grammar.Rule`1::get_IsExpressionRule() +FNDA:86604,System.Boolean sly.parser.syntax.grammar.Rule`1::get_IsExpressionRule() +DA:26,86604 +FN:27,sly.parser.generator.Affix sly.parser.syntax.grammar.Rule`1::get_ExpressionAffix() +FNDA:4924,sly.parser.generator.Affix sly.parser.syntax.grammar.Rule`1::get_ExpressionAffix() +DA:28,4924 +FN:29,System.String sly.parser.syntax.grammar.Rule`1::get_RuleString() +FNDA:3688,System.String sly.parser.syntax.grammar.Rule`1::get_RuleString() +DA:30,3688 +FN:34,System.String sly.parser.syntax.grammar.Rule`1::get_Key() +FNDA:2993,System.String sly.parser.syntax.grammar.Rule`1::get_Key() +DA:35,2993 +DA:36,9177 +DA:38,2993 +DA:39,979 +DA:41,2993 +DA:42,2993 +BRDA:36,18,0,7 +BRDA:36,18,1,2993 +BRDA:38,70,0,979 +BRDA:38,70,1,2993 +BRDA:41,90,0,2993 +BRDA:41,90,1,0 +FN:44,System.Collections.Generic.List`1> sly.parser.syntax.grammar.Rule`1::get_Clauses() +FNDA:340884,System.Collections.Generic.List`1> sly.parser.syntax.grammar.Rule`1::get_Clauses() +DA:45,340884 +FN:45,System.Collections.Generic.List`1 sly.parser.syntax.grammar.Rule`1::get_PossibleLeadingTokens() +FNDA:154985,System.Collections.Generic.List`1 sly.parser.syntax.grammar.Rule`1::get_PossibleLeadingTokens() +DA:46,154985 +FN:47,System.String sly.parser.syntax.grammar.Rule`1::get_NonTerminalName() +FNDA:5719,System.String sly.parser.syntax.grammar.Rule`1::get_NonTerminalName() +DA:48,5719 +FN:52,System.Boolean sly.parser.syntax.grammar.Rule`1::get_ContainsSubRule() +FNDA:3649,System.Boolean sly.parser.syntax.grammar.Rule`1::get_ContainsSubRule() +DA:53,3649 +DA:54,3649 +DA:55,25472 +DA:56,7336 +DA:57,7351 +DA:58,7421 +DA:59,7253 +DA:60,7189 +DA:62,3502 +DA:63,3649 +BRDA:54,7,0,3649 +BRDA:54,7,1,0 +BRDA:54,25,0,3649 +BRDA:55,155,1,7336 +BRDA:57,67,0,15 +BRDA:57,67,1,7321 +BRDA:58,89,0,100 +BRDA:58,89,1,7221 +BRDA:59,126,0,32 +BRDA:59,126,1,7189 +BRDA:55,155,0,3502 +BRDA:54,25,1,3502 +FN:65,System.Boolean sly.parser.syntax.grammar.Rule`1::get_IsSubRule() +FNDA:27758,System.Boolean sly.parser.syntax.grammar.Rule`1::get_IsSubRule() +DA:66,27758 +FN:67,System.Boolean sly.parser.syntax.grammar.Rule`1::get_MayBeEmpty() +FNDA:34900,System.Boolean sly.parser.syntax.grammar.Rule`1::get_MayBeEmpty() +DA:68,34900 +DA:69,34900 +DA:70,34900 +BRDA:68,6,0,34900 +BRDA:68,19,0,34900 +BRDA:68,33,0,9435 +BRDA:68,33,1,25465 +BRDA:68,6,1,0 +BRDA:68,19,1,0 +FN:73,sly.parser.generator.OperationMetaData`1 sly.parser.syntax.grammar.Rule`1::GetOperation(IN) +FNDA:180,sly.parser.generator.OperationMetaData`1 sly.parser.syntax.grammar.Rule`1::GetOperation(IN) +DA:74,180 +DA:75,180 +DA:76,180 +DA:77,180 +DA:78,180 +DA:79,180 +DA:80,180 +DA:83,0 +DA:84,180 +BRDA:75,9,0,180 +BRDA:77,24,0,0 +BRDA:77,24,1,180 +BRDA:75,9,1,0 +FN:86,System.Collections.Generic.List`1> sly.parser.syntax.grammar.Rule`1::GetOperations() +FNDA:193,System.Collections.Generic.List`1> sly.parser.syntax.grammar.Rule`1::GetOperations() +DA:87,193 +DA:88,193 +DA:89,193 +DA:90,193 +DA:93,0 +DA:94,193 +BRDA:88,9,0,193 +BRDA:88,9,1,0 +FN:96,System.Reflection.MethodInfo sly.parser.syntax.grammar.Rule`1::GetVisitor(IN) +FNDA:22230,System.Reflection.MethodInfo sly.parser.syntax.grammar.Rule`1::GetVisitor(IN) +DA:97,22230 +DA:98,22230 +DA:99,22230 +DA:100,180 +DA:101,180 +DA:102,180 +DA:103,180 +DA:104,180 +DA:105,180 +DA:107,22050 +DA:108,22050 +DA:109,22050 +DA:111,22230 +DA:112,22230 +BRDA:99,11,0,180 +BRDA:101,26,0,0 +BRDA:101,26,1,180 +BRDA:104,45,0,0 +BRDA:104,45,1,180 +BRDA:99,11,1,22050 +FN:114,System.Void sly.parser.syntax.grammar.Rule`1::SetVisitor(System.Reflection.MethodInfo) +FNDA:3668,System.Void sly.parser.syntax.grammar.Rule`1::SetVisitor(System.Reflection.MethodInfo) +DA:115,3668 +DA:116,3668 +DA:117,3668 +FN:119,System.Void sly.parser.syntax.grammar.Rule`1::SetVisitor(sly.parser.generator.OperationMetaData`1) +FNDA:174,System.Void sly.parser.syntax.grammar.Rule`1::SetVisitor(sly.parser.generator.OperationMetaData`1) +DA:120,174 +DA:121,174 +DA:122,174 +FN:9,System.Void sly.parser.syntax.grammar.Rule`1::.ctor() +FNDA:3913,System.Void sly.parser.syntax.grammar.Rule`1::.ctor() +DA:10,3913 +DA:11,3913 +DA:12,3913 +DA:13,3913 +DA:14,3913 +DA:15,3913 +DA:16,3913 +LF:71 +LH:69 +BRF:36 +BRH:27 +FNF:19 +FNH:19 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\syntax\grammar\TerminalClause.cs +FN:18,T sly.parser.syntax.grammar.TerminalClause`1::get_ExpectedToken() +FNDA:65006,T sly.parser.syntax.grammar.TerminalClause`1::get_ExpectedToken() +DA:19,65006 +FN:20,System.Boolean sly.parser.syntax.grammar.TerminalClause`1::get_Discarded() +FNDA:90270,System.Boolean sly.parser.syntax.grammar.TerminalClause`1::get_Discarded() +DA:21,90270 +FN:23,System.Boolean sly.parser.syntax.grammar.TerminalClause`1::MayBeEmpty() +FNDA:3840,System.Boolean sly.parser.syntax.grammar.TerminalClause`1::MayBeEmpty() +DA:24,3840 +DA:25,3840 +DA:26,3840 +FN:28,System.Boolean sly.parser.syntax.grammar.TerminalClause`1::Check(sly.lexer.Token`1) +FNDA:40416,System.Boolean sly.parser.syntax.grammar.TerminalClause`1::Check(sly.lexer.Token`1) +DA:29,40416 +DA:30,40416 +DA:31,40416 +FN:42,System.String sly.parser.syntax.grammar.TerminalClause`1::Dump() +FNDA:0,System.String sly.parser.syntax.grammar.TerminalClause`1::Dump() +DA:43,0 +DA:44,0 +DA:45,0 +FN:8,System.Void sly.parser.syntax.grammar.TerminalClause`1::.ctor(T) +FNDA:4888,System.Void sly.parser.syntax.grammar.TerminalClause`1::.ctor(T) +DA:9,4888 +DA:10,4888 +DA:11,4888 +DA:12,4888 +FN:13,System.Void sly.parser.syntax.grammar.TerminalClause`1::.ctor(T,System.Boolean) +FNDA:894,System.Void sly.parser.syntax.grammar.TerminalClause`1::.ctor(T,System.Boolean) +DA:14,894 +DA:15,894 +DA:16,894 +DA:17,894 +FN:65,System.Boolean sly.parser.syntax.grammar.IndentTerminalClause`1::MayBeEmpty() +FNDA:0,System.Boolean sly.parser.syntax.grammar.IndentTerminalClause`1::MayBeEmpty() +DA:66,0 +DA:67,0 +DA:68,0 +FN:70,System.Boolean sly.parser.syntax.grammar.IndentTerminalClause`1::Check(sly.lexer.Token`1) +FNDA:35,System.Boolean sly.parser.syntax.grammar.IndentTerminalClause`1::Check(sly.lexer.Token`1) +DA:71,35 +DA:72,35 +DA:73,35 +DA:74,35 +BRDA:72,7,0,14 +BRDA:72,7,1,21 +BRDA:72,15,0,21 +BRDA:72,23,0,21 +BRDA:72,23,1,0 +BRDA:72,15,1,14 +FN:85,System.String sly.parser.syntax.grammar.IndentTerminalClause`1::Dump() +FNDA:0,System.String sly.parser.syntax.grammar.IndentTerminalClause`1::Dump() +DA:86,0 +DA:87,0 +DA:88,0 +FN:58,System.Void sly.parser.syntax.grammar.IndentTerminalClause`1::.ctor(sly.parser.syntax.grammar.IndentationType,System.Boolean) +FNDA:10,System.Void sly.parser.syntax.grammar.IndentTerminalClause`1::.ctor(sly.parser.syntax.grammar.IndentationType,System.Boolean) +DA:59,10 +DA:60,10 +DA:61,10 +DA:62,10 +DA:63,10 +LF:34 +LH:25 +BRF:6 +BRH:5 +FNF:11 +FNH:8 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\syntax\grammar\ZeroOrMoreClause.cs +FN:19,System.Boolean sly.parser.syntax.grammar.ZeroOrMoreClause`1::MayBeEmpty() +FNDA:30,System.Boolean sly.parser.syntax.grammar.ZeroOrMoreClause`1::MayBeEmpty() +DA:20,30 +DA:21,30 +DA:22,30 +FN:7,System.Void sly.parser.syntax.grammar.ZeroOrMoreClause`1::.ctor(sly.parser.syntax.grammar.IClause`1) +FNDA:95,System.Void sly.parser.syntax.grammar.ZeroOrMoreClause`1::.ctor(sly.parser.syntax.grammar.IClause`1) +DA:8,95 +DA:9,95 +DA:10,95 +DA:11,95 +LF:7 +LH:7 +BRF:0 +BRH:0 +FNF:2 +FNH:2 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\parser\llparser\EBNFRecursiveDescentSyntaxParser.cs +FN:21,System.Void sly.parser.llparser.EBNFRecursiveDescentSyntaxParser`2::InitStartingTokensForRuleExtensions(sly.parser.syntax.grammar.IClause`1,sly.parser.syntax.grammar.Rule`1,System.Collections.Generic.Dictionary`2>) +FNDA:61,System.Void sly.parser.llparser.EBNFRecursiveDescentSyntaxParser`2::InitStartingTokensForRuleExtensions(sly.parser.syntax.grammar.IClause`1,sly.parser.syntax.grammar.Rule`1,System.Collections.Generic.Dictionary`2>) +DA:22,61 +DA:24,61 +DA:25,0 +DA:26,0 +DA:28,0 +DA:29,0 +DA:30,61 +DA:31,0 +DA:32,0 +DA:33,0 +DA:34,0 +DA:35,61 +DA:36,20 +DA:37,20 +DA:38,20 +DA:39,20 +DA:40,24 +DA:41,4 +DA:42,4 +DA:44,4 +DA:47,2 +DA:48,2 +DA:49,2 +DA:52,0 +DA:53,0 +DA:54,0 +DA:55,0 +DA:56,0 +DA:57,0 +DA:58,0 +DA:61,0 +DA:62,0 +DA:63,0 +DA:66,0 +DA:67,0 +DA:68,0 +DA:73,4 +DA:74,4 +DA:75,4 +DA:76,20 +DA:77,41 +DA:78,18 +DA:79,18 +DA:80,18 +DA:81,18 +DA:82,23 +DA:83,20 +DA:84,20 +DA:85,20 +DA:86,3 +DA:87,3 +DA:88,3 +DA:89,3 +DA:90,3 +DA:91,8 +DA:92,5 +DA:93,5 +DA:95,5 +DA:98,1 +DA:99,1 +DA:100,1 +DA:103,0 +DA:104,0 +DA:105,0 +DA:106,0 +DA:107,0 +DA:108,0 +DA:109,0 +DA:112,1 +DA:113,1 +DA:114,1 +DA:117,3 +DA:118,3 +DA:119,3 +DA:122,0 +DA:123,0 +DA:124,0 +DA:127,0 +DA:128,0 +DA:129,0 +DA:134,5 +DA:135,5 +DA:136,5 +DA:137,3 +DA:138,61 +BRDA:24,12,0,0 +BRDA:24,12,1,61 +BRDA:30,48,0,0 +BRDA:30,48,1,61 +BRDA:35,91,0,20 +BRDA:40,362,1,4 +BRDA:44,154,0,2 +BRDA:44,167,0,2 +BRDA:44,180,0,2 +BRDA:44,154,1,2 +BRDA:44,167,1,0 +BRDA:44,180,1,0 +BRDA:44,193,1,0 +BRDA:44,193,0,4 +BRDA:73,316,0,3 +BRDA:73,316,1,1 +BRDA:40,362,0,20 +BRDA:35,91,1,41 +BRDA:77,386,0,18 +BRDA:77,386,1,23 +BRDA:82,431,0,20 +BRDA:82,431,1,3 +BRDA:86,468,0,3 +BRDA:91,812,1,5 +BRDA:95,531,0,4 +BRDA:95,544,0,4 +BRDA:95,557,0,3 +BRDA:95,573,0,0 +BRDA:95,589,0,0 +BRDA:95,531,1,1 +BRDA:95,544,1,0 +BRDA:95,557,1,1 +BRDA:95,573,1,3 +BRDA:95,589,1,0 +BRDA:95,605,1,0 +BRDA:95,605,0,5 +BRDA:134,766,0,5 +BRDA:134,766,1,0 +BRDA:91,812,0,3 +BRDA:86,468,1,61 +FN:141,System.Void sly.parser.llparser.EBNFRecursiveDescentSyntaxParser`2::InitStartingTokensWithOption(sly.parser.syntax.grammar.Rule`1,sly.parser.syntax.grammar.OptionClause`1,System.Collections.Generic.Dictionary`2>) +FNDA:6,System.Void sly.parser.llparser.EBNFRecursiveDescentSyntaxParser`2::InitStartingTokensWithOption(sly.parser.syntax.grammar.Rule`1,sly.parser.syntax.grammar.OptionClause`1,System.Collections.Generic.Dictionary`2>) +DA:142,6 +DA:143,6 +DA:144,2 +DA:145,2 +DA:146,2 +DA:147,4 +DA:148,1 +DA:149,1 +DA:150,1 +DA:151,3 +DA:152,2 +DA:153,2 +DA:154,2 +DA:155,1 +DA:156,1 +DA:158,1 +DA:160,6 +BRDA:143,19,0,2 +BRDA:143,19,1,4 +BRDA:147,52,0,1 +BRDA:147,52,1,3 +BRDA:151,90,0,2 +BRDA:151,90,1,1 +BRDA:155,129,0,1 +BRDA:155,129,1,6 +FN:162,System.Void sly.parser.llparser.EBNFRecursiveDescentSyntaxParser`2::InitStartingTokensWithChoice(sly.parser.syntax.grammar.Rule`1,sly.parser.syntax.grammar.ChoiceClause`1,System.Collections.Generic.Dictionary`2>) +FNDA:26,System.Void sly.parser.llparser.EBNFRecursiveDescentSyntaxParser`2::InitStartingTokensWithChoice(sly.parser.syntax.grammar.Rule`1,sly.parser.syntax.grammar.ChoiceClause`1,System.Collections.Generic.Dictionary`2>) +DA:163,26 +DA:164,204 +DA:165,63 +DA:166,63 +DA:167,47 +DA:168,47 +DA:169,47 +DA:170,16 +DA:171,16 +DA:172,16 +DA:173,16 +DA:174,63 +DA:175,26 +BRDA:164,93,1,63 +BRDA:166,38,0,47 +BRDA:166,38,1,16 +BRDA:170,70,0,16 +BRDA:170,70,1,63 +BRDA:164,93,0,26 +FN:178,System.Void sly.parser.llparser.EBNFRecursiveDescentSyntaxParser`2::InitStartingTokensWithTerminal(sly.parser.syntax.grammar.Rule`1,sly.parser.syntax.grammar.TerminalClause`1) +FNDA:66,System.Void sly.parser.llparser.EBNFRecursiveDescentSyntaxParser`2::InitStartingTokensWithTerminal(sly.parser.syntax.grammar.Rule`1,sly.parser.syntax.grammar.TerminalClause`1) +DA:179,66 +DA:180,66 +DA:181,66 +DA:182,66 +FN:185,System.Void sly.parser.llparser.EBNFRecursiveDescentSyntaxParser`2::InitStartingTokensWithNonTerminal(sly.parser.syntax.grammar.Rule`1,sly.parser.syntax.grammar.NonTerminalClause`1,System.Collections.Generic.Dictionary`2>) +FNDA:35,System.Void sly.parser.llparser.EBNFRecursiveDescentSyntaxParser`2::InitStartingTokensWithNonTerminal(sly.parser.syntax.grammar.Rule`1,sly.parser.syntax.grammar.NonTerminalClause`1,System.Collections.Generic.Dictionary`2>) +DA:186,35 +DA:187,35 +DA:188,35 +DA:189,35 +DA:190,35 +DA:191,182 +DA:192,35 +DA:193,35 +DA:194,35 +BRDA:188,42,0,35 +BRDA:188,42,1,35 +FN:197,System.Void sly.parser.llparser.EBNFRecursiveDescentSyntaxParser`2::InitStartingTokensWithZeroOrMore(sly.parser.syntax.grammar.Rule`1,sly.parser.syntax.grammar.ZeroOrMoreClause`1,System.Collections.Generic.Dictionary`2>) +FNDA:20,System.Void sly.parser.llparser.EBNFRecursiveDescentSyntaxParser`2::InitStartingTokensWithZeroOrMore(sly.parser.syntax.grammar.Rule`1,sly.parser.syntax.grammar.ZeroOrMoreClause`1,System.Collections.Generic.Dictionary`2>) +DA:198,20 +DA:199,20 +DA:200,9 +DA:201,9 +DA:202,9 +DA:203,11 +DA:204,10 +DA:205,10 +DA:206,10 +DA:207,1 +DA:208,1 +DA:209,1 +DA:210,1 +DA:211,20 +BRDA:199,19,0,9 +BRDA:199,19,1,11 +BRDA:203,52,0,10 +BRDA:203,52,1,1 +BRDA:207,90,0,1 +BRDA:207,90,1,20 +FN:214,System.Void sly.parser.llparser.EBNFRecursiveDescentSyntaxParser`2::InitStartingTokensWithOneOrMore(sly.parser.syntax.grammar.Rule`1,sly.parser.syntax.grammar.OneOrMoreClause`1,System.Collections.Generic.Dictionary`2>) +FNDA:18,System.Void sly.parser.llparser.EBNFRecursiveDescentSyntaxParser`2::InitStartingTokensWithOneOrMore(sly.parser.syntax.grammar.Rule`1,sly.parser.syntax.grammar.OneOrMoreClause`1,System.Collections.Generic.Dictionary`2>) +DA:215,18 +DA:216,18 +DA:217,8 +DA:218,8 +DA:219,8 +DA:220,10 +DA:221,8 +DA:222,8 +DA:223,8 +DA:224,2 +DA:225,2 +DA:226,2 +DA:227,2 +DA:228,18 +BRDA:216,19,0,8 +BRDA:216,19,1,10 +BRDA:220,52,0,8 +BRDA:220,52,1,2 +BRDA:224,90,0,2 +BRDA:224,90,1,18 +FN:235,sly.parser.SyntaxParseResult`1 sly.parser.llparser.EBNFRecursiveDescentSyntaxParser`2::Parse(System.Collections.Generic.IList`1>,sly.parser.syntax.grammar.Rule`1,System.Int32,System.String) +FNDA:5620,sly.parser.SyntaxParseResult`1 sly.parser.llparser.EBNFRecursiveDescentSyntaxParser`2::Parse(System.Collections.Generic.IList`1>,sly.parser.syntax.grammar.Rule`1,System.Int32,System.String) +DA:236,5620 +DA:237,5620 +DA:238,5620 +DA:239,5620 +DA:240,5620 +DA:241,5620 +DA:242,5620 +DA:243,5620 +DA:244,5620 +DA:245,30769 +DA:246,7479 +DA:247,7479 +DA:248,2578 +DA:249,2578 +DA:250,2578 +DA:251,2578 +DA:252,1978 +DA:253,1978 +DA:254,1978 +DA:255,1978 +DA:257,600 +DA:258,600 +DA:259,600 +DA:260,600 +DA:261,600 +DA:263,2578 +DA:264,2578 +DA:265,4901 +DA:266,4222 +DA:267,4222 +DA:268,4222 +DA:269,4222 +DA:270,4180 +DA:271,4180 +DA:272,4180 +DA:273,4180 +DA:274,4180 +DA:276,42 +DA:277,42 +DA:278,42 +DA:280,4222 +DA:281,4222 +DA:282,679 +DA:283,78 +DA:284,78 +DA:285,78 +DA:286,11 +DA:287,67 +DA:288,67 +DA:289,78 +DA:290,78 +DA:291,78 +DA:292,78 +DA:293,78 +DA:294,78 +DA:296,0 +DA:297,0 +DA:298,0 +DA:299,0 +DA:301,78 +DA:302,78 +DA:303,601 +DA:304,29 +DA:305,29 +DA:306,29 +DA:307,29 +DA:308,29 +DA:309,572 +DA:310,572 +DA:311,572 +DA:312,572 +DA:313,572 +DA:314,407 +DA:315,407 +DA:316,407 +DA:318,572 +DA:320,572 +DA:321,572 +DA:323,8528 +DA:324,6430 +DA:325,5620 +DA:327,5620 +DA:328,5620 +DA:329,5620 +DA:330,5620 +DA:331,5620 +DA:332,4571 +DA:333,4571 +DA:334,4571 +DA:335,17 +DA:336,17 +DA:337,17 +DA:338,17 +DA:339,17 +DA:340,17 +DA:341,17 +DA:342,17 +DA:344,4554 +DA:345,4554 +DA:346,4554 +DA:347,4554 +DA:348,4554 +DA:349,4554 +DA:350,4554 +DA:351,4554 +DA:352,4554 +DA:353,4571 +DA:355,5620 +DA:356,5620 +BRDA:241,40,0,8 +BRDA:241,40,1,5612 +BRDA:241,55,0,5620 +BRDA:242,66,0,5620 +BRDA:242,66,1,0 +BRDA:242,89,0,5620 +BRDA:245,825,1,7479 +BRDA:247,148,0,2578 +BRDA:251,180,0,1978 +BRDA:251,180,1,600 +BRDA:263,265,0,2578 +BRDA:263,265,1,0 +BRDA:247,148,1,4901 +BRDA:265,298,0,4222 +BRDA:269,332,0,4180 +BRDA:269,332,1,42 +BRDA:280,391,0,4222 +BRDA:280,391,1,0 +BRDA:265,298,1,679 +BRDA:282,417,0,668 +BRDA:282,417,1,11 +BRDA:282,436,0,78 +BRDA:285,463,0,11 +BRDA:285,463,1,67 +BRDA:287,497,0,67 +BRDA:287,497,1,78 +BRDA:289,525,0,78 +BRDA:289,525,1,0 +BRDA:297,575,0,0 +BRDA:297,575,1,0 +BRDA:297,599,0,0 +BRDA:297,599,1,0 +BRDA:282,436,1,601 +BRDA:303,648,0,29 +BRDA:303,648,1,572 +BRDA:309,707,0,572 +BRDA:313,737,0,407 +BRDA:313,746,0,407 +BRDA:313,737,1,165 +BRDA:313,746,1,165 +BRDA:313,767,0,407 +BRDA:313,767,1,572 +BRDA:309,707,1,7479 +BRDA:323,813,1,6430 +BRDA:323,813,0,5620 +BRDA:245,825,0,5620 +BRDA:241,55,1,5620 +BRDA:242,89,1,5620 +BRDA:331,890,0,4571 +BRDA:334,909,0,17 +BRDA:339,954,0,10 +BRDA:339,965,0,1 +BRDA:339,965,1,9 +BRDA:339,954,1,7 +BRDA:334,909,1,4554 +BRDA:349,1059,0,3748 +BRDA:349,1070,0,691 +BRDA:349,1070,1,3057 +BRDA:349,1059,1,806 +BRDA:331,890,1,5620 +FN:359,sly.parser.SyntaxParseResult`1 sly.parser.llparser.EBNFRecursiveDescentSyntaxParser`2::ParseZeroOrMore(System.Collections.Generic.IList`1>,sly.parser.syntax.grammar.ZeroOrMoreClause`1,System.Int32) +FNDA:78,sly.parser.SyntaxParseResult`1 sly.parser.llparser.EBNFRecursiveDescentSyntaxParser`2::ParseZeroOrMore(System.Collections.Generic.IList`1>,sly.parser.syntax.grammar.ZeroOrMoreClause`1,System.Int32) +DA:360,78 +DA:361,78 +DA:362,78 +DA:363,78 +DA:364,78 +DA:365,78 +DA:368,78 +DA:370,78 +DA:372,274 +DA:373,196 +DA:374,196 +DA:375,196 +DA:376,17 +DA:377,17 +DA:378,17 +DA:379,17 +DA:380,179 +DA:381,165 +DA:382,165 +DA:383,165 +DA:384,14 +DA:386,151 +DA:387,165 +DA:388,14 +DA:389,0 +DA:390,0 +DA:391,0 +DA:392,0 +DA:393,14 +DA:394,14 +DA:395,14 +DA:396,14 +DA:397,14 +DA:398,14 +DA:400,0 +DA:401,0 +DA:404,196 +DA:405,118 +DA:406,118 +DA:407,118 +DA:408,118 +DA:409,118 +DA:411,78 +DA:412,78 +DA:413,78 +DA:414,78 +DA:415,78 +DA:416,78 +DA:418,196 +DA:419,196 +DA:422,78 +DA:423,78 +DA:424,78 +DA:425,78 +DA:426,78 +DA:427,78 +DA:428,78 +BRDA:372,415,1,196 +BRDA:375,66,0,17 +BRDA:375,66,1,179 +BRDA:380,112,0,165 +BRDA:383,138,0,14 +BRDA:383,138,1,151 +BRDA:380,112,1,14 +BRDA:388,177,0,0 +BRDA:388,177,1,14 +BRDA:393,224,0,14 +BRDA:393,224,1,0 +BRDA:404,300,0,196 +BRDA:404,300,1,0 +BRDA:404,319,0,118 +BRDA:404,319,1,78 +BRDA:412,361,0,78 +BRDA:412,361,1,78 +BRDA:418,383,0,196 +BRDA:418,392,0,118 +BRDA:418,383,1,78 +BRDA:418,392,1,78 +BRDA:372,415,0,78 +BRDA:426,456,0,59 +BRDA:426,456,1,19 +FN:430,sly.parser.SyntaxParseResult`1 sly.parser.llparser.EBNFRecursiveDescentSyntaxParser`2::ParseOneOrMore(System.Collections.Generic.IList`1>,sly.parser.syntax.grammar.OneOrMoreClause`1,System.Int32) +FNDA:11,sly.parser.SyntaxParseResult`1 sly.parser.llparser.EBNFRecursiveDescentSyntaxParser`2::ParseOneOrMore(System.Collections.Generic.IList`1>,sly.parser.syntax.grammar.OneOrMoreClause`1,System.Int32) +DA:431,11 +DA:432,11 +DA:433,11 +DA:434,11 +DA:435,11 +DA:438,11 +DA:440,11 +DA:441,11 +DA:442,5 +DA:443,5 +DA:444,5 +DA:445,5 +DA:446,6 +DA:447,1 +DA:448,1 +DA:449,1 +DA:450,1 +DA:451,5 +DA:452,5 +DA:453,5 +DA:454,5 +DA:455,5 +DA:456,5 +DA:458,0 +DA:459,0 +DA:462,11 +DA:463,11 +DA:464,11 +DA:465,11 +DA:466,11 +DA:467,11 +DA:468,11 +DA:469,11 +DA:470,11 +DA:471,11 +DA:472,11 +DA:473,11 +DA:474,11 +DA:476,11 +DA:477,11 +DA:480,0 +DA:481,0 +DA:482,0 +DA:484,11 +DA:485,11 +DA:486,11 +DA:487,11 +DA:488,11 +DA:489,11 +BRDA:441,46,0,5 +BRDA:441,46,1,6 +BRDA:446,92,0,1 +BRDA:446,92,1,5 +BRDA:451,139,0,5 +BRDA:451,139,1,0 +BRDA:462,215,0,11 +BRDA:462,215,1,0 +BRDA:462,234,0,11 +BRDA:469,285,0,11 +BRDA:469,285,1,0 +BRDA:469,304,0,11 +BRDA:469,304,1,11 +BRDA:462,234,1,0 +BRDA:487,388,0,11 +BRDA:487,388,1,0 +FN:492,sly.parser.SyntaxParseResult`1 sly.parser.llparser.EBNFRecursiveDescentSyntaxParser`2::ParseOption(System.Collections.Generic.IList`1>,sly.parser.syntax.grammar.OptionClause`1,sly.parser.syntax.grammar.Rule`1,System.Int32) +FNDA:29,sly.parser.SyntaxParseResult`1 sly.parser.llparser.EBNFRecursiveDescentSyntaxParser`2::ParseOption(System.Collections.Generic.IList`1>,sly.parser.syntax.grammar.OptionClause`1,sly.parser.syntax.grammar.Rule`1,System.Int32) +DA:493,29 +DA:494,29 +DA:495,29 +DA:496,29 +DA:498,29 +DA:501,29 +DA:502,14 +DA:503,15 +DA:504,8 +DA:505,7 +DA:506,7 +DA:507,7 +DA:508,7 +DA:511,0 +DA:514,29 +DA:515,7 +DA:516,7 +DA:517,2 +DA:518,2 +DA:519,2 +DA:520,2 +DA:521,2 +DA:522,2 +DA:523,5 +DA:524,1 +DA:525,1 +DA:526,1 +DA:527,1 +DA:528,1 +DA:529,1 +DA:530,1 +DA:531,1 +DA:532,1 +DA:534,4 +DA:535,4 +DA:536,4 +DA:537,4 +DA:538,8 +DA:539,4 +DA:540,4 +DA:541,4 +DA:542,4 +DA:543,4 +DA:544,7 +DA:546,22 +DA:547,22 +DA:549,22 +DA:550,22 +DA:551,22 +DA:552,22 +DA:553,22 +DA:555,29 +DA:556,29 +BRDA:501,36,0,14 +BRDA:501,36,1,15 +BRDA:503,68,0,8 +BRDA:503,68,1,7 +BRDA:505,100,0,7 +BRDA:505,100,1,0 +BRDA:514,154,0,7 +BRDA:516,173,0,2 +BRDA:516,173,1,5 +BRDA:523,240,0,1 +BRDA:525,254,0,1 +BRDA:525,254,1,1 +BRDA:523,240,1,4 +BRDA:538,347,0,4 +BRDA:538,347,1,4 +BRDA:514,154,1,22 +FN:559,sly.parser.SyntaxParseResult`1 sly.parser.llparser.EBNFRecursiveDescentSyntaxParser`2::ParseChoice(System.Collections.Generic.IList`1>,sly.parser.syntax.grammar.ChoiceClause`1,System.Int32) +FNDA:598,sly.parser.SyntaxParseResult`1 sly.parser.llparser.EBNFRecursiveDescentSyntaxParser`2::ParseChoice(System.Collections.Generic.IList`1>,sly.parser.syntax.grammar.ChoiceClause`1,System.Int32) +DA:560,598 +DA:561,598 +DA:563,598 +DA:564,598 +DA:565,598 +DA:566,598 +DA:567,598 +DA:568,598 +DA:571,5769 +DA:572,2079 +DA:573,2079 +DA:574,2020 +DA:575,2020 +DA:576,2020 +DA:577,59 +DA:578,59 +DA:580,0 +DA:581,2079 +DA:582,183 +DA:583,183 +DA:584,1 +DA:585,1 +DA:586,1 +DA:587,1 +DA:589,183 +DA:591,1896 +DA:593,415 +DA:594,405 +DA:595,405 +DA:596,2129 +DA:597,405 +DA:598,405 +DA:600,415 +DA:601,598 +BRDA:571,251,1,2079 +BRDA:573,77,0,2020 +BRDA:573,77,1,59 +BRDA:577,111,0,59 +BRDA:577,111,1,0 +BRDA:581,163,0,183 +BRDA:583,172,0,158 +BRDA:583,180,0,1 +BRDA:583,172,1,182 +BRDA:583,180,1,182 +BRDA:583,207,0,1 +BRDA:583,207,1,183 +BRDA:581,163,1,1896 +BRDA:571,251,0,415 +BRDA:593,279,0,415 +BRDA:593,279,1,0 +BRDA:593,294,0,405 +BRDA:596,318,0,7 +BRDA:596,318,1,405 +BRDA:593,294,1,415 +FN:13,System.Void sly.parser.llparser.EBNFRecursiveDescentSyntaxParser`2::.ctor(sly.parser.generator.ParserConfiguration`2,System.String,System.String) +FNDA:91,System.Void sly.parser.llparser.EBNFRecursiveDescentSyntaxParser`2::.ctor(sly.parser.generator.ParserConfiguration`2,System.String,System.String) +DA:14,91 +DA:15,91 +DA:16,91 +LF:461 +LH:410 +BRF:204 +BRH:174 +FNF:13 +FNH:13 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\parser\llparser\RecursiveDescentSyntaxParser.cs +FN:20,sly.parser.generator.ParserConfiguration`2 sly.parser.llparser.RecursiveDescentSyntaxParser`2::get_Configuration() +FNDA:18013,sly.parser.generator.ParserConfiguration`2 sly.parser.llparser.RecursiveDescentSyntaxParser`2::get_Configuration() +DA:21,18013 +FN:21,System.String sly.parser.llparser.RecursiveDescentSyntaxParser`2::get_StartingNonTerminal() +FNDA:1730,System.String sly.parser.llparser.RecursiveDescentSyntaxParser`2::get_StartingNonTerminal() +DA:22,1730 +FN:23,System.String sly.parser.llparser.RecursiveDescentSyntaxParser`2::get_I18n() +FNDA:13608,System.String sly.parser.llparser.RecursiveDescentSyntaxParser`2::get_I18n() +DA:24,13608 +FN:26,sly.parser.generator.ParserConfiguration`2 sly.parser.llparser.RecursiveDescentSyntaxParser`2::ComputeSubRules(sly.parser.generator.ParserConfiguration`2) +FNDA:237,sly.parser.generator.ParserConfiguration`2 sly.parser.llparser.RecursiveDescentSyntaxParser`2::ComputeSubRules(sly.parser.generator.ParserConfiguration`2) +DA:27,237 +DA:28,237 +DA:29,3329 +DA:30,11225 +DA:31,3649 +DA:32,3649 +DA:33,3649 +DA:34,50 +DA:35,382 +DA:36,116 +DA:37,15 +DA:38,15 +DA:39,15 +DA:40,15 +DA:41,15 +DA:42,15 +DA:43,15 +DA:44,101 +DA:45,23 +DA:46,23 +DA:47,23 +DA:48,23 +DA:49,23 +DA:50,23 +DA:51,23 +DA:52,23 +DA:53,23 +DA:54,23 +DA:55,23 +DA:56,78 +DA:57,14 +DA:58,14 +DA:59,14 +DA:60,14 +DA:61,14 +DA:62,14 +DA:63,14 +DA:64,14 +DA:65,14 +DA:66,14 +DA:67,14 +DA:69,64 +DA:70,64 +DA:71,64 +DA:73,50 +DA:74,50 +DA:75,50 +DA:76,3649 +DA:78,289 +DA:79,237 +DA:80,237 +BRDA:29,551,1,1309 +BRDA:30,522,1,3649 +BRDA:33,104,0,50 +BRDA:35,463,1,116 +BRDA:36,157,0,15 +BRDA:36,157,1,101 +BRDA:44,236,0,23 +BRDA:46,262,0,23 +BRDA:46,262,1,23 +BRDA:44,236,1,78 +BRDA:56,349,0,14 +BRDA:58,375,0,14 +BRDA:58,375,1,14 +BRDA:56,349,1,64 +BRDA:35,463,0,50 +BRDA:33,104,1,3649 +BRDA:30,522,0,1309 +BRDA:29,551,0,237 +FN:82,sly.parser.generator.NonTerminal`1 sly.parser.llparser.RecursiveDescentSyntaxParser`2::CreateSubRule(sly.parser.syntax.grammar.GroupClause`1) +FNDA:52,sly.parser.generator.NonTerminal`1 sly.parser.llparser.RecursiveDescentSyntaxParser`2::CreateSubRule(sly.parser.syntax.grammar.GroupClause`1) +DA:83,52 +DA:84,158 +DA:85,106 +DA:86,52 +DA:87,52 +DA:88,52 +DA:89,52 +DA:90,52 +DA:91,52 +DA:93,52 +DA:94,52 +BRDA:84,18,0,6 +BRDA:84,18,1,52 +BRDA:84,54,0,6 +BRDA:84,54,1,52 +FN:98,System.Void sly.parser.llparser.RecursiveDescentSyntaxParser`2::InitializeStartingTokens(sly.parser.generator.ParserConfiguration`2,System.String) +FNDA:473,System.Void sly.parser.llparser.RecursiveDescentSyntaxParser`2::InitializeStartingTokens(sly.parser.generator.ParserConfiguration`2,System.String) +DA:99,473 +DA:100,473 +DA:103,473 +DA:104,6997 +DA:105,2789 +DA:106,23493 +DA:107,7563 +DA:108,7563 +DA:109,910 +DA:110,7563 +DA:111,2789 +DA:112,473 +BRDA:104,144,1,2789 +BRDA:106,117,1,7563 +BRDA:108,73,0,6653 +BRDA:108,73,1,910 +BRDA:108,97,0,910 +BRDA:108,97,1,7563 +BRDA:106,117,0,2789 +BRDA:104,144,0,473 +FN:115,System.Void sly.parser.llparser.RecursiveDescentSyntaxParser`2::InitStartingTokensForNonTerminal(System.Collections.Generic.Dictionary`2>,System.String) +FNDA:2099,System.Void sly.parser.llparser.RecursiveDescentSyntaxParser`2::InitStartingTokensForNonTerminal(System.Collections.Generic.Dictionary`2>,System.String) +DA:116,2099 +DA:117,2099 +DA:118,2075 +DA:119,2075 +DA:120,8330 +DA:121,2075 +DA:122,2099 +BRDA:117,35,0,2075 +BRDA:117,35,1,2099 +FN:125,System.Void sly.parser.llparser.RecursiveDescentSyntaxParser`2::InitStartingTokensForRule(System.Collections.Generic.Dictionary`2>,sly.parser.syntax.grammar.Rule`1) +FNDA:7165,System.Void sly.parser.llparser.RecursiveDescentSyntaxParser`2::InitStartingTokensForRule(System.Collections.Generic.Dictionary`2>,sly.parser.syntax.grammar.Rule`1) +DA:126,7165 +DA:127,7165 +DA:128,3878 +DA:129,3878 +DA:130,3878 +DA:131,3878 +DA:132,3878 +DA:133,3878 +DA:134,2226 +DA:135,2226 +DA:136,2226 +DA:137,2226 +DA:138,1652 +DA:139,1591 +DA:140,1591 +DA:141,1591 +DA:142,1591 +DA:143,1591 +DA:144,1591 +DA:145,5635 +DA:146,5635 +DA:147,7226 +DA:148,1591 +DA:149,1591 +DA:150,1591 +DA:152,61 +DA:153,61 +DA:154,61 +DA:155,3878 +DA:156,3878 +DA:157,7165 +BRDA:127,25,0,3287 +BRDA:127,25,1,3878 +BRDA:127,51,0,3878 +BRDA:130,95,0,3878 +BRDA:133,136,0,2226 +BRDA:133,136,1,1652 +BRDA:138,219,0,1591 +BRDA:141,254,0,1591 +BRDA:141,254,1,1591 +BRDA:138,219,1,61 +BRDA:130,95,1,3878 +BRDA:127,51,1,7165 +FN:160,System.Void sly.parser.llparser.RecursiveDescentSyntaxParser`2::InitStartingTokensForRuleExtensions(sly.parser.syntax.grammar.IClause`1,sly.parser.syntax.grammar.Rule`1,System.Collections.Generic.Dictionary`2>) +FNDA:0,System.Void sly.parser.llparser.RecursiveDescentSyntaxParser`2::InitStartingTokensForRuleExtensions(sly.parser.syntax.grammar.IClause`1,sly.parser.syntax.grammar.Rule`1,System.Collections.Generic.Dictionary`2>) +DA:161,0 +DA:162,0 +FN:168,sly.parser.SyntaxParseResult`1 sly.parser.llparser.RecursiveDescentSyntaxParser`2::Parse(System.Collections.Generic.IList`1>,System.String) +FNDA:830,sly.parser.SyntaxParseResult`1 sly.parser.llparser.RecursiveDescentSyntaxParser`2::Parse(System.Collections.Generic.IList`1>,System.String) +DA:169,830 +DA:170,830 +DA:171,830 +DA:172,830 +DA:173,830 +DA:175,1722 +DA:177,830 +DA:178,1 +DA:179,1 +DA:180,1 +DA:182,830 +DA:183,4236 +DA:184,873 +DA:185,873 +DA:186,873 +DA:187,873 +DA:189,830 +DA:192,830 +DA:193,829 +DA:194,1686 +DA:196,829 +DA:197,10 +DA:198,22 +DA:199,10 +DA:200,22 +DA:204,10 +DA:205,10 +DA:206,20 +DA:207,20 +DA:208,10 +DA:209,0 +DA:210,0 +DA:211,0 +DA:212,10 +DA:213,829 +DA:215,830 +DA:216,11 +DA:217,11 +DA:218,11 +DA:220,11 +DA:221,11 +DA:222,63 +DA:223,63 +DA:224,11 +DA:225,11 +DA:226,11 +DA:228,0 +DA:229,0 +DA:230,0 +DA:232,11 +DA:233,11 +DA:235,830 +DA:236,830 +BRDA:170,16,0,785 +BRDA:170,16,1,830 +BRDA:177,101,0,1 +BRDA:177,101,1,830 +BRDA:183,216,1,873 +BRDA:183,216,0,830 +BRDA:192,252,0,829 +BRDA:194,266,0,41 +BRDA:194,266,1,829 +BRDA:196,307,0,10 +BRDA:198,328,0,7 +BRDA:198,328,1,10 +BRDA:208,444,0,0 +BRDA:208,444,1,10 +BRDA:196,307,1,829 +BRDA:192,252,1,830 +BRDA:215,500,0,11 +BRDA:220,543,0,11 +BRDA:222,567,0,7 +BRDA:222,567,1,11 +BRDA:220,543,1,0 +BRDA:215,500,1,830 +BRDA:194,6,0,819 +BRDA:194,6,1,38 +BRDA:175,17,0,892 +BRDA:175,17,1,0 +BRDA:206,12,0,10 +BRDA:206,12,1,10 +FN:240,sly.parser.SyntaxParseResult`1 sly.parser.llparser.RecursiveDescentSyntaxParser`2::Parse(System.Collections.Generic.IList`1>,sly.parser.syntax.grammar.Rule`1,System.Int32,System.String) +FNDA:27604,sly.parser.SyntaxParseResult`1 sly.parser.llparser.RecursiveDescentSyntaxParser`2::Parse(System.Collections.Generic.IList`1>,sly.parser.syntax.grammar.Rule`1,System.Int32,System.String) +DA:241,27604 +DA:242,27604 +DA:243,27604 +DA:244,27604 +DA:245,27604 +DA:246,27604 +DA:247,27604 +DA:248,27604 +DA:249,27604 +DA:250,166700 +DA:251,48074 +DA:252,48074 +DA:253,35817 +DA:254,35817 +DA:255,35817 +DA:256,24694 +DA:257,24694 +DA:258,24694 +DA:259,24694 +DA:261,11123 +DA:262,11123 +DA:263,11123 +DA:264,11123 +DA:265,11123 +DA:267,35817 +DA:268,35817 +DA:269,12257 +DA:270,12254 +DA:271,12254 +DA:272,12254 +DA:273,12254 +DA:274,11117 +DA:275,11117 +DA:276,11117 +DA:277,11117 +DA:278,8636 +DA:279,11117 +DA:281,1137 +DA:282,1137 +DA:283,1137 +DA:285,12254 +DA:286,12254 +DA:288,60334 +DA:289,35814 +DA:290,27604 +DA:292,27604 +DA:293,27604 +DA:294,27604 +DA:295,27604 +DA:296,27604 +DA:297,15344 +DA:298,15344 +DA:299,15344 +DA:300,0 +DA:302,15344 +DA:303,15344 +DA:304,15344 +DA:305,8 +DA:306,15344 +DA:307,15344 +DA:308,15344 +DA:309,15344 +DA:311,15344 +DA:314,27604 +DA:315,27604 +BRDA:246,29,0,27604 +BRDA:246,29,1,0 +BRDA:246,61,0,27604 +BRDA:247,72,0,27604 +BRDA:247,72,1,0 +BRDA:247,95,0,27604 +BRDA:250,462,1,48074 +BRDA:252,150,0,35817 +BRDA:255,187,0,24694 +BRDA:255,187,1,11123 +BRDA:267,272,0,35817 +BRDA:267,272,1,0 +BRDA:252,150,1,12257 +BRDA:269,305,0,12254 +BRDA:273,342,0,11117 +BRDA:277,374,0,11117 +BRDA:277,374,1,0 +BRDA:277,395,0,8636 +BRDA:277,395,1,11117 +BRDA:273,342,1,1137 +BRDA:285,431,0,12254 +BRDA:285,431,1,0 +BRDA:269,305,1,48074 +BRDA:288,450,1,35814 +BRDA:288,450,0,27604 +BRDA:250,462,0,27604 +BRDA:246,61,1,27604 +BRDA:247,95,1,27604 +BRDA:296,527,0,15344 +BRDA:299,546,0,0 +BRDA:299,546,1,15344 +BRDA:304,593,0,8 +BRDA:304,593,1,15344 +BRDA:307,637,0,11518 +BRDA:307,654,0,2610 +BRDA:307,654,1,8908 +BRDA:307,637,1,3826 +BRDA:296,527,1,27604 +FN:317,sly.parser.syntax.tree.SyntaxNode`1 sly.parser.llparser.RecursiveDescentSyntaxParser`2::ManageExpressionRules(sly.parser.syntax.grammar.Rule`1,sly.parser.syntax.tree.SyntaxNode`1) +FNDA:19915,sly.parser.syntax.tree.SyntaxNode`1 sly.parser.llparser.RecursiveDescentSyntaxParser`2::ManageExpressionRules(sly.parser.syntax.grammar.Rule`1,sly.parser.syntax.tree.SyntaxNode`1) +DA:318,19915 +DA:319,19915 +DA:320,19915 +DA:321,1360 +DA:322,1360 +DA:323,1360 +DA:324,18555 +DA:325,180 +DA:326,180 +DA:327,180 +DA:328,132 +DA:329,132 +DA:330,132 +DA:331,48 +DA:332,48 +DA:333,48 +DA:334,44 +DA:335,8 +DA:336,48 +DA:338,180 +DA:339,180 +DA:340,180 +DA:341,180 +DA:342,180 +DA:343,180 +DA:344,180 +DA:345,180 +DA:346,180 +DA:347,180 +DA:348,180 +DA:349,180 +DA:350,18375 +DA:351,18375 +DA:352,18375 +DA:353,18375 +DA:355,19915 +DA:356,19915 +BRDA:320,9,0,1540 +BRDA:320,9,1,18375 +BRDA:320,22,0,1360 +BRDA:320,22,1,18555 +BRDA:324,45,0,180 +BRDA:324,45,1,18375 +BRDA:324,61,0,180 +BRDA:327,96,0,132 +BRDA:327,96,1,48 +BRDA:331,122,0,48 +BRDA:333,138,0,44 +BRDA:333,138,1,4 +BRDA:335,157,0,4 +BRDA:335,157,1,48 +BRDA:331,122,1,180 +BRDA:338,173,0,180 +BRDA:339,203,0,180 +BRDA:340,214,0,180 +BRDA:343,249,0,180 +BRDA:343,249,1,180 +BRDA:338,173,1,180 +BRDA:339,203,1,180 +BRDA:340,214,1,180 +BRDA:324,61,1,18375 +BRDA:350,304,0,18375 +BRDA:350,304,1,19915 +FN:358,sly.parser.SyntaxParseResult`1 sly.parser.llparser.RecursiveDescentSyntaxParser`2::ParseTerminal(System.Collections.Generic.IList`1>,sly.parser.syntax.grammar.TerminalClause`1,System.Int32) +FNDA:40451,sly.parser.SyntaxParseResult`1 sly.parser.llparser.RecursiveDescentSyntaxParser`2::ParseTerminal(System.Collections.Generic.IList`1>,sly.parser.syntax.grammar.TerminalClause`1,System.Int32) +DA:359,40451 +DA:360,40451 +DA:361,40451 +DA:362,40451 +DA:363,40451 +DA:364,40451 +DA:365,40451 +DA:366,40451 +DA:367,40451 +BRDA:362,37,0,13597 +BRDA:362,37,1,26854 +FN:371,sly.parser.SyntaxParseResult`1 sly.parser.llparser.RecursiveDescentSyntaxParser`2::ParseNonTerminal(System.Collections.Generic.IList`1>,sly.parser.syntax.grammar.NonTerminalClause`1,System.Int32) +FNDA:16709,sly.parser.SyntaxParseResult`1 sly.parser.llparser.RecursiveDescentSyntaxParser`2::ParseNonTerminal(System.Collections.Generic.IList`1>,sly.parser.syntax.grammar.NonTerminalClause`1,System.Int32) +DA:372,16709 +DA:373,16709 +DA:374,16709 +DA:375,16709 +DA:376,16709 +DA:378,16709 +DA:379,16709 +DA:380,67235 +DA:381,16709 +DA:383,16709 +DA:384,1242 +DA:385,1242 +DA:386,1242 +DA:387,2515 +DA:388,5030 +DA:389,3757 +DA:390,1242 +DA:391,1242 +DA:394,15467 +DA:395,15467 +DA:396,15467 +DA:397,47818 +DA:398,32351 +DA:399,32351 +DA:400,32351 +DA:401,32351 +DA:403,32351 +DA:404,32351 +DA:405,32351 +DA:406,12011 +DA:407,12011 +DA:409,12011 +DA:410,12011 +DA:412,32351 +DA:413,32351 +DA:414,32351 +DA:416,15467 +DA:417,15467 +DA:418,15467 +DA:419,15467 +DA:420,41467 +DA:421,15431 +DA:422,66822 +DA:423,15431 +DA:425,36 +DA:426,122 +DA:427,36 +DA:428,15467 +DA:430,0 +DA:431,0 +DA:432,0 +DA:433,0 +DA:434,0 +DA:435,0 +DA:436,0 +DA:438,15467 +DA:439,15467 +DA:440,15467 +DA:441,15467 +DA:442,15467 +DA:443,15467 +DA:445,15467 +DA:446,15467 +DA:447,47818 +DA:448,15467 +DA:449,63403 +DA:450,15467 +DA:451,15467 +DA:453,15467 +DA:454,16709 +BRDA:383,99,0,1242 +BRDA:383,99,1,15467 +BRDA:397,398,1,32351 +BRDA:403,271,0,27860 +BRDA:403,271,1,4491 +BRDA:404,297,0,29448 +BRDA:404,306,0,29448 +BRDA:404,297,1,2903 +BRDA:404,306,1,2903 +BRDA:404,333,0,12011 +BRDA:404,333,1,32351 +BRDA:397,398,0,15467 +BRDA:418,426,0,15467 +BRDA:420,440,0,39 +BRDA:420,440,1,15467 +BRDA:420,474,0,15431 +BRDA:422,485,0,39 +BRDA:422,485,1,15431 +BRDA:422,521,0,39 +BRDA:422,521,1,15431 +BRDA:420,474,1,36 +BRDA:426,570,0,4 +BRDA:426,570,1,36 +BRDA:426,606,0,4 +BRDA:426,606,1,36 +BRDA:418,426,1,0 +BRDA:445,779,0,15467 +BRDA:447,790,0,39 +BRDA:447,790,1,15467 +BRDA:449,849,0,39 +BRDA:449,849,1,15467 +BRDA:445,779,1,15467 +BRDA:380,17,0,67231 +BRDA:380,41,0,65788 +BRDA:380,17,1,34892 +BRDA:380,41,1,34892 +BRDA:380,76,0,34892 +BRDA:380,76,1,32343 +BRDA:388,2,0,2515 +BRDA:388,2,1,0 +BRDA:388,18,0,2515 +BRDA:388,18,1,2515 +FN:456,sly.parser.SyntaxParseResult`1 sly.parser.llparser.RecursiveDescentSyntaxParser`2::NoMatchingRuleError(System.Collections.Generic.IList`1>,System.Int32,System.Collections.Generic.List`1) +FNDA:1242,sly.parser.SyntaxParseResult`1 sly.parser.llparser.RecursiveDescentSyntaxParser`2::NoMatchingRuleError(System.Collections.Generic.IList`1>,System.Int32,System.Collections.Generic.List`1) +DA:457,1242 +DA:458,1242 +DA:460,1242 +DA:461,1241 +DA:462,1241 +DA:463,1241 +DA:464,1241 +DA:466,1 +DA:467,1 +DA:468,1 +DA:469,1 +DA:471,1242 +DA:472,1242 +DA:473,1242 +DA:474,1242 +DA:475,1242 +DA:476,1242 +DA:478,1242 +DA:479,1242 +BRDA:460,18,0,1241 +BRDA:460,18,1,1 +FN:481,System.Void sly.parser.llparser.RecursiveDescentSyntaxParser`2::Init(sly.parser.generator.ParserConfiguration`2,System.String) +FNDA:236,System.Void sly.parser.llparser.RecursiveDescentSyntaxParser`2::Init(sly.parser.generator.ParserConfiguration`2,System.String) +DA:482,236 +DA:483,472 +DA:484,236 +DA:485,236 +BRDA:483,7,0,236 +BRDA:483,7,1,236 +FN:11,System.Void sly.parser.llparser.RecursiveDescentSyntaxParser`2::.ctor(sly.parser.generator.ParserConfiguration`2,System.String,System.String) +FNDA:237,System.Void sly.parser.llparser.RecursiveDescentSyntaxParser`2::.ctor(sly.parser.generator.ParserConfiguration`2,System.String,System.String) +DA:12,237 +DA:13,237 +DA:14,237 +DA:15,237 +DA:16,237 +DA:17,237 +DA:18,237 +DA:19,237 +LF:382 +LH:366 +BRF:184 +BRH:173 +FNF:17 +FNH:16 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\parser\Group.cs +FN:19,System.Int32 sly.parser.parser.Group`2::get_Count() +FNDA:0,System.Int32 sly.parser.parser.Group`2::get_Count() +DA:20,0 +FN:23,OUT sly.parser.parser.Group`2::Value(System.Int32) +FNDA:5,OUT sly.parser.parser.Group`2::Value(System.Int32) +DA:24,5 +DA:25,5 +DA:26,5 +FN:28,sly.lexer.Token`1 sly.parser.parser.Group`2::Token(System.Int32) +FNDA:7,sly.lexer.Token`1 sly.parser.parser.Group`2::Token(System.Int32) +DA:29,7 +DA:30,7 +DA:31,7 +FN:34,OUT sly.parser.parser.Group`2::Value(System.String) +FNDA:0,OUT sly.parser.parser.Group`2::Value(System.String) +DA:35,0 +DA:36,0 +DA:37,0 +BRDA:36,13,0,0 +BRDA:36,13,1,0 +FN:39,sly.lexer.Token`1 sly.parser.parser.Group`2::Token(System.String) +FNDA:0,sly.lexer.Token`1 sly.parser.parser.Group`2::Token(System.String) +DA:40,0 +DA:41,0 +DA:42,0 +BRDA:41,13,0,0 +BRDA:41,13,1,0 +FN:44,System.Void sly.parser.parser.Group`2::Add(System.String,sly.lexer.Token`1) +FNDA:19,System.Void sly.parser.parser.Group`2::Add(System.String,sly.lexer.Token`1) +DA:45,19 +DA:46,19 +DA:47,19 +DA:48,19 +DA:49,19 +FN:51,System.Void sly.parser.parser.Group`2::Add(System.String,OUT) +FNDA:5,System.Void sly.parser.parser.Group`2::Add(System.String,OUT) +DA:52,5 +DA:53,5 +DA:54,5 +DA:55,5 +DA:56,5 +FN:13,System.Void sly.parser.parser.Group`2::.ctor() +FNDA:17,System.Void sly.parser.parser.Group`2::.ctor() +DA:14,17 +DA:15,17 +DA:16,17 +DA:17,17 +DA:18,17 +LF:28 +LH:21 +BRF:4 +BRH:0 +FNF:8 +FNH:5 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\parser\GroupItem.cs +FN:25,sly.lexer.Token`1 sly.parser.parser.GroupItem`2::get_Token() +FNDA:13,sly.lexer.Token`1 sly.parser.parser.GroupItem`2::get_Token() +DA:26,13 +FN:27,System.Boolean sly.parser.parser.GroupItem`2::get_IsToken() +FNDA:23,System.Boolean sly.parser.parser.GroupItem`2::get_IsToken() +DA:28,23 +FN:29,OUT sly.parser.parser.GroupItem`2::get_Value() +FNDA:10,OUT sly.parser.parser.GroupItem`2::get_Value() +DA:30,10 +FN:31,System.Boolean sly.parser.parser.GroupItem`2::get_IsValue() +FNDA:2,System.Boolean sly.parser.parser.GroupItem`2::get_IsValue() +DA:32,2 +FN:35,X sly.parser.parser.GroupItem`2::Match(System.Func`3,X>,System.Func`3) +FNDA:4,X sly.parser.parser.GroupItem`2::Match(System.Func`3,X>,System.Func`3) +DA:36,4 +DA:37,4 +DA:38,4 +DA:39,0 +DA:40,4 +BRDA:37,9,0,4 +BRDA:37,9,1,0 +FN:42,OUT sly.parser.parser.GroupItem`2::op_Implicit(sly.parser.parser.GroupItem`2) +FNDA:0,OUT sly.parser.parser.GroupItem`2::op_Implicit(sly.parser.parser.GroupItem`2) +DA:43,0 +DA:44,0 +DA:45,0 +BRDA:44,26,0,0 +BRDA:44,26,1,0 +FN:47,sly.lexer.Token`1 sly.parser.parser.GroupItem`2::op_Implicit(sly.parser.parser.GroupItem`2) +FNDA:0,sly.lexer.Token`1 sly.parser.parser.GroupItem`2::op_Implicit(sly.parser.parser.GroupItem`2) +DA:48,0 +DA:49,0 +DA:50,0 +BRDA:49,38,0,0 +BRDA:49,38,1,0 +FN:11,System.Void sly.parser.parser.GroupItem`2::.ctor(System.String,sly.lexer.Token`1) +FNDA:19,System.Void sly.parser.parser.GroupItem`2::.ctor(System.String,sly.lexer.Token`1) +DA:12,19 +DA:13,19 +DA:14,19 +DA:15,19 +DA:16,19 +DA:17,19 +FN:18,System.Void sly.parser.parser.GroupItem`2::.ctor(System.String,OUT) +FNDA:5,System.Void sly.parser.parser.GroupItem`2::.ctor(System.String,OUT) +DA:19,5 +DA:20,5 +DA:21,5 +DA:22,5 +DA:23,5 +DA:24,5 +LF:27 +LH:20 +BRF:6 +BRH:1 +FNF:9 +FNH:7 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\parser\SyntaxTreeCleaner.cs +FN:8,sly.parser.SyntaxParseResult`1 sly.parser.parser.SyntaxTreeCleaner`1::CleanSyntaxTree(sly.parser.SyntaxParseResult`1) +FNDA:830,sly.parser.SyntaxParseResult`1 sly.parser.parser.SyntaxTreeCleaner`1::CleanSyntaxTree(sly.parser.SyntaxParseResult`1) +DA:9,830 +DA:10,830 +DA:11,830 +DA:12,819 +DA:13,819 +DA:14,1638 +DA:15,819 +DA:16,819 +DA:18,830 +DA:19,830 +BRDA:11,14,0,819 +BRDA:14,34,0,819 +BRDA:14,34,1,819 +BRDA:11,14,1,830 +FN:21,System.Boolean sly.parser.parser.SyntaxTreeCleaner`1::NeedAssociativityProcessing(sly.parser.syntax.tree.ISyntaxNode`1) +FNDA:819,System.Boolean sly.parser.parser.SyntaxTreeCleaner`1::NeedAssociativityProcessing(sly.parser.syntax.tree.ISyntaxNode`1) +DA:22,819 +DA:23,819 +DA:24,819 +DA:25,0 +DA:26,0 +DA:27,0 +DA:28,0 +DA:29,0 +DA:30,819 +DA:31,0 +DA:32,1638 +DA:35,819 +DA:36,819 +BRDA:24,16,0,0 +BRDA:25,75,1,0 +BRDA:27,44,0,0 +BRDA:27,44,1,0 +BRDA:28,63,1,0 +BRDA:28,63,0,0 +BRDA:25,75,0,0 +BRDA:24,16,1,819 +BRDA:30,113,0,0 +BRDA:30,113,1,819 +BRDA:32,136,0,819 +BRDA:32,136,1,819 +FN:38,sly.parser.syntax.tree.ISyntaxNode`1 sly.parser.parser.SyntaxTreeCleaner`1::RemoveByPassNodes(sly.parser.syntax.tree.ISyntaxNode`1) +FNDA:11296,sly.parser.syntax.tree.ISyntaxNode`1 sly.parser.parser.SyntaxTreeCleaner`1::RemoveByPassNodes(sly.parser.syntax.tree.ISyntaxNode`1) +DA:39,11296 +DA:40,11296 +DA:43,11296 +DA:44,455 +DA:45,455 +DA:46,455 +DA:48,10841 +DA:49,16014 +DA:50,10841 +DA:51,5668 +DA:52,5668 +DA:53,46350 +DA:54,5668 +DA:55,5668 +DA:56,5668 +DA:57,5668 +DA:59,10841 +DA:60,135 +DA:61,135 +DA:62,1125 +DA:63,135 +DA:64,135 +DA:65,135 +DA:66,135 +DA:67,10841 +DA:69,11296 +DA:70,11296 +BRDA:43,11,0,6123 +BRDA:43,11,1,5173 +BRDA:43,24,0,455 +BRDA:43,24,1,10841 +BRDA:49,68,0,5173 +BRDA:49,68,1,10841 +BRDA:50,89,0,5668 +BRDA:53,148,1,9782 +BRDA:53,148,0,5668 +BRDA:50,89,1,10841 +BRDA:59,216,0,135 +BRDA:62,275,1,240 +BRDA:62,275,0,135 +BRDA:59,216,1,10841 +FN:73,sly.parser.syntax.tree.ISyntaxNode`1 sly.parser.parser.SyntaxTreeCleaner`1::SetAssociativity(sly.parser.syntax.tree.ISyntaxNode`1) +FNDA:8974,sly.parser.syntax.tree.ISyntaxNode`1 sly.parser.parser.SyntaxTreeCleaner`1::SetAssociativity(sly.parser.syntax.tree.ISyntaxNode`1) +DA:74,8974 +DA:75,8974 +DA:78,8974 +DA:79,93 +DA:80,93 +DA:81,762 +DA:82,93 +DA:83,93 +DA:84,93 +DA:85,93 +DA:86,8881 +DA:87,4285 +DA:88,4285 +DA:89,4285 +DA:90,4596 +DA:91,4596 +DA:92,4603 +DA:93,4596 +DA:94,37770 +DA:95,4596 +DA:96,4596 +DA:97,4596 +DA:98,4596 +DA:100,8974 +DA:101,8974 +BRDA:78,16,0,93 +BRDA:81,72,1,161 +BRDA:81,72,0,93 +BRDA:78,16,1,8881 +BRDA:86,141,0,4285 +BRDA:86,141,1,4596 +BRDA:90,170,0,4596 +BRDA:92,188,0,7 +BRDA:92,188,1,4596 +BRDA:94,256,1,7994 +BRDA:94,256,0,4596 +BRDA:90,170,1,8974 +FN:104,System.Boolean sly.parser.parser.SyntaxTreeCleaner`1::NeedLeftAssociativity(sly.parser.syntax.tree.SyntaxNode`1) +FNDA:4612,System.Boolean sly.parser.parser.SyntaxTreeCleaner`1::NeedLeftAssociativity(sly.parser.syntax.tree.SyntaxNode`1) +DA:105,4612 +DA:106,4612 +DA:107,4612 +DA:108,4612 +DA:109,4612 +BRDA:106,7,0,81 +BRDA:106,15,0,34 +BRDA:106,30,0,34 +BRDA:106,38,0,17 +BRDA:106,7,1,4595 +BRDA:106,15,1,4595 +BRDA:106,30,1,4595 +BRDA:106,38,1,4595 +FN:111,sly.parser.syntax.tree.SyntaxNode`1 sly.parser.parser.SyntaxTreeCleaner`1::ProcessLeftAssociativity(sly.parser.syntax.tree.SyntaxNode`1) +FNDA:7,sly.parser.syntax.tree.SyntaxNode`1 sly.parser.parser.SyntaxTreeCleaner`1::ProcessLeftAssociativity(sly.parser.syntax.tree.SyntaxNode`1) +DA:112,7 +DA:113,7 +DA:114,16 +DA:115,9 +DA:116,9 +DA:117,9 +DA:118,9 +DA:119,9 +DA:120,9 +DA:121,9 +DA:123,7 +DA:124,7 +BRDA:114,65,1,9 +BRDA:114,65,0,7 +LF:92 +LH:86 +BRF:52 +BRH:44 +FNF:6 +FNH:6 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\parser\ValueOption.cs +FN:7,sly.parser.parser.ValueOption`1 sly.parser.parser.ValueOptionConstructors::None() +FNDA:2,sly.parser.parser.ValueOption`1 sly.parser.parser.ValueOptionConstructors::None() +DA:8,2 +DA:9,2 +DA:10,2 +FN:12,sly.parser.parser.ValueOption`1> sly.parser.parser.ValueOptionConstructors::NoneGroup() +FNDA:2,sly.parser.parser.ValueOption`1> sly.parser.parser.ValueOptionConstructors::NoneGroup() +DA:13,2 +DA:14,2 +DA:15,2 +DA:16,2 +FN:18,sly.parser.parser.ValueOption`1 sly.parser.parser.ValueOptionConstructors::Some(T) +FNDA:9,sly.parser.parser.ValueOption`1 sly.parser.parser.ValueOptionConstructors::Some(T) +DA:19,9 +DA:20,9 +DA:21,9 +FN:41,T sly.parser.parser.ValueOption`1::get_Value() +FNDA:9,T sly.parser.parser.ValueOption`1::get_Value() +DA:42,9 +FN:43,System.Boolean sly.parser.parser.ValueOption`1::get_IsNone() +FNDA:13,System.Boolean sly.parser.parser.ValueOption`1::get_IsNone() +DA:44,13 +FN:44,System.Boolean sly.parser.parser.ValueOption`1::get_IsSome() +FNDA:13,System.Boolean sly.parser.parser.ValueOption`1::get_IsSome() +DA:45,13 +FN:47,T sly.parser.parser.ValueOption`1::Match(System.Func`2,System.Func`1) +FNDA:13,T sly.parser.parser.ValueOption`1::Match(System.Func`2,System.Func`1) +DA:48,13 +DA:49,13 +DA:50,9 +DA:51,4 +DA:52,13 +BRDA:49,9,0,9 +BRDA:49,9,1,4 +FN:25,System.Void sly.parser.parser.ValueOption`1::.ctor() +FNDA:2,System.Void sly.parser.parser.ValueOption`1::.ctor() +DA:26,2 +DA:27,2 +DA:28,2 +DA:29,2 +FN:30,System.Void sly.parser.parser.ValueOption`1::.ctor(System.Boolean) +FNDA:2,System.Void sly.parser.parser.ValueOption`1::.ctor(System.Boolean) +DA:31,2 +DA:32,2 +DA:33,2 +DA:34,2 +FN:35,System.Void sly.parser.parser.ValueOption`1::.ctor(T) +FNDA:9,System.Void sly.parser.parser.ValueOption`1::.ctor(T) +DA:36,9 +DA:37,9 +DA:38,9 +DA:39,9 +DA:40,9 +LF:31 +LH:31 +BRF:2 +BRH:2 +FNF:10 +FNH:10 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\generator\EBNFParserBuilder.cs +FN:25,sly.buildresult.BuildResult`1> sly.parser.generator.EBNFParserBuilder`2::BuildParser(System.Object,sly.parser.generator.ParserType,System.String,sly.lexer.fsm.BuildExtension`1) +FNDA:96,sly.buildresult.BuildResult`1> sly.parser.generator.EBNFParserBuilder`2::BuildParser(System.Object,sly.parser.generator.ParserType,System.String,sly.lexer.fsm.BuildExtension`1) +DA:26,96 +DA:27,96 +DA:28,96 +DA:30,96 +DA:33,96 +DA:35,96 +DA:38,96 +DA:39,96 +DA:40,96 +DA:41,96 +DA:42,96 +DA:43,5 +DA:44,14 +DA:45,5 +DA:46,5 +DA:47,5 +DA:48,5 +DA:52,91 +DA:53,91 +DA:54,0 +DA:55,0 +DA:56,0 +DA:57,0 +DA:60,91 +DA:62,91 +DA:63,91 +DA:64,0 +DA:65,91 +DA:66,91 +DA:67,91 +DA:68,91 +DA:69,91 +DA:70,91 +DA:71,0 +DA:72,0 +DA:73,0 +DA:74,0 +DA:75,0 +DA:76,0 +DA:79,91 +DA:80,91 +DA:81,91 +DA:82,91 +DA:83,96 +BRDA:42,99,0,5 +BRDA:44,115,0,2 +BRDA:44,115,1,5 +BRDA:42,99,1,91 +BRDA:63,272,0,0 +BRDA:63,272,1,91 +BRDA:65,293,0,91 +BRDA:65,293,1,91 +BRDA:70,353,0,0 +BRDA:72,400,1,0 +BRDA:72,400,0,0 +BRDA:70,353,1,91 +FN:88,sly.parser.ISyntaxParser`2 sly.parser.generator.EBNFParserBuilder`2::BuildSyntaxParser(sly.parser.generator.ParserConfiguration`2,sly.parser.generator.ParserType,System.String) +FNDA:91,sly.parser.ISyntaxParser`2 sly.parser.generator.EBNFParserBuilder`2::BuildSyntaxParser(sly.parser.generator.ParserConfiguration`2,sly.parser.generator.ParserType,System.String) +DA:89,91 +DA:90,91 +DA:91,91 +DA:94,0 +DA:95,0 +DA:96,0 +DA:99,91 +DA:100,91 +DA:101,91 +DA:104,0 +DA:105,0 +DA:106,0 +DA:110,91 +DA:111,91 +BRDA:91,9,0,91 +BRDA:91,9,1,0 +BRDA:91,15,1,91 +BRDA:91,15,0,0 +FN:117,sly.parser.generator.ParserConfiguration`2 sly.parser.generator.EBNFParserBuilder`2::ExtractEbnfParserConfiguration(System.Type,sly.parser.Parser`2>) +FNDA:96,sly.parser.generator.ParserConfiguration`2 sly.parser.generator.EBNFParserBuilder`2::ExtractEbnfParserConfiguration(System.Type,sly.parser.Parser`2>) +DA:118,96 +DA:119,96 +DA:120,96 +DA:121,96 +DA:122,96 +DA:123,1488 +DA:124,1488 +DA:125,2775 +DA:126,1488 +DA:127,1584 +DA:129,96 +DA:130,659 +DA:131,659 +DA:132,659 +DA:133,96 +DA:134,3327 +DA:135,675 +DA:136,675 +DA:137,675 +DA:138,675 +DA:139,675 +DA:140,675 +DA:141,675 +DA:142,675 +DA:143,675 +DA:144,675 +DA:145,411 +DA:146,96 +DA:147,264 +DA:148,675 +DA:149,675 +DA:150,675 +DA:151,96 +DA:152,0 +DA:153,0 +DA:154,0 +DA:155,0 +DA:156,0 +DA:157,0 +DA:158,0 +DA:159,96 +DA:160,675 +DA:161,755 +DA:163,96 +DA:165,96 +DA:166,96 +BRDA:122,50,0,22 +BRDA:122,50,1,96 +BRDA:125,20,0,22 +BRDA:125,20,1,1488 +BRDA:134,346,1,675 +BRDA:138,77,0,675 +BRDA:144,144,0,411 +BRDA:144,144,1,264 +BRDA:138,77,1,0 +BRDA:153,240,0,0 +BRDA:153,240,1,0 +BRDA:153,276,0,0 +BRDA:153,276,1,0 +BRDA:134,346,0,659 +FN:19,System.Void sly.parser.generator.EBNFParserBuilder`2::.ctor(System.String) +FNDA:96,System.Void sly.parser.generator.EBNFParserBuilder`2::.ctor(System.String) +DA:20,96 +DA:21,96 +DA:22,96 +LF:107 +LH:83 +BRF:30 +BRH:19 +FNF:4 +FNH:4 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\generator\ExpressionRulesGenerator.cs +FN:23,System.Int32 sly.parser.generator.OperationMetaData`1::get_Precedence() +FNDA:660,System.Int32 sly.parser.generator.OperationMetaData`1::get_Precedence() +DA:24,660 +FN:25,sly.parser.generator.Associativity sly.parser.generator.OperationMetaData`1::get_Associativity() +FNDA:256,sly.parser.generator.Associativity sly.parser.generator.OperationMetaData`1::get_Associativity() +DA:26,256 +FN:27,System.Reflection.MethodInfo sly.parser.generator.OperationMetaData`1::get_VisitorMethod() +FNDA:529,System.Reflection.MethodInfo sly.parser.generator.OperationMetaData`1::get_VisitorMethod() +DA:28,529 +FN:29,T sly.parser.generator.OperationMetaData`1::get_OperatorToken() +FNDA:871,T sly.parser.generator.OperationMetaData`1::get_OperatorToken() +DA:30,871 +FN:31,sly.parser.generator.Affix sly.parser.generator.OperationMetaData`1::get_Affix() +FNDA:1264,sly.parser.generator.Affix sly.parser.generator.OperationMetaData`1::get_Affix() +DA:32,1264 +FN:33,System.Boolean sly.parser.generator.OperationMetaData`1::get_IsBinary() +FNDA:128,System.Boolean sly.parser.generator.OperationMetaData`1::get_IsBinary() +DA:34,128 +FN:35,System.Boolean sly.parser.generator.OperationMetaData`1::get_IsUnary() +FNDA:174,System.Boolean sly.parser.generator.OperationMetaData`1::get_IsUnary() +DA:36,174 +FN:14,System.Void sly.parser.generator.OperationMetaData`1::.ctor(System.Int32,sly.parser.generator.Associativity,System.Reflection.MethodInfo,sly.parser.generator.Affix,T) +FNDA:175,System.Void sly.parser.generator.OperationMetaData`1::.ctor(System.Int32,sly.parser.generator.Associativity,System.Reflection.MethodInfo,sly.parser.generator.Affix,T) +DA:15,175 +DA:16,175 +DA:17,175 +DA:18,175 +DA:19,175 +DA:20,175 +DA:21,175 +DA:22,175 +FN:46,System.String sly.parser.generator.ExpressionRulesGenerator`2::get_I18n() +FNDA:237,System.String sly.parser.generator.ExpressionRulesGenerator`2::get_I18n() +DA:47,237 +FN:60,sly.buildresult.BuildResult`1> sly.parser.generator.ExpressionRulesGenerator`2::BuildExpressionRules(sly.parser.generator.ParserConfiguration`2,System.Type,sly.buildresult.BuildResult`1>) +FNDA:237,sly.buildresult.BuildResult`1> sly.parser.generator.ExpressionRulesGenerator`2::BuildExpressionRules(sly.parser.generator.ParserConfiguration`2,System.Type,sly.buildresult.BuildResult`1>) +DA:61,237 +DA:62,237 +DA:63,237 +DA:64,4996 +DA:65,4996 +DA:66,9372 +DA:67,4996 +DA:68,5233 +DA:70,237 +DA:72,237 +DA:73,113 +DA:74,113 +DA:75,113 +DA:76,237 +DA:77,690 +DA:78,176 +DA:79,176 +DA:80,176 +DA:81,137 +DA:82,137 +DA:83,137 +DA:84,39 +DA:85,39 +DA:86,39 +DA:87,38 +DA:88,175 +DA:89,175 +DA:90,175 +DA:91,101 +DA:92,175 +DA:93,175 +DA:94,175 +DA:95,349 +DA:97,236 +DA:98,25 +DA:99,25 +DA:102,25 +DA:103,25 +DA:104,25 +DA:105,25 +DA:107,236 +DA:108,236 +DA:109,236 +BRDA:63,26,0,43 +BRDA:63,26,1,237 +BRDA:97,108,0,25 +BRDA:102,122,0,25 +BRDA:102,122,1,0 +BRDA:102,145,0,25 +BRDA:102,145,1,25 +BRDA:97,108,1,236 +BRDA:77,222,1,176 +BRDA:80,57,0,137 +BRDA:80,57,1,39 +BRDA:84,86,0,39 +BRDA:84,86,1,175 +BRDA:90,160,0,101 +BRDA:90,160,1,175 +BRDA:77,222,0,112 +BRDA:66,20,0,43 +BRDA:66,20,1,4996 +FN:112,System.String sly.parser.generator.ExpressionRulesGenerator`2::GetOperandNonTerminal(System.Type,sly.parser.generator.ParserConfiguration`2,sly.buildresult.BuildResult`1>) +FNDA:25,System.String sly.parser.generator.ExpressionRulesGenerator`2::GetOperandNonTerminal(System.Type,sly.parser.generator.ParserConfiguration`2,sly.buildresult.BuildResult`1>) +DA:113,25 +DA:115,25 +DA:117,25 +DA:118,355 +DA:119,355 +DA:120,701 +DA:121,355 +DA:122,380 +DA:125,25 +DA:126,0 +DA:127,0 +DA:128,0 +DA:131,25 +DA:133,25 +DA:134,24 +DA:135,24 +DA:136,24 +DA:137,24 +DA:139,1 +DA:140,1 +DA:141,1 +DA:142,1 +DA:145,9 +DA:146,3 +DA:147,3 +DA:148,3 +DA:149,3 +DA:150,3 +DA:151,3 +DA:152,3 +DA:153,3 +DA:154,3 +DA:155,3 +DA:156,3 +DA:157,3 +DA:159,1 +DA:160,1 +DA:162,25 +DA:163,25 +BRDA:117,20,0,5 +BRDA:117,20,1,25 +BRDA:125,67,0,0 +BRDA:125,67,1,25 +BRDA:133,134,0,24 +BRDA:133,134,1,1 +BRDA:145,318,1,3 +BRDA:147,242,0,3 +BRDA:147,242,1,3 +BRDA:145,318,0,1 +BRDA:120,20,0,5 +BRDA:120,20,1,355 +FN:165,System.String sly.parser.generator.ExpressionRulesGenerator`2::GetNonTerminalNameFromProductionMethod(System.Reflection.MethodInfo) +FNDA:27,System.String sly.parser.generator.ExpressionRulesGenerator`2::GetNonTerminalNameFromProductionMethod(System.Reflection.MethodInfo) +DA:166,27 +DA:167,27 +DA:168,27 +DA:169,81 +DA:170,27 +DA:171,27 +DA:172,54 +DA:173,27 +DA:175,27 +DA:176,27 +BRDA:168,20,0,5 +BRDA:168,20,1,27 +BRDA:168,62,0,27 +BRDA:172,97,0,27 +BRDA:172,97,1,27 +BRDA:168,62,1,27 +FN:181,System.Void sly.parser.generator.ExpressionRulesGenerator`2::GenerateExpressionParser(sly.parser.generator.ParserConfiguration`2,System.String,System.Collections.Generic.Dictionary`2>>,System.String) +FNDA:25,System.Void sly.parser.generator.ExpressionRulesGenerator`2::GenerateExpressionParser(sly.parser.generator.ParserConfiguration`2,System.String,System.Collections.Generic.Dictionary`2>>,System.String) +DA:182,25 +DA:183,25 +DA:184,25 +DA:186,196 +DA:187,73 +DA:188,73 +DA:189,73 +DA:190,73 +DA:191,73 +DA:192,73 +DA:194,73 +DA:196,73 +DA:197,73 +DA:200,25 +DA:201,25 +DA:202,25 +DA:203,25 +DA:204,25 +DA:205,25 +DA:206,25 +DA:207,25 +DA:208,25 +DA:209,25 +DA:210,25 +BRDA:186,153,1,73 +BRDA:189,46,0,25 +BRDA:189,46,1,48 +BRDA:186,153,0,25 +FN:212,sly.parser.generator.NonTerminal`1 sly.parser.generator.ExpressionRulesGenerator`2::BuildPrecedenceNonTerminal(System.String,System.String,System.Collections.Generic.List`1>) +FNDA:73,sly.parser.generator.NonTerminal`1 sly.parser.generator.ExpressionRulesGenerator`2::BuildPrecedenceNonTerminal(System.String,System.String,System.Collections.Generic.List`1>) +DA:213,73 +DA:214,73 +DA:216,247 +DA:217,73 +DA:218,50 +DA:219,178 +DA:221,50 +DA:222,50 +DA:223,50 +DA:224,50 +DA:225,50 +DA:227,50 +DA:228,50 +DA:229,50 +DA:231,50 +DA:232,128 +DA:233,128 +DA:234,128 +DA:235,178 +DA:236,50 +DA:237,50 +DA:240,247 +DA:241,73 +DA:242,23 +DA:243,50 +DA:245,23 +DA:246,23 +DA:247,23 +DA:248,23 +DA:249,23 +DA:251,23 +DA:252,23 +DA:254,50 +DA:255,23 +DA:256,23 +DA:258,247 +DA:259,73 +DA:260,19 +DA:261,38 +DA:263,19 +DA:264,19 +DA:265,19 +DA:266,19 +DA:267,19 +DA:269,19 +DA:270,19 +DA:272,38 +DA:273,19 +DA:274,19 +DA:276,73 +DA:277,73 +DA:278,73 +DA:279,73 +DA:280,73 +DA:281,73 +DA:283,73 +DA:284,73 +BRDA:216,20,0,5 +BRDA:216,20,1,73 +BRDA:217,69,0,50 +BRDA:219,89,0,5 +BRDA:219,89,1,50 +BRDA:228,198,0,50 +BRDA:228,198,1,0 +BRDA:217,69,1,73 +BRDA:240,298,0,5 +BRDA:240,298,1,73 +BRDA:241,347,0,23 +BRDA:243,367,0,4 +BRDA:243,367,1,23 +BRDA:251,452,0,4 +BRDA:251,452,1,19 +BRDA:241,347,1,73 +BRDA:258,552,0,5 +BRDA:258,552,1,73 +BRDA:259,601,0,19 +BRDA:261,621,0,2 +BRDA:261,621,1,19 +BRDA:270,730,0,0 +BRDA:270,730,1,19 +BRDA:259,601,1,73 +FN:287,System.String sly.parser.generator.ExpressionRulesGenerator`2::GetNonTerminalNameForPrecedence(System.Int32,System.Collections.Generic.Dictionary`2>>,System.String) +FNDA:171,System.String sly.parser.generator.ExpressionRulesGenerator`2::GetNonTerminalNameForPrecedence(System.Int32,System.Collections.Generic.Dictionary`2>>,System.String) +DA:288,171 +DA:289,171 +DA:290,146 +DA:291,494 +DA:292,146 +DA:295,25 +DA:296,171 +BRDA:289,7,0,146 +BRDA:291,23,0,5 +BRDA:291,23,1,146 +BRDA:289,7,1,25 +FN:298,System.String sly.parser.generator.ExpressionRulesGenerator`2::GetNonTerminalNameForPrecedence(System.Int32,System.Collections.Generic.List`1) +FNDA:146,System.String sly.parser.generator.ExpressionRulesGenerator`2::GetNonTerminalNameForPrecedence(System.Int32,System.Collections.Generic.List`1) +DA:299,146 +DA:300,146 +DA:301,348 +DA:302,146 +DA:303,348 +DA:305,146 +DA:306,146 +BRDA:300,8,0,5 +BRDA:300,8,1,146 +BRDA:300,49,0,5 +BRDA:300,49,1,146 +FN:48,System.Void sly.parser.generator.ExpressionRulesGenerator`2::.ctor(System.String) +FNDA:237,System.Void sly.parser.generator.ExpressionRulesGenerator`2::.ctor(System.String) +DA:49,237 +DA:50,237 +DA:51,237 +DA:52,0 +DA:53,0 +DA:54,0 +DA:55,237 +DA:56,237 +BRDA:51,16,0,0 +BRDA:51,16,1,237 +LF:211 +LH:205 +BRF:74 +BRH:69 +FNF:17 +FNH:17 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\generator\LeftRecursionChecker.cs +FN:15,System.Collections.Generic.List`1 sly.parser.generator.LeftRecursionChecker`2::BuildPath(System.Collections.Generic.List`1,System.String) +FNDA:3444,System.Collections.Generic.List`1 sly.parser.generator.LeftRecursionChecker`2::BuildPath(System.Collections.Generic.List`1,System.String) +DA:16,3444 +DA:17,3444 +DA:18,3444 +DA:19,3444 +DA:20,3444 +DA:21,3444 +FN:23,System.Collections.Generic.List`1 sly.parser.generator.LeftRecursionChecker`2::Lst(System.String[]) +FNDA:3685,System.Collections.Generic.List`1 sly.parser.generator.LeftRecursionChecker`2::Lst(System.String[]) +DA:24,3685 +DA:25,3685 +DA:26,3685 +FN:28,System.Collections.Generic.List`1 sly.parser.generator.LeftRecursionChecker`2::GetLeftClausesName(sly.parser.syntax.grammar.IClause`1) +FNDA:13954,System.Collections.Generic.List`1 sly.parser.generator.LeftRecursionChecker`2::GetLeftClausesName(sly.parser.syntax.grammar.IClause`1) +DA:29,13954 +DA:30,13954 +DA:31,3685 +DA:32,3685 +DA:35,10269 +DA:36,91 +DA:37,91 +DA:40,10178 +DA:41,14 +DA:42,14 +DA:45,10164 +DA:46,14 +DA:47,44 +DA:50,10150 +DA:51,5 +DA:52,5 +DA:54,10145 +DA:55,13954 +BRDA:30,16,0,3685 +BRDA:30,16,1,10269 +BRDA:35,61,0,91 +BRDA:35,61,1,10178 +BRDA:40,97,0,14 +BRDA:40,97,1,10164 +BRDA:45,123,0,20 +BRDA:45,123,1,10144 +BRDA:45,138,0,14 +BRDA:47,153,0,4 +BRDA:47,153,1,14 +BRDA:45,138,1,10150 +BRDA:50,209,0,5 +BRDA:50,209,1,10145 +FN:57,System.Collections.Generic.List`1 sly.parser.generator.LeftRecursionChecker`2::GetLeftClausesName(sly.parser.syntax.grammar.Rule`1,sly.parser.generator.ParserConfiguration`2) +FNDA:12067,System.Collections.Generic.List`1 sly.parser.generator.LeftRecursionChecker`2::GetLeftClausesName(sly.parser.syntax.grammar.Rule`1,sly.parser.generator.ParserConfiguration`2) +DA:58,12067 +DA:59,12067 +DA:61,12067 +DA:62,12067 +DA:63,12067 +DA:64,12067 +DA:65,15495 +DA:66,3428 +DA:67,3428 +DA:68,3428 +DA:69,3428 +DA:70,3428 +DA:71,3428 +DA:72,1747 +DA:73,1747 +DA:74,1747 +DA:75,1747 +DA:77,1681 +DA:78,1681 +DA:79,1681 +DA:80,1681 +DA:81,3428 +DA:83,12067 +DA:85,12067 +BRDA:65,154,1,3428 +BRDA:71,87,0,1747 +BRDA:71,87,1,1681 +BRDA:65,132,0,13814 +BRDA:65,136,0,12084 +BRDA:65,139,0,12084 +BRDA:65,132,1,3411 +BRDA:65,136,1,3411 +BRDA:65,139,1,3411 +BRDA:65,154,0,12067 +FN:88,System.ValueTuple`2>> sly.parser.generator.LeftRecursionChecker`2::CheckLeftRecursion(sly.parser.generator.ParserConfiguration`2) +FNDA:243,System.ValueTuple`2>> sly.parser.generator.LeftRecursionChecker`2::CheckLeftRecursion(sly.parser.generator.ParserConfiguration`2) +DA:89,243 +DA:90,243 +DA:91,243 +DA:92,3385 +DA:93,1328 +DA:94,1328 +DA:95,1328 +DA:96,12 +DA:97,12 +DA:98,12 +DA:99,12 +DA:100,1328 +DA:104,243 +DA:105,243 +BRDA:92,109,1,1328 +BRDA:95,86,0,12 +BRDA:95,86,1,1328 +BRDA:92,109,0,243 +FN:108,System.ValueTuple`2>> sly.parser.generator.LeftRecursionChecker`2::CheckLeftRecursion(sly.parser.generator.ParserConfiguration`2,sly.parser.generator.NonTerminal`1,System.Collections.Generic.List`1) +FNDA:4772,System.ValueTuple`2>> sly.parser.generator.LeftRecursionChecker`2::CheckLeftRecursion(sly.parser.generator.ParserConfiguration`2,sly.parser.generator.NonTerminal`1,System.Collections.Generic.List`1) +DA:109,4772 +DA:110,4772 +DA:111,4772 +DA:113,4772 +DA:114,4772 +DA:115,12 +DA:116,12 +DA:119,16827 +DA:121,21168 +DA:122,3444 +DA:123,3444 +DA:124,3444 +DA:125,3444 +DA:126,3444 +DA:127,3444 +DA:128,3444 +DA:129,3444 +DA:130,3444 +DA:131,26 +DA:132,26 +DA:133,26 +DA:134,26 +DA:136,3444 +DA:137,3444 +DA:139,0 +DA:140,0 +DA:141,0 +DA:142,3444 +DA:144,4760 +DA:147,4772 +BRDA:114,47,0,12 +BRDA:114,47,1,4760 +BRDA:121,264,1,3444 +BRDA:123,153,0,3444 +BRDA:126,185,0,3444 +BRDA:130,234,0,26 +BRDA:130,234,1,3444 +BRDA:126,185,1,3444 +BRDA:123,153,1,0 +BRDA:121,264,0,4760 +FN:149,System.ValueTuple`2 sly.parser.generator.LeftRecursionChecker`2::FindRecursion(System.Collections.Generic.List`1) +FNDA:4772,System.ValueTuple`2 sly.parser.generator.LeftRecursionChecker`2::FindRecursion(System.Collections.Generic.List`1) +DA:150,4772 +DA:151,21010 +DA:152,5745 +DA:153,5745 +DA:154,5745 +DA:155,5745 +DA:156,12 +DA:157,12 +DA:158,12 +DA:160,5733 +DA:162,4760 +DA:163,4772 +BRDA:151,87,1,5745 +BRDA:155,28,0,12 +BRDA:155,28,1,5733 +BRDA:151,87,0,4760 +FN:9,System.Void sly.parser.generator.LeftRecursionChecker`2::.ctor() +FNDA:96,System.Void sly.parser.generator.LeftRecursionChecker`2::.ctor() +DA:10,96 +DA:11,96 +DA:13,96 +LF:110 +LH:107 +BRF:42 +BRH:41 +FNF:8 +FNH:8 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\generator\NonTerminal.cs +FN:20,System.String sly.parser.generator.NonTerminal`1::get_Name() +FNDA:15843,System.String sly.parser.generator.NonTerminal`1::get_Name() +DA:21,15843 +FN:22,System.Collections.Generic.List`1> sly.parser.generator.NonTerminal`1::get_Rules() +FNDA:66137,System.Collections.Generic.List`1> sly.parser.generator.NonTerminal`1::get_Rules() +DA:23,66137 +FN:24,System.Boolean sly.parser.generator.NonTerminal`1::get_IsSubRule() +FNDA:52,System.Boolean sly.parser.generator.NonTerminal`1::get_IsSubRule() +DA:25,52 +FN:26,System.Collections.Generic.List`1 sly.parser.generator.NonTerminal`1::get_PossibleLeadingTokens() +FNDA:11,System.Collections.Generic.List`1 sly.parser.generator.NonTerminal`1::get_PossibleLeadingTokens() +DA:27,11 +BRDA:27,12,0,2 +BRDA:27,12,1,5 +FN:10,System.Void sly.parser.generator.NonTerminal`1::.ctor(System.String,System.Collections.Generic.List`1>) +FNDA:1479,System.Void sly.parser.generator.NonTerminal`1::.ctor(System.String,System.Collections.Generic.List`1>) +DA:11,1479 +DA:12,1479 +DA:13,1479 +DA:14,1479 +DA:15,1479 +FN:16,System.Void sly.parser.generator.NonTerminal`1::.ctor(System.String) +FNDA:53,System.Void sly.parser.generator.NonTerminal`1::.ctor(System.String) +DA:17,53 +DA:18,53 +DA:19,53 +LF:12 +LH:12 +BRF:2 +BRH:2 +FNF:6 +FNH:6 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\generator\OperationAttribute.cs +FN:51,System.Boolean sly.parser.generator.OperationAttribute::get_IsIntToken() +FNDA:878,System.Boolean sly.parser.generator.OperationAttribute::get_IsIntToken() +DA:52,878 +FN:53,System.Boolean sly.parser.generator.OperationAttribute::get_IsStringToken() +FNDA:741,System.Boolean sly.parser.generator.OperationAttribute::get_IsStringToken() +DA:54,741 +FN:56,System.Int32 sly.parser.generator.OperationAttribute::get_IntToken() +FNDA:684,System.Int32 sly.parser.generator.OperationAttribute::get_IntToken() +DA:57,684 +FN:58,System.String sly.parser.generator.OperationAttribute::get_StringToken() +FNDA:194,System.String sly.parser.generator.OperationAttribute::get_StringToken() +DA:59,194 +FN:60,sly.parser.generator.Affix sly.parser.generator.OperationAttribute::get_Affix() +FNDA:877,sly.parser.generator.Affix sly.parser.generator.OperationAttribute::get_Affix() +DA:61,877 +FN:62,sly.parser.generator.Associativity sly.parser.generator.OperationAttribute::get_Assoc() +FNDA:877,sly.parser.generator.Associativity sly.parser.generator.OperationAttribute::get_Assoc() +DA:63,877 +FN:64,System.Int32 sly.parser.generator.OperationAttribute::get_Precedence() +FNDA:877,System.Int32 sly.parser.generator.OperationAttribute::get_Precedence() +DA:65,877 +FN:31,System.Void sly.parser.generator.OperationAttribute::.ctor(System.Int32,sly.parser.generator.Affix,sly.parser.generator.Associativity,System.Int32) +FNDA:547,System.Void sly.parser.generator.OperationAttribute::.ctor(System.Int32,sly.parser.generator.Affix,sly.parser.generator.Associativity,System.Int32) +DA:32,547 +DA:33,547 +DA:34,547 +DA:35,547 +DA:36,547 +DA:37,547 +DA:38,547 +DA:39,547 +DA:40,547 +FN:41,System.Void sly.parser.generator.OperationAttribute::.ctor(System.String,sly.parser.generator.Affix,sly.parser.generator.Associativity,System.Int32) +FNDA:155,System.Void sly.parser.generator.OperationAttribute::.ctor(System.String,sly.parser.generator.Affix,sly.parser.generator.Associativity,System.Int32) +DA:42,155 +DA:43,155 +DA:44,155 +DA:45,155 +DA:46,155 +DA:47,155 +DA:48,155 +DA:49,155 +DA:50,155 +LF:25 +LH:25 +BRF:0 +BRH:0 +FNF:9 +FNH:9 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\generator\ParserBuilder.cs +FN:26,System.String sly.parser.generator.ParserBuilder`2::get_I18n() +FNDA:1312,System.String sly.parser.generator.ParserBuilder`2::get_I18n() +DA:27,1312 +FN:56,sly.buildresult.BuildResult`1> sly.parser.generator.ParserBuilder`2::BuildParser(System.Object,sly.parser.generator.ParserType,System.String,sly.lexer.fsm.BuildExtension`1) +FNDA:243,sly.buildresult.BuildResult`1> sly.parser.generator.ParserBuilder`2::BuildParser(System.Object,sly.parser.generator.ParserType,System.String,sly.lexer.fsm.BuildExtension`1) +DA:57,243 +DA:58,243 +DA:59,243 +DA:60,243 +DA:61,147 +DA:62,147 +DA:63,147 +DA:64,147 +DA:65,1 +DA:66,4 +DA:67,1 +DA:68,1 +DA:69,1 +DA:70,1 +DA:73,146 +DA:74,146 +DA:75,146 +DA:76,146 +DA:77,146 +DA:78,146 +DA:79,146 +DA:80,0 +DA:81,0 +DA:82,0 +DA:84,146 +DA:85,146 +DA:86,146 +DA:87,146 +DA:88,96 +DA:89,96 +DA:90,96 +DA:91,96 +DA:92,96 +DA:93,96 +DA:95,242 +DA:96,242 +DA:97,237 +DA:98,237 +DA:99,236 +DA:100,236 +DA:102,236 +DA:103,236 +DA:104,12 +DA:105,12 +DA:106,12 +DA:107,236 +DA:109,5 +DA:110,5 +DA:111,5 +DA:113,241 +DA:114,242 +BRDA:60,15,0,147 +BRDA:64,61,0,1 +BRDA:66,77,0,1 +BRDA:66,77,1,1 +BRDA:64,61,1,146 +BRDA:79,245,0,0 +BRDA:79,245,1,146 +BRDA:60,15,1,96 +BRDA:88,310,0,96 +BRDA:88,310,1,242 +BRDA:96,360,0,237 +BRDA:99,384,0,0 +BRDA:99,384,1,236 +BRDA:103,437,0,12 +BRDA:103,437,1,236 +BRDA:96,360,1,5 +FN:118,sly.parser.ISyntaxParser`2 sly.parser.generator.ParserBuilder`2::BuildSyntaxParser(sly.parser.generator.ParserConfiguration`2,sly.parser.generator.ParserType,System.String) +FNDA:146,sly.parser.ISyntaxParser`2 sly.parser.generator.ParserBuilder`2::BuildSyntaxParser(sly.parser.generator.ParserConfiguration`2,sly.parser.generator.ParserType,System.String) +DA:119,146 +DA:120,146 +DA:121,146 +DA:124,146 +DA:125,146 +DA:126,146 +DA:129,0 +DA:130,0 +DA:131,0 +DA:135,146 +DA:136,146 +BRDA:121,9,1,146 +BRDA:121,9,0,0 +FN:144,System.Tuple`2 sly.parser.generator.ParserBuilder`2::ExtractNTAndRule(System.String) +FNDA:2993,System.Tuple`2 sly.parser.generator.ParserBuilder`2::ExtractNTAndRule(System.String) +DA:145,2993 +DA:146,2993 +DA:147,2993 +DA:148,2993 +DA:149,2993 +DA:150,2993 +DA:151,2993 +DA:152,2993 +DA:153,2993 +DA:154,2993 +DA:155,2993 +DA:156,2993 +DA:157,2993 +DA:158,2993 +DA:160,2993 +DA:161,2993 +BRDA:147,9,0,2993 +BRDA:152,46,0,2993 +BRDA:152,46,1,2993 +BRDA:147,9,1,2993 +FN:164,sly.buildresult.BuildResult`1> sly.parser.generator.ParserBuilder`2::BuildLexer(sly.lexer.fsm.BuildExtension`1) +FNDA:237,sly.buildresult.BuildResult`1> sly.parser.generator.ParserBuilder`2::BuildLexer(sly.lexer.fsm.BuildExtension`1) +DA:165,237 +DA:166,237 +DA:167,237 +DA:168,237 +FN:171,sly.parser.generator.ParserConfiguration`2 sly.parser.generator.ParserBuilder`2::ExtractParserConfiguration(System.Type) +FNDA:147,sly.parser.generator.ParserConfiguration`2 sly.parser.generator.ParserBuilder`2::ExtractParserConfiguration(System.Type) +DA:172,147 +DA:173,147 +DA:174,147 +DA:175,147 +DA:176,147 +DA:177,147 +DA:178,3551 +DA:179,3551 +DA:180,6664 +DA:181,3551 +DA:182,3698 +DA:184,147 +DA:185,147 +DA:186,2945 +DA:187,2945 +DA:188,147 +DA:189,14821 +DA:190,2993 +DA:191,2993 +DA:192,147 +DA:193,147 +DA:194,2993 +DA:195,2993 +DA:196,2993 +DA:197,2993 +DA:198,2993 +DA:199,2993 +DA:200,2993 +DA:201,917 +DA:202,147 +DA:203,2076 +DA:204,2993 +DA:205,2993 +DA:206,2993 +DA:207,3092 +DA:209,147 +DA:211,147 +DA:212,147 +BRDA:177,61,0,28 +BRDA:177,61,1,147 +BRDA:180,20,0,28 +BRDA:180,20,1,3551 +BRDA:189,254,1,2993 +BRDA:200,166,0,917 +BRDA:200,166,1,2076 +BRDA:189,254,0,2945 +FN:214,sly.parser.syntax.grammar.Rule`1 sly.parser.generator.ParserBuilder`2::BuildNonTerminal(System.Tuple`2) +FNDA:2993,sly.parser.syntax.grammar.Rule`1 sly.parser.generator.ParserBuilder`2::BuildNonTerminal(System.Tuple`2) +DA:215,2993 +DA:216,2993 +DA:217,2993 +DA:218,2993 +DA:219,2993 +DA:220,2993 +DA:221,21399 +DA:222,6210 +DA:223,6210 +DA:224,6210 +DA:225,6210 +DA:227,6210 +DA:228,6210 +DA:229,6210 +DA:230,6210 +DA:231,3810 +DA:232,3810 +DA:233,3810 +DA:237,6210 +DA:238,0 +DA:239,0 +DA:240,0 +DA:241,0 +DA:243,6210 +DA:244,3810 +DA:245,3810 +DA:246,3810 +DA:247,2400 +DA:248,26 +DA:249,52 +DA:250,26 +DA:252,2374 +DA:253,2374 +DA:254,2374 +DA:256,12394 +DA:257,6210 +DA:259,2993 +DA:262,2993 +DA:263,2993 +BRDA:221,270,1,6210 +BRDA:230,132,0,3810 +BRDA:230,132,1,6210 +BRDA:243,156,0,3810 +BRDA:243,156,1,2400 +BRDA:247,187,0,26 +BRDA:249,212,0,26 +BRDA:249,212,1,26 +BRDA:247,187,1,2374 +BRDA:256,246,0,6184 +BRDA:256,246,1,6210 +BRDA:221,270,0,2993 +FN:269,sly.buildresult.BuildResult`1> sly.parser.generator.ParserBuilder`2::CheckParser(sly.buildresult.BuildResult`1>) +FNDA:236,sly.buildresult.BuildResult`1> sly.parser.generator.ParserBuilder`2::CheckParser(sly.buildresult.BuildResult`1>) +DA:270,236 +DA:271,236 +DA:272,236 +DA:273,236 +DA:274,236 +DA:275,236 +DA:277,236 +DA:278,2596 +DA:279,944 +DA:280,944 +DA:281,6720 +DA:282,236 +DA:283,236 +BRDA:277,107,0,236 +BRDA:277,107,1,0 +BRDA:277,128,0,236 +BRDA:278,251,1,944 +BRDA:279,186,0,944 +BRDA:279,186,1,1180 +BRDA:278,251,0,236 +BRDA:277,128,1,236 +FN:286,sly.buildresult.BuildResult`1> sly.parser.generator.ParserBuilder`2::CheckUnreachable(sly.buildresult.BuildResult`1>,sly.parser.generator.NonTerminal`1) +FNDA:1444,sly.buildresult.BuildResult`1> sly.parser.generator.ParserBuilder`2::CheckUnreachable(sly.buildresult.BuildResult`1>,sly.parser.generator.NonTerminal`1) +DA:287,1444 +DA:288,1444 +DA:289,1444 +DA:290,1444 +DA:291,1209 +DA:292,10997 +DA:293,4266 +DA:294,4092 +DA:295,4092 +DA:296,5254 +DA:297,2930 +DA:299,1209 +DA:300,47 +DA:301,47 +DA:302,47 +DA:303,1209 +DA:305,1444 +DA:306,1444 +BRDA:290,34,0,1209 +BRDA:292,140,1,4266 +BRDA:293,106,0,4092 +BRDA:296,128,1,2930 +BRDA:293,106,1,4313 +BRDA:296,128,0,1209 +BRDA:292,140,0,1209 +BRDA:299,167,0,47 +BRDA:299,167,1,1209 +BRDA:290,34,1,1444 +FN:309,System.Boolean sly.parser.generator.ParserBuilder`2::NonTerminalReferences(sly.parser.generator.NonTerminal`1,System.String) +FNDA:4092,System.Boolean sly.parser.generator.ParserBuilder`2::NonTerminalReferences(sly.parser.generator.NonTerminal`1,System.String) +DA:310,4092 +DA:311,4092 +DA:312,4092 +DA:313,14574 +DA:314,10482 +DA:315,10482 +DA:316,10482 +DA:317,30282 +DA:318,19800 +DA:319,19800 +DA:320,19800 +DA:321,7148 +DA:322,7148 +DA:323,7148 +DA:324,12652 +DA:325,88 +DA:326,88 +DA:327,68 +DA:328,88 +DA:329,12564 +DA:330,235 +DA:331,235 +DA:332,235 +DA:333,235 +DA:334,12329 +DA:335,11 +DA:336,11 +DA:337,8 +DA:338,11 +DA:339,9 +DA:340,11 +DA:341,12318 +DA:342,160 +DA:344,160 +DA:345,538 +DA:346,378 +DA:347,378 +DA:348,38 +DA:349,38 +DA:350,38 +DA:351,378 +DA:352,378 +DA:353,160 +DA:355,19800 +DA:356,19800 +DA:357,10482 +DA:358,10482 +DA:360,4092 +DA:361,4092 +BRDA:313,590,1,10482 +BRDA:317,555,1,19800 +BRDA:320,79,0,7148 +BRDA:320,79,1,12652 +BRDA:324,125,0,88 +BRDA:326,151,0,68 +BRDA:326,151,1,88 +BRDA:324,125,1,12564 +BRDA:329,196,0,235 +BRDA:331,222,0,235 +BRDA:331,222,1,235 +BRDA:329,196,1,12329 +BRDA:334,267,0,11 +BRDA:336,296,0,8 +BRDA:336,296,1,11 +BRDA:338,333,0,3 +BRDA:338,333,1,8 +BRDA:338,349,0,3 +BRDA:339,365,0,3 +BRDA:339,365,1,3 +BRDA:338,349,1,11 +BRDA:334,267,1,12318 +BRDA:341,423,0,160 +BRDA:345,519,1,378 +BRDA:347,462,0,38 +BRDA:347,462,1,378 +BRDA:345,506,0,384 +BRDA:345,506,1,154 +BRDA:345,519,0,160 +BRDA:341,423,1,19800 +BRDA:317,542,0,20535 +BRDA:317,542,1,9747 +BRDA:317,555,0,10482 +BRDA:313,577,0,11099 +BRDA:313,577,1,3475 +BRDA:313,590,0,4092 +FN:365,sly.buildresult.BuildResult`1> sly.parser.generator.ParserBuilder`2::CheckNotFound(sly.buildresult.BuildResult`1>,sly.parser.generator.NonTerminal`1) +FNDA:1444,sly.buildresult.BuildResult`1> sly.parser.generator.ParserBuilder`2::CheckNotFound(sly.buildresult.BuildResult`1>,sly.parser.generator.NonTerminal`1) +DA:366,1444 +DA:367,1444 +DA:368,12088 +DA:369,27178 +DA:370,7772 +DA:371,2982 +DA:372,1 +DA:373,1 +DA:374,1 +DA:375,1444 +DA:376,1444 +BRDA:368,201,1,3878 +BRDA:369,175,1,7772 +BRDA:370,81,0,2982 +BRDA:371,108,0,1 +BRDA:370,81,1,11650 +BRDA:371,108,1,11650 +BRDA:369,175,0,3878 +BRDA:368,201,0,1444 +FN:379,sly.buildresult.BuildResult`1> sly.parser.generator.ParserBuilder`2::CheckAlternates(sly.buildresult.BuildResult`1>,sly.parser.generator.NonTerminal`1) +FNDA:1444,sly.buildresult.BuildResult`1> sly.parser.generator.ParserBuilder`2::CheckAlternates(sly.buildresult.BuildResult`1>,sly.parser.generator.NonTerminal`1) +DA:380,1444 +DA:381,1444 +DA:383,12088 +DA:384,3878 +DA:385,27178 +DA:386,7772 +DA:387,7772 +DA:388,76 +DA:389,76 +DA:390,1 +DA:391,1 +DA:392,1 +DA:393,1 +DA:394,1 +DA:395,75 +DA:396,1 +DA:397,1 +DA:398,1 +DA:399,1 +DA:400,1 +DA:401,76 +DA:402,7772 +DA:403,3878 +DA:405,1444 +DA:406,1444 +BRDA:383,306,1,3878 +BRDA:385,276,1,7772 +BRDA:387,86,0,76 +BRDA:389,99,0,5 +BRDA:389,99,1,71 +BRDA:389,118,0,1 +BRDA:389,118,1,75 +BRDA:395,189,0,2 +BRDA:395,189,1,73 +BRDA:395,205,0,1 +BRDA:395,205,1,76 +BRDA:387,86,1,7772 +BRDA:385,276,0,3878 +BRDA:383,306,0,1444 +FN:409,sly.buildresult.BuildResult`1> sly.parser.generator.ParserBuilder`2::CheckVisitorsSignature(sly.buildresult.BuildResult`1>,sly.parser.generator.NonTerminal`1) +FNDA:1444,sly.buildresult.BuildResult`1> sly.parser.generator.ParserBuilder`2::CheckVisitorsSignature(sly.buildresult.BuildResult`1>,sly.parser.generator.NonTerminal`1) +DA:410,1444 +DA:411,12088 +DA:412,3878 +DA:413,3878 +DA:414,3842 +DA:415,3842 +DA:416,3842 +DA:417,3878 +DA:419,1444 +DA:420,1444 +BRDA:411,58,1,3878 +BRDA:413,36,0,3842 +BRDA:413,36,1,3878 +BRDA:411,58,0,1444 +FN:424,sly.buildresult.BuildResult`1> sly.parser.generator.ParserBuilder`2::CheckVisitorSignature(sly.buildresult.BuildResult`1>,sly.parser.syntax.grammar.Rule`1) +FNDA:3842,sly.buildresult.BuildResult`1> sly.parser.generator.ParserBuilder`2::CheckVisitorSignature(sly.buildresult.BuildResult`1>,sly.parser.syntax.grammar.Rule`1) +DA:425,3842 +DA:426,3842 +DA:427,3649 +DA:428,3649 +DA:429,3649 +DA:430,0 +DA:431,0 +DA:432,0 +DA:433,3649 +DA:434,3649 +DA:435,3649 +DA:436,3649 +DA:437,2 +DA:438,2 +DA:439,2 +DA:440,2 +DA:441,2 +DA:443,11013 +DA:445,3649 +DA:446,2 +DA:447,2 +DA:448,2 +DA:449,2 +DA:451,2 +DA:454,3647 +DA:455,25079 +DA:456,7069 +DA:457,7069 +DA:459,7069 +DA:462,4185 +DA:463,4185 +DA:464,4185 +DA:465,4185 +DA:466,4185 +DA:469,2733 +DA:470,2733 +DA:471,2733 +DA:472,2733 +DA:473,15 +DA:474,15 +DA:475,15 +DA:477,2718 +DA:478,2718 +DA:479,2718 +DA:480,2733 +DA:481,2733 +DA:484,103 +DA:485,103 +DA:486,103 +DA:487,103 +DA:488,103 +DA:491,18 +DA:492,18 +DA:493,18 +DA:496,80 +DA:497,80 +DA:498,23 +DA:499,23 +DA:500,23 +DA:502,57 +DA:503,57 +DA:504,57 +DA:506,80 +DA:509,1 +DA:510,1 +DA:511,1 +DA:514,4 +DA:515,4 +DA:516,2 +DA:517,2 +DA:518,2 +DA:519,2 +DA:520,2 +DA:521,2 +DA:522,2 +DA:523,4 +DA:526,103 +DA:527,103 +DA:530,0 +DA:531,0 +DA:532,0 +DA:533,0 +DA:534,0 +DA:537,38 +DA:538,38 +DA:539,38 +DA:540,38 +DA:541,38 +DA:544,14 +DA:545,14 +DA:546,14 +DA:549,20 +DA:550,20 +DA:551,14 +DA:552,14 +DA:553,14 +DA:555,6 +DA:556,6 +DA:557,6 +DA:559,20 +DA:562,1 +DA:563,1 +DA:564,1 +DA:567,3 +DA:568,3 +DA:569,2 +DA:570,2 +DA:571,2 +DA:572,1 +DA:573,1 +DA:574,1 +DA:575,1 +DA:576,3 +DA:579,38 +DA:580,38 +DA:584,7069 +DA:585,7069 +DA:586,3647 +DA:588,193 +DA:589,193 +DA:590,927 +DA:591,174 +DA:592,174 +DA:593,174 +DA:594,174 +DA:595,174 +DA:596,174 +DA:597,0 +DA:598,0 +DA:599,0 +DA:600,0 +DA:601,0 +DA:603,174 +DA:604,46 +DA:605,46 +DA:606,46 +DA:607,0 +DA:608,0 +DA:609,0 +DA:610,0 +DA:612,0 +DA:614,46 +DA:615,27 +DA:616,27 +DA:617,27 +DA:618,27 +DA:619,27 +DA:620,27 +DA:622,19 +DA:623,19 +DA:624,19 +DA:625,19 +DA:626,19 +DA:627,19 +DA:628,46 +DA:629,128 +DA:630,128 +DA:631,128 +DA:632,128 +DA:633,0 +DA:634,0 +DA:636,0 +DA:639,128 +DA:640,128 +DA:641,128 +DA:642,128 +DA:643,128 +DA:644,128 +DA:646,128 +DA:647,174 +DA:648,193 +DA:650,3840 +DA:651,3842 +BRDA:426,12,0,3649 +BRDA:429,46,0,0 +BRDA:429,46,1,3649 +BRDA:436,85,0,2 +BRDA:436,85,1,3647 +BRDA:436,102,0,2 +BRDA:436,102,1,3649 +BRDA:443,207,0,55 +BRDA:443,207,1,3938 +BRDA:445,259,0,14 +BRDA:445,259,1,3635 +BRDA:445,290,0,2 +BRDA:445,290,1,3647 +BRDA:455,1224,1,7069 +BRDA:459,476,0,2884 +BRDA:459,489,0,151 +BRDA:459,502,0,48 +BRDA:459,518,0,48 +BRDA:459,476,1,4185 +BRDA:459,489,1,2733 +BRDA:472,614,0,15 +BRDA:472,614,1,2718 +BRDA:459,502,1,103 +BRDA:488,708,0,85 +BRDA:488,721,0,5 +BRDA:488,734,0,4 +BRDA:488,708,1,18 +BRDA:488,721,1,80 +BRDA:497,785,0,23 +BRDA:497,785,1,57 +BRDA:488,734,1,1 +BRDA:488,747,1,4 +BRDA:515,850,0,2 +BRDA:515,850,1,2 +BRDA:519,879,0,2 +BRDA:488,747,0,103 +BRDA:519,879,1,103 +BRDA:459,518,1,0 +BRDA:459,534,1,38 +BRDA:541,1004,0,24 +BRDA:541,1017,0,4 +BRDA:541,1030,0,3 +BRDA:541,1004,1,14 +BRDA:541,1017,1,20 +BRDA:550,1081,0,14 +BRDA:550,1081,1,6 +BRDA:541,1030,1,1 +BRDA:541,1043,1,3 +BRDA:568,1146,0,2 +BRDA:568,1146,1,1 +BRDA:572,1175,0,1 +BRDA:541,1043,0,38 +BRDA:572,1175,1,38 +BRDA:459,534,0,7069 +BRDA:455,1224,0,3647 +BRDA:426,12,1,193 +BRDA:590,1914,1,174 +BRDA:595,1318,0,0 +BRDA:595,1318,1,174 +BRDA:596,1341,0,0 +BRDA:596,1341,1,174 +BRDA:596,1359,0,0 +BRDA:596,1359,1,174 +BRDA:603,1465,0,46 +BRDA:606,1485,0,6 +BRDA:606,1485,1,40 +BRDA:606,1504,0,0 +BRDA:606,1504,1,46 +BRDA:614,1576,0,27 +BRDA:614,1576,1,19 +BRDA:603,1465,1,128 +BRDA:629,1721,0,128 +BRDA:632,1741,0,12 +BRDA:632,1741,1,116 +BRDA:632,1760,0,0 +BRDA:632,1760,1,128 +BRDA:629,1721,1,174 +BRDA:590,1914,0,193 +BRDA:443,6,0,2886 +BRDA:443,6,1,4490 +BRDA:443,14,0,4490 +BRDA:443,24,0,4478 +BRDA:443,24,1,301 +BRDA:443,32,0,301 +BRDA:443,14,1,7063 +BRDA:443,32,1,7063 +FN:654,sly.buildresult.BuildResult`1> sly.parser.generator.ParserBuilder`2::CheckArgType(sly.buildresult.BuildResult`1>,sly.parser.syntax.grammar.Rule`1,System.Type,System.Reflection.MethodInfo,System.Reflection.ParameterInfo) +FNDA:7535,sly.buildresult.BuildResult`1> sly.parser.generator.ParserBuilder`2::CheckArgType(sly.buildresult.BuildResult`1>,sly.parser.syntax.grammar.Rule`1,System.Type,System.Reflection.MethodInfo,System.Reflection.ParameterInfo) +DA:655,7535 +DA:656,7535 +DA:657,13 +DA:658,13 +DA:659,13 +DA:660,13 +DA:661,13 +DA:663,7535 +DA:664,7535 +BRDA:656,14,0,13 +BRDA:656,14,1,7522 +BRDA:656,34,0,13 +BRDA:656,34,1,7535 +FN:28,System.Void sly.parser.generator.ParserBuilder`2::.ctor(System.String) +FNDA:336,System.Void sly.parser.generator.ParserBuilder`2::.ctor(System.String) +DA:29,336 +DA:30,336 +DA:31,336 +DA:32,136 +DA:33,136 +DA:34,136 +DA:35,336 +DA:36,336 +BRDA:31,16,0,136 +BRDA:31,16,1,336 +FN:37,System.Void sly.parser.generator.ParserBuilder`2::.ctor() +FNDA:136,System.Void sly.parser.generator.ParserBuilder`2::.ctor() +DA:38,136 +DA:39,136 +DA:40,136 +LF:479 +LH:448 +BRF:214 +BRH:203 +FNF:17 +FNH:17 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\generator\ParserConfiguration.cs +FN:8,System.String sly.parser.generator.ParserConfiguration`2::get_StartingRule() +FNDA:1917,System.String sly.parser.generator.ParserConfiguration`2::get_StartingRule() +DA:9,1917 +FN:9,System.Collections.Generic.Dictionary`2> sly.parser.generator.ParserConfiguration`2::get_NonTerminals() +FNDA:30953,System.Collections.Generic.Dictionary`2> sly.parser.generator.ParserConfiguration`2::get_NonTerminals() +DA:10,30953 +FN:13,System.Void sly.parser.generator.ParserConfiguration`2::AddNonTerminalIfNotExists(sly.parser.generator.NonTerminal`1) +FNDA:52,System.Void sly.parser.generator.ParserConfiguration`2::AddNonTerminalIfNotExists(sly.parser.generator.NonTerminal`1) +DA:14,52 +DA:15,88 +DA:16,52 +BRDA:15,23,0,36 +BRDA:15,23,1,52 +LF:5 +LH:5 +BRF:2 +BRH:2 +FNF:3 +FNH:3 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\generator\ParserConfigurationException.cs +FN:6,System.Void sly.parser.generator.ParserConfigurationException::.ctor(System.String) +FNDA:1,System.Void sly.parser.generator.ParserConfigurationException::.ctor(System.String) +DA:7,1 +DA:8,1 +DA:9,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +FNF:1 +FNH:1 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\generator\ProductionAttribute.cs +FN:12,System.String sly.parser.generator.ProductionAttribute::get_RuleString() +FNDA:14854,System.String sly.parser.generator.ProductionAttribute::get_RuleString() +DA:13,14854 +FN:7,System.Void sly.parser.generator.ProductionAttribute::.ctor(System.String) +FNDA:11159,System.Void sly.parser.generator.ProductionAttribute::.ctor(System.String) +DA:8,11159 +DA:9,11159 +DA:10,11159 +DA:11,11159 +LF:5 +LH:5 +BRF:0 +BRH:0 +FNF:2 +FNH:2 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\generator\RuleParser.cs +FN:12,sly.parser.syntax.grammar.GrammarNode`1 sly.parser.generator.RuleParser`1::Root(sly.lexer.Token`1,sly.lexer.Token`1,sly.parser.syntax.grammar.ClauseSequence`1) +FNDA:675,sly.parser.syntax.grammar.GrammarNode`1 sly.parser.generator.RuleParser`1::Root(sly.lexer.Token`1,sly.lexer.Token`1,sly.parser.syntax.grammar.ClauseSequence`1) +DA:13,675 +DA:14,675 +DA:15,675 +DA:16,675 +DA:17,675 +DA:18,675 +FN:22,sly.parser.syntax.grammar.GrammarNode`1 sly.parser.generator.RuleParser`1::Clauses(sly.parser.syntax.grammar.IClause`1,sly.parser.syntax.grammar.ClauseSequence`1) +FNDA:540,sly.parser.syntax.grammar.GrammarNode`1 sly.parser.generator.RuleParser`1::Clauses(sly.parser.syntax.grammar.IClause`1,sly.parser.syntax.grammar.ClauseSequence`1) +DA:23,540 +DA:24,540 +DA:25,1080 +DA:26,540 +DA:27,540 +BRDA:25,14,0,540 +BRDA:25,14,1,540 +FN:30,sly.parser.syntax.grammar.ClauseSequence`1 sly.parser.generator.RuleParser`1::SingleClause(sly.parser.syntax.grammar.IClause`1) +FNDA:675,sly.parser.syntax.grammar.ClauseSequence`1 sly.parser.generator.RuleParser`1::SingleClause(sly.parser.syntax.grammar.IClause`1) +DA:31,675 +DA:32,675 +DA:33,675 +FN:37,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::ZeroMoreClause(sly.lexer.Token`1,sly.lexer.Token`1) +FNDA:60,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::ZeroMoreClause(sly.lexer.Token`1,sly.lexer.Token`1) +DA:38,60 +DA:39,60 +DA:40,60 +DA:41,60 +FN:44,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::OneMoreClause(sly.lexer.Token`1,sly.lexer.Token`1) +FNDA:16,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::OneMoreClause(sly.lexer.Token`1,sly.lexer.Token`1) +DA:45,16 +DA:46,16 +DA:47,16 +DA:48,16 +FN:51,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::OptionClause(sly.lexer.Token`1,sly.lexer.Token`1) +FNDA:23,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::OptionClause(sly.lexer.Token`1,sly.lexer.Token`1) +DA:52,23 +DA:53,23 +DA:54,23 +DA:55,23 +FN:58,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::SimpleDiscardedClause(sly.lexer.Token`1,sly.lexer.Token`1) +FNDA:277,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::SimpleDiscardedClause(sly.lexer.Token`1,sly.lexer.Token`1) +DA:59,277 +DA:60,277 +DA:61,277 +DA:62,277 +FN:65,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::AlternateDiscardedClause(sly.parser.syntax.grammar.ChoiceClause`1,sly.lexer.Token`1) +FNDA:2,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::AlternateDiscardedClause(sly.parser.syntax.grammar.ChoiceClause`1,sly.lexer.Token`1) +DA:66,2 +DA:67,2 +DA:68,2 +DA:69,2 +FN:72,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::AlternateClause(sly.parser.syntax.grammar.ChoiceClause`1) +FNDA:11,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::AlternateClause(sly.parser.syntax.grammar.ChoiceClause`1) +DA:73,11 +DA:74,11 +DA:75,11 +DA:76,11 +FN:79,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::AlternateChoices(sly.lexer.Token`1,sly.parser.syntax.grammar.IClause`1,sly.lexer.Token`1) +FNDA:42,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::AlternateChoices(sly.lexer.Token`1,sly.parser.syntax.grammar.IClause`1,sly.lexer.Token`1) +DA:80,42 +DA:81,42 +DA:82,42 +FN:85,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::ChoicesOne(sly.lexer.Token`1) +FNDA:42,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::ChoicesOne(sly.lexer.Token`1) +DA:86,42 +DA:87,42 +DA:88,42 +DA:89,42 +FN:92,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::ChoicesMany(sly.lexer.Token`1,sly.lexer.Token`1,sly.parser.syntax.grammar.ChoiceClause`1) +FNDA:85,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::ChoicesMany(sly.lexer.Token`1,sly.lexer.Token`1,sly.parser.syntax.grammar.ChoiceClause`1) +DA:93,85 +DA:94,85 +DA:95,85 +DA:96,85 +FN:100,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::SimpleClause(sly.lexer.Token`1) +FNDA:763,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::SimpleClause(sly.lexer.Token`1) +DA:101,763 +DA:102,763 +DA:103,763 +DA:104,763 +FN:111,sly.parser.syntax.grammar.GroupClause`1 sly.parser.generator.RuleParser`1::Group(sly.lexer.Token`1,sly.parser.syntax.grammar.GroupClause`1,sly.lexer.Token`1) +FNDA:16,sly.parser.syntax.grammar.GroupClause`1 sly.parser.generator.RuleParser`1::Group(sly.lexer.Token`1,sly.parser.syntax.grammar.GroupClause`1,sly.lexer.Token`1) +DA:112,16 +DA:113,16 +DA:114,16 +FN:117,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::ChoiceOneOrMore(sly.parser.syntax.grammar.ChoiceClause`1,sly.lexer.Token`1) +FNDA:3,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::ChoiceOneOrMore(sly.parser.syntax.grammar.ChoiceClause`1,sly.lexer.Token`1) +DA:118,3 +DA:119,3 +DA:120,3 +FN:123,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::ChoiceZeroOrMore(sly.parser.syntax.grammar.ChoiceClause`1,sly.lexer.Token`1) +FNDA:1,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::ChoiceZeroOrMore(sly.parser.syntax.grammar.ChoiceClause`1,sly.lexer.Token`1) +DA:124,1 +DA:125,1 +DA:126,1 +FN:130,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::ChoiceOptional(sly.parser.syntax.grammar.ChoiceClause`1,sly.lexer.Token`1) +FNDA:4,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::ChoiceOptional(sly.parser.syntax.grammar.ChoiceClause`1,sly.lexer.Token`1) +DA:131,4 +DA:132,4 +DA:133,4 +FN:137,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::GroupOneOrMore(sly.lexer.Token`1,sly.parser.syntax.grammar.GroupClause`1,sly.lexer.Token`1,sly.lexer.Token`1) +FNDA:1,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::GroupOneOrMore(sly.lexer.Token`1,sly.parser.syntax.grammar.GroupClause`1,sly.lexer.Token`1,sly.lexer.Token`1) +DA:138,1 +DA:139,1 +DA:140,1 +FN:144,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::GroupZeroOrMore(sly.lexer.Token`1,sly.parser.syntax.grammar.GroupClause`1,sly.lexer.Token`1,sly.lexer.Token`1) +FNDA:23,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::GroupZeroOrMore(sly.lexer.Token`1,sly.parser.syntax.grammar.GroupClause`1,sly.lexer.Token`1,sly.lexer.Token`1) +DA:145,23 +DA:146,23 +DA:147,23 +FN:151,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::GroupOptional(sly.lexer.Token`1,sly.parser.syntax.grammar.GroupClause`1,sly.lexer.Token`1,sly.lexer.Token`1) +FNDA:15,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::GroupOptional(sly.lexer.Token`1,sly.parser.syntax.grammar.GroupClause`1,sly.lexer.Token`1,sly.lexer.Token`1) +DA:152,15 +DA:153,15 +DA:154,15 +FN:158,sly.parser.syntax.grammar.GroupClause`1 sly.parser.generator.RuleParser`1::GroupClauses(sly.parser.syntax.grammar.GroupClause`1,sly.parser.syntax.grammar.GroupClause`1) +FNDA:56,sly.parser.syntax.grammar.GroupClause`1 sly.parser.generator.RuleParser`1::GroupClauses(sly.parser.syntax.grammar.GroupClause`1,sly.parser.syntax.grammar.GroupClause`1) +DA:159,56 +DA:160,112 +DA:161,56 +DA:162,56 +BRDA:160,7,0,56 +BRDA:160,7,1,56 +FN:165,sly.parser.syntax.grammar.GroupClause`1 sly.parser.generator.RuleParser`1::GroupClausesOne(sly.parser.syntax.grammar.GroupClause`1) +FNDA:55,sly.parser.syntax.grammar.GroupClause`1 sly.parser.generator.RuleParser`1::GroupClausesOne(sly.parser.syntax.grammar.GroupClause`1) +DA:166,55 +DA:167,55 +DA:168,55 +FN:171,sly.parser.syntax.grammar.GroupClause`1 sly.parser.generator.RuleParser`1::GroupClause(sly.lexer.Token`1) +FNDA:62,sly.parser.syntax.grammar.GroupClause`1 sly.parser.generator.RuleParser`1::GroupClause(sly.lexer.Token`1) +DA:172,62 +DA:173,62 +DA:174,62 +DA:175,62 +FN:178,sly.parser.syntax.grammar.GroupClause`1 sly.parser.generator.RuleParser`1::GroupClauseDiscarded(sly.lexer.Token`1,sly.lexer.Token`1) +FNDA:28,sly.parser.syntax.grammar.GroupClause`1 sly.parser.generator.RuleParser`1::GroupClauseDiscarded(sly.lexer.Token`1,sly.lexer.Token`1) +DA:179,28 +DA:180,28 +DA:181,28 +DA:182,28 +FN:185,sly.parser.syntax.grammar.GroupClause`1 sly.parser.generator.RuleParser`1::GroupChoiceClause(sly.parser.syntax.grammar.ChoiceClause`1) +FNDA:21,sly.parser.syntax.grammar.GroupClause`1 sly.parser.generator.RuleParser`1::GroupChoiceClause(sly.parser.syntax.grammar.ChoiceClause`1) +DA:186,21 +DA:187,21 +DA:188,21 +FN:195,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::BuildTerminalOrNonTerimal(System.String,System.Boolean) +FNDA:1356,sly.parser.syntax.grammar.IClause`1 sly.parser.generator.RuleParser`1::BuildTerminalOrNonTerimal(System.String,System.Boolean) +DA:196,1356 +DA:197,1356 +DA:199,1356 +DA:200,1356 +DA:201,1356 +DA:202,894 +DA:203,894 +DA:204,894 +DA:206,1356 +DA:207,894 +DA:209,462 +DA:210,462 +DA:211,5 +DA:212,5 +DA:213,5 +DA:214,457 +DA:215,5 +DA:216,5 +DA:217,5 +DA:219,452 +DA:220,452 +DA:221,452 +DA:222,462 +DA:224,1356 +DA:225,1356 +BRDA:201,25,0,894 +BRDA:201,25,1,1356 +BRDA:206,36,0,894 +BRDA:206,36,1,462 +BRDA:210,64,0,5 +BRDA:210,64,1,457 +BRDA:214,93,0,5 +BRDA:214,93,1,452 +LF:117 +LH:117 +BRF:12 +BRH:12 +FNF:26 +FNH:26 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\generator\visitor\EBNFSyntaxTreeVisitor.cs +FN:19,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.EBNFSyntaxTreeVisitor`2::Visit(sly.parser.syntax.tree.ISyntaxNode`1,System.Object) +FNDA:1635,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.EBNFSyntaxTreeVisitor`2::Visit(sly.parser.syntax.tree.ISyntaxNode`1,System.Object) +DA:20,1635 +DA:21,1635 +DA:22,701 +DA:23,934 +DA:24,17 +DA:25,917 +DA:26,76 +DA:27,841 +DA:28,18 +DA:29,823 +DA:30,823 +DA:32,0 +DA:33,1632 +BRDA:21,12,0,701 +BRDA:21,12,1,934 +BRDA:23,40,0,17 +BRDA:23,40,1,917 +BRDA:25,69,0,76 +BRDA:25,69,1,841 +BRDA:27,100,0,18 +BRDA:27,100,1,823 +BRDA:29,131,0,823 +BRDA:29,131,1,0 +FN:35,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.EBNFSyntaxTreeVisitor`2::Visit(sly.parser.syntax.tree.GroupSyntaxNode`1,System.Object) +FNDA:17,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.EBNFSyntaxTreeVisitor`2::Visit(sly.parser.syntax.tree.GroupSyntaxNode`1,System.Object) +DA:36,17 +DA:37,17 +DA:38,17 +DA:39,119 +DA:40,34 +DA:41,34 +DA:43,39 +DA:44,34 +DA:45,29 +DA:46,19 +DA:47,34 +DA:50,17 +DA:51,17 +DA:52,17 +BRDA:39,141,1,34 +BRDA:43,60,0,5 +BRDA:43,60,1,34 +BRDA:44,94,0,29 +BRDA:45,110,0,19 +BRDA:44,94,1,34 +BRDA:45,110,1,34 +BRDA:39,141,0,17 +FN:54,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.EBNFSyntaxTreeVisitor`2::Visit(sly.parser.syntax.tree.OptionSyntaxNode`1,System.Object) +FNDA:18,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.EBNFSyntaxTreeVisitor`2::Visit(sly.parser.syntax.tree.OptionSyntaxNode`1,System.Object) +DA:55,18 +DA:56,18 +DA:57,18 +DA:58,4 +DA:59,4 +DA:60,2 +DA:61,2 +DA:64,2 +DA:65,2 +DA:69,14 +DA:70,14 +DA:71,5 +DA:72,9 +DA:73,3 +DA:74,6 +DA:75,18 +BRDA:56,7,0,18 +BRDA:56,7,1,4 +BRDA:56,20,0,4 +BRDA:56,20,1,14 +BRDA:57,39,0,14 +BRDA:57,39,1,4 +BRDA:57,54,0,4 +BRDA:59,67,0,2 +BRDA:59,67,1,2 +BRDA:57,54,1,14 +BRDA:70,113,0,5 +BRDA:70,113,1,9 +BRDA:72,145,0,3 +BRDA:72,145,1,6 +FN:78,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.EBNFSyntaxTreeVisitor`2::Visit(sly.parser.syntax.tree.SyntaxNode`1,System.Object) +FNDA:823,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.EBNFSyntaxTreeVisitor`2::Visit(sly.parser.syntax.tree.SyntaxNode`1,System.Object) +DA:79,823 +DA:80,823 +DA:81,823 +DA:82,823 +DA:85,823 +DA:87,5178 +DA:88,1355 +DA:89,1355 +DA:91,1354 +DA:92,654 +DA:93,1069 +DA:94,654 +DA:95,700 +DA:96,609 +DA:97,609 +DA:98,609 +DA:99,91 +DA:100,8 +DA:101,8 +DA:102,8 +DA:103,83 +DA:104,5 +DA:105,5 +DA:106,5 +DA:107,78 +DA:108,3 +DA:109,3 +DA:110,3 +DA:111,75 +DA:112,12 +DA:113,12 +DA:114,12 +DA:115,63 +DA:116,60 +DA:117,60 +DA:118,60 +DA:119,3 +DA:120,3 +DA:121,3 +DA:122,3 +DA:123,1354 +DA:125,822 +DA:126,0 +DA:127,0 +DA:128,0 +DA:130,822 +DA:131,822 +DA:133,822 +DA:134,822 +DA:135,21 +DA:136,21 +DA:137,21 +DA:139,1644 +DA:140,822 +DA:141,821 +DA:142,821 +DA:143,821 +DA:144,1 +DA:145,1 +DA:146,1 +DA:147,1 +DA:148,1 +DA:150,0 +DA:151,0 +DA:152,0 +DA:153,0 +DA:155,821 +DA:156,821 +DA:158,821 +DA:159,821 +BRDA:81,19,0,0 +BRDA:81,19,1,823 +BRDA:81,32,0,823 +BRDA:87,367,1,1355 +BRDA:91,94,0,654 +BRDA:93,111,0,415 +BRDA:93,111,1,654 +BRDA:91,94,1,700 +BRDA:95,144,0,609 +BRDA:95,144,1,91 +BRDA:99,183,0,8 +BRDA:99,183,1,83 +BRDA:103,217,0,5 +BRDA:103,217,1,78 +BRDA:107,248,0,3 +BRDA:107,248,1,75 +BRDA:111,279,0,12 +BRDA:111,279,1,63 +BRDA:115,310,0,60 +BRDA:115,310,1,3 +BRDA:119,341,0,3 +BRDA:119,341,1,1354 +BRDA:87,367,0,822 +BRDA:125,399,0,0 +BRDA:125,399,1,822 +BRDA:134,447,0,21 +BRDA:134,447,1,822 +BRDA:139,471,0,822 +BRDA:139,471,1,822 +BRDA:146,539,0,1 +BRDA:146,539,1,0 +BRDA:81,32,1,821 +FN:161,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.EBNFSyntaxTreeVisitor`2::Visit(sly.parser.syntax.tree.ManySyntaxNode`1,System.Object) +FNDA:76,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.EBNFSyntaxTreeVisitor`2::Visit(sly.parser.syntax.tree.ManySyntaxNode`1,System.Object) +DA:162,76 +DA:163,76 +DA:165,76 +DA:166,477 +DA:167,125 +DA:168,125 +DA:169,124 +DA:170,124 +DA:172,75 +DA:173,12 +DA:174,12 +DA:175,30 +DA:176,12 +DA:177,12 +DA:178,63 +DA:179,60 +DA:180,60 +DA:181,155 +DA:182,60 +DA:183,60 +DA:184,3 +DA:185,3 +DA:186,3 +DA:187,14 +DA:188,3 +DA:189,3 +DA:192,75 +DA:193,75 +BRDA:166,60,1,125 +BRDA:166,60,0,75 +BRDA:172,89,0,12 +BRDA:172,89,1,63 +BRDA:178,160,0,60 +BRDA:178,160,1,3 +BRDA:184,228,0,3 +BRDA:184,228,1,75 +FN:196,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.EBNFSyntaxTreeVisitor`2::Visit(sly.parser.syntax.tree.SyntaxLeaf`1) +FNDA:701,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.EBNFSyntaxTreeVisitor`2::Visit(sly.parser.syntax.tree.SyntaxLeaf`1) +DA:197,701 +DA:198,701 +DA:199,701 +FN:12,System.Void sly.parser.generator.visitor.EBNFSyntaxTreeVisitor`2::.ctor(sly.parser.generator.ParserConfiguration`2,System.Object) +FNDA:91,System.Void sly.parser.generator.visitor.EBNFSyntaxTreeVisitor`2::.ctor(sly.parser.generator.ParserConfiguration`2,System.Object) +DA:13,91 +DA:14,91 +DA:15,91 +DA:16,91 +LF:148 +LH:140 +BRF:72 +BRH:68 +FNF:7 +FNH:7 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\generator\visitor\SyntaxTreeVisitor.cs +FN:28,System.Boolean sly.parser.generator.visitor.SyntaxVisitorResult`2::get_IsOption() +FNDA:91,System.Boolean sly.parser.generator.visitor.SyntaxVisitorResult`2::get_IsOption() +DA:29,91 +FN:29,System.Boolean sly.parser.generator.visitor.SyntaxVisitorResult`2::get_IsOptionGroup() +FNDA:83,System.Boolean sly.parser.generator.visitor.SyntaxVisitorResult`2::get_IsOptionGroup() +DA:30,83 +FN:31,System.Boolean sly.parser.generator.visitor.SyntaxVisitorResult`2::get_IsToken() +FNDA:15897,System.Boolean sly.parser.generator.visitor.SyntaxVisitorResult`2::get_IsToken() +DA:32,15897 +FN:33,System.Boolean sly.parser.generator.visitor.SyntaxVisitorResult`2::get_Discarded() +FNDA:3607,System.Boolean sly.parser.generator.visitor.SyntaxVisitorResult`2::get_Discarded() +DA:34,3607 +BRDA:34,6,0,3607 +BRDA:34,14,0,3607 +BRDA:34,6,1,0 +BRDA:34,14,1,0 +FN:34,System.Boolean sly.parser.generator.visitor.SyntaxVisitorResult`2::get_IsValue() +FNDA:8346,System.Boolean sly.parser.generator.visitor.SyntaxVisitorResult`2::get_IsValue() +DA:35,8346 +FN:35,System.Boolean sly.parser.generator.visitor.SyntaxVisitorResult`2::get_IsValueList() +FNDA:123,System.Boolean sly.parser.generator.visitor.SyntaxVisitorResult`2::get_IsValueList() +DA:36,123 +FN:37,System.Boolean sly.parser.generator.visitor.SyntaxVisitorResult`2::get_IsGroupList() +FNDA:6,System.Boolean sly.parser.generator.visitor.SyntaxVisitorResult`2::get_IsGroupList() +DA:38,6 +FN:39,System.Boolean sly.parser.generator.visitor.SyntaxVisitorResult`2::get_IsTokenList() +FNDA:87,System.Boolean sly.parser.generator.visitor.SyntaxVisitorResult`2::get_IsTokenList() +DA:40,87 +FN:41,System.Boolean sly.parser.generator.visitor.SyntaxVisitorResult`2::get_IsGroup() +FNDA:95,System.Boolean sly.parser.generator.visitor.SyntaxVisitorResult`2::get_IsGroup() +DA:42,95 +FN:43,System.Boolean sly.parser.generator.visitor.SyntaxVisitorResult`2::get_IsNone() +FNDA:0,System.Boolean sly.parser.generator.visitor.SyntaxVisitorResult`2::get_IsNone() +DA:44,0 +BRDA:44,6,0,0 +BRDA:44,14,0,0 +BRDA:44,22,0,0 +BRDA:44,30,0,0 +BRDA:44,38,0,0 +BRDA:44,6,1,0 +BRDA:44,14,1,0 +BRDA:44,22,1,0 +BRDA:44,30,1,0 +BRDA:44,38,1,0 +FN:46,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.SyntaxVisitorResult`2::NewToken(sly.lexer.Token`1) +FNDA:4284,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.SyntaxVisitorResult`2::NewToken(sly.lexer.Token`1) +DA:47,4284 +DA:48,4284 +DA:49,4284 +DA:50,4284 +DA:51,4284 +DA:52,4284 +FN:54,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.SyntaxVisitorResult`2::NewValue(OUT) +FNDA:4572,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.SyntaxVisitorResult`2::NewValue(OUT) +DA:55,4572 +DA:56,4572 +DA:57,4572 +DA:58,4572 +DA:59,4572 +DA:60,4572 +FN:62,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.SyntaxVisitorResult`2::NewValueList(System.Collections.Generic.List`1) +FNDA:60,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.SyntaxVisitorResult`2::NewValueList(System.Collections.Generic.List`1) +DA:63,60 +DA:64,60 +DA:65,60 +DA:66,60 +DA:67,60 +DA:68,60 +FN:70,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.SyntaxVisitorResult`2::NewGroupList(System.Collections.Generic.List`1>) +FNDA:3,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.SyntaxVisitorResult`2::NewGroupList(System.Collections.Generic.List`1>) +DA:71,3 +DA:72,3 +DA:73,3 +DA:74,3 +DA:75,3 +DA:76,3 +FN:78,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.SyntaxVisitorResult`2::NewTokenList(System.Collections.Generic.List`1>) +FNDA:12,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.SyntaxVisitorResult`2::NewTokenList(System.Collections.Generic.List`1>) +DA:79,12 +DA:80,12 +DA:81,12 +DA:82,12 +DA:83,12 +DA:84,12 +FN:86,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.SyntaxVisitorResult`2::NewOptionSome(OUT) +FNDA:6,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.SyntaxVisitorResult`2::NewOptionSome(OUT) +DA:87,6 +DA:88,6 +DA:89,6 +DA:90,6 +DA:91,6 +FN:93,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.SyntaxVisitorResult`2::NewOptionGroupSome(sly.parser.parser.Group`2) +FNDA:3,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.SyntaxVisitorResult`2::NewOptionGroupSome(sly.parser.parser.Group`2) +DA:94,3 +DA:95,3 +DA:96,3 +DA:97,3 +DA:98,3 +FN:100,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.SyntaxVisitorResult`2::NewOptionGroupNone() +FNDA:2,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.SyntaxVisitorResult`2::NewOptionGroupNone() +DA:101,2 +DA:102,2 +DA:103,2 +DA:104,2 +DA:105,2 +FN:108,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.SyntaxVisitorResult`2::NewOptionNone() +FNDA:2,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.SyntaxVisitorResult`2::NewOptionNone() +DA:109,2 +DA:110,2 +DA:111,2 +DA:112,2 +DA:113,2 +FN:115,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.SyntaxVisitorResult`2::NewGroup(sly.parser.parser.Group`2) +FNDA:17,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.SyntaxVisitorResult`2::NewGroup(sly.parser.parser.Group`2) +DA:116,17 +DA:117,17 +DA:118,17 +DA:119,17 +DA:120,17 +DA:121,17 +FN:123,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.SyntaxVisitorResult`2::NoneResult() +FNDA:4576,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.SyntaxVisitorResult`2::NoneResult() +DA:124,4576 +DA:125,4576 +DA:126,4576 +DA:127,4576 +FN:138,System.Type sly.parser.generator.visitor.SyntaxTreeVisitor`2::get_ParserClass() +FNDA:474,System.Type sly.parser.generator.visitor.SyntaxTreeVisitor`2::get_ParserClass() +DA:139,474 +FN:140,System.Object sly.parser.generator.visitor.SyntaxTreeVisitor`2::get_ParserVsisitorInstance() +FNDA:4811,System.Object sly.parser.generator.visitor.SyntaxTreeVisitor`2::get_ParserVsisitorInstance() +DA:141,4811 +FN:142,sly.parser.generator.ParserConfiguration`2 sly.parser.generator.visitor.SyntaxTreeVisitor`2::get_Configuration() +FNDA:237,sly.parser.generator.ParserConfiguration`2 sly.parser.generator.visitor.SyntaxTreeVisitor`2::get_Configuration() +DA:143,237 +FN:145,OUT sly.parser.generator.visitor.SyntaxTreeVisitor`2::VisitSyntaxTree(sly.parser.syntax.tree.ISyntaxNode`1,System.Object) +FNDA:819,OUT sly.parser.generator.visitor.SyntaxTreeVisitor`2::VisitSyntaxTree(sly.parser.syntax.tree.ISyntaxNode`1,System.Object) +DA:146,819 +DA:147,819 +DA:148,817 +DA:149,817 +FN:151,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.SyntaxTreeVisitor`2::Visit(sly.parser.syntax.tree.ISyntaxNode`1,System.Object) +FNDA:7331,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.SyntaxTreeVisitor`2::Visit(sly.parser.syntax.tree.ISyntaxNode`1,System.Object) +DA:152,7331 +DA:153,7331 +DA:154,3578 +DA:155,3753 +DA:156,3753 +DA:157,0 +DA:158,7329 +BRDA:153,12,0,3578 +BRDA:153,12,1,3753 +BRDA:155,40,0,3753 +BRDA:155,40,1,0 +FN:160,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.SyntaxTreeVisitor`2::Visit(sly.parser.syntax.tree.SyntaxNode`1,System.Object) +FNDA:3753,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.SyntaxTreeVisitor`2::Visit(sly.parser.syntax.tree.SyntaxNode`1,System.Object) +DA:161,3753 +DA:162,3753 +DA:163,3753 +DA:164,3753 +DA:165,3753 +DA:166,3753 +DA:167,24496 +DA:168,6619 +DA:169,6619 +DA:172,6618 +DA:173,3578 +DA:174,7152 +DA:175,3578 +DA:176,3040 +DA:177,3040 +DA:178,3040 +DA:179,3040 +DA:181,6618 +DA:182,6618 +DA:184,3752 +DA:185,0 +DA:186,0 +DA:187,0 +DA:189,3752 +DA:190,3752 +DA:192,3752 +DA:193,3752 +DA:194,0 +DA:195,0 +DA:196,0 +DA:198,3752 +DA:199,3752 +DA:200,3751 +DA:201,3751 +DA:202,3751 +DA:203,1 +DA:204,1 +DA:205,1 +DA:206,1 +DA:207,1 +DA:209,0 +DA:210,0 +DA:211,0 +DA:212,0 +DA:214,3751 +DA:215,3751 +DA:217,3751 +DA:218,3751 +BRDA:163,19,0,0 +BRDA:163,19,1,3753 +BRDA:163,32,0,3753 +BRDA:167,176,1,6619 +BRDA:172,94,0,3578 +BRDA:174,111,0,3574 +BRDA:174,111,1,3578 +BRDA:172,94,1,3040 +BRDA:176,141,0,3040 +BRDA:176,141,1,6618 +BRDA:167,176,0,3752 +BRDA:184,205,0,0 +BRDA:184,205,1,3752 +BRDA:193,250,0,0 +BRDA:193,250,1,3752 +BRDA:199,272,0,0 +BRDA:199,272,1,3752 +BRDA:205,335,0,1 +BRDA:205,335,1,0 +BRDA:163,32,1,3751 +FN:220,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.SyntaxTreeVisitor`2::Visit(sly.parser.syntax.tree.SyntaxLeaf`1) +FNDA:3578,sly.parser.generator.visitor.SyntaxVisitorResult`2 sly.parser.generator.visitor.SyntaxTreeVisitor`2::Visit(sly.parser.syntax.tree.SyntaxLeaf`1) +DA:221,3578 +DA:222,3578 +DA:223,3578 +FN:131,System.Void sly.parser.generator.visitor.SyntaxTreeVisitor`2::.ctor(sly.parser.generator.ParserConfiguration`2,System.Object) +FNDA:237,System.Void sly.parser.generator.visitor.SyntaxTreeVisitor`2::.ctor(sly.parser.generator.ParserConfiguration`2,System.Object) +DA:132,237 +DA:133,237 +DA:134,237 +DA:135,237 +DA:136,237 +DA:137,237 +LF:141 +LH:129 +BRF:38 +BRH:20 +FNF:29 +FNH:28 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\generator\visitor\dotgraph\DotArrow.cs +FN:16,System.String sly.parser.generator.visitor.dotgraph.DotArrow::Attribute(System.String,System.String) +FNDA:21,System.String sly.parser.generator.visitor.dotgraph.DotArrow::Attribute(System.String,System.String) +DA:17,21 +DA:18,21 +DA:19,21 +DA:20,21 +DA:23,0 +DA:24,21 +BRDA:18,12,0,21 +BRDA:18,12,1,0 +FN:26,System.String sly.parser.generator.visitor.dotgraph.DotArrow::Attribute(System.String,System.Double) +FNDA:0,System.String sly.parser.generator.visitor.dotgraph.DotArrow::Attribute(System.String,System.Double) +DA:27,0 +DA:28,0 +DA:29,0 +FN:30,System.String sly.parser.generator.visitor.dotgraph.DotArrow::get_ArrowHeadShape() +FNDA:42,System.String sly.parser.generator.visitor.dotgraph.DotArrow::get_ArrowHeadShape() +DA:31,42 +FN:32,System.String sly.parser.generator.visitor.dotgraph.DotArrow::ToGraph() +FNDA:21,System.String sly.parser.generator.visitor.dotgraph.DotArrow::ToGraph() +DA:33,21 +DA:34,21 +DA:35,21 +DA:37,21 +DA:39,21 +DA:40,21 +DA:41,21 +BRDA:35,31,0,0 +BRDA:35,31,1,21 +FN:9,System.Void sly.parser.generator.visitor.dotgraph.DotArrow::.ctor(sly.parser.generator.visitor.dotgraph.DotNode,sly.parser.generator.visitor.dotgraph.DotNode) +FNDA:21,System.Void sly.parser.generator.visitor.dotgraph.DotArrow::.ctor(sly.parser.generator.visitor.dotgraph.DotNode,sly.parser.generator.visitor.dotgraph.DotNode) +DA:10,21 +DA:11,21 +DA:12,21 +DA:13,21 +DA:14,21 +LF:22 +LH:18 +BRF:4 +BRH:2 +FNF:5 +FNH:4 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\generator\visitor\dotgraph\DotGraph.cs +FN:21,System.Void sly.parser.generator.visitor.dotgraph.DotGraph::Add(sly.parser.generator.visitor.dotgraph.DotNode) +FNDA:34,System.Void sly.parser.generator.visitor.dotgraph.DotGraph::Add(sly.parser.generator.visitor.dotgraph.DotNode) +DA:22,34 +DA:23,34 +DA:24,34 +FN:26,System.Void sly.parser.generator.visitor.dotgraph.DotGraph::Add(sly.parser.generator.visitor.dotgraph.DotArrow) +FNDA:21,System.Void sly.parser.generator.visitor.dotgraph.DotGraph::Add(sly.parser.generator.visitor.dotgraph.DotArrow) +DA:27,21 +DA:28,21 +DA:29,21 +FN:31,System.String sly.parser.generator.visitor.dotgraph.DotGraph::Compile() +FNDA:3,System.String sly.parser.generator.visitor.dotgraph.DotGraph::Compile() +DA:32,3 +DA:33,3 +DA:34,3 +DA:35,3 +DA:36,77 +DA:37,34 +DA:38,34 +DA:39,34 +DA:41,51 +DA:42,21 +DA:43,21 +DA:44,21 +DA:45,3 +DA:46,3 +DA:47,3 +BRDA:34,14,0,0 +BRDA:34,14,1,3 +BRDA:36,107,1,34 +BRDA:36,107,0,3 +BRDA:41,173,1,21 +BRDA:41,173,0,3 +FN:12,System.Void sly.parser.generator.visitor.dotgraph.DotGraph::.ctor(System.String,System.Boolean) +FNDA:5,System.Void sly.parser.generator.visitor.dotgraph.DotGraph::.ctor(System.String,System.Boolean) +DA:13,5 +DA:14,5 +DA:15,5 +DA:16,5 +DA:17,5 +DA:18,5 +DA:19,5 +LF:28 +LH:28 +BRF:6 +BRH:5 +FNF:4 +FNH:4 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\parser\generator\visitor\dotgraph\DotNode.cs +FN:11,System.String sly.parser.generator.visitor.dotgraph.DotNode::get_Name() +FNDA:99,System.String sly.parser.generator.visitor.dotgraph.DotNode::get_Name() +DA:12,99 +FN:12,System.String sly.parser.generator.visitor.dotgraph.DotNode::get_Shape() +FNDA:57,System.String sly.parser.generator.visitor.dotgraph.DotNode::get_Shape() +DA:13,57 +FN:13,System.String sly.parser.generator.visitor.dotgraph.DotNode::get_Label() +FNDA:57,System.String sly.parser.generator.visitor.dotgraph.DotNode::get_Label() +DA:14,57 +FN:14,System.String sly.parser.generator.visitor.dotgraph.DotNode::get_FontColor() +FNDA:57,System.String sly.parser.generator.visitor.dotgraph.DotNode::get_FontColor() +DA:15,57 +FN:15,System.String sly.parser.generator.visitor.dotgraph.DotNode::get_Style() +FNDA:57,System.String sly.parser.generator.visitor.dotgraph.DotNode::get_Style() +DA:16,57 +FN:16,System.Double sly.parser.generator.visitor.dotgraph.DotNode::get_Height() +FNDA:57,System.Double sly.parser.generator.visitor.dotgraph.DotNode::get_Height() +DA:17,57 +FN:20,System.String sly.parser.generator.visitor.dotgraph.DotNode::Attribute(System.String,System.String) +FNDA:170,System.String sly.parser.generator.visitor.dotgraph.DotNode::Attribute(System.String,System.String) +DA:21,170 +DA:22,170 +DA:23,127 +DA:24,127 +DA:27,43 +DA:28,170 +BRDA:22,12,0,127 +BRDA:22,12,1,43 +FN:30,System.String sly.parser.generator.visitor.dotgraph.DotNode::Attribute(System.String,System.Double) +FNDA:34,System.String sly.parser.generator.visitor.dotgraph.DotNode::Attribute(System.String,System.Double) +DA:31,34 +DA:32,34 +DA:33,34 +FN:35,System.String sly.parser.generator.visitor.dotgraph.DotNode::ToGraph() +FNDA:34,System.String sly.parser.generator.visitor.dotgraph.DotNode::ToGraph() +DA:36,34 +DA:37,34 +DA:38,34 +DA:39,34 +DA:40,34 +DA:41,34 +DA:42,34 +DA:43,34 +DA:44,34 +DA:45,34 +DA:46,34 +FN:6,System.Void sly.parser.generator.visitor.dotgraph.DotNode::.ctor(System.String) +FNDA:23,System.Void sly.parser.generator.visitor.dotgraph.DotNode::.ctor(System.String) +DA:7,23 +DA:8,23 +DA:9,23 +DA:10,23 +LF:30 +LH:30 +BRF:2 +BRH:2 +FNF:10 +FNH:10 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\attributes\AlphaIdAttribute.cs +FN:4,System.Void sly.lexer.AlphaIdAttribute::.ctor() +FNDA:1,System.Void sly.lexer.AlphaIdAttribute::.ctor() +DA:5,1 +DA:6,1 +DA:8,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +FNF:1 +FNH:1 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\attributes\AlphaNumDashIdAttribute.cs +FN:4,System.Void sly.lexer.AlphaNumDashIdAttribute::.ctor() +FNDA:1,System.Void sly.lexer.AlphaNumDashIdAttribute::.ctor() +DA:5,1 +DA:6,1 +DA:8,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +FNF:1 +FNH:1 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\attributes\AlphaNumIdAttribute.cs +FN:4,System.Void sly.lexer.AlphaNumIdAttribute::.ctor() +FNDA:0,System.Void sly.lexer.AlphaNumIdAttribute::.ctor() +DA:5,0 +DA:6,0 +DA:8,0 +LF:3 +LH:0 +BRF:0 +BRH:0 +FNF:1 +FNH:0 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\attributes\CallBacksAttribute.cs +FN:7,System.Type sly.lexer.CallBacksAttribute::get_CallBacksClass() +FNDA:2,System.Type sly.lexer.CallBacksAttribute::get_CallBacksClass() +DA:8,2 +FN:9,System.Void sly.lexer.CallBacksAttribute::.ctor(System.Type) +FNDA:1,System.Void sly.lexer.CallBacksAttribute::.ctor(System.Type) +DA:10,1 +DA:11,1 +DA:12,1 +DA:13,1 +LF:5 +LH:5 +BRF:0 +BRH:0 +FNF:2 +FNH:2 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\attributes\CommentsAttribute.cs +FN:13,System.Void sly.lexer.CommentAttribute::.ctor(System.String,System.String,System.String,System.Boolean) +FNDA:150,System.Void sly.lexer.CommentAttribute::.ctor(System.String,System.String,System.String,System.Boolean) +DA:14,150 +DA:16,150 +DA:17,150 +DA:18,150 +DA:19,150 +DA:20,150 +DA:21,150 +DA:22,150 +LF:8 +LH:8 +BRF:0 +BRH:0 +FNF:1 +FNH:1 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\attributes\CustomIdAttribute.cs +FN:4,System.Void sly.lexer.CustomIdAttribute::.ctor(System.String,System.String) +FNDA:2,System.Void sly.lexer.CustomIdAttribute::.ctor(System.String,System.String) +DA:5,2 +DA:6,2 +DA:8,2 +LF:3 +LH:3 +BRF:0 +BRH:0 +FNF:1 +FNH:1 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\attributes\DoubleAttribute.cs +FN:4,System.Void sly.lexer.DoubleAttribute::.ctor() +FNDA:2,System.Void sly.lexer.DoubleAttribute::.ctor() +DA:5,2 +DA:6,2 +DA:8,2 +LF:3 +LH:3 +BRF:0 +BRH:0 +FNF:1 +FNH:1 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\attributes\ExtensionAttribute.cs +FN:4,System.Void sly.lexer.ExtensionAttribute::.ctor() +FNDA:1,System.Void sly.lexer.ExtensionAttribute::.ctor() +DA:5,1 +DA:6,1 +DA:8,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +FNF:1 +FNH:1 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\attributes\IntAttribute.cs +FN:4,System.Void sly.lexer.IntAttribute::.ctor() +FNDA:2,System.Void sly.lexer.IntAttribute::.ctor() +DA:5,2 +DA:6,2 +DA:8,2 +LF:3 +LH:3 +BRF:0 +BRH:0 +FNF:1 +FNH:1 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\attributes\KeywordAttribute.cs +FN:4,System.Void sly.lexer.KeywordAttribute::.ctor(System.String) +FNDA:2,System.Void sly.lexer.KeywordAttribute::.ctor(System.String) +DA:5,2 +DA:6,2 +DA:8,2 +LF:3 +LH:3 +BRF:0 +BRH:0 +FNF:1 +FNH:1 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\attributes\LexemeAttribute.cs +FN:31,sly.lexer.GenericToken sly.lexer.LexemeAttribute::get_GenericToken() +FNDA:18730,sly.lexer.GenericToken sly.lexer.LexemeAttribute::get_GenericToken() +DA:32,18730 +FN:33,System.String[] sly.lexer.LexemeAttribute::get_GenericTokenParameters() +FNDA:6324,System.String[] sly.lexer.LexemeAttribute::get_GenericTokenParameters() +DA:34,6324 +FN:35,sly.lexer.IdentifierType sly.lexer.LexemeAttribute::get_IdentifierType() +FNDA:3199,sly.lexer.IdentifierType sly.lexer.LexemeAttribute::get_IdentifierType() +DA:36,3199 +FN:37,System.String sly.lexer.LexemeAttribute::get_IdentifierStartPattern() +FNDA:3,System.String sly.lexer.LexemeAttribute::get_IdentifierStartPattern() +DA:38,3 +FN:39,System.String sly.lexer.LexemeAttribute::get_IdentifierRestPattern() +FNDA:3,System.String sly.lexer.LexemeAttribute::get_IdentifierRestPattern() +DA:40,3 +FN:41,System.String sly.lexer.LexemeAttribute::get_Pattern() +FNDA:4002,System.String sly.lexer.LexemeAttribute::get_Pattern() +DA:42,4002 +FN:43,System.Boolean sly.lexer.LexemeAttribute::get_IsSkippable() +FNDA:2230,System.Boolean sly.lexer.LexemeAttribute::get_IsSkippable() +DA:44,2230 +FN:45,System.Boolean sly.lexer.LexemeAttribute::get_IsLineEnding() +FNDA:3429,System.Boolean sly.lexer.LexemeAttribute::get_IsLineEnding() +DA:46,3429 +FN:48,System.Boolean sly.lexer.LexemeAttribute::get_HasGenericTokenParameters() +FNDA:1740,System.Boolean sly.lexer.LexemeAttribute::get_HasGenericTokenParameters() +DA:49,1740 +BRDA:49,6,0,1622 +BRDA:49,6,1,118 +FN:50,System.Boolean sly.lexer.LexemeAttribute::get_IsStaticGeneric() +FNDA:1662,System.Boolean sly.lexer.LexemeAttribute::get_IsStaticGeneric() +DA:51,1662 +DA:52,1662 +BRDA:51,6,0,294 +BRDA:51,15,0,273 +BRDA:51,6,1,1389 +BRDA:51,15,1,1389 +FN:53,System.Boolean sly.lexer.LexemeAttribute::get_IsKeyWord() +FNDA:1662,System.Boolean sly.lexer.LexemeAttribute::get_IsKeyWord() +DA:54,1662 +FN:55,System.Boolean sly.lexer.LexemeAttribute::get_IsSugar() +FNDA:1662,System.Boolean sly.lexer.LexemeAttribute::get_IsSugar() +DA:56,1662 +FN:57,System.Boolean sly.lexer.LexemeAttribute::get_IsString() +FNDA:3324,System.Boolean sly.lexer.LexemeAttribute::get_IsString() +DA:58,3324 +FN:59,System.Boolean sly.lexer.LexemeAttribute::get_IsChar() +FNDA:3289,System.Boolean sly.lexer.LexemeAttribute::get_IsChar() +DA:60,3289 +FN:61,System.Boolean sly.lexer.LexemeAttribute::get_IsIdentifier() +FNDA:1662,System.Boolean sly.lexer.LexemeAttribute::get_IsIdentifier() +DA:62,1662 +FN:63,System.Boolean sly.lexer.LexemeAttribute::get_IsExtension() +FNDA:1662,System.Boolean sly.lexer.LexemeAttribute::get_IsExtension() +DA:64,1662 +FN:7,System.Void sly.lexer.LexemeAttribute::.ctor(System.String,System.Boolean,System.Boolean) +FNDA:1115,System.Void sly.lexer.LexemeAttribute::.ctor(System.String,System.Boolean,System.Boolean) +DA:8,1115 +DA:9,1115 +DA:10,1115 +DA:11,1115 +DA:12,1115 +DA:13,1115 +FN:14,System.Void sly.lexer.LexemeAttribute::.ctor(sly.lexer.GenericToken,System.String[]) +FNDA:1544,System.Void sly.lexer.LexemeAttribute::.ctor(sly.lexer.GenericToken,System.String[]) +DA:15,1544 +DA:16,1544 +DA:17,1544 +DA:18,1544 +DA:19,1544 +FN:20,System.Void sly.lexer.LexemeAttribute::.ctor(sly.lexer.GenericToken,sly.lexer.IdentifierType,System.String,System.String) +FNDA:118,System.Void sly.lexer.LexemeAttribute::.ctor(sly.lexer.GenericToken,sly.lexer.IdentifierType,System.String,System.String) +DA:21,118 +DA:22,118 +DA:23,118 +DA:24,118 +DA:25,118 +DA:26,3 +DA:27,3 +DA:28,3 +DA:29,3 +DA:30,118 +BRDA:25,37,0,3 +BRDA:27,43,0,0 +BRDA:27,43,1,3 +BRDA:28,66,0,0 +BRDA:28,66,1,3 +BRDA:25,37,1,118 +LF:38 +LH:38 +BRF:12 +BRH:10 +FNF:19 +FNH:19 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\attributes\MultiLineCommentAttribute.cs +FN:7,System.Void sly.lexer.MultiLineCommentAttribute::.ctor(System.String,System.String,System.Boolean) +FNDA:63,System.Void sly.lexer.MultiLineCommentAttribute::.ctor(System.String,System.String,System.Boolean) +DA:8,63 +DA:9,126 +LF:2 +LH:2 +BRF:0 +BRH:0 +FNF:1 +FNH:1 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\attributes\SingleLineCommentAttribute.cs +FN:7,System.Void sly.lexer.SingleLineCommentAttribute::.ctor(System.String,System.Boolean) +FNDA:57,System.Void sly.lexer.SingleLineCommentAttribute::.ctor(System.String,System.Boolean) +DA:8,57 +DA:9,114 +LF:2 +LH:2 +BRF:0 +BRH:0 +FNF:1 +FNH:1 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\attributes\StringAttribute.cs +FN:4,System.Void sly.lexer.StringAttribute::.ctor(System.String,System.String) +FNDA:1,System.Void sly.lexer.StringAttribute::.ctor(System.String,System.String) +DA:5,1 +DA:6,1 +DA:8,1 +LF:3 +LH:3 +BRF:0 +BRH:0 +FNF:1 +FNH:1 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\attributes\SugarAttribute.cs +FN:4,System.Void sly.lexer.SugarAttribute::.ctor(System.String) +FNDA:9,System.Void sly.lexer.SugarAttribute::.ctor(System.String) +DA:5,9 +DA:6,9 +DA:8,9 +LF:3 +LH:3 +BRF:0 +BRH:0 +FNF:1 +FNH:1 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\CallBacksBuilder.cs +FN:10,System.Void sly.lexer.CallBacksBuilder::BuildCallbacks(sly.lexer.GenericLexer`1) +FNDA:1,System.Void sly.lexer.CallBacksBuilder::BuildCallbacks(sly.lexer.GenericLexer`1) +DA:11,1 +DA:12,1 +DA:13,1 +DA:14,1 +DA:15,1 +DA:17,1 +FN:19,System.Void sly.lexer.CallBacksBuilder::ExtractCallBacks(System.Type,sly.lexer.GenericLexer`1) +FNDA:1,System.Void sly.lexer.CallBacksBuilder::ExtractCallBacks(System.Type,sly.lexer.GenericLexer`1) +DA:20,1 +DA:21,1 +DA:22,1 +DA:23,5 +DA:24,5 +DA:25,7 +DA:26,5 +DA:27,6 +DA:29,5 +DA:30,1 +DA:31,1 +DA:32,1 +DA:33,1 +DA:34,1 +BRDA:22,20,0,1 +BRDA:22,20,1,1 +BRDA:29,136,1,1 +BRDA:29,136,0,1 +BRDA:25,20,0,1 +BRDA:25,20,1,5 +BRDA:26,57,0,1 +BRDA:26,57,1,4 +FN:36,System.Void sly.lexer.CallBacksBuilder::AddCallback(sly.lexer.GenericLexer`1,System.Reflection.MethodInfo,IN) +FNDA:1,System.Void sly.lexer.CallBacksBuilder::AddCallback(sly.lexer.GenericLexer`1,System.Reflection.MethodInfo,IN) +DA:37,1 +DA:38,1 +DA:39,1 +DA:40,1 +LF:24 +LH:24 +BRF:8 +BRH:8 +FNF:3 +FNH:3 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\GenericLexer.cs +FN:81,System.String sly.lexer.GenericLexer`1::get_I18n() +FNDA:14,System.String sly.lexer.GenericLexer`1::get_I18n() +DA:82,14 +FN:139,System.String sly.lexer.GenericLexer`1::get_SingleLineComment() +FNDA:15,System.String sly.lexer.GenericLexer`1::get_SingleLineComment() +DA:140,15 +FN:141,System.String sly.lexer.GenericLexer`1::get_MultiLineCommentStart() +FNDA:17,System.String sly.lexer.GenericLexer`1::get_MultiLineCommentStart() +DA:142,17 +FN:143,System.String sly.lexer.GenericLexer`1::get_MultiLineCommentEnd() +FNDA:56,System.String sly.lexer.GenericLexer`1::get_MultiLineCommentEnd() +DA:144,56 +FN:146,System.Void sly.lexer.GenericLexer`1::AddCallBack(IN,System.Func`2,sly.lexer.Token`1>) +FNDA:1,System.Void sly.lexer.GenericLexer`1::AddCallBack(IN,System.Func`2,sly.lexer.Token`1>) +DA:147,1 +DA:148,1 +DA:149,1 +FN:150,System.Void sly.lexer.GenericLexer`1::AddDefinition(sly.lexer.TokenDefinition`1) +FNDA:0,System.Void sly.lexer.GenericLexer`1::AddDefinition(sly.lexer.TokenDefinition`1) +DA:151,0 +FN:154,sly.lexer.LexerResult`1 sly.lexer.GenericLexer`1::Tokenize(System.String) +FNDA:784,sly.lexer.LexerResult`1 sly.lexer.GenericLexer`1::Tokenize(System.String) +DA:155,784 +DA:156,784 +DA:157,784 +DA:158,784 +FN:160,sly.lexer.LexerResult`1 sly.lexer.GenericLexer`1::Tokenize(System.ReadOnlyMemory`1) +FNDA:784,sly.lexer.LexerResult`1 sly.lexer.GenericLexer`1::Tokenize(System.ReadOnlyMemory`1) +DA:161,784 +DA:162,784 +DA:164,784 +DA:166,784 +DA:168,784 +DA:169,3 +DA:170,3 +DA:171,3 +DA:172,3 +DA:174,781 +DA:175,5 +DA:176,5 +DA:177,5 +DA:178,5 +DA:179,776 +DA:180,774 +DA:181,774 +DA:182,774 +DA:184,4753 +DA:185,3979 +DA:186,3979 +DA:187,3979 +DA:189,3979 +DA:190,2 +DA:191,2 +DA:192,2 +DA:194,3979 +DA:195,16 +DA:196,16 +DA:197,16 +DA:199,3979 +DA:200,1 +DA:201,4 +DA:202,1 +DA:203,1 +DA:204,1 +DA:205,1 +DA:206,3979 +DA:207,3979 +DA:208,3979 +DA:209,7 +DA:210,7 +DA:211,1 +DA:212,1 +DA:213,1 +DA:214,1 +DA:217,6 +DA:218,6 +DA:219,6 +DA:220,6 +DA:224,3972 +DA:225,16 +DA:226,16 +DA:227,16 +DA:228,16 +DA:229,3956 +DA:230,3184 +DA:231,3184 +DA:232,3184 +DA:233,3972 +DA:235,774 +DA:236,774 +DA:237,774 +DA:238,2 +DA:239,2 +DA:240,2 +DA:242,772 +DA:243,772 +DA:244,772 +DA:245,772 +DA:246,774 +DA:247,774 +DA:248,784 +BRDA:168,37,0,5 +BRDA:168,37,1,779 +BRDA:168,55,0,3 +BRDA:168,55,1,781 +BRDA:174,130,0,779 +BRDA:174,130,1,2 +BRDA:174,150,0,5 +BRDA:174,150,1,776 +BRDA:179,184,0,774 +BRDA:179,184,1,2 +BRDA:179,207,0,774 +BRDA:184,668,1,3979 +BRDA:189,266,0,2 +BRDA:189,266,1,3979 +BRDA:194,292,0,16 +BRDA:194,292,1,3979 +BRDA:199,311,0,17 +BRDA:199,311,1,3962 +BRDA:199,329,0,1 +BRDA:201,368,1,1 +BRDA:201,368,0,1 +BRDA:199,329,1,3979 +BRDA:208,400,0,779 +BRDA:208,400,1,3200 +BRDA:208,418,0,7 +BRDA:210,434,0,1 +BRDA:210,434,1,6 +BRDA:208,418,1,3972 +BRDA:224,569,0,3200 +BRDA:224,569,1,772 +BRDA:224,589,0,16 +BRDA:224,589,1,3956 +BRDA:229,623,0,3184 +BRDA:229,623,1,772 +BRDA:229,646,0,3184 +BRDA:229,646,1,3972 +BRDA:179,207,1,4753 +BRDA:184,668,0,774 +BRDA:237,696,0,2 +BRDA:237,696,1,772 +FN:250,System.Void sly.lexer.GenericLexer`1::ComputePositionWhenIgnoringEOL(sly.lexer.fsm.FSMMatch`1,System.Collections.Generic.List`1>) +FNDA:3995,System.Void sly.lexer.GenericLexer`1::ComputePositionWhenIgnoringEOL(sly.lexer.fsm.FSMMatch`1,System.Collections.Generic.List`1>) +DA:251,3995 +DA:252,3995 +DA:253,81 +DA:254,81 +DA:256,81 +DA:257,32 +DA:258,506 +DA:259,32 +DA:260,32 +DA:261,32 +DA:263,32 +DA:264,32 +DA:265,32 +DA:266,81 +DA:267,3995 +BRDA:252,17,0,81 +BRDA:256,48,0,32 +BRDA:258,58,0,2 +BRDA:258,58,1,32 +BRDA:259,100,0,6 +BRDA:259,100,1,26 +BRDA:256,48,1,81 +BRDA:252,17,1,3995 +FN:270,System.Void sly.lexer.GenericLexer`1::InitializeStaticLexer(sly.lexer.GenericLexer`1/Config,sly.lexer.GenericToken[]) +FNDA:195,System.Void sly.lexer.GenericLexer`1::InitializeStaticLexer(sly.lexer.GenericLexer`1/Config,sly.lexer.GenericToken[]) +DA:271,195 +DA:272,195 +DA:273,195 +DA:276,195 +DA:277,195 +DA:278,195 +DA:279,195 +DA:280,195 +DA:285,195 +DA:287,195 +DA:288,171 +DA:289,171 +DA:290,171 +DA:293,195 +DA:294,67 +DA:295,67 +DA:296,67 +DA:297,67 +DA:298,67 +DA:299,67 +DA:300,67 +DA:301,53 +DA:302,53 +DA:303,53 +DA:304,53 +DA:305,53 +DA:306,53 +DA:307,67 +DA:309,195 +DA:310,195 +BRDA:287,100,0,43 +BRDA:287,100,1,152 +BRDA:287,114,0,171 +BRDA:287,114,1,195 +BRDA:293,133,0,132 +BRDA:293,133,1,63 +BRDA:293,147,0,67 +BRDA:300,224,0,53 +BRDA:300,224,1,67 +BRDA:293,147,1,195 +FN:313,System.Void sly.lexer.GenericLexer`1::InitializeIdentifier(sly.lexer.GenericLexer`1/Config) +FNDA:171,System.Void sly.lexer.GenericLexer`1::InitializeIdentifier(sly.lexer.GenericLexer`1/Config) +DA:314,171 +DA:316,171 +DA:317,3 +DA:318,3 +DA:319,41 +DA:320,16 +DA:321,16 +DA:322,16 +DA:323,9 +DA:324,9 +DA:325,8 +DA:326,8 +DA:327,8 +DA:329,1 +DA:330,1 +DA:331,1 +DA:332,1 +DA:333,9 +DA:335,7 +DA:336,7 +DA:337,5 +DA:338,5 +DA:339,5 +DA:341,2 +DA:342,2 +DA:343,2 +DA:344,2 +DA:345,7 +DA:346,16 +DA:348,59 +DA:349,25 +DA:350,25 +DA:351,16 +DA:352,16 +DA:353,16 +DA:355,9 +DA:356,9 +DA:357,9 +DA:358,25 +DA:359,3 +DA:361,168 +DA:362,168 +DA:363,168 +DA:364,168 +DA:365,168 +DA:366,168 +DA:367,168 +DA:368,168 +DA:369,168 +DA:370,168 +DA:372,168 +DA:373,103 +DA:374,103 +DA:375,103 +DA:376,103 +DA:377,103 +DA:379,168 +DA:380,100 +DA:381,100 +DA:382,100 +DA:383,100 +DA:384,100 +DA:385,100 +DA:386,100 +DA:387,168 +DA:388,171 +BRDA:316,12,0,3 +BRDA:319,228,1,16 +BRDA:322,73,0,9 +BRDA:324,81,0,8 +BRDA:324,81,1,1 +BRDA:322,73,1,7 +BRDA:336,152,0,5 +BRDA:336,152,1,2 +BRDA:319,228,0,3 +BRDA:348,345,1,25 +BRDA:350,283,0,16 +BRDA:350,283,1,9 +BRDA:348,345,0,3 +BRDA:316,12,1,168 +BRDA:372,471,0,165 +BRDA:372,471,1,3 +BRDA:372,489,0,103 +BRDA:372,489,1,168 +BRDA:379,537,0,100 +BRDA:379,537,1,168 +FN:390,System.Void sly.lexer.GenericLexer`1::AddLexeme(sly.lexer.GenericToken,IN) +FNDA:268,System.Void sly.lexer.GenericLexer`1::AddLexeme(sly.lexer.GenericToken,IN) +DA:391,268 +DA:392,268 +DA:393,2313 +DA:394,2313 +DA:395,268 +DA:396,268 +DA:397,2175 +DA:398,2175 +DA:399,128 +DA:400,128 +DA:401,128 +DA:402,53 +DA:403,268 +DA:404,75 +DA:405,128 +DA:406,268 +DA:407,2047 +DA:408,2047 +DA:409,2047 +DA:410,268 +DA:411,2175 +DA:412,268 +DA:413,268 +DA:414,121 +DA:415,121 +DA:416,121 +DA:417,268 +DA:418,268 +DA:419,17 +DA:420,17 +DA:421,17 +DA:422,268 +DA:423,268 +DA:424,0 +DA:425,0 +DA:426,0 +DA:427,268 +DA:428,268 +DA:429,268 +DA:430,2313 +DA:431,2581 +DA:433,268 +DA:436,53 +DA:437,53 +DA:438,53 +DA:439,53 +DA:440,53 +DA:443,63 +DA:444,63 +DA:445,63 +DA:446,63 +DA:447,63 +DA:450,152 +DA:451,152 +DA:452,152 +DA:453,152 +DA:454,152 +DA:457,268 +BRDA:433,41,3,53 +BRDA:433,41,2,63 +BRDA:433,41,1,152 +BRDA:433,41,0,268 +BRDA:394,18,1,2175 +BRDA:398,60,0,128 +BRDA:401,102,0,53 +BRDA:401,102,1,75 +BRDA:398,60,1,2047 +BRDA:394,18,2,121 +BRDA:394,18,3,17 +BRDA:394,18,0,0 +FN:459,System.Void sly.lexer.GenericLexer`1::AddLexeme(sly.lexer.GenericToken,sly.buildresult.BuildResult`1>,IN,System.String) +FNDA:177,System.Void sly.lexer.GenericLexer`1::AddLexeme(sly.lexer.GenericToken,sly.buildresult.BuildResult`1>,IN,System.String) +DA:460,177 +DA:461,177 +DA:462,0 +DA:463,0 +DA:464,0 +DA:466,177 +DA:467,32 +DA:468,32 +DA:469,32 +DA:470,32 +DA:471,32 +DA:473,0 +DA:474,0 +DA:475,0 +DA:477,32 +DA:478,32 +DA:480,177 +DA:481,177 +BRDA:461,7,0,0 +BRDA:461,7,1,177 +BRDA:466,42,0,32 +BRDA:468,51,0,32 +BRDA:468,51,1,0 +BRDA:466,42,1,177 +FN:483,System.Void sly.lexer.GenericLexer`1::AddKeyWord(IN,System.String,sly.buildresult.BuildResult`1>) +FNDA:177,System.Void sly.lexer.GenericLexer`1::AddKeyWord(IN,System.String,sly.buildresult.BuildResult`1>) +DA:484,177 +DA:485,177 +DA:486,11 +DA:487,177 +DA:488,11 +DA:489,11 +DA:490,11 +DA:491,1 +DA:492,1 +DA:493,1 +DA:494,11 +DA:495,177 +DA:496,0 +DA:497,0 +DA:498,0 +DA:499,177 +DA:500,11 +DA:501,177 +DA:502,11 +DA:503,188 +DA:505,177 +DA:506,177 +DA:507,177 +DA:508,23 +DA:509,23 +DA:510,23 +DA:511,177 +BRDA:507,69,0,23 +BRDA:507,69,1,177 +FN:514,System.ReadOnlyMemory`1 sly.lexer.GenericLexer`1::diffCharEscaper(System.Char,System.Char,System.ReadOnlyMemory`1) +FNDA:22,System.ReadOnlyMemory`1 sly.lexer.GenericLexer`1::diffCharEscaper(System.Char,System.Char,System.ReadOnlyMemory`1) +DA:515,22 +DA:516,22 +DA:517,22 +DA:518,22 +DA:519,22 +DA:520,22 +DA:521,137 +DA:522,115 +DA:523,115 +DA:524,115 +DA:525,5 +DA:526,5 +DA:527,5 +DA:528,5 +DA:529,5 +DA:530,5 +DA:531,5 +DA:532,5 +DA:534,110 +DA:535,110 +DA:536,5 +DA:537,5 +DA:538,0 +DA:539,0 +DA:540,0 +DA:541,5 +DA:542,5 +DA:543,110 +DA:544,33 +DA:545,33 +DA:546,33 +DA:547,110 +DA:548,115 +DA:549,115 +DA:550,22 +DA:551,5 +DA:552,5 +DA:553,5 +DA:554,5 +DA:556,22 +DA:557,22 +BRDA:521,194,1,115 +BRDA:524,34,0,5 +BRDA:524,34,1,110 +BRDA:524,55,0,5 +BRDA:527,68,0,5 +BRDA:527,68,1,5 +BRDA:524,55,1,110 +BRDA:535,109,0,5 +BRDA:537,124,0,0 +BRDA:537,124,1,5 +BRDA:535,109,1,110 +BRDA:543,152,0,33 +BRDA:543,152,1,110 +BRDA:521,194,0,22 +BRDA:550,204,0,5 +BRDA:550,204,1,22 +FN:559,System.ReadOnlyMemory`1 sly.lexer.GenericLexer`1::sameCharEscaper(System.Char,System.Char,System.ReadOnlyMemory`1) +FNDA:4,System.ReadOnlyMemory`1 sly.lexer.GenericLexer`1::sameCharEscaper(System.Char,System.Char,System.ReadOnlyMemory`1) +DA:560,4 +DA:561,4 +DA:562,4 +DA:563,4 +DA:564,4 +DA:565,4 +DA:566,42 +DA:567,38 +DA:568,38 +DA:569,38 +DA:570,3 +DA:571,3 +DA:572,3 +DA:573,3 +DA:574,3 +DA:575,3 +DA:576,3 +DA:577,3 +DA:579,35 +DA:580,35 +DA:581,3 +DA:582,3 +DA:583,3 +DA:584,3 +DA:585,32 +DA:586,12 +DA:587,12 +DA:588,12 +DA:589,35 +DA:590,38 +DA:591,38 +DA:592,4 +DA:593,3 +DA:594,3 +DA:595,3 +DA:596,3 +DA:598,4 +DA:599,4 +BRDA:566,183,1,38 +BRDA:569,34,0,6 +BRDA:569,37,0,3 +BRDA:569,34,1,35 +BRDA:569,37,1,35 +BRDA:569,58,0,3 +BRDA:572,71,0,3 +BRDA:572,71,1,3 +BRDA:569,58,1,35 +BRDA:580,112,0,3 +BRDA:580,112,1,32 +BRDA:585,141,0,12 +BRDA:585,141,1,35 +BRDA:566,183,0,4 +BRDA:592,193,0,3 +BRDA:592,193,1,4 +FN:602,System.Void sly.lexer.GenericLexer`1::AddStringLexem(IN,sly.buildresult.BuildResult`1>,System.String,System.String) +FNDA:35,System.Void sly.lexer.GenericLexer`1::AddStringLexem(IN,sly.buildresult.BuildResult`1>,System.String,System.String) +DA:603,35 +DA:604,35 +DA:605,1 +DA:606,1 +DA:607,1 +DA:608,35 +DA:609,1 +DA:610,1 +DA:611,1 +DA:613,35 +DA:614,1 +DA:615,1 +DA:616,1 +DA:617,35 +DA:618,1 +DA:619,1 +DA:620,1 +DA:622,35 +DA:623,35 +DA:625,35 +DA:626,35 +DA:628,35 +DA:629,34 +DA:630,34 +DA:632,34 +DA:633,34 +DA:635,34 +DA:636,34 +DA:637,34 +DA:640,35 +DA:641,26 +DA:642,26 +DA:643,26 +DA:644,35 +DA:645,26 +DA:646,35 +DA:647,26 +DA:648,26 +DA:649,26 +DA:650,22 +DA:651,22 +DA:652,22 +DA:653,35 +DA:654,4 +DA:655,4 +DA:656,4 +DA:657,35 +DA:658,26 +DA:659,61 +DA:661,35 +DA:662,31 +DA:664,31 +DA:665,31 +DA:666,31 +DA:667,31 +DA:668,31 +DA:669,31 +DA:670,31 +DA:671,31 +DA:672,31 +DA:673,31 +DA:674,31 +DA:675,31 +DA:676,31 +DA:677,31 +DA:678,31 +DA:679,31 +DA:681,4 +DA:682,4 +DA:683,4 +DA:684,4 +DA:685,4 +DA:687,4 +DA:688,4 +DA:689,4 +DA:690,4 +DA:691,4 +DA:692,4 +DA:693,4 +DA:694,4 +DA:695,4 +DA:696,4 +DA:697,4 +DA:699,4 +DA:700,4 +DA:701,4 +DA:702,4 +DA:703,35 +BRDA:604,27,0,34 +BRDA:604,27,1,1 +BRDA:604,43,0,1 +BRDA:604,43,1,35 +BRDA:608,114,0,34 +BRDA:608,114,1,1 +BRDA:608,133,0,1 +BRDA:608,133,1,35 +BRDA:613,205,0,35 +BRDA:613,205,1,0 +BRDA:613,224,0,1 +BRDA:613,224,1,35 +BRDA:617,298,0,34 +BRDA:617,298,1,1 +BRDA:617,320,0,1 +BRDA:617,320,1,35 +BRDA:628,427,0,34 +BRDA:628,427,1,35 +BRDA:661,533,0,31 +BRDA:661,533,1,4 +BRDA:649,94,0,22 +BRDA:649,94,1,4 +FN:705,System.Void sly.lexer.GenericLexer`1::AddCharLexem(IN,sly.buildresult.BuildResult`1>,System.String,System.String) +FNDA:4,System.Void sly.lexer.GenericLexer`1::AddCharLexem(IN,sly.buildresult.BuildResult`1>,System.String,System.String) +DA:706,4 +DA:707,4 +DA:708,0 +DA:709,0 +DA:710,0 +DA:711,4 +DA:712,0 +DA:713,0 +DA:714,0 +DA:716,4 +DA:717,0 +DA:718,0 +DA:719,0 +DA:720,4 +DA:721,0 +DA:722,0 +DA:723,0 +DA:725,4 +DA:727,4 +DA:729,4 +DA:732,4 +DA:733,3 +DA:734,3 +DA:735,3 +DA:736,4 +DA:737,3 +DA:738,3 +DA:739,7 +DA:741,4 +DA:742,4 +DA:743,4 +DA:744,4 +DA:745,4 +DA:746,4 +DA:747,4 +DA:748,4 +DA:749,4 +DA:750,4 +DA:751,4 +DA:752,4 +DA:753,4 +DA:754,4 +DA:755,4 +DA:758,4 +DA:759,4 +DA:760,4 +DA:761,4 +DA:763,4 +BRDA:707,20,0,4 +BRDA:707,20,1,0 +BRDA:707,38,0,0 +BRDA:707,38,1,4 +BRDA:711,110,0,4 +BRDA:711,110,1,0 +BRDA:711,131,0,0 +BRDA:711,131,1,4 +BRDA:716,203,0,4 +BRDA:716,203,1,0 +BRDA:716,222,0,0 +BRDA:716,222,1,4 +BRDA:720,296,0,4 +BRDA:720,296,1,0 +BRDA:720,318,0,0 +BRDA:720,318,1,4 +FN:765,System.Void sly.lexer.GenericLexer`1::AddSugarLexem(IN,sly.buildresult.BuildResult`1>,System.String,System.Boolean) +FNDA:1191,System.Void sly.lexer.GenericLexer`1::AddSugarLexem(IN,sly.buildresult.BuildResult`1>,System.String,System.Boolean) +DA:766,1191 +DA:767,1191 +DA:768,0 +DA:769,0 +DA:770,0 +DA:771,0 +DA:772,0 +DA:775,1191 +DA:776,1564 +DA:777,1564 +DA:778,1564 +DA:779,2755 +DA:781,1191 +DA:782,6627 +DA:783,1191 +DA:784,1191 +DA:785,1191 +BRDA:767,28,0,0 +BRDA:767,28,1,1191 +BRDA:782,166,1,1415 +BRDA:782,166,0,1191 +FN:787,sly.lexer.LexerPosition sly.lexer.GenericLexer`1::ConsumeComment(sly.lexer.Token`1,System.ReadOnlyMemory`1,sly.lexer.LexerPosition) +FNDA:21,sly.lexer.LexerPosition sly.lexer.GenericLexer`1::ConsumeComment(sly.lexer.Token`1,System.ReadOnlyMemory`1,sly.lexer.LexerPosition) +DA:788,21 +DA:792,21 +DA:793,8 +DA:794,8 +DA:795,8 +DA:796,8 +DA:797,8 +DA:798,8 +DA:801,13 +DA:802,13 +DA:803,13 +DA:805,13 +DA:806,13 +DA:807,3 +DA:809,10 +DA:810,13 +DA:811,13 +DA:813,13 +DA:814,13 +DA:815,13 +DA:817,13 +DA:818,9 +DA:820,4 +DA:822,13 +DA:826,0 +DA:827,21 +BRDA:792,9,0,8 +BRDA:792,9,1,13 +BRDA:801,76,0,13 +BRDA:806,135,0,3 +BRDA:806,135,1,10 +BRDA:817,254,0,9 +BRDA:817,254,1,4 +BRDA:801,76,1,0 +FN:829,sly.lexer.Token`1 sly.lexer.GenericLexer`1::Transcode(sly.lexer.fsm.FSMMatch`1) +FNDA:3979,sly.lexer.Token`1 sly.lexer.GenericLexer`1::Transcode(sly.lexer.fsm.FSMMatch`1) +DA:830,3979 +DA:831,3979 +DA:832,3979 +DA:833,3979 +DA:834,3979 +DA:835,3979 +DA:836,3979 +DA:837,3979 +DA:838,3979 +DA:839,3979 +DA:840,3979 +DA:841,3979 +DA:842,3979 +DA:843,3979 +DA:844,3979 +DA:845,3979 +DA:846,3979 +DA:847,3979 +DA:848,3979 +BRDA:840,121,0,36 +BRDA:840,121,1,3943 +FN:856,System.String sly.lexer.GenericLexer`1::ToGraphViz() +FNDA:1,System.String sly.lexer.GenericLexer`1::ToGraphViz() +DA:857,1 +DA:858,1 +DA:859,1 +FN:128,System.Void sly.lexer.GenericLexer`1::.ctor(sly.lexer.IdentifierType,sly.lexer.fsm.BuildExtension`1,sly.lexer.GenericToken[]) +FNDA:0,System.Void sly.lexer.GenericLexer`1::.ctor(sly.lexer.IdentifierType,sly.lexer.fsm.BuildExtension`1,sly.lexer.GenericToken[]) +DA:129,0 +DA:130,0 +FN:119,System.Void sly.lexer.GenericLexer`1::.ctor(sly.lexer.GenericLexer`1/Config,sly.lexer.GenericToken[]) +FNDA:195,System.Void sly.lexer.GenericLexer`1::.ctor(sly.lexer.GenericLexer`1/Config,sly.lexer.GenericToken[]) +DA:120,195 +DA:132,195 +DA:133,195 +DA:134,195 +DA:135,195 +DA:136,195 +DA:137,195 +DA:138,195 +FN:58,sly.lexer.IdentifierType sly.lexer.GenericLexer`1/Config::get_IdType() +FNDA:1020,sly.lexer.IdentifierType sly.lexer.GenericLexer`1/Config::get_IdType() +DA:59,1020 +FN:60,System.Boolean sly.lexer.GenericLexer`1/Config::get_IgnoreEOL() +FNDA:415,System.Boolean sly.lexer.GenericLexer`1/Config::get_IgnoreEOL() +DA:61,415 +FN:62,System.Boolean sly.lexer.GenericLexer`1/Config::get_IgnoreWS() +FNDA:418,System.Boolean sly.lexer.GenericLexer`1/Config::get_IgnoreWS() +DA:63,418 +FN:64,System.Char[] sly.lexer.GenericLexer`1/Config::get_WhiteSpace() +FNDA:420,System.Char[] sly.lexer.GenericLexer`1/Config::get_WhiteSpace() +DA:65,420 +FN:66,System.Boolean sly.lexer.GenericLexer`1/Config::get_KeyWordIgnoreCase() +FNDA:223,System.Boolean sly.lexer.GenericLexer`1/Config::get_KeyWordIgnoreCase() +DA:67,223 +FN:68,System.Boolean sly.lexer.GenericLexer`1/Config::get_IndentationAware() +FNDA:210,System.Boolean sly.lexer.GenericLexer`1/Config::get_IndentationAware() +DA:69,210 +FN:70,System.String sly.lexer.GenericLexer`1/Config::get_Indentation() +FNDA:210,System.String sly.lexer.GenericLexer`1/Config::get_Indentation() +DA:71,210 +FN:72,System.Collections.Generic.IEnumerable`1 sly.lexer.GenericLexer`1/Config::get_IdentifierStartPattern() +FNDA:6,System.Collections.Generic.IEnumerable`1 sly.lexer.GenericLexer`1/Config::get_IdentifierStartPattern() +DA:73,6 +FN:74,System.Collections.Generic.IEnumerable`1 sly.lexer.GenericLexer`1/Config::get_IdentifierRestPattern() +FNDA:6,System.Collections.Generic.IEnumerable`1 sly.lexer.GenericLexer`1/Config::get_IdentifierRestPattern() +DA:75,6 +FN:76,sly.lexer.fsm.BuildExtension`1 sly.lexer.GenericLexer`1/Config::get_ExtensionBuilder() +FNDA:390,sly.lexer.fsm.BuildExtension`1 sly.lexer.GenericLexer`1/Config::get_ExtensionBuilder() +DA:77,390 +FN:78,System.Collections.Generic.IEqualityComparer`1 sly.lexer.GenericLexer`1/Config::get_KeyWordComparer() +FNDA:195,System.Collections.Generic.IEqualityComparer`1 sly.lexer.GenericLexer`1/Config::get_KeyWordComparer() +DA:79,195 +BRDA:79,6,0,193 +BRDA:79,6,1,2 +FN:49,System.Void sly.lexer.GenericLexer`1/Config::.ctor() +FNDA:196,System.Void sly.lexer.GenericLexer`1/Config::.ctor() +DA:50,196 +DA:51,196 +DA:52,196 +DA:53,196 +DA:54,196 +DA:55,196 +DA:57,196 +LF:607 +LH:571 +BRF:188 +BRH:172 +FNF:36 +FNH:34 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\IndentationError.cs +FN:15,System.String sly.lexer.IndentationError::get_ErrorMessage() +FNDA:1,System.String sly.lexer.IndentationError::get_ErrorMessage() +DA:16,1 +FN:6,System.Void sly.lexer.IndentationError::.ctor(System.Int32,System.Int32,System.String) +FNDA:1,System.Void sly.lexer.IndentationError::.ctor(System.Int32,System.Int32,System.String) +DA:7,1 +DA:8,1 +DA:9,1 +DA:10,1 +DA:11,1 +DA:13,1 +LF:7 +LH:7 +BRF:0 +BRH:0 +FNF:2 +FNH:2 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\Lexer.cs +FN:11,System.String sly.lexer.Lexer`1::get_I18n() +FNDA:4,System.String sly.lexer.Lexer`1::get_I18n() +DA:12,4 +FN:16,System.Void sly.lexer.Lexer`1::AddDefinition(sly.lexer.TokenDefinition`1) +FNDA:1114,System.Void sly.lexer.Lexer`1::AddDefinition(sly.lexer.TokenDefinition`1) +DA:17,1114 +DA:18,1114 +DA:19,1114 +FN:22,sly.lexer.LexerResult`1 sly.lexer.Lexer`1::Tokenize(System.String) +FNDA:119,sly.lexer.LexerResult`1 sly.lexer.Lexer`1::Tokenize(System.String) +DA:23,119 +DA:24,119 +DA:26,119 +DA:28,119 +DA:29,119 +DA:30,119 +DA:31,119 +DA:33,981 +DA:34,866 +DA:35,866 +DA:36,866 +DA:37,866 +DA:39,21332 +DA:40,9798 +DA:41,9798 +DA:43,9798 +DA:44,862 +DA:45,862 +DA:46,862 +DA:47,862 +DA:49,8936 +DA:51,866 +DA:52,4 +DA:53,4 +DA:56,862 +DA:58,862 +DA:59,26 +DA:60,26 +DA:61,26 +DA:62,26 +DA:64,862 +DA:65,570 +DA:66,570 +DA:67,570 +DA:68,570 +DA:69,570 +DA:71,862 +DA:72,862 +DA:74,115 +DA:75,115 +DA:76,115 +DA:77,115 +DA:78,115 +DA:79,115 +DA:81,0 +DA:82,0 +DA:83,0 +DA:86,115 +DA:87,115 +DA:88,119 +BRDA:33,306,1,866 +BRDA:39,137,1,9798 +BRDA:43,92,0,2905 +BRDA:43,92,1,6893 +BRDA:43,111,0,862 +BRDA:43,111,1,8936 +BRDA:39,137,0,866 +BRDA:51,163,0,4 +BRDA:51,163,1,862 +BRDA:58,220,0,26 +BRDA:58,220,1,862 +BRDA:64,248,0,570 +BRDA:64,248,1,862 +BRDA:33,306,0,115 +BRDA:75,327,0,115 +BRDA:75,327,1,0 +FN:90,sly.lexer.LexerResult`1 sly.lexer.Lexer`1::Tokenize(System.ReadOnlyMemory`1) +FNDA:0,sly.lexer.LexerResult`1 sly.lexer.Lexer`1::Tokenize(System.ReadOnlyMemory`1) +DA:91,0 +DA:92,0 +DA:93,0 +FN:13,System.Void sly.lexer.Lexer`1::.ctor() +FNDA:110,System.Void sly.lexer.Lexer`1::.ctor() +DA:14,110 +LF:58 +LH:52 +BRF:16 +BRH:15 +FNF:5 +FNH:4 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\LexerAttribute.cs +FN:20,System.Boolean sly.lexer.LexerAttribute::get_IgnoreWS() +FNDA:15,System.Boolean sly.lexer.LexerAttribute::get_IgnoreWS() +DA:21,15 +BRDA:21,14,0,12 +BRDA:21,14,1,3 +FN:21,System.Void sly.lexer.LexerAttribute::set_IgnoreWS(System.Boolean) +FNDA:3,System.Void sly.lexer.LexerAttribute::set_IgnoreWS(System.Boolean) +DA:22,3 +FN:26,System.Boolean sly.lexer.LexerAttribute::get_IgnoreEOL() +FNDA:15,System.Boolean sly.lexer.LexerAttribute::get_IgnoreEOL() +DA:27,15 +BRDA:27,14,0,9 +BRDA:27,14,1,6 +FN:27,System.Void sly.lexer.LexerAttribute::set_IgnoreEOL(System.Boolean) +FNDA:6,System.Void sly.lexer.LexerAttribute::set_IgnoreEOL(System.Boolean) +DA:28,6 +FN:32,System.Char[] sly.lexer.LexerAttribute::get_WhiteSpace() +FNDA:15,System.Char[] sly.lexer.LexerAttribute::get_WhiteSpace() +DA:33,15 +BRDA:33,7,0,14 +BRDA:33,7,1,15 +FN:33,System.Void sly.lexer.LexerAttribute::set_WhiteSpace(System.Char[]) +FNDA:1,System.Void sly.lexer.LexerAttribute::set_WhiteSpace(System.Char[]) +DA:34,1 +FN:38,System.Boolean sly.lexer.LexerAttribute::get_KeyWordIgnoreCase() +FNDA:15,System.Boolean sly.lexer.LexerAttribute::get_KeyWordIgnoreCase() +DA:39,15 +BRDA:39,14,0,13 +BRDA:39,14,1,2 +FN:39,System.Void sly.lexer.LexerAttribute::set_KeyWordIgnoreCase(System.Boolean) +FNDA:2,System.Void sly.lexer.LexerAttribute::set_KeyWordIgnoreCase(System.Boolean) +DA:40,2 +FN:42,System.Boolean sly.lexer.LexerAttribute::get_IndentationAWare() +FNDA:37,System.Boolean sly.lexer.LexerAttribute::get_IndentationAWare() +DA:43,37 +FN:44,System.String sly.lexer.LexerAttribute::get_Indentation() +FNDA:32,System.String sly.lexer.LexerAttribute::get_Indentation() +DA:45,32 +FN:7,System.Void sly.lexer.LexerAttribute::.cctor() +FNDA:1,System.Void sly.lexer.LexerAttribute::.cctor() +DA:8,1 +LF:11 +LH:11 +BRF:8 +BRH:8 +FNF:11 +FNH:11 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\LexerBuilder.cs +FN:20,T[] sly.lexer.EnumHelper::GetAttributesOfType(System.Enum) +FNDA:12784,T[] sly.lexer.EnumHelper::GetAttributesOfType(System.Enum) +DA:21,12784 +DA:22,12784 +DA:23,12784 +DA:24,12784 +DA:26,12784 +DA:27,12784 +FN:32,System.Collections.Generic.Dictionary`2> sly.lexer.LexerBuilder::GetLexemes(sly.buildresult.BuildResult`1>,System.String) +FNDA:306,System.Collections.Generic.Dictionary`2> sly.lexer.LexerBuilder::GetLexemes(sly.buildresult.BuildResult`1>,System.String) +DA:33,306 +DA:34,306 +DA:36,306 +DA:37,3091 +DA:38,6486 +DA:39,2784 +DA:41,2784 +DA:42,2784 +DA:43,1 +DA:45,1 +DA:46,1 +DA:48,1 +DA:49,1 +DA:50,1 +DA:52,1 +DA:53,2784 +DA:55,306 +DA:56,305 +DA:58,6479 +DA:59,2782 +DA:60,2782 +DA:61,2782 +DA:62,2782 +DA:63,2782 +DA:64,2782 +DA:65,2782 +DA:66,2782 +DA:67,20 +DA:68,20 +DA:69,20 +DA:70,20 +DA:72,2762 +DA:73,2762 +DA:74,2762 +DA:75,2782 +DA:76,305 +DA:78,306 +DA:79,306 +BRDA:37,35,0,69 +BRDA:37,35,1,306 +BRDA:38,253,1,2784 +BRDA:42,117,0,1 +BRDA:42,117,1,2784 +BRDA:38,253,0,306 +BRDA:55,288,0,305 +BRDA:58,479,1,2782 +BRDA:65,371,0,51 +BRDA:65,376,0,36 +BRDA:65,381,0,27 +BRDA:65,371,1,2755 +BRDA:65,376,1,2755 +BRDA:65,381,1,2755 +BRDA:65,396,0,20 +BRDA:68,400,1,20 +BRDA:68,400,0,20 +BRDA:65,396,1,2762 +BRDA:58,479,0,305 +BRDA:55,288,1,306 +FN:81,sly.buildresult.BuildResult`1> sly.lexer.LexerBuilder::BuildLexer(sly.lexer.fsm.BuildExtension`1) +FNDA:5,sly.buildresult.BuildResult`1> sly.lexer.LexerBuilder::BuildLexer(sly.lexer.fsm.BuildExtension`1) +DA:82,5 +DA:83,5 +DA:84,5 +FN:88,sly.buildresult.BuildResult`1> sly.lexer.LexerBuilder::BuildLexer(sly.buildresult.BuildResult`1>,sly.lexer.fsm.BuildExtension`1,System.String) +FNDA:306,sly.buildresult.BuildResult`1> sly.lexer.LexerBuilder::BuildLexer(sly.buildresult.BuildResult`1>,sly.lexer.fsm.BuildExtension`1,System.String) +DA:89,306 +DA:90,306 +DA:91,306 +DA:92,305 +DA:93,305 +DA:94,305 +DA:96,306 +DA:97,306 +BRDA:91,20,0,305 +BRDA:91,20,1,306 +FN:101,sly.buildresult.BuildResult`1> sly.lexer.LexerBuilder::Build(System.Collections.Generic.Dictionary`2>,sly.buildresult.BuildResult`1>,sly.lexer.fsm.BuildExtension`1,System.String) +FNDA:305,sly.buildresult.BuildResult`1> sly.lexer.LexerBuilder::Build(System.Collections.Generic.Dictionary`2>,sly.buildresult.BuildResult`1>,sly.lexer.fsm.BuildExtension`1,System.String) +DA:102,305 +DA:103,305 +DA:104,305 +DA:106,305 +DA:107,0 +DA:108,0 +DA:109,0 +DA:110,0 +DA:111,0 +DA:113,305 +DA:114,305 +DA:115,110 +DA:116,390 +DA:117,305 +DA:119,305 +DA:120,305 +BRDA:106,20,0,0 +BRDA:106,20,1,305 +BRDA:114,61,0,110 +BRDA:114,61,1,195 +BRDA:116,80,0,195 +BRDA:116,80,1,305 +FN:122,System.Boolean sly.lexer.LexerBuilder::IsRegexLexer(System.Collections.Generic.Dictionary`2>) +FNDA:305,System.Boolean sly.lexer.LexerBuilder::IsRegexLexer(System.Collections.Generic.Dictionary`2>) +DA:123,305 +DA:124,2063 +DA:125,2077 +DA:126,305 +BRDA:124,13,0,68 +BRDA:124,13,1,305 +BRDA:124,49,0,68 +BRDA:124,49,1,305 +FN:128,System.Boolean sly.lexer.LexerBuilder::IsGenericLexer(System.Collections.Generic.Dictionary`2>) +FNDA:305,System.Boolean sly.lexer.LexerBuilder::IsGenericLexer(System.Collections.Generic.Dictionary`2>) +DA:129,305 +DA:130,1615 +DA:131,1615 +DA:132,305 +BRDA:130,13,0,68 +BRDA:130,13,1,305 +BRDA:130,49,0,68 +BRDA:130,49,1,305 +FN:136,sly.buildresult.BuildResult`1> sly.lexer.LexerBuilder::BuildRegexLexer(System.Collections.Generic.Dictionary`2>,sly.buildresult.BuildResult`1>,System.String) +FNDA:110,sly.buildresult.BuildResult`1> sly.lexer.LexerBuilder::BuildRegexLexer(System.Collections.Generic.Dictionary`2>,sly.buildresult.BuildResult`1>,System.String) +DA:137,110 +DA:138,110 +DA:139,2558 +DA:140,1114 +DA:141,1114 +DA:143,1114 +DA:145,1114 +DA:146,1114 +DA:148,1114 +DA:149,5571 +DA:150,1115 +DA:151,1115 +DA:152,1115 +DA:153,1114 +DA:154,1113 +DA:155,1 +DA:156,1 +DA:157,1 +DA:158,1 +DA:159,1 +DA:160,1114 +DA:161,0 +DA:162,0 +DA:163,0 +DA:164,0 +DA:165,0 +DA:166,1114 +DA:168,110 +DA:169,110 +DA:170,110 +BRDA:139,286,1,1114 +BRDA:145,55,0,1114 +BRDA:149,126,1,1115 +BRDA:149,126,0,1113 +BRDA:145,55,1,0 +BRDA:161,229,0,0 +BRDA:161,229,1,1114 +BRDA:139,286,0,110 +FN:173,System.ValueTuple`2,sly.lexer.GenericToken[]> sly.lexer.LexerBuilder::GetConfigAndGenericTokens(System.Collections.Generic.IDictionary`2>) +FNDA:195,System.ValueTuple`2,sly.lexer.GenericToken[]> sly.lexer.LexerBuilder::GetConfigAndGenericTokens(System.Collections.Generic.IDictionary`2>) +DA:174,195 +DA:175,195 +DA:176,195 +DA:177,195 +DA:178,15 +DA:179,15 +DA:180,15 +DA:181,15 +DA:182,15 +DA:183,15 +DA:184,15 +DA:185,15 +DA:187,195 +DA:188,5557 +DA:189,1662 +DA:190,1662 +DA:191,1662 +DA:192,152 +DA:193,152 +DA:194,152 +DA:195,3 +DA:196,3 +DA:197,3 +DA:198,3 +DA:199,152 +DA:200,1662 +DA:202,195 +DA:203,195 +BRDA:177,29,0,15 +BRDA:177,29,1,195 +BRDA:188,130,0,59 +BRDA:188,130,1,195 +BRDA:188,286,1,1662 +BRDA:191,204,0,152 +BRDA:194,235,0,3 +BRDA:194,235,1,152 +BRDA:191,204,1,1662 +BRDA:188,286,0,195 +FN:229,sly.lexer.fsm.NodeCallback`1 sly.lexer.LexerBuilder::GetCallbackSingle(IN,System.Boolean) +FNDA:15,sly.lexer.fsm.NodeCallback`1 sly.lexer.LexerBuilder::GetCallbackSingle(IN,System.Boolean) +DA:230,15 +DA:231,15 +DA:232,8 +DA:233,8 +DA:234,8 +DA:235,8 +DA:236,8 +DA:237,8 +DA:238,23 +DA:239,15 +DA:240,15 +FN:242,sly.lexer.fsm.NodeCallback`1 sly.lexer.LexerBuilder::GetCallbackMulti(IN,System.Boolean) +FNDA:17,sly.lexer.fsm.NodeCallback`1 sly.lexer.LexerBuilder::GetCallbackMulti(IN,System.Boolean) +DA:243,17 +DA:244,17 +DA:245,13 +DA:246,13 +DA:247,13 +DA:248,13 +DA:249,13 +DA:250,13 +DA:251,30 +DA:252,17 +DA:253,17 +FN:256,sly.buildresult.BuildResult`1> sly.lexer.LexerBuilder::BuildGenericLexer(System.Collections.Generic.Dictionary`2>,sly.lexer.fsm.BuildExtension`1,sly.buildresult.BuildResult`1>,System.String) +FNDA:195,sly.buildresult.BuildResult`1> sly.lexer.LexerBuilder::BuildGenericLexer(System.Collections.Generic.Dictionary`2>,sly.lexer.fsm.BuildExtension`1,sly.buildresult.BuildResult`1>,System.String) +DA:257,195 +DA:258,195 +DA:259,195 +DA:260,195 +DA:261,195 +DA:262,195 +DA:263,3881 +DA:264,1648 +DA:265,1648 +DA:267,1648 +DA:268,8268 +DA:269,1662 +DA:271,1662 +DA:272,1662 +DA:273,268 +DA:274,268 +DA:275,268 +DA:277,1662 +DA:278,161 +DA:279,837 +DA:280,177 +DA:281,177 +DA:282,177 +DA:283,161 +DA:285,1662 +DA:286,1189 +DA:287,5949 +DA:288,1191 +DA:289,1191 +DA:290,1191 +DA:291,1189 +DA:293,1662 +DA:294,35 +DA:295,35 +DA:296,35 +DA:297,35 +DA:299,1662 +DA:300,4 +DA:301,4 +DA:302,4 +DA:303,4 +DA:305,1662 +DA:306,5 +DA:307,5 +DA:308,5 +DA:309,1662 +DA:310,0 +DA:311,0 +DA:312,0 +DA:313,0 +DA:314,1662 +DA:315,1648 +DA:317,195 +DA:319,195 +DA:320,195 +DA:321,180 +DA:322,582 +DA:323,21 +DA:325,21 +DA:329,115 +DA:330,26 +DA:331,26 +DA:333,26 +DA:334,26 +DA:335,15 +DA:336,15 +DA:338,15 +DA:339,15 +DA:340,15 +DA:341,15 +DA:342,15 +DA:343,15 +DA:345,26 +DA:346,26 +DA:347,17 +DA:348,17 +DA:349,17 +DA:351,17 +DA:352,17 +DA:353,17 +DA:354,17 +DA:355,17 +DA:356,17 +DA:357,26 +DA:358,21 +DA:359,180 +DA:361,195 +DA:362,195 +DA:363,195 +BRDA:263,504,1,1648 +BRDA:268,474,1,1662 +BRDA:272,131,0,268 +BRDA:272,131,1,1662 +BRDA:277,162,0,161 +BRDA:279,213,1,177 +BRDA:279,213,0,161 +BRDA:277,162,1,1662 +BRDA:285,227,0,1189 +BRDA:287,285,1,1191 +BRDA:287,285,0,1189 +BRDA:285,227,1,1662 +BRDA:293,299,0,35 +BRDA:293,299,1,1662 +BRDA:299,360,0,4 +BRDA:299,360,1,1662 +BRDA:305,421,0,5 +BRDA:305,421,1,1662 +BRDA:268,474,0,1648 +BRDA:263,504,0,195 +BRDA:320,557,0,180 +BRDA:322,921,1,21 +BRDA:329,891,1,26 +BRDA:334,650,0,15 +BRDA:334,650,1,26 +BRDA:346,771,0,17 +BRDA:346,771,1,26 +BRDA:329,891,0,21 +BRDA:322,921,0,180 +BRDA:320,557,1,195 +FN:365,System.ValueTuple`2 sly.lexer.LexerBuilder::GetDelimiters(sly.lexer.LexemeAttribute,System.String,System.String) +FNDA:39,System.ValueTuple`2 sly.lexer.LexerBuilder::GetDelimiters(sly.lexer.LexemeAttribute,System.String,System.String) +DA:366,39 +DA:367,39 +DA:368,18 +DA:369,18 +DA:370,18 +DA:371,14 +DA:372,14 +DA:373,14 +DA:374,18 +DA:376,39 +DA:377,39 +BRDA:367,9,0,18 +BRDA:370,35,0,14 +BRDA:370,35,1,18 +BRDA:367,9,1,39 +FN:380,sly.buildresult.BuildResult`1> sly.lexer.LexerBuilder::CheckStringAndCharTokens(System.Collections.Generic.Dictionary`2>,sly.buildresult.BuildResult`1>,System.String) +FNDA:195,sly.buildresult.BuildResult`1> sly.lexer.LexerBuilder::CheckStringAndCharTokens(System.Collections.Generic.Dictionary`2>,sly.buildresult.BuildResult`1>,System.String) +DA:381,195 +DA:382,1843 +DA:384,195 +DA:385,1662 +DA:386,39 +DA:387,213 +DA:389,213 +DA:390,16 +DA:391,197 +DA:393,589 +DA:394,2 +DA:395,2 +DA:396,2 +DA:397,2 +DA:398,2 +DA:400,195 +DA:401,195 +BRDA:382,13,0,59 +BRDA:382,13,1,195 +BRDA:384,51,0,59 +BRDA:384,51,1,195 +BRDA:384,87,0,59 +BRDA:384,87,1,195 +BRDA:384,123,0,59 +BRDA:384,123,1,195 +BRDA:389,161,0,59 +BRDA:389,161,1,195 +BRDA:389,197,0,59 +BRDA:389,197,1,195 +BRDA:389,233,0,59 +BRDA:389,233,1,195 +BRDA:393,351,1,2 +BRDA:393,351,0,195 +BRDA:385,6,0,1627 +BRDA:385,6,1,35 +FN:404,System.Collections.Generic.Dictionary`2> sly.lexer.LexerBuilder::GetCommentsAttribute(sly.buildresult.BuildResult`1>,System.String) +FNDA:195,System.Collections.Generic.Dictionary`2> sly.lexer.LexerBuilder::GetCommentsAttribute(sly.buildresult.BuildResult`1>,System.String) +DA:405,195 +DA:406,195 +DA:408,195 +DA:409,3897 +DA:410,1656 +DA:411,1656 +DA:412,1656 +DA:413,1687 +DA:414,1656 +DA:416,281 +DA:417,281 +DA:418,281 +DA:420,195 +DA:421,2 +DA:422,2 +DA:423,2 +DA:424,2 +DA:425,2 +DA:427,195 +DA:428,4 +DA:429,4 +DA:430,4 +DA:431,4 +DA:432,4 +DA:434,195 +DA:435,4 +DA:436,4 +DA:437,4 +DA:438,4 +DA:440,195 +DA:441,6 +DA:442,6 +DA:443,6 +DA:444,6 +DA:445,6 +DA:447,195 +DA:448,195 +BRDA:409,111,1,1656 +BRDA:413,69,0,1656 +BRDA:413,69,1,0 +BRDA:413,85,0,31 +BRDA:413,85,1,1656 +BRDA:409,111,0,195 +BRDA:416,149,0,59 +BRDA:416,149,1,195 +BRDA:417,197,0,59 +BRDA:417,197,1,195 +BRDA:418,245,0,59 +BRDA:418,245,1,195 +BRDA:420,290,0,2 +BRDA:420,290,1,195 +BRDA:427,333,0,4 +BRDA:427,333,1,195 +BRDA:434,377,0,4 +BRDA:434,377,1,195 +BRDA:440,415,0,13 +BRDA:440,419,0,9 +BRDA:440,419,1,4 +BRDA:440,415,1,182 +BRDA:440,436,0,6 +BRDA:440,436,1,195 +BRDA:416,1,0,0 +BRDA:416,1,1,31 +BRDA:416,13,0,17 +BRDA:416,13,1,31 +BRDA:417,1,0,0 +BRDA:417,1,1,31 +BRDA:417,13,0,17 +BRDA:417,13,1,31 +BRDA:418,1,0,0 +BRDA:418,1,1,31 +BRDA:418,13,0,17 +BRDA:418,13,1,31 +FN:451,System.Void sly.lexer.LexerBuilder::AddExtensions(System.Collections.Generic.Dictionary`2,sly.lexer.fsm.BuildExtension`1,sly.lexer.GenericLexer`1) +FNDA:195,System.Void sly.lexer.LexerBuilder::AddExtensions(System.Collections.Generic.Dictionary`2,sly.lexer.fsm.BuildExtension`1,sly.lexer.GenericLexer`1) +DA:452,195 +DA:453,195 +DA:454,5 +DA:455,25 +DA:456,5 +DA:457,5 +DA:458,5 +DA:459,5 +DA:460,195 +BRDA:453,7,0,5 +BRDA:455,59,1,5 +BRDA:455,59,0,5 +BRDA:453,7,1,195 +FN:205,System.Boolean sly.lexer.LexerBuilder/d__8::MoveNext() +FNDA:6,System.Boolean sly.lexer.LexerBuilder/d__8::MoveNext() +DA:206,6 +DA:207,6 +DA:208,47 +DA:209,41 +DA:210,41 +DA:211,16 +DA:212,16 +DA:213,16 +DA:214,16 +DA:215,16 +DA:217,0 +DA:218,0 +DA:219,0 +DA:220,16 +DA:221,16 +DA:223,25 +DA:224,25 +DA:225,25 +DA:226,41 +DA:227,6 +BRDA:208,416,1,41 +BRDA:210,90,0,37 +BRDA:210,90,1,4 +BRDA:210,120,0,16 +BRDA:212,166,0,16 +BRDA:212,166,1,0 +BRDA:210,120,1,25 +BRDA:208,416,0,6 +LF:342 +LH:325 +BRF:154 +BRH:146 +FNF:17 +FNH:17 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\LexerPosition.cs +FN:41,System.Boolean sly.lexer.LexerPosition::get_IsStartOfLine() +FNDA:584,System.Boolean sly.lexer.LexerPosition::get_IsStartOfLine() +DA:42,584 +FN:44,System.Collections.Immutable.ImmutableStack`1 sly.lexer.LexerPosition::get_Indentations() +FNDA:20531,System.Collections.Immutable.ImmutableStack`1 sly.lexer.LexerPosition::get_Indentations() +DA:45,20531 +FN:45,System.Int32 sly.lexer.LexerPosition::get_CurrentIndentation() +FNDA:8227,System.Int32 sly.lexer.LexerPosition::get_CurrentIndentation() +DA:46,8227 +FN:47,System.Int32 sly.lexer.LexerPosition::get_Column() +FNDA:63991,System.Int32 sly.lexer.LexerPosition::get_Column() +DA:48,63991 +FN:48,System.Int32 sly.lexer.LexerPosition::get_Index() +FNDA:186103,System.Int32 sly.lexer.LexerPosition::get_Index() +DA:49,186103 +FN:49,System.Int32 sly.lexer.LexerPosition::get_Line() +FNDA:17550,System.Int32 sly.lexer.LexerPosition::get_Line() +DA:50,17550 +FN:52,System.String sly.lexer.LexerPosition::ToString() +FNDA:4,System.String sly.lexer.LexerPosition::ToString() +DA:53,4 +DA:54,4 +DA:55,4 +FN:57,System.Int32 sly.lexer.LexerPosition::CompareTo(System.Object) +FNDA:0,System.Int32 sly.lexer.LexerPosition::CompareTo(System.Object) +DA:58,0 +DA:59,0 +DA:60,0 +DA:61,0 +DA:62,0 +DA:63,0 +DA:64,0 +DA:65,0 +DA:67,0 +DA:68,0 +DA:69,0 +DA:71,0 +DA:72,0 +DA:74,0 +DA:75,0 +BRDA:59,7,0,0 +BRDA:61,23,0,0 +BRDA:63,42,0,0 +BRDA:63,42,1,0 +BRDA:67,68,0,0 +BRDA:67,68,1,0 +BRDA:61,23,1,0 +BRDA:59,7,1,0 +FN:77,sly.lexer.LexerPosition sly.lexer.LexerPosition::Clone() +FNDA:4105,sly.lexer.LexerPosition sly.lexer.LexerPosition::Clone() +DA:78,4105 +DA:79,4105 +DA:80,4105 +FN:12,System.Void sly.lexer.LexerPosition::.ctor() +FNDA:1568,System.Void sly.lexer.LexerPosition::.ctor() +DA:13,1568 +DA:14,1568 +DA:15,1568 +FN:16,System.Void sly.lexer.LexerPosition::.ctor(System.Int32,System.Int32,System.Int32) +FNDA:12097,System.Void sly.lexer.LexerPosition::.ctor(System.Int32,System.Int32,System.Int32) +DA:17,12097 +DA:18,12097 +DA:19,12097 +DA:20,12097 +DA:21,12097 +DA:22,12097 +DA:23,12097 +FN:24,System.Void sly.lexer.LexerPosition::.ctor(System.Int32,System.Int32,System.Int32,System.Int32) +FNDA:0,System.Void sly.lexer.LexerPosition::.ctor(System.Int32,System.Int32,System.Int32,System.Int32) +DA:25,0 +DA:26,0 +DA:27,0 +DA:28,0 +DA:30,0 +FN:31,System.Void sly.lexer.LexerPosition::.ctor(System.Int32,System.Int32,System.Int32,System.Collections.Immutable.ImmutableStack`1) +FNDA:4105,System.Void sly.lexer.LexerPosition::.ctor(System.Int32,System.Int32,System.Int32,System.Collections.Immutable.ImmutableStack`1) +DA:32,4105 +DA:33,4105 +DA:34,4105 +DA:35,4105 +FN:36,System.Void sly.lexer.LexerPosition::.ctor(System.Int32,System.Int32,System.Int32,System.Collections.Immutable.ImmutableStack`1,System.Int32) +FNDA:4105,System.Void sly.lexer.LexerPosition::.ctor(System.Int32,System.Int32,System.Int32,System.Collections.Immutable.ImmutableStack`1,System.Int32) +DA:37,4105 +DA:38,4105 +DA:39,4105 +DA:40,4105 +LF:50 +LH:30 +BRF:8 +BRH:0 +FNF:14 +FNH:12 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\LexerResult.cs +FN:5,System.Boolean sly.lexer.LexerResult`1::get_IsError() +FNDA:1803,System.Boolean sly.lexer.LexerResult`1::get_IsError() +DA:6,1803 +FN:7,System.Boolean sly.lexer.LexerResult`1::get_IsOk() +FNDA:55,System.Boolean sly.lexer.LexerResult`1::get_IsOk() +DA:8,55 +FN:9,sly.lexer.LexicalError sly.lexer.LexerResult`1::get_Error() +FNDA:16,sly.lexer.LexicalError sly.lexer.LexerResult`1::get_Error() +DA:10,16 +FN:11,System.Collections.Generic.List`1> sly.lexer.LexerResult`1::get_Tokens() +FNDA:1824,System.Collections.Generic.List`1> sly.lexer.LexerResult`1::get_Tokens() +DA:12,1824 +FN:13,System.Void sly.lexer.LexerResult`1::.ctor(System.Collections.Generic.List`1>) +FNDA:889,System.Void sly.lexer.LexerResult`1::.ctor(System.Collections.Generic.List`1>) +DA:14,889 +DA:15,889 +DA:16,889 +DA:17,889 +DA:18,889 +FN:19,System.Void sly.lexer.LexerResult`1::.ctor(sly.lexer.LexicalError) +FNDA:14,System.Void sly.lexer.LexerResult`1::.ctor(sly.lexer.LexicalError) +DA:20,14 +DA:21,14 +DA:22,14 +DA:23,14 +DA:24,14 +LF:14 +LH:14 +BRF:0 +BRH:0 +FNF:6 +FNH:6 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\LexicalError.cs +FN:18,System.Char sly.lexer.LexicalError::get_UnexpectedChar() +FNDA:23,System.Char sly.lexer.LexicalError::get_UnexpectedChar() +DA:19,23 +FN:20,System.String sly.lexer.LexicalError::get_ErrorMessage() +FNDA:0,System.String sly.lexer.LexicalError::get_ErrorMessage() +DA:21,0 +FN:23,System.String sly.lexer.LexicalError::ToString() +FNDA:0,System.String sly.lexer.LexicalError::ToString() +DA:24,0 +DA:25,0 +DA:26,0 +FN:7,System.Void sly.lexer.LexicalError::.ctor(System.Int32,System.Int32,System.Char,System.String) +FNDA:14,System.Void sly.lexer.LexicalError::.ctor(System.Int32,System.Int32,System.Char,System.String) +DA:8,14 +DA:9,14 +DA:10,14 +DA:11,14 +DA:12,14 +DA:13,14 +DA:14,14 +DA:15,14 +LF:13 +LH:9 +BRF:0 +BRH:0 +FNF:4 +FNH:2 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\Token.cs +FN:46,System.ReadOnlyMemory`1 sly.lexer.Token`1::get_SpanValue() +FNDA:32365,System.ReadOnlyMemory`1 sly.lexer.Token`1::get_SpanValue() +DA:47,32365 +FN:48,sly.lexer.LexerPosition sly.lexer.Token`1::get_Position() +FNDA:41594,sly.lexer.LexerPosition sly.lexer.Token`1::get_Position() +DA:49,41594 +FN:50,System.Int32 sly.lexer.Token`1::get_PositionInTokenFlow() +FNDA:5253,System.Int32 sly.lexer.Token`1::get_PositionInTokenFlow() +DA:51,5253 +FN:51,T sly.lexer.Token`1::get_TokenID() +FNDA:167878,T sly.lexer.Token`1::get_TokenID() +DA:52,167878 +FN:52,System.Boolean sly.lexer.Token`1::get_IsComment() +FNDA:21069,System.Boolean sly.lexer.Token`1::get_IsComment() +DA:53,21069 +FN:54,System.Boolean sly.lexer.Token`1::get_Discarded() +FNDA:73610,System.Boolean sly.lexer.Token`1::get_Discarded() +DA:55,73610 +FN:56,System.Boolean sly.lexer.Token`1::get_IsEOS() +FNDA:138032,System.Boolean sly.lexer.Token`1::get_IsEOS() +DA:57,138032 +FN:58,System.Boolean sly.lexer.Token`1::get_IsIndent() +FNDA:4124,System.Boolean sly.lexer.Token`1::get_IsIndent() +DA:59,4124 +FN:60,System.Boolean sly.lexer.Token`1::get_IsUnIndent() +FNDA:4072,System.Boolean sly.lexer.Token`1::get_IsUnIndent() +DA:61,4072 +FN:62,System.Int32 sly.lexer.Token`1::get_IndentationLevel() +FNDA:3979,System.Int32 sly.lexer.Token`1::get_IndentationLevel() +DA:63,3979 +FN:64,sly.lexer.CommentType sly.lexer.Token`1::get_CommentType() +FNDA:46257,sly.lexer.CommentType sly.lexer.Token`1::get_CommentType() +DA:65,46257 +FN:66,System.Boolean sly.lexer.Token`1::get_IsEmpty() +FNDA:7967,System.Boolean sly.lexer.Token`1::get_IsEmpty() +DA:67,7967 +FN:68,System.Boolean sly.lexer.Token`1::get_IsMultiLineComment() +FNDA:13,System.Boolean sly.lexer.Token`1::get_IsMultiLineComment() +DA:69,13 +FN:70,System.Boolean sly.lexer.Token`1::get_IsSingleLineComment() +FNDA:21,System.Boolean sly.lexer.Token`1::get_IsSingleLineComment() +DA:71,21 +FN:72,System.String sly.lexer.Token`1::get_Value() +FNDA:7622,System.String sly.lexer.Token`1::get_Value() +DA:73,7622 +FN:76,T sly.lexer.Token`1::get_DefaultToken() +FNDA:0,T sly.lexer.Token`1::get_DefaultToken() +DA:77,0 +FN:77,System.Void sly.lexer.Token`1::set_DefaultToken(T) +FNDA:0,System.Void sly.lexer.Token`1::set_DefaultToken(T) +DA:78,0 +FN:84,System.String sly.lexer.Token`1::get_StringWithoutQuotes() +FNDA:135,System.String sly.lexer.Token`1::get_StringWithoutQuotes() +DA:85,135 +DA:86,135 +DA:87,135 +DA:88,90 +DA:89,132 +DA:90,132 +DA:91,90 +DA:93,135 +DA:94,135 +BRDA:87,19,0,90 +BRDA:89,41,0,42 +BRDA:89,41,1,90 +BRDA:90,70,0,42 +BRDA:90,70,1,90 +BRDA:87,19,1,135 +FN:98,System.Int32 sly.lexer.Token`1::get_IntValue() +FNDA:124,System.Int32 sly.lexer.Token`1::get_IntValue() +DA:99,124 +FN:103,System.Double sly.lexer.Token`1::get_DoubleValue() +FNDA:56,System.Double sly.lexer.Token`1::get_DoubleValue() +DA:104,56 +DA:106,56 +DA:107,56 +DA:108,56 +DA:109,56 +DA:110,56 +DA:111,56 +DA:112,56 +DA:113,56 +DA:114,0 +DA:115,0 +DA:116,0 +DA:118,56 +DA:119,56 +BRDA:106,24,0,2 +BRDA:106,54,0,0 +BRDA:106,24,1,56 +BRDA:106,54,1,56 +BRDA:106,87,0,0 +BRDA:106,87,1,56 +FN:119,System.Void sly.lexer.Token`1::set_DoubleValue(System.Double) +FNDA:0,System.Void sly.lexer.Token`1::set_DoubleValue(System.Double) +DA:120,0 +FN:124,System.Char sly.lexer.Token`1::get_CharValue() +FNDA:10,System.Char sly.lexer.Token`1::get_CharValue() +DA:125,10 +DA:126,10 +DA:127,10 +DA:128,10 +DA:129,11 +DA:130,1 +DA:131,1 +DA:132,11 +DA:133,1 +DA:134,1 +DA:135,10 +DA:136,10 +DA:137,10 +BRDA:127,19,0,10 +BRDA:129,41,0,1 +BRDA:129,41,1,10 +BRDA:132,72,0,1 +BRDA:132,72,1,10 +BRDA:127,19,1,10 +FN:140,System.Boolean sly.lexer.Token`1::get_End() +FNDA:4944,System.Boolean sly.lexer.Token`1::get_End() +DA:141,4944 +FN:141,T sly.lexer.Token`1::get_DefTok() +FNDA:0,T sly.lexer.Token`1::get_DefTok() +DA:142,0 +FN:142,System.Boolean sly.lexer.Token`1::get_IsLineEnding() +FNDA:8432,System.Boolean sly.lexer.Token`1::get_IsLineEnding() +DA:143,8432 +FN:145,sly.lexer.Token`1 sly.lexer.Token`1::Empty() +FNDA:3,sly.lexer.Token`1 sly.lexer.Token`1::Empty() +DA:146,3 +DA:147,3 +DA:148,3 +DA:149,3 +DA:150,3 +FN:22,System.Void sly.lexer.Token`1::.ctor(T,System.String,sly.lexer.LexerPosition,System.Boolean,sly.lexer.CommentType) +FNDA:570,System.Void sly.lexer.Token`1::.ctor(T,System.String,sly.lexer.LexerPosition,System.Boolean,sly.lexer.CommentType) +DA:23,570 +DA:24,570 +DA:26,570 +FN:15,System.Void sly.lexer.Token`1::.ctor(T,System.ReadOnlyMemory`1,sly.lexer.LexerPosition,System.Boolean,sly.lexer.CommentType) +FNDA:21594,System.Void sly.lexer.Token`1::.ctor(T,System.ReadOnlyMemory`1,sly.lexer.LexerPosition,System.Boolean,sly.lexer.CommentType) +DA:16,21594 +DA:18,21594 +DA:28,16650 +DA:29,16650 +DA:30,16650 +DA:31,16650 +DA:32,16650 +DA:33,16650 +DA:34,16650 +DA:35,16650 +DA:36,16650 +FN:38,System.Void sly.lexer.Token`1::.ctor() +FNDA:4944,System.Void sly.lexer.Token`1::.ctor() +DA:39,4944 +DA:40,4944 +DA:41,4944 +DA:42,4944 +DA:43,4944 +DA:44,4944 +LF:83 +LH:76 +BRF:18 +BRH:16 +FNF:29 +FNH:25 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\TokenCallbackAttribute.cs +FN:6,System.Int32 sly.lexer.TokenCallbackAttribute::get_EnumValue() +FNDA:3,System.Int32 sly.lexer.TokenCallbackAttribute::get_EnumValue() +DA:7,3 +FN:8,System.Void sly.lexer.TokenCallbackAttribute::.ctor(System.Int32) +FNDA:2,System.Void sly.lexer.TokenCallbackAttribute::.ctor(System.Int32) +DA:9,2 +DA:10,2 +DA:11,2 +DA:12,2 +LF:5 +LH:5 +BRF:0 +BRH:0 +FNF:2 +FNH:2 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\TokenDefinition.cs +FN:30,System.Boolean sly.lexer.TokenDefinition`1::get_IsIgnored() +FNDA:862,System.Boolean sly.lexer.TokenDefinition`1::get_IsIgnored() +DA:31,862 +FN:32,System.Boolean sly.lexer.TokenDefinition`1::get_IsEndOfLine() +FNDA:862,System.Boolean sly.lexer.TokenDefinition`1::get_IsEndOfLine() +DA:33,862 +FN:34,System.Text.RegularExpressions.Regex sly.lexer.TokenDefinition`1::get_Regex() +FNDA:9798,System.Text.RegularExpressions.Regex sly.lexer.TokenDefinition`1::get_Regex() +DA:35,9798 +FN:35,T sly.lexer.TokenDefinition`1::get_TokenID() +FNDA:570,T sly.lexer.TokenDefinition`1::get_TokenID() +DA:36,570 +FN:22,System.Void sly.lexer.TokenDefinition`1::.ctor(T,System.String,System.Boolean,System.Boolean) +FNDA:1115,System.Void sly.lexer.TokenDefinition`1::.ctor(T,System.String,System.Boolean,System.Boolean) +DA:23,1115 +DA:24,1115 +DA:25,1115 +DA:26,1115 +DA:27,1114 +DA:28,1114 +DA:29,1114 +LF:11 +LH:11 +BRF:0 +BRH:0 +FNF:5 +FNH:5 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\fsm\EOLManager.cs +FN:8,System.ReadOnlyMemory`1 sly.lexer.fsm.EOLManager::GetToEndOfLine(System.ReadOnlyMemory`1,System.Int32) +FNDA:8,System.ReadOnlyMemory`1 sly.lexer.fsm.EOLManager::GetToEndOfLine(System.ReadOnlyMemory`1,System.Int32) +DA:9,8 +DA:10,8 +DA:11,8 +DA:12,8 +DA:13,8 +DA:14,161 +DA:15,153 +DA:16,153 +DA:17,153 +DA:18,153 +DA:20,8 +DA:21,8 +BRDA:14,66,1,153 +BRDA:14,53,0,161 +BRDA:14,53,1,0 +BRDA:14,66,0,8 +BRDA:20,75,0,0 +BRDA:20,75,1,8 +FN:23,sly.lexer.EOLType sly.lexer.fsm.EOLManager::IsEndOfLine(System.ReadOnlyMemory`1,System.Int32) +FNDA:4398,sly.lexer.EOLType sly.lexer.fsm.EOLManager::IsEndOfLine(System.ReadOnlyMemory`1,System.Int32) +DA:24,4398 +DA:25,4398 +DA:26,4398 +DA:27,4398 +DA:28,6 +DA:29,6 +DA:30,6 +DA:31,4392 +DA:32,105 +DA:33,105 +DA:34,102 +DA:36,3 +DA:37,105 +DA:39,4398 +DA:40,4398 +BRDA:27,18,0,6 +BRDA:27,18,1,4392 +BRDA:31,33,0,105 +BRDA:33,53,0,102 +BRDA:33,53,1,3 +BRDA:31,33,1,4398 +FN:42,System.Collections.Generic.List`1 sly.lexer.fsm.EOLManager::GetLinesLength(System.ReadOnlyMemory`1) +FNDA:13,System.Collections.Generic.List`1 sly.lexer.fsm.EOLManager::GetLinesLength(System.ReadOnlyMemory`1) +DA:43,13 +DA:44,13 +DA:45,13 +DA:46,13 +DA:47,13 +DA:48,294 +DA:49,281 +DA:50,281 +DA:51,281 +DA:52,9 +DA:53,15 +DA:54,9 +DA:55,9 +DA:56,9 +DA:57,9 +DA:58,9 +DA:60,281 +DA:61,281 +DA:63,13 +DA:64,13 +DA:65,13 +BRDA:48,130,1,281 +BRDA:51,41,0,9 +BRDA:53,53,0,6 +BRDA:53,53,1,9 +BRDA:51,41,1,281 +BRDA:48,130,0,13 +LF:48 +LH:48 +BRF:18 +BRH:16 +FNF:3 +FNH:3 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\fsm\FSMLexer.cs +FN:11,T sly.lexer.fsm.MemoryExtensions::At(System.ReadOnlyMemory`1,System.Int32) +FNDA:11290,T sly.lexer.fsm.MemoryExtensions::At(System.ReadOnlyMemory`1,System.Int32) +DA:12,11290 +DA:13,11290 +DA:14,11290 +FN:16,T sly.lexer.fsm.MemoryExtensions::At(System.ReadOnlyMemory`1,sly.lexer.LexerPosition) +FNDA:19954,T sly.lexer.fsm.MemoryExtensions::At(System.ReadOnlyMemory`1,sly.lexer.LexerPosition) +DA:17,19954 +DA:18,19954 +DA:19,19954 +FN:42,System.Boolean sly.lexer.fsm.FSMLexer`1::get_IgnoreWhiteSpace() +FNDA:6729,System.Boolean sly.lexer.fsm.FSMLexer`1::get_IgnoreWhiteSpace() +DA:43,6729 +FN:44,System.Collections.Generic.List`1 sly.lexer.fsm.FSMLexer`1::get_WhiteSpaces() +FNDA:6920,System.Collections.Generic.List`1 sly.lexer.fsm.FSMLexer`1::get_WhiteSpaces() +DA:45,6920 +FN:46,System.Boolean sly.lexer.fsm.FSMLexer`1::get_IgnoreEOL() +FNDA:8398,System.Boolean sly.lexer.fsm.FSMLexer`1::get_IgnoreEOL() +DA:47,8398 +FN:48,System.Boolean sly.lexer.fsm.FSMLexer`1::get_AggregateEOL() +FNDA:195,System.Boolean sly.lexer.fsm.FSMLexer`1::get_AggregateEOL() +DA:49,195 +FN:50,System.Boolean sly.lexer.fsm.FSMLexer`1::get_IndentationAware() +FNDA:9831,System.Boolean sly.lexer.fsm.FSMLexer`1::get_IndentationAware() +DA:51,9831 +FN:52,System.String sly.lexer.fsm.FSMLexer`1::get_Indentation() +FNDA:195,System.String sly.lexer.fsm.FSMLexer`1::get_Indentation() +DA:53,195 +FN:55,System.Collections.Generic.Dictionary`2> sly.lexer.fsm.FSMLexer`1::get_Callbacks() +FNDA:9625,System.Collections.Generic.Dictionary`2> sly.lexer.fsm.FSMLexer`1::get_Callbacks() +DA:56,9625 +FN:71,System.Boolean sly.lexer.fsm.FSMLexer`1::HasState(System.Int32) +FNDA:9855,System.Boolean sly.lexer.fsm.FSMLexer`1::HasState(System.Int32) +DA:72,9855 +DA:73,9855 +DA:74,9855 +FN:76,sly.lexer.fsm.FSMNode`1 sly.lexer.fsm.FSMLexer`1::GetNode(System.Int32) +FNDA:2633,sly.lexer.fsm.FSMNode`1 sly.lexer.fsm.FSMLexer`1::GetNode(System.Int32) +DA:77,2633 +DA:78,2633 +DA:79,2633 +DA:80,2633 +FN:81,System.Int32 sly.lexer.fsm.FSMLexer`1::get_NewNodeId() +FNDA:1850,System.Int32 sly.lexer.fsm.FSMLexer`1::get_NewNodeId() +DA:82,1850 +FN:84,System.Boolean sly.lexer.fsm.FSMLexer`1::HasCallback(System.Int32) +FNDA:4120,System.Boolean sly.lexer.fsm.FSMLexer`1::HasCallback(System.Int32) +DA:85,4120 +DA:86,4120 +DA:87,4120 +FN:89,System.Void sly.lexer.fsm.FSMLexer`1::SetCallback(System.Int32,sly.lexer.fsm.NodeCallback`1) +FNDA:1562,System.Void sly.lexer.fsm.FSMLexer`1::SetCallback(System.Int32,sly.lexer.fsm.NodeCallback`1) +DA:90,1562 +DA:91,1562 +DA:92,1562 +FN:98,sly.lexer.fsm.FSMTransition sly.lexer.fsm.FSMLexer`1::GetTransition(System.Int32,System.Char) +FNDA:1477,sly.lexer.fsm.FSMTransition sly.lexer.fsm.FSMLexer`1::GetTransition(System.Int32,System.Char) +DA:99,1477 +DA:100,1477 +DA:101,1477 +DA:102,1477 +DA:103,1230 +DA:104,1230 +DA:105,9851 +DA:106,1230 +DA:108,1477 +DA:109,1477 +BRDA:101,25,0,1477 +BRDA:102,41,0,1230 +BRDA:101,25,1,1477 +BRDA:102,41,1,1477 +FN:112,System.Void sly.lexer.fsm.FSMLexer`1::AddTransition(sly.lexer.fsm.FSMTransition) +FNDA:3034,System.Void sly.lexer.fsm.FSMLexer`1::AddTransition(sly.lexer.fsm.FSMTransition) +DA:113,3034 +DA:114,3034 +DA:115,5173 +DA:116,3034 +DA:117,3034 +DA:118,3034 +BRDA:115,26,0,2139 +BRDA:115,26,1,3034 +FN:121,sly.lexer.fsm.FSMNode`1 sly.lexer.fsm.FSMLexer`1::AddNode(N) +FNDA:195,sly.lexer.fsm.FSMNode`1 sly.lexer.fsm.FSMLexer`1::AddNode(N) +DA:122,195 +DA:123,195 +DA:124,195 +DA:125,195 +DA:126,195 +DA:127,195 +FN:129,sly.lexer.fsm.FSMNode`1 sly.lexer.fsm.FSMLexer`1::AddNode() +FNDA:1850,sly.lexer.fsm.FSMNode`1 sly.lexer.fsm.FSMLexer`1::AddNode() +DA:130,1850 +DA:131,1850 +DA:132,1850 +DA:133,1850 +DA:134,1850 +DA:135,1850 +FN:142,sly.lexer.fsm.FSMMatch`1 sly.lexer.fsm.FSMLexer`1::Run(System.String,sly.lexer.LexerPosition) +FNDA:0,sly.lexer.fsm.FSMMatch`1 sly.lexer.fsm.FSMLexer`1::Run(System.String,sly.lexer.LexerPosition) +DA:143,0 +DA:144,0 +DA:145,0 +FN:148,System.Int32 sly.lexer.fsm.FSMLexer`1::ComputeIndentationSize(System.ReadOnlyMemory`1,System.Int32) +FNDA:0,System.Int32 sly.lexer.fsm.FSMLexer`1::ComputeIndentationSize(System.ReadOnlyMemory`1,System.Int32) +DA:149,0 +DA:150,0 +DA:151,0 +DA:152,0 +DA:153,0 +DA:155,0 +DA:156,0 +DA:157,0 +DA:158,0 +DA:159,0 +DA:160,0 +DA:161,0 +DA:162,0 +DA:163,0 +BRDA:151,27,0,0 +BRDA:151,27,1,0 +BRDA:156,143,1,0 +BRDA:156,143,0,0 +FN:165,System.Collections.Generic.List`1 sly.lexer.fsm.FSMLexer`1::GetIndentations(System.ReadOnlyMemory`1,System.Int32) +FNDA:149,System.Collections.Generic.List`1 sly.lexer.fsm.FSMLexer`1::GetIndentations(System.ReadOnlyMemory`1,System.Int32) +DA:166,149 +DA:167,149 +DA:168,149 +DA:169,149 +DA:170,22 +DA:171,22 +DA:174,127 +DA:175,272 +DA:176,145 +DA:177,145 +DA:178,145 +DA:179,145 +DA:180,145 +DA:182,127 +DA:183,149 +BRDA:169,26,0,22 +BRDA:169,26,1,127 +BRDA:175,104,1,145 +BRDA:175,82,0,272 +BRDA:175,87,0,127 +BRDA:175,87,1,145 +BRDA:175,82,1,0 +BRDA:175,104,0,127 +FN:187,sly.lexer.fsm.FSMMatch`1 sly.lexer.fsm.FSMLexer`1::Run(System.ReadOnlyMemory`1,sly.lexer.LexerPosition) +FNDA:4763,sly.lexer.fsm.FSMMatch`1 sly.lexer.fsm.FSMLexer`1::Run(System.ReadOnlyMemory`1,sly.lexer.LexerPosition) +DA:188,4763 +DA:190,4763 +DA:191,296 +DA:192,296 +DA:193,296 +DA:194,8 +DA:195,8 +DA:197,288 +DA:206,4755 +DA:208,4755 +DA:209,288 +DA:210,288 +DA:211,288 +DA:212,29 +DA:213,29 +DA:215,259 +DA:218,4726 +DA:219,774 +DA:220,774 +DA:224,3952 +DA:226,3952 +DA:227,3952 +DA:228,20604 +DA:229,19954 +DA:230,19954 +DA:231,19954 +DA:232,19954 +DA:233,19954 +DA:234,3302 +DA:236,3302 +DA:239,16652 +DA:240,16070 +DA:242,16070 +DA:243,16070 +DA:245,16652 +DA:246,16652 +DA:247,16652 +DA:249,3952 +DA:250,3943 +DA:252,3943 +DA:253,3943 +DA:254,3943 +DA:256,3943 +DA:257,3943 +DA:258,3943 +DA:259,3943 +DA:261,3943 +DA:264,9 +DA:265,1 +DA:267,1 +DA:268,1 +DA:269,1 +DA:271,9 +DA:272,9 +DA:273,9 +DA:274,4763 +BRDA:190,11,0,296 +BRDA:193,33,0,8 +BRDA:193,33,1,288 +BRDA:190,11,1,4755 +BRDA:208,65,0,288 +BRDA:211,87,0,29 +BRDA:211,87,1,259 +BRDA:208,65,1,4726 +BRDA:218,122,0,774 +BRDA:218,122,1,3952 +BRDA:228,331,1,19954 +BRDA:233,225,0,3302 +BRDA:233,225,1,16652 +BRDA:239,240,0,16070 +BRDA:239,240,1,16652 +BRDA:228,331,0,3952 +BRDA:249,344,0,3943 +BRDA:256,433,0,3943 +BRDA:256,433,1,3943 +BRDA:249,344,1,9 +BRDA:264,488,0,1 +BRDA:264,488,1,9 +FN:276,sly.lexer.fsm.FSMMatch`1 sly.lexer.fsm.FSMLexer`1::ConsumeIndents(System.ReadOnlyMemory`1,sly.lexer.LexerPosition) +FNDA:584,sly.lexer.fsm.FSMMatch`1 sly.lexer.fsm.FSMLexer`1::ConsumeIndents(System.ReadOnlyMemory`1,sly.lexer.LexerPosition) +DA:277,584 +DA:279,584 +DA:280,149 +DA:281,149 +DA:283,149 +DA:285,149 +DA:287,149 +DA:288,149 +DA:289,38 +DA:290,38 +DA:291,38 +DA:292,57 +DA:293,21 +DA:294,21 +DA:295,21 +DA:296,21 +DA:297,21 +DA:298,1 +DA:300,1 +DA:301,1 +DA:302,1 +DA:303,1 +DA:304,1 +DA:307,20 +DA:308,92 +DA:309,72 +DA:310,72 +DA:311,72 +DA:312,72 +DA:313,0 +DA:314,0 +DA:315,0 +DA:316,0 +DA:317,0 +DA:318,0 +DA:321,72 +DA:323,72 +DA:324,72 +DA:325,20 +DA:327,20 +DA:328,1 +DA:329,1 +DA:330,1 +DA:331,1 +DA:332,1 +DA:333,1 +DA:334,1 +DA:335,1 +DA:336,1 +DA:337,1 +DA:338,1 +DA:339,1 +DA:340,1 +DA:341,1 +DA:344,19 +DA:345,19 +DA:346,19 +DA:348,36 +DA:349,17 +DA:351,17 +DA:354,17 +DA:355,17 +DA:356,17 +DA:358,17 +DA:359,17 +DA:360,17 +DA:361,17 +DA:362,17 +DA:363,17 +DA:364,17 +DA:365,17 +DA:366,17 +DA:367,17 +DA:368,70 +DA:369,18 +DA:370,18 +DA:371,18 +DA:372,17 +DA:375,19 +DA:376,19 +DA:377,19 +DA:378,19 +DA:379,19 +DA:380,19 +DA:382,0 +DA:383,0 +DA:385,111 +DA:386,111 +DA:387,18 +DA:388,18 +DA:389,18 +DA:390,18 +DA:391,18 +DA:392,18 +DA:393,18 +DA:394,18 +DA:395,18 +DA:396,18 +DA:397,18 +DA:398,18 +DA:400,93 +DA:401,93 +DA:403,0 +DA:405,435 +DA:406,584 +BRDA:279,9,0,149 +BRDA:288,56,0,38 +BRDA:292,557,1,21 +BRDA:297,121,0,1 +BRDA:297,121,1,20 +BRDA:308,300,1,72 +BRDA:312,209,0,0 +BRDA:312,209,1,72 +BRDA:308,278,0,72 +BRDA:308,278,1,20 +BRDA:308,300,0,20 +BRDA:327,320,0,1 +BRDA:327,320,1,19 +BRDA:292,538,0,38 +BRDA:292,538,1,19 +BRDA:292,557,0,36 +BRDA:348,576,0,17 +BRDA:356,622,0,1 +BRDA:356,622,1,17 +BRDA:368,827,1,18 +BRDA:368,827,0,17 +BRDA:348,576,1,19 +BRDA:376,853,0,19 +BRDA:376,853,1,0 +BRDA:288,56,1,111 +BRDA:386,922,0,18 +BRDA:386,922,1,93 +BRDA:279,9,1,435 +FN:408,sly.lexer.fsm.FSMNode`1 sly.lexer.fsm.FSMLexer`1::Move(sly.lexer.fsm.FSMNode`1,System.Char,System.ReadOnlyMemory`1) +FNDA:20131,sly.lexer.fsm.FSMNode`1 sly.lexer.fsm.FSMLexer`1::Move(sly.lexer.fsm.FSMNode`1,System.Char,System.ReadOnlyMemory`1) +DA:409,20131 +DA:410,20131 +DA:411,18789 +DA:412,82422 +DA:413,39080 +DA:414,39080 +DA:415,39080 +DA:416,16658 +DA:417,16658 +DA:419,22422 +DA:420,2131 +DA:422,3473 +DA:423,20131 +BRDA:410,2,0,20131 +BRDA:410,2,1,0 +BRDA:410,28,0,18789 +BRDA:412,98,1,39080 +BRDA:415,56,0,16658 +BRDA:415,56,1,22422 +BRDA:412,98,0,2131 +BRDA:410,28,1,3473 +FN:425,sly.lexer.fsm.FSMNode`1 sly.lexer.fsm.FSMLexer`1::GetNext(System.Int32,System.Char) +FNDA:177,sly.lexer.fsm.FSMNode`1 sly.lexer.fsm.FSMLexer`1::GetNext(System.Int32,System.Char) +DA:426,177 +DA:427,177 +DA:429,177 +DA:430,177 +FN:432,System.Void sly.lexer.fsm.FSMLexer`1::ConsumeIgnored(System.ReadOnlyMemory`1,sly.lexer.LexerPosition) +FNDA:4755,System.Void sly.lexer.fsm.FSMLexer`1::ConsumeIgnored(System.ReadOnlyMemory`1,sly.lexer.LexerPosition) +DA:433,4755 +DA:435,4755 +DA:436,7175 +DA:437,6339 +DA:438,6339 +DA:439,6336 +DA:440,6336 +DA:441,6336 +DA:442,2326 +DA:443,2326 +DA:444,2326 +DA:445,2326 +DA:447,4010 +DA:449,4013 +DA:450,3956 +DA:451,3956 +DA:452,3956 +DA:453,94 +DA:454,94 +DA:455,94 +DA:456,94 +DA:457,94 +DA:458,94 +DA:461,3862 +DA:462,3862 +DA:466,57 +DA:468,4755 +BRDA:436,228,1,6339 +BRDA:438,17,0,6336 +BRDA:441,47,0,2326 +BRDA:441,47,1,4010 +BRDA:438,17,1,4013 +BRDA:449,101,0,3956 +BRDA:452,130,0,94 +BRDA:454,142,0,6 +BRDA:454,142,1,88 +BRDA:452,130,1,3862 +BRDA:436,204,0,6396 +BRDA:436,207,0,118 +BRDA:436,207,1,6278 +BRDA:436,204,1,779 +BRDA:449,101,1,4755 +BRDA:436,228,0,4755 +FN:27,System.Void sly.lexer.fsm.FSMLexer`1::.ctor() +FNDA:195,System.Void sly.lexer.fsm.FSMLexer`1::.ctor() +DA:28,195 +DA:32,195 +DA:33,195 +DA:34,195 +DA:35,195 +DA:36,195 +DA:37,195 +DA:38,195 +DA:39,195 +DA:40,195 +DA:41,195 +FN:62,System.Collections.Generic.IEnumerable`1 sly.lexer.fsm.FSMLexer`1/<>c::b__31_0(System.Collections.Generic.List`1) +FNDA:8,System.Collections.Generic.IEnumerable`1 sly.lexer.fsm.FSMLexer`1/<>c::b__31_0(System.Collections.Generic.List`1) +DA:63,8 +LF:304 +LH:278 +BRF:92 +BRH:84 +FNF:28 +FNH:26 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\fsm\FSMLexerBuilder.cs +FN:27,sly.lexer.fsm.FSMLexer`1 sly.lexer.fsm.FSMLexerBuilder`1::get_Fsm() +FNDA:22732,sly.lexer.fsm.FSMLexer`1 sly.lexer.fsm.FSMLexerBuilder`1::get_Fsm() +DA:28,22732 +FN:32,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::GoTo(System.Int32) +FNDA:2224,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::GoTo(System.Int32) +DA:33,2224 +DA:34,2224 +DA:35,2224 +DA:37,0 +DA:38,2224 +DA:39,2224 +BRDA:34,15,0,2224 +BRDA:34,15,1,0 +FN:41,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::GoTo(System.String) +FNDA:2224,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::GoTo(System.String) +DA:42,2224 +DA:43,2224 +DA:44,2224 +DA:46,0 +DA:47,2224 +DA:48,2224 +BRDA:43,15,0,2224 +BRDA:43,15,1,0 +FN:51,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::Mark(System.String) +FNDA:703,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::Mark(System.String) +DA:52,703 +DA:53,703 +DA:54,703 +DA:55,703 +DA:56,703 +FN:58,sly.lexer.fsm.FSMNode`1 sly.lexer.fsm.FSMLexerBuilder`1::GetNode(System.Int32) +FNDA:177,sly.lexer.fsm.FSMNode`1 sly.lexer.fsm.FSMLexerBuilder`1::GetNode(System.Int32) +DA:59,177 +DA:60,177 +DA:61,177 +FN:63,sly.lexer.fsm.FSMNode`1 sly.lexer.fsm.FSMLexerBuilder`1::GetNode(System.String) +FNDA:177,sly.lexer.fsm.FSMNode`1 sly.lexer.fsm.FSMLexerBuilder`1::GetNode(System.String) +DA:64,177 +DA:65,177 +DA:66,354 +DA:67,177 +DA:68,177 +BRDA:66,17,0,177 +BRDA:66,17,1,177 +FN:74,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::IgnoreWS(System.Boolean) +FNDA:195,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::IgnoreWS(System.Boolean) +DA:75,195 +DA:76,195 +DA:77,195 +DA:78,195 +FN:80,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::IgnoreEOL(System.Boolean) +FNDA:195,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::IgnoreEOL(System.Boolean) +DA:81,195 +DA:82,195 +DA:83,195 +DA:84,195 +FN:86,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::WhiteSpace(System.Char) +FNDA:0,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::WhiteSpace(System.Char) +DA:87,0 +DA:88,0 +DA:89,0 +DA:90,0 +FN:92,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::WhiteSpace(System.Char[]) +FNDA:195,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::WhiteSpace(System.Char[]) +DA:93,195 +DA:94,195 +DA:95,195 +DA:96,1363 +DA:97,389 +DA:98,389 +DA:99,389 +DA:100,195 +DA:102,195 +DA:103,195 +BRDA:94,7,0,195 +BRDA:96,49,1,389 +BRDA:96,49,0,195 +BRDA:94,7,1,195 +FN:105,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::Indentation(System.Boolean,System.String) +FNDA:195,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::Indentation(System.Boolean,System.String) +DA:106,195 +DA:107,195 +DA:108,195 +DA:109,195 +DA:110,195 +FN:117,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::End(N,System.Boolean) +FNDA:1558,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::End(N,System.Boolean) +DA:118,1558 +DA:119,1558 +DA:120,1558 +DA:121,1558 +DA:123,1558 +DA:124,1558 +DA:125,1558 +DA:126,1558 +DA:128,1558 +DA:129,1558 +BRDA:119,20,0,1558 +BRDA:119,20,1,1558 +FN:131,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::CallBack(sly.lexer.fsm.NodeCallback`1) +FNDA:1562,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::CallBack(sly.lexer.fsm.NodeCallback`1) +DA:132,1562 +DA:133,3124 +DA:135,1562 +DA:136,1562 +BRDA:133,20,0,1562 +BRDA:133,20,1,1562 +FN:145,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::SafeTransition(System.Char) +FNDA:1445,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::SafeTransition(System.Char) +DA:146,1445 +DA:147,1445 +DA:148,1445 +DA:149,113 +DA:151,1332 +DA:152,113 +DA:153,1445 +BRDA:148,26,0,113 +BRDA:148,26,1,1332 +FN:155,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::SafeTransition(System.Char,sly.lexer.fsm.TransitionPrecondition) +FNDA:32,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::SafeTransition(System.Char,sly.lexer.fsm.TransitionPrecondition) +DA:156,32 +DA:157,32 +DA:158,32 +DA:159,12 +DA:161,20 +DA:162,12 +DA:163,32 +BRDA:158,26,0,12 +BRDA:158,26,1,20 +FN:166,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::Transition(System.Char) +FNDA:177,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::Transition(System.Char) +DA:167,177 +DA:168,177 +DA:169,177 +DA:170,171 +DA:171,171 +DA:173,6 +DA:174,6 +DA:175,177 +BRDA:169,26,0,171 +BRDA:169,26,1,6 +FN:179,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::Transition(System.Char[]) +FNDA:0,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::Transition(System.Char[]) +DA:180,0 +DA:181,0 +DA:182,0 +FN:184,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::Transition(System.Char,sly.lexer.fsm.TransitionPrecondition) +FNDA:4,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::Transition(System.Char,sly.lexer.fsm.TransitionPrecondition) +DA:185,4 +DA:186,4 +DA:187,4 +FN:189,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::Transition(System.Char[],sly.lexer.fsm.TransitionPrecondition) +FNDA:0,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::Transition(System.Char[],sly.lexer.fsm.TransitionPrecondition) +DA:190,0 +DA:191,0 +DA:192,0 +FN:194,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::ConstantTransition(System.String,sly.lexer.fsm.TransitionPrecondition) +FNDA:32,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::ConstantTransition(System.String,sly.lexer.fsm.TransitionPrecondition) +DA:195,32 +DA:196,32 +DA:197,32 +DA:198,124 +DA:199,30 +DA:200,30 +DA:201,30 +DA:202,30 +DA:204,32 +DA:205,32 +BRDA:198,55,1,30 +BRDA:198,55,0,32 +FN:208,System.ValueTuple`2>> sly.lexer.fsm.FSMLexerBuilder`1::ParseRepeatedPattern(System.String) +FNDA:8,System.ValueTuple`2>> sly.lexer.fsm.FSMLexerBuilder`1::ParseRepeatedPattern(System.String) +DA:209,8 +DA:210,8 +DA:211,8 +DA:212,8 +DA:213,8 +DA:214,8 +DA:215,8 +DA:216,8 +DA:217,8 +DA:218,24 +DA:219,16 +DA:220,16 +DA:221,16 +DA:222,16 +DA:223,16 +DA:224,16 +DA:225,16 +DA:226,16 +DA:227,16 +DA:229,8 +DA:230,8 +DA:231,8 +DA:234,0 +DA:235,0 +DA:236,8 +BRDA:211,14,0,8 +BRDA:211,14,1,0 +BRDA:211,32,0,8 +BRDA:218,178,1,16 +BRDA:221,102,0,16 +BRDA:221,102,1,0 +BRDA:222,125,0,16 +BRDA:222,125,1,16 +BRDA:218,178,0,8 +BRDA:229,185,0,8 +BRDA:229,185,1,0 +BRDA:211,32,1,0 +FN:239,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::RepetitionTransition(System.Int32,System.String,sly.lexer.fsm.TransitionPrecondition) +FNDA:4,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::RepetitionTransition(System.Int32,System.String,sly.lexer.fsm.TransitionPrecondition) +DA:240,4 +DA:241,4 +DA:243,4 +DA:244,4 +DA:245,4 +DA:246,4 +DA:247,40 +DA:248,16 +DA:249,16 +DA:250,16 +DA:251,4 +DA:260,0 +DA:261,0 +DA:262,0 +DA:263,0 +DA:264,0 +DA:265,4 +DA:267,4 +DA:268,4 +BRDA:243,11,0,4 +BRDA:243,11,1,0 +BRDA:243,27,0,4 +BRDA:245,36,0,4 +BRDA:245,36,1,0 +BRDA:245,54,0,4 +BRDA:247,94,1,16 +BRDA:247,94,0,4 +BRDA:245,54,1,0 +BRDA:262,138,1,0 +BRDA:262,138,0,0 +BRDA:243,27,1,4 +FN:271,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::RangeTransition(System.Char,System.Char) +FNDA:290,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::RangeTransition(System.Char,System.Char) +DA:272,290 +DA:273,290 +DA:274,290 +FN:276,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::RangeTransition(System.Char,System.Char,sly.lexer.fsm.TransitionPrecondition) +FNDA:0,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::RangeTransition(System.Char,System.Char,sly.lexer.fsm.TransitionPrecondition) +DA:277,0 +DA:278,0 +DA:279,0 +FN:281,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::MultiRangeTransition(System.ValueTuple`2[]) +FNDA:0,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::MultiRangeTransition(System.ValueTuple`2[]) +DA:282,0 +DA:283,0 +DA:284,0 +FN:286,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::MultiRangeTransition(sly.lexer.fsm.TransitionPrecondition,System.ValueTuple`2[]) +FNDA:28,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::MultiRangeTransition(sly.lexer.fsm.TransitionPrecondition,System.ValueTuple`2[]) +DA:287,28 +DA:288,28 +DA:289,28 +FN:293,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::ExceptTransition(System.Char[]) +FNDA:5,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::ExceptTransition(System.Char[]) +DA:294,5 +DA:295,5 +DA:296,5 +FN:298,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::ExceptTransition(System.Char[],sly.lexer.fsm.TransitionPrecondition) +FNDA:0,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::ExceptTransition(System.Char[],sly.lexer.fsm.TransitionPrecondition) +DA:299,0 +DA:300,0 +DA:301,0 +FN:303,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::AnyTransition() +FNDA:0,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::AnyTransition() +DA:304,0 +DA:305,0 +DA:306,0 +FN:308,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::AnyTransition(sly.lexer.fsm.TransitionPrecondition) +FNDA:0,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::AnyTransition(sly.lexer.fsm.TransitionPrecondition) +DA:309,0 +DA:310,0 +DA:311,0 +FN:317,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::TransitionTo(System.Char,System.Int32) +FNDA:1863,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::TransitionTo(System.Char,System.Int32) +DA:318,1863 +DA:319,1863 +DA:320,3366 +DA:321,1863 +DA:322,1863 +DA:323,1863 +DA:324,1863 +DA:325,1863 +BRDA:320,25,0,1503 +BRDA:320,25,1,1863 +FN:327,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::TransitionTo(System.Char[],System.Int32) +FNDA:0,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::TransitionTo(System.Char[],System.Int32) +DA:328,0 +DA:329,0 +DA:330,0 +DA:331,0 +DA:332,0 +DA:333,0 +DA:334,0 +DA:335,0 +BRDA:330,25,0,0 +BRDA:330,25,1,0 +FN:338,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::TransitionTo(System.Char,System.Int32,sly.lexer.fsm.TransitionPrecondition) +FNDA:24,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::TransitionTo(System.Char,System.Int32,sly.lexer.fsm.TransitionPrecondition) +DA:339,24 +DA:340,24 +DA:341,48 +DA:342,24 +DA:343,24 +DA:344,24 +DA:345,24 +DA:346,24 +BRDA:341,26,0,24 +BRDA:341,26,1,24 +FN:348,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::TransitionTo(System.Char[],System.Int32,sly.lexer.fsm.TransitionPrecondition) +FNDA:0,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::TransitionTo(System.Char[],System.Int32,sly.lexer.fsm.TransitionPrecondition) +DA:349,0 +DA:350,0 +DA:351,0 +DA:352,0 +DA:353,0 +DA:354,0 +DA:355,0 +DA:356,0 +BRDA:351,26,0,0 +BRDA:351,26,1,0 +FN:359,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::RepetitionTransitionTo(System.String,System.Int32,System.String,sly.lexer.fsm.TransitionPrecondition) +FNDA:4,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::RepetitionTransitionTo(System.String,System.Int32,System.String,sly.lexer.fsm.TransitionPrecondition) +DA:360,4 +DA:361,4 +DA:362,4 +DA:363,4 +FN:366,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::RepetitionTransitionTo(System.Int32,System.Int32,System.String,sly.lexer.fsm.TransitionPrecondition) +FNDA:4,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::RepetitionTransitionTo(System.Int32,System.Int32,System.String,sly.lexer.fsm.TransitionPrecondition) +DA:367,4 +DA:368,4 +DA:370,4 +DA:371,4 +DA:372,4 +DA:373,4 +DA:374,32 +DA:375,12 +DA:376,12 +DA:377,12 +DA:378,4 +DA:379,4 +DA:381,0 +DA:382,0 +DA:383,0 +DA:384,0 +DA:385,0 +DA:386,4 +DA:388,4 +DA:389,4 +BRDA:370,11,0,4 +BRDA:370,11,1,0 +BRDA:370,27,0,4 +BRDA:372,39,0,4 +BRDA:372,39,1,0 +BRDA:372,57,0,4 +BRDA:374,100,1,12 +BRDA:374,100,0,4 +BRDA:372,57,1,0 +BRDA:383,166,1,0 +BRDA:383,166,0,0 +BRDA:370,27,1,4 +FN:393,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::RangeTransitionTo(System.Char,System.Char,System.Int32) +FNDA:1031,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::RangeTransitionTo(System.Char,System.Char,System.Int32) +DA:394,1031 +DA:395,1031 +DA:396,1321 +DA:397,1031 +DA:398,1031 +DA:399,1031 +DA:400,1031 +DA:401,1031 +BRDA:396,26,0,290 +BRDA:396,26,1,1031 +FN:404,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::RangeTransitionTo(System.Char,System.Char,System.Int32,sly.lexer.fsm.TransitionPrecondition) +FNDA:0,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::RangeTransitionTo(System.Char,System.Char,System.Int32,sly.lexer.fsm.TransitionPrecondition) +DA:405,0 +DA:406,0 +DA:407,0 +DA:408,0 +DA:409,0 +DA:410,0 +DA:411,0 +DA:412,0 +BRDA:407,28,0,0 +BRDA:407,28,1,0 +FN:416,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::MultiRangeTransitionTo(System.Int32,System.ValueTuple`2[]) +FNDA:0,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::MultiRangeTransitionTo(System.Int32,System.ValueTuple`2[]) +DA:417,0 +DA:418,0 +DA:419,0 +DA:420,0 +DA:421,0 +DA:422,0 +DA:423,0 +DA:424,0 +BRDA:419,25,0,0 +BRDA:419,25,1,0 +FN:427,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::MultiRangeTransitionTo(System.Int32,sly.lexer.fsm.TransitionPrecondition,System.ValueTuple`2[]) +FNDA:32,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::MultiRangeTransitionTo(System.Int32,sly.lexer.fsm.TransitionPrecondition,System.ValueTuple`2[]) +DA:428,32 +DA:429,32 +DA:430,60 +DA:431,32 +DA:432,32 +DA:433,32 +DA:434,32 +DA:435,32 +BRDA:430,26,0,28 +BRDA:430,26,1,32 +FN:437,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::MultiRangeTransitionTo(System.String,System.ValueTuple`2[]) +FNDA:0,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::MultiRangeTransitionTo(System.String,System.ValueTuple`2[]) +DA:438,0 +DA:439,0 +DA:440,0 +DA:441,0 +FN:447,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::ExceptTransitionTo(System.Char[],System.Int32) +FNDA:84,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::ExceptTransitionTo(System.Char[],System.Int32) +DA:448,84 +DA:449,84 +DA:450,89 +DA:451,84 +DA:452,84 +DA:453,84 +DA:454,84 +DA:455,84 +BRDA:450,25,0,5 +BRDA:450,25,1,84 +FN:457,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::ExceptTransitionTo(System.Char[],System.Int32,sly.lexer.fsm.TransitionPrecondition) +FNDA:0,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::ExceptTransitionTo(System.Char[],System.Int32,sly.lexer.fsm.TransitionPrecondition) +DA:458,0 +DA:459,0 +DA:460,0 +DA:461,0 +DA:462,0 +DA:463,0 +DA:464,0 +DA:465,0 +BRDA:460,26,0,0 +BRDA:460,26,1,0 +FN:467,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::AnyTransitionTo(System.Int32) +FNDA:0,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::AnyTransitionTo(System.Int32) +DA:468,0 +DA:469,0 +DA:470,0 +DA:471,0 +DA:472,0 +DA:473,0 +DA:474,0 +DA:475,0 +BRDA:470,24,0,0 +BRDA:470,24,1,0 +FN:477,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::AnyTransitionTo(System.Int32,sly.lexer.fsm.TransitionPrecondition) +FNDA:0,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::AnyTransitionTo(System.Int32,sly.lexer.fsm.TransitionPrecondition) +DA:478,0 +DA:479,0 +DA:480,0 +DA:481,0 +DA:482,0 +DA:483,0 +DA:484,0 +DA:485,0 +BRDA:480,25,0,0 +BRDA:480,25,1,0 +FN:487,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::TransitionTo(System.Char,System.String) +FNDA:360,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::TransitionTo(System.Char,System.String) +DA:488,360 +DA:489,360 +DA:490,360 +DA:491,360 +FN:493,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::TransitionTo(System.Char[],System.String) +FNDA:0,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::TransitionTo(System.Char[],System.String) +DA:494,0 +DA:495,0 +DA:496,0 +DA:497,0 +FN:500,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::TransitionTo(System.Char,System.String,sly.lexer.fsm.TransitionPrecondition) +FNDA:0,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::TransitionTo(System.Char,System.String,sly.lexer.fsm.TransitionPrecondition) +DA:501,0 +DA:502,0 +DA:503,0 +DA:504,0 +FN:506,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::TransitionTo(System.Char[],System.String,sly.lexer.fsm.TransitionPrecondition) +FNDA:0,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::TransitionTo(System.Char[],System.String,sly.lexer.fsm.TransitionPrecondition) +DA:507,0 +DA:508,0 +DA:509,0 +DA:510,0 +FN:512,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::RangeTransitionTo(System.Char,System.Char,System.String) +FNDA:741,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::RangeTransitionTo(System.Char,System.Char,System.String) +DA:513,741 +DA:514,741 +DA:515,741 +DA:516,741 +FN:519,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::RangeTransitionTo(System.Char,System.Char,System.String,sly.lexer.fsm.TransitionPrecondition) +FNDA:0,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::RangeTransitionTo(System.Char,System.Char,System.String,sly.lexer.fsm.TransitionPrecondition) +DA:520,0 +DA:521,0 +DA:522,0 +DA:523,0 +FN:525,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::ExceptTransitionTo(System.Char[],System.String) +FNDA:79,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::ExceptTransitionTo(System.Char[],System.String) +DA:526,79 +DA:527,79 +DA:528,79 +DA:529,79 +FN:532,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::ExceptTransitionTo(System.Char[],System.String,sly.lexer.fsm.TransitionPrecondition) +FNDA:0,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::ExceptTransitionTo(System.Char[],System.String,sly.lexer.fsm.TransitionPrecondition) +DA:533,0 +DA:534,0 +DA:535,0 +DA:536,0 +FN:538,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::AnyTransitionTo(System.String) +FNDA:0,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::AnyTransitionTo(System.String) +DA:539,0 +DA:540,0 +DA:541,0 +DA:542,0 +FN:544,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::AnyTransitionTo(System.String,sly.lexer.fsm.TransitionPrecondition) +FNDA:0,sly.lexer.fsm.FSMLexerBuilder`1 sly.lexer.fsm.FSMLexerBuilder`1::AnyTransitionTo(System.String,sly.lexer.fsm.TransitionPrecondition) +DA:545,0 +DA:546,0 +DA:547,0 +DA:548,0 +FN:18,System.Void sly.lexer.fsm.FSMLexerBuilder`1::.ctor() +FNDA:195,System.Void sly.lexer.fsm.FSMLexerBuilder`1::.ctor() +DA:19,195 +DA:20,195 +DA:21,195 +DA:22,195 +DA:23,195 +DA:24,195 +DA:25,195 +DA:26,195 +LF:348 +LH:221 +BRF:82 +BRH:52 +FNF:56 +FNH:33 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\fsm\FSMMatch.cs +FN:7,System.Collections.Generic.Dictionary`2 sly.lexer.fsm.FSMMatch`1::get_Properties() +FNDA:11865,System.Collections.Generic.Dictionary`2 sly.lexer.fsm.FSMMatch`1::get_Properties() +DA:8,11865 +FN:9,System.Boolean sly.lexer.fsm.FSMMatch`1::get_IsString() +FNDA:26,System.Boolean sly.lexer.fsm.FSMMatch`1::get_IsString() +DA:10,26 +FN:11,System.Char sly.lexer.fsm.FSMMatch`1::get_StringDelimiterChar() +FNDA:4005,System.Char sly.lexer.fsm.FSMMatch`1::get_StringDelimiterChar() +DA:12,4005 +FN:13,System.Boolean sly.lexer.fsm.FSMMatch`1::get_IsSuccess() +FNDA:35891,System.Boolean sly.lexer.fsm.FSMMatch`1::get_IsSuccess() +DA:14,35891 +FN:15,System.Boolean sly.lexer.fsm.FSMMatch`1::get_IsEOS() +FNDA:4763,System.Boolean sly.lexer.fsm.FSMMatch`1::get_IsEOS() +DA:16,4763 +FN:17,System.Boolean sly.lexer.fsm.FSMMatch`1::get_IsIndent() +FNDA:3998,System.Boolean sly.lexer.fsm.FSMMatch`1::get_IsIndent() +DA:18,3998 +FN:19,System.Boolean sly.lexer.fsm.FSMMatch`1::get_IsUnIndent() +FNDA:7975,System.Boolean sly.lexer.fsm.FSMMatch`1::get_IsUnIndent() +DA:20,7975 +FN:21,System.Int32 sly.lexer.fsm.FSMMatch`1::get_UnIndentCount() +FNDA:36,System.Int32 sly.lexer.fsm.FSMMatch`1::get_UnIndentCount() +DA:22,36 +FN:23,System.Int32 sly.lexer.fsm.FSMMatch`1::get_IndentationLevel() +FNDA:4015,System.Int32 sly.lexer.fsm.FSMMatch`1::get_IndentationLevel() +DA:24,4015 +FN:25,sly.lexer.Token`1 sly.lexer.fsm.FSMMatch`1::get_Result() +FNDA:46674,sly.lexer.Token`1 sly.lexer.fsm.FSMMatch`1::get_Result() +DA:26,46674 +FN:27,System.Int32 sly.lexer.fsm.FSMMatch`1::get_NodeId() +FNDA:7886,System.Int32 sly.lexer.fsm.FSMMatch`1::get_NodeId() +DA:28,7886 +FN:29,sly.lexer.LexerPosition sly.lexer.fsm.FSMMatch`1::get_NewPosition() +FNDA:20322,sly.lexer.LexerPosition sly.lexer.fsm.FSMMatch`1::get_NewPosition() +DA:30,20322 +FN:31,System.Boolean sly.lexer.fsm.FSMMatch`1::get_IsLineEnding() +FNDA:20140,System.Boolean sly.lexer.fsm.FSMMatch`1::get_IsLineEnding() +DA:32,20140 +FN:33,System.Boolean sly.lexer.fsm.FSMMatch`1::get_IsIndentationError() +FNDA:8,System.Boolean sly.lexer.fsm.FSMMatch`1::get_IsIndentationError() +DA:34,8 +FN:48,sly.lexer.fsm.FSMMatch`1 sly.lexer.fsm.FSMMatch`1::Indent(System.Int32) +FNDA:19,sly.lexer.fsm.FSMMatch`1 sly.lexer.fsm.FSMMatch`1::Indent(System.Int32) +DA:49,19 +DA:50,19 +DA:51,19 +DA:52,19 +DA:53,19 +DA:54,19 +DA:55,19 +DA:56,19 +DA:57,19 +FN:59,sly.lexer.fsm.FSMMatch`1 sly.lexer.fsm.FSMMatch`1::UIndent(System.Int32,System.Int32) +FNDA:17,sly.lexer.fsm.FSMMatch`1 sly.lexer.fsm.FSMMatch`1::UIndent(System.Int32,System.Int32) +DA:60,17 +DA:61,17 +DA:62,17 +DA:63,17 +DA:64,17 +DA:65,17 +DA:66,17 +DA:67,17 +DA:68,17 +DA:69,17 +FN:36,System.Void sly.lexer.fsm.FSMMatch`1::.ctor(System.Boolean) +FNDA:774,System.Void sly.lexer.fsm.FSMMatch`1::.ctor(System.Boolean) +DA:37,774 +DA:38,774 +DA:39,774 +DA:40,774 +DA:41,774 +FN:42,System.Void sly.lexer.fsm.FSMMatch`1::.ctor() +FNDA:36,System.Void sly.lexer.fsm.FSMMatch`1::.ctor() +DA:43,36 +DA:44,36 +DA:45,36 +DA:46,36 +FN:72,System.Void sly.lexer.fsm.FSMMatch`1::.ctor(System.Boolean,N,System.String,sly.lexer.LexerPosition,System.Int32,sly.lexer.LexerPosition,System.Boolean) +FNDA:1,System.Void sly.lexer.fsm.FSMMatch`1::.ctor(System.Boolean,N,System.String,sly.lexer.LexerPosition,System.Int32,sly.lexer.LexerPosition,System.Boolean) +DA:73,1 +DA:74,2 +FN:75,System.Void sly.lexer.fsm.FSMMatch`1::.ctor(System.Boolean,N,System.ReadOnlyMemory`1,sly.lexer.LexerPosition,System.Int32,sly.lexer.LexerPosition,System.Boolean) +FNDA:16080,System.Void sly.lexer.fsm.FSMMatch`1::.ctor(System.Boolean,N,System.ReadOnlyMemory`1,sly.lexer.LexerPosition,System.Int32,sly.lexer.LexerPosition,System.Boolean) +DA:76,16080 +DA:77,16080 +DA:78,16080 +DA:79,16080 +DA:80,16080 +DA:81,16080 +DA:82,16080 +DA:83,16080 +DA:84,16080 +DA:85,16080 +DA:86,16080 +LF:55 +LH:55 +BRF:0 +BRH:0 +FNF:20 +FNH:20 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\fsm\FSMNode.cs +FN:9,N sly.lexer.fsm.FSMNode`1::get_Value() +FNDA:19673,N sly.lexer.fsm.FSMNode`1::get_Value() +DA:10,19673 +FN:11,System.Int32 sly.lexer.fsm.FSMNode`1::get_Id() +FNDA:42519,System.Int32 sly.lexer.fsm.FSMNode`1::get_Id() +DA:12,42519 +FN:13,System.Boolean sly.lexer.fsm.FSMNode`1::get_IsEnd() +FNDA:20255,System.Boolean sly.lexer.fsm.FSMNode`1::get_IsEnd() +DA:14,20255 +FN:15,System.Boolean sly.lexer.fsm.FSMNode`1::get_IsStart() +FNDA:2240,System.Boolean sly.lexer.fsm.FSMNode`1::get_IsStart() +DA:16,2240 +FN:16,System.String sly.lexer.fsm.FSMNode`1::get_Mark() +FNDA:723,System.String sly.lexer.fsm.FSMNode`1::get_Mark() +DA:17,723 +FN:17,System.Boolean sly.lexer.fsm.FSMNode`1::get_IsLineEnding() +FNDA:17628,System.Boolean sly.lexer.fsm.FSMNode`1::get_IsLineEnding() +DA:18,17628 +FN:4,System.Void sly.lexer.fsm.FSMNode`1::.ctor(N) +FNDA:2045,System.Void sly.lexer.fsm.FSMNode`1::.ctor(N) +DA:5,2045 +DA:6,2045 +DA:7,2045 +DA:8,2045 +LF:10 +LH:10 +BRF:0 +BRH:0 +FNF:7 +FNH:7 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\fsm\FSMTransition.cs +FN:19,sly.lexer.fsm.transitioncheck.AbstractTransitionCheck sly.lexer.fsm.FSMTransition::get_Check() +FNDA:50745,sly.lexer.fsm.transitioncheck.AbstractTransitionCheck sly.lexer.fsm.FSMTransition::get_Check() +DA:20,50745 +FN:23,System.String sly.lexer.fsm.FSMTransition::ToGraphViz(System.Collections.Generic.Dictionary`2>) +FNDA:10,System.String sly.lexer.fsm.FSMTransition::ToGraphViz(System.Collections.Generic.Dictionary`2>) +DA:24,10 +DA:25,10 +DA:26,10 +DA:27,10 +DA:28,10 +FN:31,System.Boolean sly.lexer.fsm.FSMTransition::Match(System.Char,System.ReadOnlyMemory`1) +FNDA:39080,System.Boolean sly.lexer.fsm.FSMTransition::Match(System.Char,System.ReadOnlyMemory`1) +DA:32,39080 +DA:33,39080 +DA:34,39080 +FN:36,System.Boolean sly.lexer.fsm.FSMTransition::Match(System.Char) +FNDA:8621,System.Boolean sly.lexer.fsm.FSMTransition::Match(System.Char) +DA:37,8621 +DA:38,8621 +DA:39,8621 +FN:12,System.Void sly.lexer.fsm.FSMTransition::.ctor(sly.lexer.fsm.transitioncheck.AbstractTransitionCheck,System.Int32,System.Int32) +FNDA:3034,System.Void sly.lexer.fsm.FSMTransition::.ctor(sly.lexer.fsm.transitioncheck.AbstractTransitionCheck,System.Int32,System.Int32) +DA:13,3034 +DA:14,3034 +DA:15,3034 +DA:16,3034 +DA:17,3034 +DA:18,3034 +LF:18 +LH:18 +BRF:0 +BRH:0 +FNF:5 +FNH:5 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\fsm\transitioncheck\AbstractTransitionCheck.cs +FN:23,sly.lexer.fsm.TransitionPrecondition sly.lexer.fsm.transitioncheck.AbstractTransitionCheck::get_Precondition() +FNDA:39150,sly.lexer.fsm.TransitionPrecondition sly.lexer.fsm.transitioncheck.AbstractTransitionCheck::get_Precondition() +DA:24,39150 +FN:27,System.Boolean sly.lexer.fsm.transitioncheck.AbstractTransitionCheck::Check(System.Char,System.ReadOnlyMemory`1) +FNDA:39080,System.Boolean sly.lexer.fsm.transitioncheck.AbstractTransitionCheck::Check(System.Char,System.ReadOnlyMemory`1) +DA:28,39080 +DA:29,39080 +DA:30,39084 +DA:31,78159 +DA:32,39080 +DA:33,39080 +BRDA:30,14,0,4 +BRDA:30,14,1,39080 +BRDA:31,32,0,39079 +BRDA:31,32,1,39080 +LF:7 +LH:7 +BRF:4 +BRH:4 +FNF:2 +FNH:2 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\fsm\transitioncheck\TransitionAny.cs +FN:23,System.Boolean sly.lexer.fsm.transitioncheck.TransitionAny::Match(System.Char) +FNDA:0,System.Boolean sly.lexer.fsm.transitioncheck.TransitionAny::Match(System.Char) +DA:24,0 +DA:25,0 +DA:26,0 +FN:6,System.Void sly.lexer.fsm.transitioncheck.TransitionAny::.ctor() +FNDA:0,System.Void sly.lexer.fsm.transitioncheck.TransitionAny::.ctor() +DA:7,0 +DA:8,0 +DA:9,0 +FN:10,System.Void sly.lexer.fsm.transitioncheck.TransitionAny::.ctor(sly.lexer.fsm.TransitionPrecondition) +FNDA:0,System.Void sly.lexer.fsm.transitioncheck.TransitionAny::.ctor(sly.lexer.fsm.TransitionPrecondition) +DA:11,0 +DA:12,0 +DA:13,0 +DA:14,0 +LF:10 +LH:0 +BRF:0 +BRH:0 +FNF:3 +FNH:0 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\fsm\transitioncheck\TransitionAnyExcept.cs +FN:33,System.Boolean sly.lexer.fsm.transitioncheck.TransitionAnyExcept::Match(System.Char) +FNDA:267,System.Boolean sly.lexer.fsm.transitioncheck.TransitionAnyExcept::Match(System.Char) +DA:34,267 +DA:35,267 +DA:36,267 +FN:10,System.Void sly.lexer.fsm.transitioncheck.TransitionAnyExcept::.ctor(System.Char[]) +FNDA:84,System.Void sly.lexer.fsm.transitioncheck.TransitionAnyExcept::.ctor(System.Char[]) +DA:11,84 +DA:12,84 +DA:13,84 +DA:14,84 +DA:15,84 +FN:16,System.Void sly.lexer.fsm.transitioncheck.TransitionAnyExcept::.ctor(sly.lexer.fsm.TransitionPrecondition,System.Char[]) +FNDA:0,System.Void sly.lexer.fsm.transitioncheck.TransitionAnyExcept::.ctor(sly.lexer.fsm.TransitionPrecondition,System.Char[]) +DA:17,0 +DA:18,0 +DA:19,0 +DA:20,0 +DA:21,0 +DA:22,0 +FN:28,System.String sly.lexer.fsm.transitioncheck.TransitionAnyExcept/<>c::b__3_0(System.Char) +FNDA:3,System.String sly.lexer.fsm.transitioncheck.TransitionAnyExcept/<>c::b__3_0(System.Char) +DA:29,3 +LF:15 +LH:9 +BRF:0 +BRH:0 +FNF:4 +FNH:3 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\fsm\transitioncheck\TransitionMany.cs +FN:31,System.Boolean sly.lexer.fsm.transitioncheck.TransitionMany::Match(System.Char) +FNDA:0,System.Boolean sly.lexer.fsm.transitioncheck.TransitionMany::Match(System.Char) +DA:32,0 +DA:33,0 +DA:34,0 +FN:9,System.Void sly.lexer.fsm.transitioncheck.TransitionMany::.ctor(System.Char[]) +FNDA:0,System.Void sly.lexer.fsm.transitioncheck.TransitionMany::.ctor(System.Char[]) +DA:10,0 +DA:11,0 +DA:12,0 +DA:13,0 +FN:15,System.Void sly.lexer.fsm.transitioncheck.TransitionMany::.ctor(System.Char[],sly.lexer.fsm.TransitionPrecondition) +FNDA:0,System.Void sly.lexer.fsm.transitioncheck.TransitionMany::.ctor(System.Char[],sly.lexer.fsm.TransitionPrecondition) +DA:16,0 +DA:17,0 +DA:18,0 +DA:19,0 +DA:20,0 +FN:26,System.String sly.lexer.fsm.transitioncheck.TransitionMany/<>c::b__3_0(System.Char) +FNDA:0,System.String sly.lexer.fsm.transitioncheck.TransitionMany/<>c::b__3_0(System.Char) +DA:27,0 +LF:13 +LH:0 +BRF:0 +BRH:0 +FNF:4 +FNH:0 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\fsm\transitioncheck\TransitionMultiRange.cs +FN:51,System.Boolean sly.lexer.fsm.transitioncheck.TransitionMultiRange::Match(System.Char) +FNDA:16,System.Boolean sly.lexer.fsm.transitioncheck.TransitionMultiRange::Match(System.Char) +DA:52,16 +DA:53,16 +DA:54,16 +DA:55,32 +DA:56,16 +DA:57,16 +DA:58,16 +DA:59,16 +DA:60,16 +DA:62,16 +DA:63,16 +BRDA:55,90,1,16 +BRDA:58,22,0,16 +BRDA:58,38,0,16 +BRDA:58,38,1,0 +BRDA:58,22,1,0 +BRDA:55,72,0,16 +BRDA:55,72,1,16 +BRDA:55,90,0,16 +FN:14,System.Void sly.lexer.fsm.transitioncheck.TransitionMultiRange::.ctor(System.ValueTuple`2[]) +FNDA:32,System.Void sly.lexer.fsm.transitioncheck.TransitionMultiRange::.ctor(System.ValueTuple`2[]) +DA:15,32 +DA:16,32 +DA:17,32 +DA:18,32 +FN:20,System.Void sly.lexer.fsm.transitioncheck.TransitionMultiRange::.ctor(sly.lexer.fsm.TransitionPrecondition,System.ValueTuple`2[]) +FNDA:32,System.Void sly.lexer.fsm.transitioncheck.TransitionMultiRange::.ctor(sly.lexer.fsm.TransitionPrecondition,System.ValueTuple`2[]) +DA:21,32 +DA:22,32 +DA:23,32 +DA:24,32 +LF:19 +LH:19 +BRF:8 +BRH:6 +FNF:3 +FNH:3 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\fsm\transitioncheck\TransitionRange.cs +FN:34,System.Boolean sly.lexer.fsm.transitioncheck.TransitionRange::Match(System.Char) +FNDA:30176,System.Boolean sly.lexer.fsm.transitioncheck.TransitionRange::Match(System.Char) +DA:35,30176 +DA:36,30176 +DA:37,30176 +BRDA:36,15,0,16736 +BRDA:36,15,1,13440 +FN:9,System.Void sly.lexer.fsm.transitioncheck.TransitionRange::.ctor(System.Char,System.Char) +FNDA:1031,System.Void sly.lexer.fsm.transitioncheck.TransitionRange::.ctor(System.Char,System.Char) +DA:10,1031 +DA:11,1031 +DA:12,1031 +DA:13,1031 +DA:14,1031 +FN:16,System.Void sly.lexer.fsm.transitioncheck.TransitionRange::.ctor(System.Char,System.Char,sly.lexer.fsm.TransitionPrecondition) +FNDA:0,System.Void sly.lexer.fsm.transitioncheck.TransitionRange::.ctor(System.Char,System.Char,sly.lexer.fsm.TransitionPrecondition) +DA:17,0 +DA:18,0 +DA:19,0 +DA:20,0 +DA:21,0 +DA:22,0 +LF:14 +LH:8 +BRF:2 +BRH:2 +FNF:3 +FNH:2 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\lexer\fsm\transitioncheck\TransitionSingle.cs +FN:30,System.Boolean sly.lexer.fsm.transitioncheck.TransitionSingle::Match(System.Char) +FNDA:17241,System.Boolean sly.lexer.fsm.transitioncheck.TransitionSingle::Match(System.Char) +DA:31,17241 +DA:32,17241 +DA:33,17241 +FN:8,System.Void sly.lexer.fsm.transitioncheck.TransitionSingle::.ctor(System.Char) +FNDA:1863,System.Void sly.lexer.fsm.transitioncheck.TransitionSingle::.ctor(System.Char) +DA:9,1863 +DA:10,1863 +DA:11,1863 +DA:12,1863 +FN:14,System.Void sly.lexer.fsm.transitioncheck.TransitionSingle::.ctor(System.Char,sly.lexer.fsm.TransitionPrecondition) +FNDA:24,System.Void sly.lexer.fsm.transitioncheck.TransitionSingle::.ctor(System.Char,sly.lexer.fsm.TransitionPrecondition) +DA:15,24 +DA:16,24 +DA:17,24 +DA:18,24 +DA:19,24 +LF:12 +LH:12 +BRF:0 +BRH:0 +FNF:3 +FNH:3 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\i18n\I18N.cs +FN:54,sly.i18n.I18N sly.i18n.I18N::get_Instance() +FNDA:96,sly.i18n.I18N sly.i18n.I18N::get_Instance() +DA:55,96 +DA:56,96 +DA:57,1 +DA:58,1 +DA:59,1 +DA:61,96 +DA:62,96 +BRDA:56,11,0,1 +BRDA:56,11,1,96 +FN:72,System.String sly.i18n.I18N::GetText(sly.i18n.Message,System.String[]) +FNDA:0,System.String sly.i18n.I18N::GetText(sly.i18n.Message,System.String[]) +DA:73,0 +DA:74,0 +DA:75,0 +DA:76,0 +FN:78,System.String sly.i18n.I18N::GetText(System.String,sly.i18n.Message,System.String[]) +FNDA:96,System.String sly.i18n.I18N::GetText(System.String,sly.i18n.Message,System.String[]) +DA:79,96 +DA:80,96 +DA:81,96 +DA:82,96 +DA:83,2 +DA:84,2 +DA:85,2 +DA:87,96 +DA:88,96 +DA:89,96 +DA:90,96 +DA:93,0 +DA:94,96 +BRDA:80,3,0,15 +BRDA:80,3,1,96 +BRDA:82,42,0,2 +BRDA:82,42,1,96 +BRDA:88,67,0,96 +BRDA:88,67,1,0 +FN:97,System.Collections.Generic.IDictionary`2 sly.i18n.I18N::Load(System.String) +FNDA:2,System.Collections.Generic.IDictionary`2 sly.i18n.I18N::Load(System.String) +DA:98,2 +DA:99,2 +DA:100,2 +DA:101,2 +DA:102,2 +DA:103,2 +DA:104,2 +DA:105,2 +DA:106,2 +DA:107,2 +DA:108,2 +DA:109,107 +DA:110,105 +DA:111,105 +DA:112,77 +DA:113,77 +DA:114,77 +DA:115,60 +DA:116,60 +DA:117,60 +DA:118,60 +DA:119,77 +DA:121,105 +DA:122,105 +DA:123,2 +DA:124,2 +DA:126,0 +DA:127,0 +DA:129,2 +DA:131,2 +DA:132,2 +DA:133,2 +BRDA:104,58,0,2 +BRDA:109,186,1,105 +BRDA:111,104,0,77 +BRDA:114,138,0,60 +BRDA:114,138,1,77 +BRDA:111,104,1,105 +BRDA:109,186,0,2 +BRDA:104,58,1,0 +FN:64,System.Void sly.i18n.I18N::.ctor() +FNDA:1,System.Void sly.i18n.I18N::.ctor() +DA:65,1 +DA:66,1 +DA:67,1 +DA:68,1 +LF:60 +LH:53 +BRF:16 +BRH:14 +FNF:5 +FNH:4 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\buildresult\BuildResult.cs +FN:16,System.Collections.Generic.List`1 sly.buildresult.BuildResult`1::get_Errors() +FNDA:2623,System.Collections.Generic.List`1 sly.buildresult.BuildResult`1::get_Errors() +DA:17,2623 +FN:18,R sly.buildresult.BuildResult`1::get_Result() +FNDA:10384,R sly.buildresult.BuildResult`1::get_Result() +DA:19,10384 +FN:22,System.Boolean sly.buildresult.BuildResult`1::get_IsError() +FNDA:7426,System.Boolean sly.buildresult.BuildResult`1::get_IsError() +DA:23,7426 +BRDA:23,13,0,156 +BRDA:23,13,1,2405 +FN:25,System.Boolean sly.buildresult.BuildResult`1::get_IsOk() +FNDA:35,System.Boolean sly.buildresult.BuildResult`1::get_IsOk() +DA:26,35 +FN:28,System.Void sly.buildresult.BuildResult`1::AddError(sly.buildresult.InitializationError) +FNDA:117,System.Void sly.buildresult.BuildResult`1::AddError(sly.buildresult.InitializationError) +DA:29,117 +DA:30,117 +DA:31,117 +FN:33,System.Void sly.buildresult.BuildResult`1::AddErrors(System.Collections.Generic.List`1) +FNDA:0,System.Void sly.buildresult.BuildResult`1::AddErrors(System.Collections.Generic.List`1) +DA:34,0 +DA:35,0 +DA:36,0 +FN:7,System.Void sly.buildresult.BuildResult`1::.ctor() +FNDA:645,System.Void sly.buildresult.BuildResult`1::.ctor() +DA:8,645 +DA:9,1290 +FN:10,System.Void sly.buildresult.BuildResult`1::.ctor(R) +FNDA:882,System.Void sly.buildresult.BuildResult`1::.ctor(R) +DA:11,882 +DA:12,882 +DA:13,882 +DA:14,882 +DA:15,882 +LF:17 +LH:14 +BRF:2 +BRH:2 +FNF:8 +FNH:7 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\buildresult\InitializationError.cs +FN:11,sly.buildresult.ErrorLevel sly.buildresult.InitializationError::get_Level() +FNDA:365,sly.buildresult.ErrorLevel sly.buildresult.InitializationError::get_Level() +DA:12,365 +FN:13,System.String sly.buildresult.InitializationError::get_Message() +FNDA:184,System.String sly.buildresult.InitializationError::get_Message() +DA:14,184 +FN:15,sly.buildresult.ErrorCodes sly.buildresult.InitializationError::get_Code() +FNDA:136,sly.buildresult.ErrorCodes sly.buildresult.InitializationError::get_Code() +DA:16,136 +FN:4,System.Void sly.buildresult.InitializationError::.ctor(sly.buildresult.ErrorLevel,System.String,sly.buildresult.ErrorCodes) +FNDA:117,System.Void sly.buildresult.InitializationError::.ctor(sly.buildresult.ErrorLevel,System.String,sly.buildresult.ErrorCodes) +DA:5,117 +DA:6,117 +DA:7,117 +DA:8,117 +DA:9,117 +DA:10,117 +LF:9 +LH:9 +BRF:0 +BRH:0 +FNF:4 +FNH:4 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\buildresult\LexerInitializationError.cs +FN:4,System.Void sly.buildresult.LexerInitializationError::.ctor(sly.buildresult.ErrorLevel,System.String,sly.buildresult.ErrorCodes) +FNDA:41,System.Void sly.buildresult.LexerInitializationError::.ctor(sly.buildresult.ErrorLevel,System.String,sly.buildresult.ErrorCodes) +DA:5,41 +DA:6,41 +DA:7,41 +LF:3 +LH:3 +BRF:0 +BRH:0 +FNF:1 +FNH:1 +end_of_record +SF:C:\Users\olduh\dev\csly\sly\buildresult\ParserInitializationError.cs +FN:4,System.Void sly.buildresult.ParserInitializationError::.ctor(sly.buildresult.ErrorLevel,System.String,sly.buildresult.ErrorCodes) +FNDA:56,System.Void sly.buildresult.ParserInitializationError::.ctor(sly.buildresult.ErrorLevel,System.String,sly.buildresult.ErrorCodes) +DA:5,56 +DA:6,56 +DA:7,56 +LF:3 +LH:3 +BRF:0 +BRH:0 +FNF:1 +FNH:1 +end_of_record \ No newline at end of file diff --git a/sly/lexer/fsm/FSMLexer.cs b/sly/lexer/fsm/FSMLexer.cs index 959a6992..49483128 100644 --- a/sly/lexer/fsm/FSMLexer.cs +++ b/sly/lexer/fsm/FSMLexer.cs @@ -195,7 +195,7 @@ public FSMMatch Run(ReadOnlyMemory source, LexerPosition lexerPosition) return ind; } } - // TODO here : indented language + // if line start : // consume tabs and count them @@ -296,7 +296,7 @@ private FSMMatch ConsumeIndents(ReadOnlyMemory source, LexerPosition le int j = 0; if (indentPosition + current.Length > indents.Count) { - // TODO : erreur d'indentation + // erreur d'indentation var ko = new FSMMatch(false, default(N), " ", lexerPosition, -1, lexerPosition, false) { IsIndentationError = true @@ -347,10 +347,7 @@ private FSMMatch ConsumeIndents(ReadOnlyMemory source, LexerPosition le if (i < currentIndentations.Count) { - // TODO : UINDENT : combien ? uIndentCount = currentIndentations.Count - i; - - // currentIndentations.Reverse(); var unindented = currentIndentations.Take(i).ToList(); var spaces = unindented.Select(x => x.Length).Sum(); diff --git a/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs b/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs index eb5e4825..6a429965 100644 --- a/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs +++ b/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs @@ -152,11 +152,6 @@ private void InitStartingTokensWithOption(Rule rule, OptionClause option { InitStartingTokensWithChoice(rule,choice,nonTerminals); } - else if (option.Clause is GroupClause group) - { - // TODO XXX - } - } private void InitStartingTokensWithChoice(Rule rule, ChoiceClause choice,Dictionary> nonTerminals) From 1146dad7b98ab32efd45e32cfa99a0c78b043b04 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Wed, 6 Oct 2021 16:18:07 +0200 Subject: [PATCH 10/82] cleaning --- sly/lexer/fsm/FSMLexer.cs | 1 - sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs | 1 - 2 files changed, 2 deletions(-) diff --git a/sly/lexer/fsm/FSMLexer.cs b/sly/lexer/fsm/FSMLexer.cs index 49483128..8d78ff68 100644 --- a/sly/lexer/fsm/FSMLexer.cs +++ b/sly/lexer/fsm/FSMLexer.cs @@ -292,7 +292,6 @@ private FSMMatch ConsumeIndents(ReadOnlyMemory source, LexerPosition le while (i < currentIndentations.Count && indentPosition < indents.Count) { var current = currentIndentations[currentIndentations.Count-i-1]; - bool ok = true; int j = 0; if (indentPosition + current.Length > indents.Count) { diff --git a/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs b/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs index e26cdbef..7655db83 100644 --- a/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs +++ b/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs @@ -371,7 +371,6 @@ public SyntaxParseResult ParseNonTerminal(IList> tokens, NonTermin int currentPosition) { var startPosition = currentPosition; - var endingPosition = 0; var nt = Configuration.NonTerminals[nonTermClause.NonTerminalName]; var errors = new List>(); From 9ef728245602831084ec53914e577bdcf45b995e Mon Sep 17 00:00:00 2001 From: b3b00 Date: Wed, 6 Oct 2021 16:25:38 +0200 Subject: [PATCH 11/82] cleaning --- .github/workflows/codesee-arch-diagram.yml | 81 ---------------------- 1 file changed, 81 deletions(-) delete mode 100644 .github/workflows/codesee-arch-diagram.yml diff --git a/.github/workflows/codesee-arch-diagram.yml b/.github/workflows/codesee-arch-diagram.yml deleted file mode 100644 index 0e91a385..00000000 --- a/.github/workflows/codesee-arch-diagram.yml +++ /dev/null @@ -1,81 +0,0 @@ -on: - push: - branches: - - dev - pull_request_target: - types: [opened, synchronize, reopened] - -name: CodeSee Map - -jobs: - test_map_action: - runs-on: ubuntu-latest - continue-on-error: true - name: Run CodeSee Map Analysis - steps: - - name: checkout - id: checkout - uses: actions/checkout@v2 - with: - repository: ${{ github.event.pull_request.head.repo.full_name }} - ref: ${{ github.event.pull_request.head.ref }} - fetch-depth: 0 - - # codesee-detect-languages has an output with id languages. - - name: Detect Languages - id: detect-languages - uses: Codesee-io/codesee-detect-languages-action@latest - - - name: Configure JDK 16 - uses: actions/setup-java@v2 - if: ${{ fromJSON(steps.detect-languages.outputs.languages).java }} - with: - java-version: '16' - distribution: 'zulu' - - # CodeSee Maps Go support uses a static binary so there's no setup step required. - - - name: Configure Node.js 14 - uses: actions/setup-node@v2 - if: ${{ fromJSON(steps.detect-languages.outputs.languages).javascript }} - with: - node-version: '14' - - - name: Configure Python 3.x - uses: actions/setup-python@v2 - if: ${{ fromJSON(steps.detect-languages.outputs.languages).python }} - with: - python-version: '3.x' - architecture: 'x64' - - - name: Configure Ruby '3.x' - uses: ruby/setup-ruby@v1 - if: ${{ fromJSON(steps.detect-languages.outputs.languages).ruby }} - with: - ruby-version: '3.0' - - # CodeSee Maps Rust support uses a static binary so there's no setup step required. - - - name: Generate Map - id: generate-map - uses: Codesee-io/codesee-map-action@latest - with: - step: map - github_ref: ${{ github.ref }} - languages: ${{ steps.detect-languages.outputs.languages }} - - - name: Upload Map - id: upload-map - uses: Codesee-io/codesee-map-action@latest - with: - step: mapUpload - api_token: ${{ secrets.CODESEE_ARCH_DIAG_API_TOKEN }} - github_ref: ${{ github.ref }} - - - name: Insights - id: insights - uses: Codesee-io/codesee-map-action@latest - with: - step: insights - api_token: ${{ secrets.CODESEE_ARCH_DIAG_API_TOKEN }} - github_ref: ${{ github.ref }} From f7f4f9637370843157029ebc93c9f39c19ec3e02 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Thu, 7 Oct 2021 14:56:36 +0200 Subject: [PATCH 12/82] cleaning --- Directory.Build.props | 10 ---------- ParserTests/samples/IndentedWhileTests.cs | 2 +- ParserTests/samples/WhileTests.cs | 2 +- samples/IndentedWhile/IndentedWhileCompiler.cs | 5 ++--- samples/ParserExample/Program.cs | 4 ++-- samples/while/compiler/CompilerContext.cs | 1 + samples/while/compiler/SemanticChecker.cs | 6 ++++-- samples/while/compiler/WhileCompiler.cs | 5 ++--- samples/while/model/PrintStatement.cs | 10 ++++++---- 9 files changed, 19 insertions(+), 26 deletions(-) delete mode 100644 Directory.Build.props diff --git a/Directory.Build.props b/Directory.Build.props deleted file mode 100644 index 5ef84050..00000000 --- a/Directory.Build.props +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/ParserTests/samples/IndentedWhileTests.cs b/ParserTests/samples/IndentedWhileTests.cs index d0c489d4..1c00f6c7 100644 --- a/ParserTests/samples/IndentedWhileTests.cs +++ b/ParserTests/samples/IndentedWhileTests.cs @@ -152,7 +152,7 @@ public void TestFactorialProgramExecAsIL() i := i + 1 return r"; var compiler = new IndentedWhileCompiler(); - var func = compiler.CompileToFunction(program); + var func = compiler.CompileToFunction(program,true); Assert.NotNull(func); var f = func(); Assert.Equal(3628800, f); diff --git a/ParserTests/samples/WhileTests.cs b/ParserTests/samples/WhileTests.cs index 086fa6a3..ab4c7224 100644 --- a/ParserTests/samples/WhileTests.cs +++ b/ParserTests/samples/WhileTests.cs @@ -140,7 +140,7 @@ public void TestFactorialProgramExecAsIL() return r )"; var compiler = new WhileCompiler(); - var func = compiler.CompileToFunction(program); + var func = compiler.CompileToFunction(program,true); Assert.NotNull(func); var f = func(); Assert.Equal(3628800, f); diff --git a/samples/IndentedWhile/IndentedWhileCompiler.cs b/samples/IndentedWhile/IndentedWhileCompiler.cs index 5e37e185..6bc77ed4 100644 --- a/samples/IndentedWhile/IndentedWhileCompiler.cs +++ b/samples/IndentedWhile/IndentedWhileCompiler.cs @@ -80,7 +80,7 @@ public string TranspileToCSharp(string whileCode) } - public Func CompileToFunction(string whileCode) + public Func CompileToFunction(string whileCode, bool isQuiet = false) { Func function = null; @@ -93,7 +93,7 @@ public Func CompileToFunction(string whileCode) var checker = new SemanticChecker(); - var context = checker.SemanticCheck(ast); + var context = checker.SemanticCheck(ast,isQuiet); var emiter = Emit>.NewDynamicMethod("Method" + Guid.NewGuid()); @@ -101,7 +101,6 @@ public Func CompileToFunction(string whileCode) //emiter.LoadConstant(42); //emiter.Return(); function = emiter.CreateDelegate(); - object res = function.Invoke(); } } catch diff --git a/samples/ParserExample/Program.cs b/samples/ParserExample/Program.cs index b84285fc..2e3b08f0 100644 --- a/samples/ParserExample/Program.cs +++ b/samples/ParserExample/Program.cs @@ -139,7 +139,7 @@ private static void TestFactorial() var compiler = new WhileCompiler(); var code = compiler.TranspileToCSharp(program); - var f = compiler.CompileToFunction(program); + var f = compiler.CompileToFunction(program,false); int r = f(); if (r != 3628800) { @@ -206,7 +206,7 @@ private static void TestIndentedFactorial() var compiler = new IndentedWhileCompiler(); var code = compiler.TranspileToCSharp(program); - var f = compiler.CompileToFunction(program); + var f = compiler.CompileToFunction(program,false); Console.WriteLine("***********************************"); Console.WriteLine("***********************************"); Console.WriteLine("***********************************"); diff --git a/samples/while/compiler/CompilerContext.cs b/samples/while/compiler/CompilerContext.cs index dbc815bc..73d63409 100644 --- a/samples/while/compiler/CompilerContext.cs +++ b/samples/while/compiler/CompilerContext.cs @@ -10,6 +10,7 @@ public CompilerContext() CurrentScope = RootScope; } + public bool IsQuiet { get; set; } public Scope RootScope { get; protected set; } diff --git a/samples/while/compiler/SemanticChecker.cs b/samples/while/compiler/SemanticChecker.cs index c6d85957..39f7e725 100644 --- a/samples/while/compiler/SemanticChecker.cs +++ b/samples/while/compiler/SemanticChecker.cs @@ -6,10 +6,12 @@ public class SemanticChecker { private ExpressionTyper expressionTyper; - public CompilerContext SemanticCheck(WhileAST ast) + public CompilerContext SemanticCheck(WhileAST ast, bool isQuiet = false) { expressionTyper = new ExpressionTyper(); - return SemanticCheck(ast, new CompilerContext()); + var context = new CompilerContext(); + context.IsQuiet = isQuiet; + return SemanticCheck(ast, context); } private CompilerContext SemanticCheck(WhileAST ast, CompilerContext context) diff --git a/samples/while/compiler/WhileCompiler.cs b/samples/while/compiler/WhileCompiler.cs index 76a9a792..0fe2e06b 100644 --- a/samples/while/compiler/WhileCompiler.cs +++ b/samples/while/compiler/WhileCompiler.cs @@ -78,7 +78,7 @@ public string TranspileToCSharp(string whileCode) } - public Func CompileToFunction(string whileCode) + public Func CompileToFunction(string whileCode, bool isQuiet) { Func function = null; @@ -91,7 +91,7 @@ public Func CompileToFunction(string whileCode) var checker = new SemanticChecker(); - var context = checker.SemanticCheck(ast); + var context = checker.SemanticCheck(ast, isQuiet); var emiter = Emit>.NewDynamicMethod("Method" + Guid.NewGuid()); @@ -99,7 +99,6 @@ public Func CompileToFunction(string whileCode) //emiter.LoadConstant(42); //emiter.Return(); function = emiter.CreateDelegate(); - object res = function.Invoke(); } } catch diff --git a/samples/while/model/PrintStatement.cs b/samples/while/model/PrintStatement.cs index 26779da1..248c3c71 100644 --- a/samples/while/model/PrintStatement.cs +++ b/samples/while/model/PrintStatement.cs @@ -35,10 +35,12 @@ public string Transpile(CompilerContext context) public Emit> EmitByteCode(CompilerContext context, Emit> emiter) { - var mi = typeof(Console).GetMethod("WriteLine", new[] {typeof(string)}); - - emiter = Value.EmitByteCode(context, emiter); - emiter.Call(mi); + if (!context.IsQuiet) + { + var mi = typeof(Console).GetMethod("WriteLine", new[] { typeof(string) }); + emiter = Value.EmitByteCode(context, emiter); + emiter.Call(mi); + } return emiter; } From 215ca5dd95d8a8fe2e5e5a1145abf5e8ba56f216 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Thu, 7 Oct 2021 15:02:04 +0200 Subject: [PATCH 13/82] cleaning --- ParserTests/Issue164/TestOption164Parser.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/ParserTests/Issue164/TestOption164Parser.cs b/ParserTests/Issue164/TestOption164Parser.cs index 88346810..b95d8622 100644 --- a/ParserTests/Issue164/TestOption164Parser.cs +++ b/ParserTests/Issue164/TestOption164Parser.cs @@ -8,7 +8,6 @@ public class TestOption164Parser [Production("root: INT [PLUS|MINUS|TIMES|DIVIDE] INT")] public int root(Token left, Token op, Token right) { - int res = 0; int l = left.IntValue; int r = right.IntValue; switch (op.TokenID) From cd59b690d709115bbfdd408657da42c5e74b88d7 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Thu, 7 Oct 2021 15:11:24 +0200 Subject: [PATCH 14/82] cleaning UT --- ParserTests/IssuesTests.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/ParserTests/IssuesTests.cs b/ParserTests/IssuesTests.cs index 0265d952..3028a065 100644 --- a/ParserTests/IssuesTests.cs +++ b/ParserTests/IssuesTests.cs @@ -175,7 +175,6 @@ public static void Issue218() n++; count++; } - Console.WriteLine(dump); Assert.Equal(1, count); var eoss = tokens.Where(x => x.IsEOS); Assert.Single(eoss); From b418c04d4f9818e04efdaa3c6d7ef0882158560e Mon Sep 17 00:00:00 2001 From: b3b00 Date: Fri, 8 Oct 2021 21:02:51 +0200 Subject: [PATCH 15/82] add coverage threshold to CI --- .github/workflows/dotnetcore.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index 2ad0da37..db6b9074 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -31,12 +31,13 @@ jobs: - name: Build with dotnet run: dotnet build --configuration Release - name: Test with dotnet - uses: b3b00/coverlet-action@1.1.0 + uses: b3b00/coverlet-action@1.1.6 id: 'coverlet' if: env.RUN_TESTS with: testProject: ${{env.TESTS_PROJECT}} output: 'lcov.info' + threshold: 80 outputFormat: 'lcov' excludes: '[program]*,[expressionParser]*,[jsonparser]*,[while]*,[indentedWhile]*,[SimpleExpressionParser]*,[GenericLexerWithCallbacks]*,[indented]*' - name: coveralls From 35d1f6e741365165e27b86b3a254702227a321f9 Mon Sep 17 00:00:00 2001 From: Olivier Duhart <1224790+b3b00@users.noreply.github.com> Date: Sat, 9 Oct 2021 08:29:23 +0200 Subject: [PATCH 16/82] update coverlet-action to 1.1.7 --- .github/workflows/dotnetcore.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index db6b9074..5a1bc97c 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -31,7 +31,7 @@ jobs: - name: Build with dotnet run: dotnet build --configuration Release - name: Test with dotnet - uses: b3b00/coverlet-action@1.1.6 + uses: b3b00/coverlet-action@1.1.7 id: 'coverlet' if: env.RUN_TESTS with: From 529f1d1cf711efdf84bf6669bcff16a22f408011 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Sat, 9 Oct 2021 08:32:13 +0200 Subject: [PATCH 17/82] fire actions From aaabb9c7e7a9db23e18803a57b9e1bc85c1d12a7 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Sat, 9 Oct 2021 08:35:33 +0200 Subject: [PATCH 18/82] fire actions From a846acd415099f614e13d74cf89739f42889df02 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Mon, 11 Oct 2021 13:02:55 +0200 Subject: [PATCH 19/82] update nugets --- ParserTests/ParserTests.csproj | 2 +- bench/bench.csproj | 2 +- bench2.4/bench2.4.csproj | 2 +- benchCurrent/benchCurrent.csproj | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ParserTests/ParserTests.csproj b/ParserTests/ParserTests.csproj index 04c0f430..296222d8 100644 --- a/ParserTests/ParserTests.csproj +++ b/ParserTests/ParserTests.csproj @@ -8,7 +8,7 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/bench/bench.csproj b/bench/bench.csproj index dc981615..25d9444d 100644 --- a/bench/bench.csproj +++ b/bench/bench.csproj @@ -6,7 +6,7 @@ - + diff --git a/bench2.4/bench2.4.csproj b/bench2.4/bench2.4.csproj index 63ef4465..25d9444d 100644 --- a/bench2.4/bench2.4.csproj +++ b/bench2.4/bench2.4.csproj @@ -6,7 +6,7 @@ - + diff --git a/benchCurrent/benchCurrent.csproj b/benchCurrent/benchCurrent.csproj index d29c5ae3..c99a7bb4 100644 --- a/benchCurrent/benchCurrent.csproj +++ b/benchCurrent/benchCurrent.csproj @@ -6,7 +6,7 @@ - + From 4b98256b7c9eb0bbc10ce72c8e03055b634c2943 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Mon, 11 Oct 2021 13:14:58 +0200 Subject: [PATCH 20/82] Revert "update nugets" This reverts commit a846acd415099f614e13d74cf89739f42889df02. --- ParserTests/ParserTests.csproj | 2 +- bench/bench.csproj | 2 +- bench2.4/bench2.4.csproj | 2 +- benchCurrent/benchCurrent.csproj | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ParserTests/ParserTests.csproj b/ParserTests/ParserTests.csproj index 296222d8..04c0f430 100644 --- a/ParserTests/ParserTests.csproj +++ b/ParserTests/ParserTests.csproj @@ -8,7 +8,7 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/bench/bench.csproj b/bench/bench.csproj index 25d9444d..dc981615 100644 --- a/bench/bench.csproj +++ b/bench/bench.csproj @@ -6,7 +6,7 @@ - + diff --git a/bench2.4/bench2.4.csproj b/bench2.4/bench2.4.csproj index 25d9444d..63ef4465 100644 --- a/bench2.4/bench2.4.csproj +++ b/bench2.4/bench2.4.csproj @@ -6,7 +6,7 @@ - + diff --git a/benchCurrent/benchCurrent.csproj b/benchCurrent/benchCurrent.csproj index c99a7bb4..d29c5ae3 100644 --- a/benchCurrent/benchCurrent.csproj +++ b/benchCurrent/benchCurrent.csproj @@ -6,7 +6,7 @@ - + From e1f08b77f62d9c61d1b9a93b40bb38b22eb43c43 Mon Sep 17 00:00:00 2001 From: Aldo Salzberg <590340+aldosa@users.noreply.github.com> Date: Sat, 23 Oct 2021 12:43:40 -0700 Subject: [PATCH 21/82] Updated link to wiki to fix 404 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8dac292f..9b6e4769 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ See [Lexer](https://github.com/b3b00/csly/wiki/Lexer) for lexers definition and ### Fully and Strictly typed ### Csly is strictly typed, so every parser you define renders according to its input and output types. - For additional details on parser typing, head to the [typing section](typing). + For additional details on parser typing, head to the [parser definition section](defining-your-parser). >### Be more confident that your parser will generate valid inputs and outputs. From 2304b7d627baee2ae08c6889c57498eb98e204a8 Mon Sep 17 00:00:00 2001 From: Olivier Duhart <1224790+b3b00@users.noreply.github.com> Date: Sun, 24 Oct 2021 09:11:20 +0200 Subject: [PATCH 22/82] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9b6e4769..004fbb65 100644 --- a/README.md +++ b/README.md @@ -55,8 +55,8 @@ See [Lexer](https://github.com/b3b00/csly/wiki/Lexer) for lexers definition and ### Fully and Strictly typed ### Csly is strictly typed, so every parser you define renders according to its input and output types. - For additional details on parser typing, head to the [parser definition section](defining-your-parser). - + For additional details on parser typing, head to the [parser definition section](https://github.com/b3b00/csly/wiki/defining-your-parser). +7 >### Be more confident that your parser will generate valid inputs and outputs. ### Expression parsing ### From 8b601e11f4d9390cb4a73ae17703841055b1305f Mon Sep 17 00:00:00 2001 From: Olivier Duhart <1224790+b3b00@users.noreply.github.com> Date: Sun, 24 Oct 2021 09:12:02 +0200 Subject: [PATCH 23/82] Update README.md --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 004fbb65..decdb7b5 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,6 @@ See [Lexer](https://github.com/b3b00/csly/wiki/Lexer) for lexers definition and Csly is strictly typed, so every parser you define renders according to its input and output types. For additional details on parser typing, head to the [parser definition section](https://github.com/b3b00/csly/wiki/defining-your-parser). -7 >### Be more confident that your parser will generate valid inputs and outputs. ### Expression parsing ### From c7472b4679e47ee378bb8904acdacae1ccf6bbdd Mon Sep 17 00:00:00 2001 From: b3b00 Date: Wed, 3 Nov 2021 11:59:36 +0100 Subject: [PATCH 24/82] unit test for issue #251 --- ParserTests/Issue251/LexerAndParser.cs | 140 +++++++++++++++++++++++++ ParserTests/IssuesTests.cs | 13 +++ 2 files changed, 153 insertions(+) create mode 100644 ParserTests/Issue251/LexerAndParser.cs diff --git a/ParserTests/Issue251/LexerAndParser.cs b/ParserTests/Issue251/LexerAndParser.cs new file mode 100644 index 00000000..5643efd1 --- /dev/null +++ b/ParserTests/Issue251/LexerAndParser.cs @@ -0,0 +1,140 @@ + + using System; +using System.Data; +using System.Text; +using sly.lexer; +using sly.parser.generator; + namespace ParserTests.Issue251 + { + + public class Issue251Parser + { + public enum Issue251Tokens + { + [Lexeme("[0-9][0-9]*")] DIGITS, + + [Lexeme("\"[^\"\\\\]*(\\\\.[^\"\\\\])*\"")] + LITERAL_STRING, // "[^"\\]*(\\.[^"\\]*)*" , which allowing escaped quotes in string. + [Lexeme("[a-zA-Z_][0-9a-zA-Z_]*")] IDENTIFIER, + [Lexeme("\\+")] OP_PLUS, + [Lexeme("-")] OP_MINUS, + [Lexeme("\\*")] OP_MULTIPLY, + [Lexeme("/")] OP_DIVIDE, + [Lexeme("%")] OP_MODULE, + [Lexeme("(")] PARENTHESIS_L, + [Lexeme(")")] PARENTHESIS_R, + + [Lexeme("[ \\t][ \\t]*", isSkippable: true)] + IGNORED, // simply discarded in lexer + } + + public class ExprClosure + { + public enum Types + { + INT, + STRING + } + + public Types ResultType; + + // C# doesn't have std::any or std::variant. Fuck it. + public int valueInt; + public string valueString; + } + + private void SyntaxCheck(bool what, string msg = "") + { + if (!what) + throw new SyntaxErrorException("Syntax error: " + msg); + } + + /* + * RnLang is a script language, so the input expressions + * are directly evaluated in parser. + * + * int ::= DIGITS + * string ::= LITERAL_STRING + * expr ::= int | string + * expr ::= expr OP_PLUS expr + * expr ::= expr OP_MINUS expr + * expr ::= expr OP_MULTIPLY expr + * expr ::= expr OP_DIVIDE expr + * expr ::= expr OP_MODULE expr + * expr ::= IDENTIFIER PARENTHESIS_L expr PARENTHESIS_R + * expr ::= PARENTHESIS_L expr PARENTHESIS_R + */ + [Production("int: DIGITS")] + public int exprIntL(Token expr) => expr.IntValue; + + [Production("string: LITERAL_STRING")] + public string exprStringL(Token expr) => + expr.StringWithoutQuotes.Replace("\\\"", "\""); // default string delimiter works. + + [Production("expr: int")] + public ExprClosure exprInt(int what) => + new ExprClosure() {ResultType = ExprClosure.Types.INT, valueInt = what}; + + [Production("expr: string")] + public ExprClosure exprString(string what) => + new ExprClosure() {ResultType = ExprClosure.Types.STRING, valueString = what}; + + [Production("expr: expr OP_PLUS expr")] + public ExprClosure exprAdd(ExprClosure l, Token _, ExprClosure r) + { + SyntaxCheck(l.ResultType == r.ResultType, "Type error: expected int + int or string + string"); + switch (l.ResultType) + { + case ExprClosure.Types.INT: + l.valueInt += r.valueInt; + return l; + case ExprClosure.Types.STRING: + l.valueString += r.valueString; + return l; + } + throw new ArgumentException("Internal Error"); + } + + [Production("expr: expr OP_MINUS expr")] + public ExprClosure exprMin(ExprClosure l, Token _, ExprClosure r) + { + SyntaxCheck(l.ResultType == ExprClosure.Types.INT, "Type error: expected int - int"); + SyntaxCheck(r.ResultType == ExprClosure.Types.INT, "Type error: expected int - int"); + l.valueInt -= r.valueInt; + return l; + } + + [Production("expr: expr OP_MULTIPLY expr")] + public ExprClosure exprMul(ExprClosure l, Token _, ExprClosure r) + { + SyntaxCheck(r.ResultType == ExprClosure.Types.INT, "Syntax error: expected ? * int"); + switch (l.ResultType) + { + case ExprClosure.Types.INT: + l.valueInt *= r.valueInt; + return l; + case ExprClosure.Types.STRING: + l.valueString = new StringBuilder().Insert(0, l.valueString, r.valueInt).ToString(); + return l; + } + throw new ArgumentException("Internal Error"); + } + + // [Production("expr: int OP_DIVIDE expr")] + // public ExprClosure exprDiv(int l, Token _, ExprClosure r) + // { + // SyntaxCheck(r.ResultType == ExprClosure.Types.INT, "Syntax error: expected int / int, got int / string"); + // r.valueInt = l / r.valueInt; + // return r; + // } + + // [Production("expr: int OP_MODULE expr")] + // public ExprClosure exprImod(int l, Token _, ExprClosure r) + // { + // SyntaxCheck(r.ResultType == ExprClosure.Types.INT, "Syntax error: expected int % int, got int % string"); + // r.valueInt = l % r.valueInt; + // return r; + // } + } +} + diff --git a/ParserTests/IssuesTests.cs b/ParserTests/IssuesTests.cs index 3028a065..50bcc25f 100644 --- a/ParserTests/IssuesTests.cs +++ b/ParserTests/IssuesTests.cs @@ -1,6 +1,8 @@ using System; using System.Collections.Generic; using System.Linq; +using ParserTests.Issue251; +using sly.buildresult; using sly.lexer; using sly.parser.generator; using Xunit; @@ -206,5 +208,16 @@ public static void Issue219BNF() var exception = Assert.Throws(() => parser.Parse("a = 1")); Assert.Equal("visitor error",exception.Message); } + + [Fact] + public static void Issue251LeftrecForBNF() { + ParserBuilder builder = new ParserBuilder(); + Issue251Parser instance = new Issue251Parser(); + var bres = builder.BuildParser(instance,ParserType.LL_RECURSIVE_DESCENT, "expr"); + Assert.False(bres.IsOk); + Assert.Equal(1,bres.Errors.Count); + var error = bres.Errors.First(); + Assert.Equal(ErrorCodes.PARSER_LEFT_RECURSIVE, error.Code); + } } } \ No newline at end of file From c3b7c1dc4c385749b8fb9ab77caf3bc56e09a0f1 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Fri, 5 Nov 2021 09:08:15 +0100 Subject: [PATCH 25/82] shorter attributes for operations --- ParserTests/ExpressionGeneratorTests.cs | 104 +++++++++++++++++- samples/ParserExample/Program.cs | 16 ++- .../generator/ExpressionRulesGenerator.cs | 8 +- sly/parser/generator/InfixAttribute.cs | 13 +++ sly/parser/generator/PostfixAttribute.cs | 13 +++ sly/parser/generator/PrefixAttribute.cs | 13 +++ 6 files changed, 161 insertions(+), 6 deletions(-) create mode 100644 sly/parser/generator/InfixAttribute.cs create mode 100644 sly/parser/generator/PostfixAttribute.cs create mode 100644 sly/parser/generator/PrefixAttribute.cs diff --git a/ParserTests/ExpressionGeneratorTests.cs b/ParserTests/ExpressionGeneratorTests.cs index 007dfebc..49c4bbe9 100644 --- a/ParserTests/ExpressionGeneratorTests.cs +++ b/ParserTests/ExpressionGeneratorTests.cs @@ -22,7 +22,93 @@ public double BinaryTermExpression(double left, Token operation } } - + + + public class ShortOperationAttributesParser + { + [Infix((int) ExpressionToken.PLUS, Associativity.Right, 10)] + [Infix("MINUS", Associativity.Left, 10)] + public double BinaryTermExpression(double left, Token operation, double right) + { + double result = 0; + switch (operation.TokenID) + { + case ExpressionToken.PLUS: + { + result = left + right; + break; + } + case ExpressionToken.MINUS: + { + result = left - right; + break; + } + } + + return result; + } + + + [Infix((int) ExpressionToken.TIMES, Associativity.Right, 50)] + [Infix("DIVIDE", Associativity.Left, 50)] + public double BinaryFactorExpression(double left, Token operation, double right) + { + double result = 0; + switch (operation.TokenID) + { + case ExpressionToken.TIMES: + { + result = left * right; + break; + } + case ExpressionToken.DIVIDE: + { + result = left / right; + break; + } + } + + return result; + } + + + [Prefix((int) ExpressionToken.MINUS, Associativity.Right, 100)] + public double PreFixExpression(Token operation, double value) + { + return -value; + } + + [Postfix((int) ExpressionToken.FACTORIAL, Associativity.Right, 100)] + public double PostFixExpression(double value, Token operation) + { + var factorial = 1; + for (var i = 1; i <= value; i++) factorial = factorial * i; + return factorial; + } + + + + [Operand] + [Production("double_value : DOUBLE")] + public double OperandDouble(Token value) + { + return value.DoubleValue; + } + + [Operand] + [Production("int_value : INT")] + public double OperandInt(Token value) + { + return value.DoubleValue; + } + + [Operand] + [Production("group : LPAREN ShortOperationAttributesParser_expressions RPAREN")] + public double OperandGroup(Token lparen, double value, Token rparen) + { + return value; + } + } public class ExpressionGeneratorTests { @@ -249,5 +335,21 @@ public void TestBadOperatorString() builder.BuildParser(parserInstance, ParserType.EBNF_LL_RECURSIVE_DESCENT, StartingRule)); Assert.Contains("bad enum name MINUSCULE",exception.Message); } + + [Fact] + public void TestShortOperationAttributes() + { + StartingRule = $"{typeof(ShortOperationAttributesParser).Name}_expressions"; + var parserInstance = new ShortOperationAttributesParser(); + var builder = new ParserBuilder(); + var buildResult = builder.BuildParser(parserInstance, ParserType.EBNF_LL_RECURSIVE_DESCENT, StartingRule); + Assert.True(buildResult.IsOk); + var parser = buildResult.Result; + Assert.NotNull(parser); + var result = parser.Parse("-1 +2 * (5 + 6) - 4 "); + Assert.True(result.IsOk); + Assert.Equal(-1+2*(5+6)-4, result.Result); + + } } } \ No newline at end of file diff --git a/samples/ParserExample/Program.cs b/samples/ParserExample/Program.cs index 2e3b08f0..41e631c4 100644 --- a/samples/ParserExample/Program.cs +++ b/samples/ParserExample/Program.cs @@ -928,7 +928,8 @@ private static void Main(string[] args) // TestI18N(); // Console.ReadLine(); // TestShortGeneric(); - TestIssue239(); + //TestIssue239(); + TestShortOperations(); } @@ -967,6 +968,19 @@ private static void TestShortGeneric() ; } + private static void TestShortOperations() + { + var startingRule = $"{typeof(ShortOperationAttributesParser).Name}_expressions"; + var parserInstance = new ShortOperationAttributesParser(); + var builder = new ParserBuilder(); + var buildResult = builder.BuildParser(parserInstance, ParserType.EBNF_LL_RECURSIVE_DESCENT, startingRule); + Assert.True(buildResult.IsOk); + var parser = buildResult.Result; + Assert.NotNull(parser); + var result = parser.Parse("-1 +2 * (5 + 6) - 4 "); + Assert.Equal(-1+2*(5+6)-4, result.Result); + } + private static void TestIssue239() { Issue239Tests.TestOk(); diff --git a/sly/parser/generator/ExpressionRulesGenerator.cs b/sly/parser/generator/ExpressionRulesGenerator.cs index 55b8d054..bd2a0b8d 100644 --- a/sly/parser/generator/ExpressionRulesGenerator.cs +++ b/sly/parser/generator/ExpressionRulesGenerator.cs @@ -59,16 +59,16 @@ public BuildResult> BuildExpressionRules( ParserConfiguration configuration, Type parserClass, BuildResult> result) { + var methods = parserClass.GetMethods().ToList(); methods = methods.Where(m => { - var attributes = m.GetCustomAttributes().ToList(); - var attr = attributes.Find(a => a.GetType() == typeof(OperationAttribute)); - return attr != null; + var attributes = m.GetCustomAttributes(typeof(OperationAttribute),true).ToList(); + + return attributes.Any(); }).ToList(); var operationsByPrecedence = new Dictionary>>(); - methods.ForEach(m => { var attributes = diff --git a/sly/parser/generator/InfixAttribute.cs b/sly/parser/generator/InfixAttribute.cs new file mode 100644 index 00000000..ea2982b4 --- /dev/null +++ b/sly/parser/generator/InfixAttribute.cs @@ -0,0 +1,13 @@ +namespace sly.parser.generator +{ + public class InfixAttribute : OperationAttribute + { + public InfixAttribute(int intToken, Associativity assoc, int precedence) : base(intToken,Affix.InFix,assoc,precedence) + { + } + + public InfixAttribute(string stringToken, Associativity assoc, int precedence) : base(stringToken,Affix.InFix, assoc,precedence) + { + } + } +} \ No newline at end of file diff --git a/sly/parser/generator/PostfixAttribute.cs b/sly/parser/generator/PostfixAttribute.cs new file mode 100644 index 00000000..14ef5fdf --- /dev/null +++ b/sly/parser/generator/PostfixAttribute.cs @@ -0,0 +1,13 @@ +namespace sly.parser.generator +{ + public class PostfixAttribute : OperationAttribute + { + public PostfixAttribute(int intToken, Associativity assoc, int precedence) : base(intToken,Affix.PostFix,assoc,precedence) + { + } + + public PostfixAttribute(string stringToken, Associativity assoc, int precedence) : base(stringToken,Affix.PostFix, assoc,precedence) + { + } + } +} \ No newline at end of file diff --git a/sly/parser/generator/PrefixAttribute.cs b/sly/parser/generator/PrefixAttribute.cs new file mode 100644 index 00000000..3471e1b9 --- /dev/null +++ b/sly/parser/generator/PrefixAttribute.cs @@ -0,0 +1,13 @@ +namespace sly.parser.generator +{ + public class PrefixAttribute : OperationAttribute + { + public PrefixAttribute(int intToken, Associativity assoc, int precedence) : base(intToken,Affix.PreFix,assoc,precedence) + { + } + + public PrefixAttribute(string stringToken, Associativity assoc, int precedence) : base(stringToken,Affix.PreFix, assoc,precedence) + { + } + } +} \ No newline at end of file From e266ff132d2d8526fd3c60040ff876f3895015c7 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Fri, 5 Nov 2021 09:20:32 +0100 Subject: [PATCH 26/82] upgrade to v2.7.0.4 --- sly/sly.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sly/sly.csproj b/sly/sly.csproj index c98d0261..6a1476f6 100644 --- a/sly/sly.csproj +++ b/sly/sly.csproj @@ -6,11 +6,11 @@ $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb #LY is a parser generator halfway between parser combinators and parser generator like ANTLR b3b00 - 2.7.0.3 + 2.7.0.4 https://github.com/b3b00/sly https://github.com/b3b00/sly https://github.com/b3b00/sly/blob/master/LICENSE - 2.7.0.3 + 2.7.0.4 Library From 07b56950bd3ce6b54522d7f6c738d3f52031d7c4 Mon Sep 17 00:00:00 2001 From: Olivier Duhart <1224790+b3b00@users.noreply.github.com> Date: Fri, 5 Nov 2021 09:35:34 +0100 Subject: [PATCH 27/82] purge nuget badge --- .github/workflows/dotnetcore.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index 5a1bc97c..49b0d678 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -90,3 +90,8 @@ jobs: with: url: https://camo.githubusercontent.com/12c4fcb3b21fbb2a725fc61449fb1b91e972c4c8a2baaf5904936d8e334bdbe8/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f62336230302f63736c792f62616467652e7376673f6272616e63683d64657626736572766963653d676974687562 method: PURGE + - name: refresh coverage badge + uses: fjogeleit/http-request-action@master + with: + url: https://camo.githubusercontent.com/b0c8ccfcb3256380ae37c312e789e6282143295fa495361ea5c2dbe2169bff8c/68747470733a2f2f696d672e736869656c64732e696f2f6e756765742f762f736c792e737667 + method: PURGE From da159997e536edc6bb45e42d2381e001e49eda80 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Fri, 5 Nov 2021 09:48:15 +0100 Subject: [PATCH 28/82] fire action From 6c8bd2fe23969e4f5f8a3ad0f06ca811e83f288c Mon Sep 17 00:00:00 2001 From: Olivier Duhart <1224790+b3b00@users.noreply.github.com> Date: Fri, 5 Nov 2021 09:52:14 +0100 Subject: [PATCH 29/82] Update dotnetcore.yml --- .github/workflows/dotnetcore.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index 49b0d678..2f49c11f 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -90,7 +90,7 @@ jobs: with: url: https://camo.githubusercontent.com/12c4fcb3b21fbb2a725fc61449fb1b91e972c4c8a2baaf5904936d8e334bdbe8/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f62336230302f63736c792f62616467652e7376673f6272616e63683d64657626736572766963653d676974687562 method: PURGE - - name: refresh coverage badge + - name: refresh nuget badge uses: fjogeleit/http-request-action@master with: url: https://camo.githubusercontent.com/b0c8ccfcb3256380ae37c312e789e6282143295fa495361ea5c2dbe2169bff8c/68747470733a2f2f696d672e736869656c64732e696f2f6e756765742f762f736c792e737667 From 471fe6ce13a1755d421178afc533eebb59a20192 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Fri, 5 Nov 2021 14:21:24 +0100 Subject: [PATCH 30/82] optim : avoid RemoveByPassNodes on SyntaxtreeCleaneing --- afterRemoveByPassOptim.dtp | Bin 0 -> 3127466 bytes afterRemoveByPassOptim.dtp.DotSettings | 123 ++++++++++++++++++ sly/parser/parser/SyntaxParseResult.cs | 4 +- sly/parser/parser/SyntaxTreeCleaner.cs | 11 +- .../EBNFRecursiveDescentSyntaxParser.cs | 16 ++- .../llparser/RecursiveDescentSyntaxParser.cs | 3 + sly/parser/syntax/tree/ISyntaxNode.cs | 2 + sly/parser/syntax/tree/SyntaxLeaf.cs | 3 +- sly/parser/syntax/tree/SyntaxNode.cs | 2 + 9 files changed, 160 insertions(+), 4 deletions(-) create mode 100644 afterRemoveByPassOptim.dtp create mode 100644 afterRemoveByPassOptim.dtp.DotSettings diff --git a/afterRemoveByPassOptim.dtp b/afterRemoveByPassOptim.dtp new file mode 100644 index 0000000000000000000000000000000000000000..ce904ba19fd3a3602a46c03340526c19737a79a5 GIT binary patch literal 3127466 zcmb@veW1=&y8nOe?I}r;BuSnV@)Yu%jXWiJPC{&K+IiUQ?J*f-WP~J1GLn%bNs=T9 zUq_8GjWMQU)Tl8X(`h=!n8q=kPN(ndeckt3`@Z*{-}jH-_v?GE@9g=!*Y&=xb**cy zb*=Te?|c5zRr~d(B(BOwXM-wr2CT&05~xq-~p44Qh5D(64XH zW-XevY2BnCdwkBg{3h9BbEP>sdt#F@d6T+zZ8v;yK~8?b@Vtp*r$01&Y|f0~V+tnD z9zG>MZ(Q!goc!UVb0-hKD`)id@xv$QOdFGzpOZahN{c4VV}m9+vvU65u#~mB)t^1H zX27(r2d-Rj-^gy0PgWb)xktC|1DbTctJl4Qx(&Fu^F2+v_U)5!b@PZvPF`$Nvd0rA z$NeMcvx!49%ivX$W=)#?_~eCs2Rd|`HECka8FVZ+Z*s@l0JUr8OdgX*=f`)fJ$>4^ z#%*eMy0iS19lGXC9+x|QdVcma8uFlQhn{%_)B0uSXHUu@Oa(Qk&7P9evGzTAW3nfv zBeiQb_4b|f$4{S>GkIFFWmiJfbz**aT3c<(b_oBqpk}Xvd#6vF*s*r^?1=?ANwjH% z6Rq#cn|5!`v~II<#!R1v@DJ|r)H0uj9{H$P|0w7mS;|G%wtXj+WQ4GbKUHzmh|QnmvT7?V>_ zfCoM>9{sW%nie+cFkt%RF8R!loEZM3YVzqn3qA}0i&T^0znN~Hkm zhY}HmP3=nsI|OVd<1?XzwJs6+uNI1d#s{Q-5rmdsC)oH)*a|AhdQTt_2Urlb)46H{Q*$iW68O#V57X^mX_ zl2)r^Y#($qa)ToxF9M>GgAE-$jcl0K$kEeef36BT^t=~rn@ZY}LOUKEBKk3LLkA@E z)DaAPn}{gdie}}&M)<{cv80_UWDCBDjoe8hVsZon2SJ$I%$Kq}ZHM@*XHw5#v_a~X zau1~A9zdhf2I*8PM#m9a{uzXIhm}IB-n_te*6b^g<-Q{QH;o@B;9+&S$m+r>MjJhO zDj+PAXIMK9m9i~GJRmwBBvx1u=_sPkhJiB~z9xQJ%3ASM;s`XYJGh-orM!LAp=GYQ zPKDAQ1I590Xn8DQr$K2e!&8YPv|I$Tvb1$A?W3TP2y48MnWb$+>GZha^~Qt_h-Ot} zgX8Ih9sbg4Sv}an?#cwRt%z@!KAh<3ks`j)@?Zk_ytJ>oaqXq0cBZxG?Ay{Y2El9X zOxb0uQW?+OqB~QMGS;{_qMZpH5XDTplSc;*?M&F=FYP5Y0)pKuEX&GYWpm0z4_t@n zXfN4O##Wa}&ngh@Oh+A2+tl4mJJUDiq$3Zm3wDxh-x%q-0XklsZQT54y4Evcgw#&uxV`nL88n^!~!ueHAQEgO)` zpaY`y?V~GfmyZ|E3)da3Z(lm1_Nh8r-(W*WmZJxl*7{bhtYz?jNv6;rt#7Ry0f?y9 zc&%@+p(7iS4bxiR=xMS)8VP43EZUhCmbF|xOZ*FVv@@-Dq^Q^0nf62^uA_LMoe4Xz zNk?FlbQ>iQML}7o_BJ4~cUng{eEw$9n1RH;;FL7tWw05Q;<*de)vH!tqjoiR1 zt!;5cBUiRuKx8NAXyg`OX_JcUXyi6JqV_SO^i(4UTT&;+0Mi<|kFT_S#o07+7b24C zfkqBCbYvs$=$O{X(Np@P_L{-&H9gl}(y^S?(QHfnQwv2@dkH!q@=M|f2DCE~QMC2+ zdc@fXzu18qjw^{QZT8tGl3i^WOEOo(QE`cT?C<} zb|%&xR*IWp`cYtG9n#KJ-&dpz!m|_!E0T65Rx#S>$?AZxZAj64#-ncBXH?uvO*b2`qT6o$0&swq5oU|6GSm)S2mQdHb+@ z%*23bXF>-=PvV&g4(&|X;Vh8S(a_N)+%4^J&n5=cC<6~y4spvU2L?qGmUXX zIa&b;9%yG;eyw!0|JF)D#J1*Yn|pP!QP9qW4v0KfCE#or(9YE9TH9IN1MN&dTy4j$ zE;h3?7eLO5EAh`~BQ3Qv!Ny;i0LorRVAuNAqJmYeP>fCM+gA~hp6d`Dt#9KiSReI1 z@h>1+-xfHc_Nh8r-(W*WZKDU6*7~-)f~_m=f!4R<5lLm!`UYE4C$eE$>l;0#KWeXN zCVacvcc$tbj;<-zQ|(Nx9g$9Cqo>-L`a7caO*19*R67%PV3SVV0dYz@(*_Pl*Th;( zEyB(OvZ&AlM`)>?2{!)HT73iJ2&T0&U94z(3w44A8oBe=*vaCEMs8C@A!14Gk4COm zMJuDTe&SzX)5x`VL^_gyXyjl+M^6<8M=-6C%d2RED;A5WMs7(&QrR?eu%RQr;?9I= zjT}A2YuV6Ta69x|d&#Maw!hGh7{ktl4v3zJ(Gd)2XCk6#YgM@kaW=v)wtClExoeAg zt(^%S5HZD`Vn90+^OX6bRpLR!=P8p~I}^yzYu&P}y9dx{Hi8rsL1?L+iFJpSLOavW zz{WbHo#~LTNIDhWiwj|O(ayvwMjNd=4+MlIPdn44Ywgp*{EwwX&bgh)W#?w+e6Uc~4?yWp_uW70M=SU@+St+j9VT~8E zt&*)QM1t4ana}}Ig%;W1(9VP%{?ZCtGuXkdb|#R|E2ZzW&}e4@`L;-ZXqlbpPo?Xu z8cY(MCe-p^LZ|U{)`2T`xO5urVjaj`A(1vh}X)vsW`X6VYsxZ(lm1`6H%)NM~(j zn^)Oqme7F6>s^j$z9|y}BClaf>Zt#YU|L>-e59L@#6L%%k=Gg5%eOO3_X|j1dj^F5 zfN0nH9}tfyVd-L7LaJS#o;%R=1esJtF}M$%Q&71MJ(bt%ueZL}$Nr>_!ouqV@l<&NsAeU8-ULBpgiA*!p+Rg;cZvDQc`+l4CjaTOosOc055 zR9B$`qI+`XiR)lMb=8_`R`v#K!c$4mQC&6U2CH*Jv3)@+IY`GM2rX4t!Ny-=QC~Z`z$ZR}~^1%>~y1(e8ZU2HRX*N4xXsh)6H!Xm^GUoiqZ%nHNwuT8 zYO5n@UK0b=RoH<|NIdc5lRqb#B5h~GWYkWY?6nfwYEmc>+#$RGmmF5VhRaf<@ zW)*J~hyM#+tFG#HqcyrQ=4e1Pa^FQH`j#BI**DtA;%pkZRgNf{F{0>bdXrY9nIyqBHv6!K zsIFqC1<~sAPC(d}wP*FY$y(f0EIO*I&;d~lq~~lHP+bKw{-*SEJv6GTKo%51XsNmi zWZg~9A|_{}rRpk>-8ZGL%CtO^uyeeK4lR!+kgslvyR);=@>l{XQ9V`xj?nTz0;yg- z-3~3^Pav&}=+II-;D+kfzk1x6Qg^^b)ons`A8n0zCZc(&9S|K5<$$u$J%B?yAU)-; zwA*m(Y6k?_TRpu>gGQAd$jRzn*{Ztr`i+(c6Uh1MzHe*qc7&Fy-Nj*iw6etd4US)fV28i7_h?6R9qcM@7jL#D zH{0zzl{7;X9p&5pn{Ct0>3IMmol}m?py_->wn9We6%&n2-`p=&wFHw5LIbQ>q%z-Pc{?0RJPT%Y)&nEfu@qr5b3B& zLkHvx*5}~4>tH}tTE}{}qgI@AG;keNY2VkfqqX9yEZ4-QeF5Z)A_y&2rNPEu3NeG= zx?he7CFGN&z6*?fYA#nr) zs?vxk+G4AXxE;bTwmS8!EQ6PP8X_t-bU@@=^cn-I(wL{rmvR`mAMtt0q*j#%GNhi( zLPzp3A{xy`kf}^>9!MOarK&X69aain^w?uJC)rqsRHYs86=@lp!hse^gppH~#wtb| zK5Sus;1K8@u;gji{HC6ru4iv!Lvj*PzNtz>2c#4_`w-W`fT}c*^0(Mw`XX@z8dYf^ z^>48kc`9*)ma5V~I^SYf5FUvmwAB6sGVB%`O?!zWv{Z!xGW`}?!&8YPwA3zh<`!FV zi&f#NB&_~I4&P#1Z;7kr2g&}ZdO`=}B15(!u)(4I2Rr=r0ttE-hcmZ>UF|<0mv6C~ zNd$?n*U;$p3#4LwyA>vh>(KIGh9iyY+t(zh#C2$?J*&@5>sH@hr~i`Rwf3y-^=)K* zdkfzr&c-Nc&stUAW~0qhNkFt`p#xG9rW0X&;Lx6h9sc?y{pnAE?K;>kV_A0WR{OBN z-HwhVuxZcwuD+eEZ-8SH) zxdg8@7xp%^2@UNN`XX_iAj&;hvsn?7#mIvCJg0Lg1)jX)%hK%=<;vZRqc29v}yo|c*mAe$QbJ;1X8 zp{3>mJ*7Vv@oUu$Nj7?}xp2{A@CuPx-!O?J=K^t~%{g-Vv8G9cAZsqvyUohoW(^qu zN$Olc2jmHK-U_3D0nG)FPPbVldMWY#K%=<;GW0fE$Ww_UwA5SxDY(tH(SL~}wA5Sx zS$>;sqP@fsS}Nl&-DX>EvqQ9(gsc+sDUWZ{N9|lv=K?w)?P-5UV1q+*0XzKl7=4)? z_66)}E`U^MY-iDtxChW^E`T&>>~T}<9HFIl43MskZ4yrIfW~ zCD`GwhFES#_23A0<-w%p_HASPOiW1dK%)Rssfpc`$s0n%b!hpk1k$*P4QKt3+*gVI z&{AyKO{_-~KUI(CVHky9CUii)<%~6oJ*#CEU^spOvbu@QX%c5+(Al2Q0eJ-L7lQ{F zxCUfTGuzR`Ua4j-&PH^)58_QqQ#;xu_J_{_`wLZqK%3HgZs z!@9&hfMy^FaihsH!M3k20K^8W%+-CMM5tY11o+{S=L4Wo*vX4v4rz$7e;81@+ z);F_e^hM%!pcw>0j^clnhq%Sz^2HI-X*FzLH?tGX>``n;LacuaGO)Q2oy30yTR=`E zkW$TUX(pe0LL7lcRa)ETR-?JS!3>cE9e@Ahh^nnWh75t@o`i4MS;7qY7xL6~=tu>S zskdv+z1zTS%pWo$oA#28&24dWyB!;nrx8WR-~TxBD)IU~S(19QFywaW+)00Kq~-~} ziS0sj`?$Gnf<%(KGob^rh+f_rqO-5L?@S8dloIVGtpCgYe!B$aZ{3wA=A#Z)MN16HD-&-XGX7emSL?TI_K$Wex)SB!ls?+ z!0opAcKZYylHVeVj?OaZfZT!3HAKg~#(;Jvkkhx@e0nKy1RCv3Am7|>9}xqIBec}c z1X8|*KEdze2racHg4AyjZ>1cerEZ)-I=8Uv(2+PoOWinw3~OOkc`9*)md6sv^cL2T zrxHhKsT*f>RUYI*3$mUQ;8$A z)DDQw$d>jHc_49wmfA784YS!T?ccF330{AI&e@i>s-@-dRN}rd+M10YwzTan?G^G< z5)kcx=z!ECnjeMP2*$=Q`L`bjGx@@32GONSYzaD&HjC;bO^g5y2kB1$4YsM4=#imtcZflZDj?lt`gr* zq0x==PS?4G^>9l2B!V5?IMW|^A7k(NThBy)vgo{SoI#GYvj4#^iT4y5#qEbycCM9m z+Y}xcX+j_iZeCVyB*nwohR`xHP*19vyNCdAV)o-uq)Ph zz+csg^`qROID$utHON*S8a zbwCu+{;jQbYx@skCJBf#5gm{#VEOy?NdyknV%XuY8|s+7+a-x$_ZrKxC2edGY(z#9 z*tC-GZEYJ`>$@Z_$}IV&ec_}d_wgl(qqWUmyCs3>#FE!WI)m!+4T>J=Y-QTm`PR0M zh)V7ws$$cPGdds}>3;|IVfO$7I zjqPt^6|pR-o9vJF1$02}p#~Yj{^NEqpnU=4VjC+@PbH2(qkRFSTw9yZOq4i6OYI9F z_1fAAo=O~{r7|9*Q(GHKzDXRRrPf4{p>3@M?In)TQgh)@TPtX5vuN*<%r_xh+S>BA z`o@(@V$LO27j!^gCfm=l*E<^=%6RPX*You9n>&&Sc9roUpSHD1tT__T5NLE_0lC!H zCgFj^*=VWt8l*xy`x|wO#C2$?SyJkLYtYW#U=5X|&XSewtZO^_4cQ@aw&X0C+0I6^ zv#n&UBp{k4=zu&=-@9@ma0Cv`672BTYYjN*^-3bxRpni&y=`k}Ef_UPU{mD{a-^NU zUEtyfEme7c+s;03XXQa8K}VH0Iv^GAaId4J(ZT~1Q> zzgCE-QU&SJ-dLvx9s-zGTAE$9;hBg2jn&E4CtIh;7~mZvbue&<6Q?D ztvg5C+m7~DpEyebo9aBA_-(D{k zUAB{1nIQSSuCd;ZwB#k=r!CBcXr-8&K$>^366}@|N1&Mn(yF7_>Jyz(_Y~^L&b$tm z)4^_qM8ZHsJG&eqJ&h2=_l>dxvbKY<@VQ7wG_v!h>#&I1P{a{@Th+snk2<8kC55JC z!Z$p41dmT6d(foSjx8Bntz-NFdcZ+I<>N#C2%-Co*xvUFzw^TI?mO zl1MV5xgD)JZgFE^x+uTZvNLbg7;XM4OWVzjlRB6d+c%wTb0`1Qt7eMG#3tl)Cp*w7*2OJLykl?Tv8API+E&ce0I)+ywgK2s&8_4?tRx2rm-60kzS=U5)AVEUTYo z*U=Zr2H3PxyiR{WI%nBjo=9#W7u52JN{$T6vJ#o}6uC+s&{C_*R%g3|wdxo35^Nz4 zKvrbgdfH25M+P+O&$vz-_%}2w)KQLt9L}Y?Zs%hn@Ws zUZhT1hJ4rA&UV&U-(6BO1RanG^raoS;CTRt>@;<@cgUL>MKS~rXroikkH`{z;$9u; zl*k=?%cs_Pr)ILJghjctvx|-CVzr2YM6nCG12VUZwdRTBM&%AIl{+A7x>#epmXwzr zS}J$WIomPT>VD*b*h21r9P47gqP@fsXtah@?JC~C)5~kggP^0_0r{be{e$)rN1)Lf zvcPp7!KWX0FVs=)fVAjp_t9SBI?yP0K>BpGsXUbk$)crl2V{I#yN0+)T!)rgL)N*S zN0|$!Mitt*oX8!#9!o^qPfA9V@b3gU-qm(@wd)uk$sLLtdELAM?|&R=$&;RpTtJ$F zkcsG=X057qOR}=V^smUB>UUX*yX;vOcS)!zUcydmM|u$JGc^m5Pbzc%aYUba8pkLE zov%O^IZ~dbwV+EOvMzI!kO_C$VRR&}1I=y_e8YpW)Gg0HoJ8ozJ0N>~r)@z0>vJvR zIutq;Ez9naXq%vb`2JO!d>xOq(1TT-WTw z-i2O^t$jDE)y*C*VJ@j>CUih{mFJul&P*84nF(ZYH_KvMlDOB<=*$F?*Ue^<9g-%> zURvtR1hS-?f8J*fwj80Q&P?eB=yXM4#-nv$Takv4Fftefz<16m&inkBhcu~1k$Oy zeaTaaBec|+31nz@`wLGcj?hwPCXj;ewv}9yI6_OEnLw6zx31)l#1UHRWOS*!ZRu`L z6KhF0eF*uqyB+Foz37W1^~{70$ZxUEH{23z;z)SFUn|L-tUHqkc6DaLg9<(D9%3L# zoPWCenF*vp5Br|EAaR722NPa*?O~(pa6Uyc+cBoJ)R}3=U>niHPB9ZD!E4* zdsrE=L*hMUtQQ<*wxHnNkDXFLI>n=`tnSu@Zr#z2|N6i*??X1?xYTO#rACv z`@Dzshe;CHbY7^`Q%F8>K1@v-kdYu?^%L^=8Y22;A)=MMM^9_q)9xp3lGO9U97o!- zzH`}@c3uFJ_mg#9FIA$oD;CMeGPPsvPhQo%dK>Z(!GWo6$2m zqBS0*c`tusqqjCfvY^o#57HY#;w*6;TB<%c-cLP!uO@Zk!X$zR>gn2EHm{d1s$KTO z7JB-TBeiPt`NTnHLPAeLcJ;FASeG~gjrKY0!1gf_{SQ`5M{r7ZGVZo7d)a14But5D zroDdlm{Sfd)x2HX^Ec~XsJ8^8Q9yN#E2wu zD(LNdJu$$y_EmWccUux6V5;Bt^|r;mZ8%9PNj)!sZ0zlyJkw@@DK0sBdzA(of9>Z6 zuzJ&^4yMIc=N|jG_dh)^l)c9;^tLZDd54UoR)gq(l*Y(cWR+KgaHtyW=xil1U7G%+ zo)_?dHuIr?Y9($Gc5=WrXtS{e39z00C?Z3THM>z`e%{?}Q_7c~D zMzemp>ug8o4;>42lm{U70ckJs^8z%=1CY*rY!y!>V#}hX@&II5pZK`|w?j*<2P@nT zU+T3hNp45TQJoivC|++T&U?lt*IvS}F+J1Aw)Qd21xYtVG0=$;e z_19w{pCds>Y~Aj)%YCdSPbH}*%0~Cn9eS zT0D1XsoVki@ZR`_!*hq0%ALx6#r7zB+&;$CD{tba8zzwN?zMA_n#2)kw1)I@oj;HV z^LrKQD0e`b_KlxhbRB54hU|2myII?^2N&uncR^FtBBJvGY#=LHtL|scdA);aofrD_vljjA+gtcrFcK;UofpPCGKh_# z53vr2&I=11Im24euumbP^TKXNrn9te7+Hwuya2MUpIyzYmpB_VIxpaxJixb?pGYEf zMCS!+7k1hYrZKZ#O`aDhbTTc=&i7YUGqVPRiqw@mDhW^%>43YS$fR;Khfb8w>pOMk$WE`QT&I|OE{`9+*QJb1%BP=>Elo_BH z9DRWAZ{MAMUZ8>m*~={X$Jiu7xvBF)`vF#KfL%dfB&p{GbU=Q?XnztaNDSz_05W)h z{gKg@cz>YLc>yGEfX!lklQ=?4ofkls46u$ol{i96ofkkh4X|GmH;E&(RPA4GpzR-E z{~%_PP+tqVIKWN~u<4AYB=uB)4hTPYWZeTB96A+Xhriyf2OC$EZU?(M6@b(mXk|F9 zNF0GiZ&E-y4YW+2N*tl(!9)y(4zy`Jl{li7B-f_{tze*i_AY)Q89dSYb_gAisKi!a%wXvM!98#Mz+H`Df-J z8!^b5W%9-s38SD-g`orTCt`iQ@|1N%9Qst)wn4UXkmb={5_GmFbU@z4MuU)57#Nor zg(HLPF2+>i9zf&gpF#HdAp0FbmISs12{w@XiCeQUx8YEZHXdx123uvUOa4awXs2zH z$X<|#xdomVdiw1kKK16&=`q;;0F%V~1C2bGGguo!3C2?rMnNOD+L2-OYs*B5)|Ha@@|(J2UHZGNO*M3Z(aa{&_!hxr)v81>|1>Z3mnR-j3M^reKwNzlAxokLI>n=##28L3*wmzr8{KCBcq77<_qw(PrH+;UO?H$x& zk0ud5fur#Ona+ngh>XNNfJWo9^#NP)fWL*zWAc80XzkVbpaar}jCv38Pkh3m@j3H= z9e%*yiY!dg(fFVP@;sx)5A7ymjRB1h$mIv@E)a>20yK(FqhVHYm>q{n5oy9JKuvq+VQju2(9&YB?ONBFNV)W!oxpwT_Wga^fT zEjk=8qmJzC9%1W7_#G#m^~y2W`N|Pez<;+#W`Z4%<0HJL#Ek2RMs}({C^kCj-@Xqz zI@5xbcrd{qbfD3F2)?0nH&ofkMJdq{om@d$KWLPQE<&=P(a9C0|AX-xe6B-F-Fj@y zQBPM9vxiyD9U(gE>4pbw(Svq|)kUIDzlNTkbYvaToJEZ&B=i(y?}Ii84T3a20hwo?+9g>e}7#_ume(Sr0Gcz(a27o>(CwRozTrU``f)FEN&TTC@@>;dTQbsriLq{yEyUoIBTOn|({wL_Zy@`N z*nvjAmE-G*BmMIfJyUe#8_2~X{eecl6}XQ2GayArHy9xGM#cVnf1ptwfOHyVEg1oc z-l1mEQh5L}bd-KY-bIL7>IQ=t;9JMi+#itGju0^2N^RkX4o2A<7?6~sg?g$RCUijb z>EajBaRdX>sgP}lM#URvc`qFympB}aGA;;QjwKP@n4tr5jwg9|{Tm^0$W8-itH@KW zmX5%t&qm+@ZT65=9Wio7zTvJ$Ze_N0&9=#SEIALLk<(`*Kt^QSUw9&U5mvR-eHF;e z?D+lQUjwM6?yHVCo4&iy?}`Ll7;TVk**1r!64?=r=JvO)Qwfhh<80yx9%!^dKF^Nd z9diU4&F$>b^5q6}mX$Bm(P)EI8f`y;UZN<8MxzbVcy!!p#g;`&jW$S+(J>F)4lOn7 z=eQl+_3CFO9Kko;brMlL@K1nKZTQ+t_%(7nM%(JqL^kn@hqxE>p!XOdEFZ?P#P9#Z zXjd6yM@Pro{nR}8ezbit+78lQl9~tTfRtcd4u?E|LwV5L+3w}3Du>iOzysQ7O&m|3 zbgwFRb)!jt@U0~6*I?fJL+6ztyT(|~7%R=#NdAOM$PkcuW2_Qv63-A?Dnmfl(plO{ zJVR)y4EfU8Mw1=a5K*y(3<3FQO#I%5BhY9)s5Vv}EMT-%IRzbM2uQ|Qdj%4SBhY9) zSm-)S(8*y{4m!#ZkXB>kw{snVMi~OqcWnHAu#hZTDnmeW$Jzy+NL+`OS`XH{oeIqD zWwi?J=th%>;`K2+7*aPGQNphq%@bpFL4Gwcle~;52D;Jw+L7P#ZtFJCZbfY=Yk#4mAgxkEJqZ`e|jtm27 zMWq@L-DrYL%873t9DznRn)rqX`^l(>NNz{y$U7j^A?%v7cq6~%-;)SMOGV4F1LIVo z{7-4Nkml*%Cc2PgALm#NVjy`MQFL^pS$3R|{~-p|$x)91h;B4DJF*hC*O_p^Yu#ve z9A|aL*=vwUK10N&PmQAkqW2!1LfkN*8%>ZQwwj937B-==_K{xDEz%qX|-fynRAnB#uC%vl&R|@%9E!C63Ti zH<}>B#@m}bl{i96-DrYLA8+${DshCChcjGf#d!M}PbH4fQa75H$J^HNoO^lGg@luY zkTa-`w;gmt@uQx#e2ZTw9#UOIYOJ5ao`LF}c<&*WST~ zLHe+8-fu-JAIv!$FWgB`7wJ9BMKu78_1exnyVZ}oN^ke>Kf z5PZX_-?HxfkZZ?s(t{n$IgoR?{to>VPaUD<%OH5bU%B|D_4l%LFx`>;=eYZJ z1<|bBpwKse|MRf5c-THiM-sgD_dkw23{x+vw1D{gA4mR^_MO7`&>w&Q0y172*X^0F+D#)V>%eW zdWdLIZ)_OwX{m%qjG{JsDhDe-k!i2>8p9!{Mg3sv>VDmMRmj3={g6*AP z^LZ+9gqHsP$9-FiUya!7osF>g`=5!50YBwzbC(r*t<{qG1G0+#T(dHXeE3k}{m(?J zH8EyY>S~D&NC|X)gSeeC6MeM=89dRxq^A-`+E4V=5+rY8{B*4&wA5+|vSecV%12AB zmLQuZ+H#mAu0u zj-L;41RBNd^T~E(vi^tWTmqZ!>|g^q4O1Ip=Q?m`->#Hr-%hsq=tzEnC`0s?2OW@K z)60Ir0}SX+6{K;Vb%sge{eeavWan9ry!2SZrjeWDNE6!sFQV!mfcy>wHgt3{x*XOJ z*mbAcdy00=(X6|TZYiv4lsn(&*^WH_J-ZIU1K8xj7kPFxFV?W`Thaq`Kn{~3zYL=Q zhjOR+6tUevw%5EN*&lS2J0Ml2*eq;FoK2<^zM->=b+mWABtl1&JJbhw{SPu~@`D*( z1xl`>mm?R!iXyn2AskU&cEk#EXGDNwv$C1Ib z|3i`7fejr#$Y3KF3D<#Lxx-yFH^0|)p+?Ft;mCY0t~EY<7n@t^mb?*}Q~zf7U_Rf? z*7$&w%D3a#k+^TrXnfk{TaA2sm|jXkbTmHbfShD(^uFH56b_Bgq)piA9O%Y!qyV6T?Y=0&xL&ZINzpX zU6MLJ=z#P@XD{M97|{5Dlr4zg{r4C^BM&+jSe*iU6u%^{lbl&Y9MKJiD&l}>Zo`I- z-qhR|<~HmapZe4E%P+U&a4M)#%XQ|%rn!B(z?K%+N9ai00}y#|fL}S_X9jp0*PWyX z=z!c+I`JmOb>Pt4ENmjQ($XglQ;s6<~F{e(}6Kv&@hS65#gpcsKs} z+=fHBvvr!Sm{#olk8%eckiTS-@p$dA#(;7M(8z1h;8M%iC zCJ}z0OXCA_cDiL^N8)y%(fCxJVc$)+hv=mwL`UO;4#;w>UqU=X;L!N=nqf_6#4~!( z(fFVP@)$NUh=JR|fW`-8%#8Hv78*ro%?z76mdBAo2hmkniwd zS?~Z3&F!z8?Op1sYnVSlM{^tG_)L2WCW#}^Xl~;h+P9KbKff-C&=KVhzj%n(6)W(m zz4moHI`jFRL*))g^;xDCXzRjkO#^gbU?aX$-0C1dH{!VXVEO1 zFe~2t1RdoLIv|(nDO*;;YYZrNKsL-ue@6+8;&yVD?VV+#u`UU0n%n4roFrzg=&i>9 z4&_dn*>--GJw|&;YVM!|G9r@`8{#?`Q0{=#n(bMrO!OE)BM%18w)V4aIdPVRQP9Zc zIr3+i^hx1>Xl}!Xjy_90C(Lcwl{=gKcaN`b$NlKFbzMifqw(Rll2_KW!;JKswUWrp znm#@t`)9}BymC9xXnZctwo|j?TM-=b>Q>`}4#)xgI)eN=eG-Spr`{u0?h(@iNzl>w zpaVj(8%`v?ag70u4@jp+;`eqLa9*uF;?XJK_pcvu7BOMUJ<#}|15%ds2Z@3DQ~eLN21abZh!wtpcy73SEXNBq4eK~4CU+%+%p z``5)0jSo5?3_xLj;5ZI~9sbh0w%Y<5cFP#=gXdX;Iq5ycj!yg|=2+J`(F4WKKy-gF z(-B35$rXLm{lUh0($Q0W_S)l?WZO2!R?dl|5ZH8ofDQ55&yE!^W#Yy4-@42yw=EN{K&p6j%eieIHEYGdaaRb^&_kHqhf3txxS9ba%v1TaX%1&ZEO9 z=y#ma0Z~uI<_HG#tI$LgZMIYE64(g8*xJss8uN<9Ky2uMq((ShzFQHoakx!1?fGd<-r6}e}R8;rgC7TrFN#dpIPSx z>Hq6u_@jE3LAdac~2BOMg#R8jN9MR5%4v4(ICfI>PI}>*Jiwj+A6cFrQX<0V- zaXY*q{-#B+qn+vU0z0!H&IQjZJkZWm@i8H4D_cQFJ5&3|g=m+lo`Q(2+hf+~F^{$4 z9oV!pp#!44;TkEyh5_wN=NH+?$D#+BpkZg){+P`!M0{@Jo8|(@s>jmj94)mo!IspC zYZdHT-_AZ}9~RMpP3zm5g+gRm9tS&G-zqP(?~3baeQWASQ5~&suqAagPn`|ZTHnSj zv|bC-y~YErZ*v_f%BJ-VwxmvE!?e~ndYbf_Lvq3nVbRWXY@zKeZbv)QIY-pX$c6{n znSO|f*0>M@?M&E#O}=UVID%8!nfm%S-? z?MxtL9*<)xUD0T?L25njYs~X@0*3yMLQF# z7;UuX{5&8mdD@vaJ#I@LkE_4iA$zqmp#!2?S!V@j!+>@sko`E$Q;8$cXlDXB^?3T4 zNK5TZAQy}1&{8`SNV&z)181Y9_Md{qR<96A-I<0iwoZje7*p*`=zyrLX0Wrtp`8gk z{G}DPPC&4$oe5<5VvkN-m7&qj1hQqZvxv#rXqlbp&!NTfWaOtQS{_X3e7ZP(qR_wN zNlWcnoquna7W=-ay)pDhd)A1bScRX&HQwzo3fi-}{=^y-N3>_51ETdqW8^w;XwSk9 zf7RmY9Rb0vJotL4%`9XK9%vLmR{kV?B=s zwNAU}fHdI2ZAb?paOkvKX^DONlQ`>x&h~^3h-}nEygwMwuTQsHYK@n8WqS*Vvth@7 zN%{%vu_RVP%0_vhU!Sh>gk>)=u3%l9jh50`y~O4$iC%|{*RM~b1EN|?S>ify=+oRF zJC?*Tbq}D?r@29nE{Wgyc7&F)^ZgS0VoCZe!8d)H8yyh&Ry){%L!ahu?)^E!)B9Ok zLQnN+?i@#2f#}vFApI;$Nbe`oqXW%A5aLFkhoe)0K)VicoSKN}yeHzAIs%P;eHxv$ zPo(#hmiqN+kX=t$eb^+fL(8iZ$VX53{|Z%qkXeXYmIujLYF|F#HI?crRVo@E{rWU) zAkXmNCB)g_P=7$GElu|gnn56B75?uaZAURtU59ki=hkzVTHmG7j*lF6^ttsDjwsf# zego0x)-W(0(eQ~;U#l;+%j zvPAT#oz%etRdzL&S*c}l)@u(^bW|s{bwsN~O~h9h5Y>reo|2Ag#EwYlsn{khvw_QE z-5c^+bs{<-TH9iEiviV%m7lW3m;#YxBJw~t7#}aQjmzRZCFLB^&IGb=nf|-~bA*mDEvXaPFs*8Xp3)zAtkuHp5Ej*m-z>M&%ZtTLbz=D^ z0}|PYwd%zBj)+YwScrk@MC>HlVx5RnsuQO_X`P>p(Fr4`@c|k3Wc0uhTB=TjjlX0= zdE*GCRVRM9!d4Wr1rIcGho7{qg=_)Q$jx3ML|!X*0-}+-{G^>J&Zd#8xI&0@Qe&Wz zgDr`~7+_i>*KLJ0TH!j<3wAVeBOOscQa#Yf!Isp~9_Kok*2vLQyw+UP>~e&jtFqg^ z!d9(Fj~nBo$_^cn&{K~a22>{!QM6TQ#5$4ii|xA=c6NpH%SP~8Z0LZb#Q+1U6Pc&X z7tQuqCo-v3CxSG6D*7f}(P*?mdKE!vsXCE$hn1oaO)FsDR|*zT)ro6-MQYDtu(Czr z8lpOp%7L{?XYH2*LYbjD@z_(g^QmI1i~r{D?}bQ5_qT2b1F92YJNHz2O#zMSM35hz zN?&_vsX7s)>PnAjtlwy<3I(La%5*kb9!c2gv(l@eSP9YcXaX5u1fk`z1hSwALdydQ zWL*&tX!(8u*}c+de7ujRr7G3xPuua8aU~CRm5>ro+gB@N+%k!fR#;W4=zwTm$DYEW zN|m1Sm)7eVh({E=s#HN*KOL(L-xr`!r3%vjY0n)!b%d4&6Uc<8ok?tt&{Fl=mVLJ9 z>A0f@uRlQN{L{AK=^~?$s7FseZF`@NJBIs4e^ig61EO2_$T zxPAJJ6+GkXl-8=$SZ{g8mOt}PV|~aGSyslU#u_$sG~ZNe1>Z&8FZQJU2)9B|p5LIcP zJ5oQBPiG)w(UaGz(#k$B9pz1h5`|uit!?bb^Q`rFw%9JCeE}r92trF$X|VAZZWZpDuxqd1@vN;bqJwYR>vPr!k!9(H z-AsG^7th+!XL*+R7ZC0B-#a25NkFvM!-kHYL^e!ouW!D_s;nv2AMN$MBa+Idy&g7n z^i=ujb}+5Io}S{hY-ojbgs`YeTf4^Q6}O`*ZI>fri@p&9RcRkNqNl1JLVr}HVFxxL zu}Z@!RcY0pvo8~fP_b&XH9jC2{2vb_j?hw78f^Tf)mS@#BbZi|HfgQ3dd{EdY4AWJ zm;0RcEskj9YOEC^>!~%8MsEFcwy?O4Ms80;Vnp#;BL^EgV$=HT9$;D{_w{pjqOd=~ zH;r7WwL+wm%BGQn4Mcs35yiAdj-KMRJk~kO+330Is)1{*?b;Xvj}E@6u0jVS^wbdy zs7fQEXv;?3z()ARwsEa3UhDj_5xf=~Iv{CYV?b3J^OX6bHEK5ED-x4hRT{|0YkdXR zis^G38jUu{g|)HXafFtt(pYy`DN1AdBH?j1)*)4C9eqXGNe~W07gj!1X{=(j$-+hn zwm?T%^0aGCecpyVANPf@x~NJ+2c$hZy%5*IfT}c*rO(Iv14p1yl?Jl;`ScZ*ma5V~ z4m=-kS6qjd+J8V!KOd_NM`)=E1>~C|2racU4O?gB*Toe!to}keue18=;%ezTAfv77 z2^|o<_ox&41Bdn>?C_U*xiBEu)&2uAeVyIKQ^{CFG`h_LS+OqO%(>UJJecr$>$d{ezoQ;;cm0I;voBh-DkwZtf zQs{ul`u#x%4&6$9=yqoD^h)wHc&%Hhx$EVDvZ`AOqFWr0vqgM^Mt3!p*V}hLwYKO; z0-Nq?&;fajr~3i|hwf@XnyydJDrgkZG3%|@`j|U`O?NfufHZ+gd#WRF=r;zw-z2ZM z@U(G>LJ#zf(VgpU&3fwzB2i}P8>9O6=Q&3j@+3crXeHNg41gS4?^S2TfIy?~2lshF zY^sE|1_T{_3mD{w^)atyM>P5-CrH&7;#o#W7A^JNB#;&_#N2TmTI##LUu=?{-n7-P z95{jX1gAPvVd#)fQHu#<3wE=-fG3dX+s&9y=53yz8wPFC$ zdPB@>w?j*Pn-wzQGY$SLGd6OGRg|BaL{f`ad99 ziMYYmpQq0uijbUA+-kjOCpW~^MLLR`zK;%aenWg$;1wh-^=)I2GB3u{l-r@D@@=rQ zJqgQsBzT~F18I*MPbH2(qkLQ9I)ixHlROAI`nEAhUJ)H=l!+HzX9PO0rReC}#vq%D z_y&!}2W0`xojG?)WjcJ3QiES|~e@23D8dH!8KTGc^G@3sn zTxU4#`=^YL#uTLM&*DkX*`U$PI^sGS)3;M}G^QXkf0phWG#XQomFY+pEj6Yf+kO_; zH@8De&AHFr&T;I#nlh%BL5L_l)tLS%j49#QH^?h(vTqC7!f8t1AaCqQHahu8K=ciA z*wC59Q^jp8BGdX#WcDWOvB_%kK;k3EoYQwA=Qz@wryAFQ=sS_C9l3?4GgAar#Pv7MD;W}(d`UZK% zX6-)<(HTt&2j6r$Z2po}c`5GBAqF~Y_IBhkbk-vt1A3~n=9iAF;c3g@0f^Yql&YI|eXs^E)aSt${>K0_}OY!ZCBhaY21=;mddXCak)h)vN|=zw%V zN3-79FrexdBzLp#V%jYnfkxFW$imJ3#zyPBBeYa?3$lK5ycctXma1++_7q{GrK($y z6Pwd(FJ}Z4`m~QV9~`P~vBO_EAnyh? z?24`97OS(xZL?&24wS=xSL5wG}>wFzaq9~JlLC}qx}@*^cL(TZrEH08m+J(-)xC%uaGQS zYJ~+U|4OW3U5A$1HTQ3qo%?Cqg_+_AG0@&P>=o<$iq};do9>9bR_%fgh-&gN0l|P` zu;LY){!0ATpV&eS4m+Yb_Z|}LXlDZ1`bu0w9DznV6Lw(ZHGvKOkp{=s=?w zG}>yHUrCEjsO&&0ZjCFSv(Zw!3~c;$H)f^>-(Xh^MsBrkTjThI^+5H(Y)AA&IT{c} zXO$!Wtg^!nY$Iv^GUAmTPAP8RZME%NeK+fnWD8XQ$cI~F#`}6rOH~0NXSc@Db`NN& zDxm4BV#|l=7fH5|Zy=RlP1k`&`8LLNhS0tdc@X-eDgdO{tA4jpI#u>+092V~8wX={8IEtR7nJ70}?;B2&1j-GQn2eFf%S!hR<9TBCcJwe_D z@p(%4HF8zA*$=N4Tgf$YEgWIt_bd!vYvlSkqEEC8MFOJAZoDH|JYAcDsItQY?8t+& zheJkZ4^YKnYF=nCZf|mCDs~Kkp8cw=MFR)Q;-R-rPYa9 zwA7e_EP5^OOde5MYR>I-JAcK_gCz=Mt;&vw($l^m+d({{gkP22`Pb~^YjG6|wTmjd zGTVhbfX-ATAgb(O16jh;|3Z9c!n7*8_S>!2cGC(gaXYMUs_X_k(uSuGr68*8@*Gjk zr#uKcs_Zs7qS^a#3ZlvmWXblpj=Byss_gI$53~*pV0;{*BdYA!WmuK3WCZdEnj>sU znU-a_Z)*S1m@Z)p2p*^wEBCrx+@3x@^hcFlJxAo5R`H;t%C7I5(izXw?J0=ZhQ4l{ zUXSajj~r~O?9c(xzNne+Y#7j6gp4<>;B~))EeV42zGLVu!lBn~`RjiBNk{!ZwIZpq z1KCmpp{3p;z{X!<(z+u(vFk4S((CqV5gpic7rkwV5LqU5q8;5uH`rknb`a8B}ZG#f!$y_sI`&{F3t z)*V)gQZU6EO%^GgvljY_bbVQVg@RHjtS&ldQF*gg^}&Ox6xfbXrt6%w=S^GxX8hJg zSY33^LI*^r-9d=!U_j?AkQ1aFPbH2(qjMI>*KelZ-O^I$ERa&W($AW-)Hw^J#;*8_ zq0UB2otYNzvbMXTZ?|Ggb3w?YT{du6+~-nHQ|N$HqG`3@8yq@KVTZr+dHS<}U{|Lp zkd3?2PdU(JC%oRbEB$t#mIo6t_;^=(Pic7wq~lw5VOOkfy+3%ZQ%;??tn6FqY#=%_ zp#!3GNw?q|9Qq#eRAYHB#%4 ziS$CB`~}(kR{9AH8l4VLzhwvB@|mUC6=JPV{-OhNH&1o%G8PesKKWaIw|(qcH80Iv4(Y>!MCf_4T3 zcK?k5KX2kq0B+wr+37H+KP1?w|uQkoL2K4jjsz z?asEb1fN+bS;(f`0a*n|dx^6_qulw>b)M$wcR`1aD0jGX;Iw`UWE@JmKbX&bf^rAs z?A!4+!fzI!QSMaUW8b}9Y@RB2&;i*F%WmZ7h&Yrxz4lnsJ;ijCJLrJaq-hvE8Bp$k zjML9#nnDe%KRh<<#71;fVHyI|ExXcd&zw{K^do?Ed=)d-W#rImV`c z?}XR$lex3|9UK2n`YM*poptZnf_Kta3J~QEIw10(eXs+E|Neoqsh2MV1RdqhSMS*I zchXleXp}o8_R52MXkQ|%E_6h>!#h{JehoyMkfJl6H?7JYkm`Hm8$yp8G|HX+d#&}} zVzXYkgAT|HSX4oIzQLi~S+v(C?2T1T>bipth|VK*5g!E%D0e_M>`fmZXf$#s_uAg# z9w>Lv0qF;m&J4~5hjORPyLNu>KV5gw0ns`YV~qj-{eyR{79Umuk$4QCkq3j{wf66( zuZhW#%X37xW!f7;R%zYA4m#O9jVB}6{r3<2lUMrvhfAXhb4TODr?vQO)KlmzLQ!n< z`Sg~?2V_6)@kHWwHofcPbMaj}^=_;!GeNaGYkbfF(N3mQj!rw`(D>BbXXWFqzr=kLWD))8p*_P^48`}Vy!w}Xz}{-Xo(7HsE3PvOwpe~`xe^^V<i+HQVcF3tq17+=rdzgo?_19MF>X4&%4^-Fp#yRQ4>W@v!GL10>wR0x|B(X{ zv4t3X>BuIYbYQfD9mN3TqxaMM1C8#uumf9Fbd({kgHyW60?9ZKeRBjF#h~v2t9Br+ z*FrSs6a$b}>4;kDz6v(}YDn8V5NCs3F<5xOau39avdno5bkn%r5!~{q21L=>W|`G5s_1hTaANu;y|o6q!aEFLB2lVXJ@TBI=!l;?h`>u9W;3$aXYls zed0i8tHaZ-0ZHZ?NZW&v&2^wrzAbj0Yia+#**YJ%o2zX9f7f#ol8_`x=t=%1BuVlw z`IjUk$w)|&WF$$FkR(aQ7(bb&Yh2?Rw=t$^jBy)Nl7u89Ns=Tw&O+mI7A?^oF)wK3&Vl!sdA|ynh`2$k+wK%sOfkyME zkK0_0=g*4SsHPxob8Mi|%v$X>txNFkkckldsHPyJUd!$sXjD^>8QDl1G*wfO#jnNP zhO?omIk(gO{FTK+f0;Y@(HSurWu(t>BYl=B=@}*cIwP*IIyv@QTq!(n^qbCz>pOBG zU04eVh|Y*%!=@7shA|$$JL6hs#Qjz$?N`S&#QnggGvYChNLRa|far{PmLs}SyBMM~ z;10gmdP_K;-HVi~(#N1_AmD|&bck&qKHr$f*_J8`D zy8ryU2J7`BMX~8rx8dtarPt$qJLEuT#GM_v5g)f8o&!dzGvbkN%BBHVCm~^^VjK5* zGVt~6uEIuV#Mpr7zO6fe+u%TF#I@c`=DZ#|M5~hS7&;@~`+D-?>v7i8jE?A33S>hL zf~L-hVdIlJgJyJFvFoI<%9`ZV>*DbL0-H`6H#s8Dl7Q%>vFn7;R4M2bhClSbIE(bdR?Yn>4@QpTgJx|ezcq(x`M zsW+1S`F?apT+NZ(sC7o%%n^-6JrKsDGh+O}CO@j0BLt;0;>m9$-QVylx++#xPW1s9 z`i5W8RY%a&88K{pVp2JqBe>QX@wTE~scVH~RhtM@xsq#> zgZXT#Tunzbp4cJSsB*Ajqw(uL?0#^q%Jp2Ev{>tYidS2e8}5k4QJhVcgAE&9jd{bh zD#u8PT7GIE?uU`7tk*`P((gP0y&Z>VB}% z8L^&>aK%+Uxw#)4=!_WT=$qM31<>dT8Km60?3El%oe_i7U6*Zxrp|~#+U3}wsqf-| z^j#Ov$vpxzbw<2qT{3!|S6dYiPi;b8SeMLP7rV-9%6R6dZ9u{-aW*(~dW;`F)q<&M z7%6^rdJM8_U3_}?^%~bYJq9^mG#*FLd^H_)#r1Iqsizic>REHp`$>cKzFuq14pHk_ zbN2eA@b68tP=_f%qIvTsAILa@>9 zw(47ny%l2%h<3L_93f@irvZ7EsJp$DG<_>OHX``Hv<--|qHMYi4(5O?cQ##BuLZWI z%;4wWN+!MK-K!23qTTImqQ(Y9qr4*65Y#M?&CaG7&yihZ`|tEf8IO=(1cZ@aokk9% zV^e${0W@<#dcCdeEMb`_$%~odu{GbARNok5Q^$wcdN`u7XqOh|!f(@T*l6u-9}v>7 zTu<4U4BHrIy)@Ks%Jo)9INtI7e?XM$mp3N!H^vo7PyVt|uCW18c2sdkaG+clzAZm> zxOzuGuu-l{znvV~=zD+d|78=#gAGU%uISsF&V~c!x}~#ez1Cl+2oWgP{GqH~0(&8S%DX(N#yFnMe0BOVr_GlH|vE8H8E$1#GYQ{Hexc zZdG1axDDgk2Xe%b&9v2*|13iEya2NOZU3I`7x?k@02=)T73L|t8z|lUw=)QnT7N;M z?WUycrr6hE*6S~*fYja;E9VHB{{sRWpLDX)32_A1`U@%*-qCvS3dKBoro|OW&kHj) zC8IXwotWu)VX-4!VAB3NtYUgzSnWsyu1+e3=y~CoBkIC`6+`sA0J3vaQiH1!XM;x1 z3&chQo4ERdWe^6k0)*9)sOPi1-2VGa)GV#3q)oE&U9F?v({TUw*P`)ghu`m=r2RYb z+h-wfdR`dgh-TuQAp$C==Y<9D%4QB%PZUGMw&a~;);sYmEwJf%0UHoK9rp`1IMDM# z&v%ox@Ax^0&O*Wr*7HK8&B^X}vipq)v_kB`gajpG*RHek=A_}~ zJT~n*PenxD-3C9}b&lJd4BRXZ|1Tigbx2y(>1zCLgKO z4I|a_!eB@0adks6M9&NOflb-`Dk7Wxd12Xql8OKEQEH^2a;gu=bN}%xAw$yC^8##q z(tecXI&Fh%Juj4eH`(+bABQ3iQLA#PEy?~Owt%Q|D;!bIbax7fD%WgFQf*5fn=04c zk=$IXaUjaA_f}5t((hc|22DLLfQ;N4@92)8 zslES>t;zJQ@&2P;(7j&Bs;$YQt$8)oQvo(0;VHt|;LuY6e)y#IFrGc(S5E~XN7FX4 za~o*%Q~*-$y;vVd(0nzWgSzj{JE4JH!S=b56dr_Y;TS9S+!*bljF#AH6%o1|+O5?gs~Y zcL*|eTXsgFQQnqrOJ?i44C((u1bRb=4T!u;oDB|j;+}2Ex}peDG9_w#F8~`5b(8en z1_y)F5u8jTLVY~YD1yfCCzapN?t@I_x;UbfZ9Q2#8;IWR;s+Z&m&7++u_qPcxN;s_k-9osH8b^FMG zz^2{-+4p|Twc9|W-XS(@s-ypGuwfwT9iEVh`ckgmc}9VcX#&s1>K%}#+v9G-pOB$Z z?+n?VblaZS2kIScKx)CJ^|}rs4)xCS+mlK8HtHR0K(cxV2kIS=<=bPAdKI8i-VSU} zHWwiU@ zzs)c^<$W-L-xpGSK(>C6-Br-2KBadghd%h(`d|ZcG2SmhyryudJ}q}7g*)Y(SJ9%`VRl9IDSNJCcPvVn&PC2OAL0 zxwwwvK=lFHz9Tya&?thkA0|g~VxvP;pW2RSwTuyfs6Mb^qu4Z4JT}->pJV=8qCasU zG=)DvA!GtJn%j#%O!|D79RY|UnDJpU>ce;kEIzlf0nruBVn^W6+}`PIowzz8Ah2m} zgRIVBgGO_k*syMi{_*{JGyMsc9t0hyIXggOF^ z^0szovLrtO&24Nz)P>rmxeXlZofA8g-9G6RKAVsgAIuC6{~;) z)d!@>t~eV#0%(+-!Ml>KyRbgoD+*J|NvcjwAKhpizA$f1C{c7>o3O1^OQ%P<^lg zY03qO&p9|$pA{b`^FEH*2{x(^HX!P^m{A<4J|J6)Y<#59C_5#0CkH>yo57kt*nsHt z_&mgI;81;9>`rR#ju8~E4>llK^}&Ja1JaWO!6fkb>%%En!(tB zs5`0z1P-mey`Al8CW3y?JJ@LL1!?_>$ENrkfktaDv0;5P#kmklM;M5D=lC8){Ur_8 zc6goi+S}k9?;ViopTu({?*nMmJF7lP7JU+{P=K${JJ^8K=YpPIeeH!qy>s-FWXC6Y z)mHCd1ESiLLc9t%Q15`0+mk(ipi$o1?MdqH$zxORU<0B)&_2o8;85?3-jnp*6TcT- zymznxk#3`4g9G&r$jm)H8#N<6Z_p@$HG7g5_GGU+ncmsuh~|N!@CY)!0~FA z#K!}N>NES(WbCJT8C89-0a4UiuY5c>P<=p_=0pIEva{#YWZkD|r~eBbqWWM15@w^b z!J+z8-kY2(ilBIXumO?xm{A<4J|Kx%*cyXy1O-sJe{$v?Py+vM!}G~XwrHprxa>^j}+1F~^%_DG>oeeAPj-`>1jYwg7b zMCWK)UA#VUs6I_UOR9dBS5wso8xTdU(*++74pbkIZlC$AiZcruWoOc7$&h?D)dw38 zt^Cab8yu?7^3Rgzi)@P52OE$}(ASLj2ymeKfNW03ruck3&?tfu`;r5nWoIWdf2up8 z@fQZROnqR(<~6qXdlB~oyXwSf_2!Yzoq{ zu5H~H|NW1%5!)Zgb<59_L;GTnszzEz=ckdu&ZhmIW`1D%Z8|pmXhn`4Pplg0>itRE z{du$Gf?kgF$wAPp3$l2BGAailJCk{51TtfP_DIpJk!IsliU<^i#|FDHddwrx`li@I z)aPF5$j%%;ggZAq9%9i*<9>(1`!9>sunJ#f&tM$r406mDN&PR}Ms}gvLi&A?wErSI z>P%N*0}|@vod}2jen<`DlXeX;0{r^#ht#lHU&M}g8)#JR6JI1tzR2#;j31D-MG<&x zXsX&EyK|yOQ`J6kp`oLk>CP0!qnb86kW@O5-SL_3#Rep+dvT!d1?hYs-WQw=8g=iu z1IfSxG3rnsjc0=+x}uB*M6(fO&VlT%f=1&3c`*k;Q{&ki*>by=*oZ(rbPw{3601f! z@yq1YfxOD8dqJvvnS&hg?j8JP(j*s2cP~iS90W~uFKm2LAH?p3UERCPBT&8+TgZXB z7v#AdHfYqnjEAVz@v(Opyt)@;)0f%Z3ypfT*}-K0m)Wa}<{U`1gGuUOcCIsBg$;=O zsN$YCIMluP;ghb$2=J@!1?he;en-Y_pi#9~9889$*~A$7P1OdOd@y@vp{Z(v%qxn` zZO~M;7gsZM!c#$DQ%w&ZOtu{S+3v*#M7rA5xD5`}y&xsOiq8v&jM#tkLGqSu@QlC7EcX{RU>VEC|Q{wo4OZd zTaF(zwf5FJlpM~t(b@}A=1}%X(Ny=sma&Q53%j~^q(`9f>uwfupza0feJDEz(5QPE z53#6s^t|aE!r;}tAkz=|NHtnVpiz$=J(MguT`d8>=6fDK4sayB^B zz4+l1+YtZ0ha>n^_kxuB+W-ARJy73mK%;7p{yM4qwMVVULj>{z((dc*?nP782I-rF zps8y2y1>v;&T156Q%zs^I+>YclUaMQ0a15orSJ%FpzZ}(lM@>>>fYmDC%eAR%Z|p= z@o+$5O*69|q~hW1K7dB!0cmhJzSHw+qp9%>h-_CATj&Gr9Egnw6m@&Vb4{!o>B+;% z*c?AZpzZ~keK@;!&{X&CIh-ubw^8?ktjn=MQ{4+2pVXu31&fYr?lIM@ajH-f)K(UqhR*15rITR4hMv%=%V)r@%jbZ~ia3tp15i}KB^~k0O z0-L&**zlvA)kZv{#Hx(G{B6?wTc3rRiCVW6o4OaI$G34ka0E?t@BD9*VL1pk>Rym3 z-^Pr(4Vvm+*!XlU^w$SJu&Z*1Jc2`n+W~_R!MRsDvh~|IQb(Xs_c9)0DTL`BF8g>G zyt)^p^ij{IGU^Bp)T7gmCWS|RrECIn6{3-ZqYN=;4-K9hC zz=lmjF5HB45CXgUnh5xG2N(7RgoxDFAPbKs4TxCsxgG+bQ5D*Lm%MT`dDeJ)iJT`S zQw5OiM`I_dQ>3XX)c!6xax~V*kxUgp%6=F7%@H(J1=#qcnWz&CM_^YKUaDg7UXJHI zR3b#69$oxh(&xLR5(|!`MkY4(D9EVqk_(Ag;s~1RQIHwmC0B7(;s~1RQT(9u0^>iI zL_0!Inm-_`vB8JL5olDOWBku|$p=I%c@t4~6kGdaLbh|^CHw?Lv4K=LmJ9`vI0B7g z1F3(^|5f+cfS{?^`Z?PhF!dt`flc#=*zofRaqS>!UO8e_&DQAN)Y0`NMdy(YJc~mCB5V!E642bpAdm4m&?ID)1+5kKe*k&iG-2uiaAWdHG`H$Eh81C3@$wI7ny56N00mV_!OwxN#f z=IWpD6A;A)((H$19EijbXcQYr_aFSMn@&B zfDAv8oQ)5Oj}#isl5HoFsVDqjWa?jKhCUFo@};?r*X1f3ymj#W79A2IP$wS!F|*ns3Xv5mb5#W z)IFKJiet%oB-~48I-+koZbAa0Spw4cWb8Lbpiyifqff@}bp%bt_JXsWtD2I7z@~c% zu@S-3AYGUxs$N2@s$9pPk~Jrj8C;NTLBhQRWY@{Kk~@N?D%aqrUN1VRfU&MCF4*1>|P9HZjKF_sse0$Vqq!Ti@~lctgK}4 zF2J+i)rJT(f0`z??^M!^kxDvcVp9%4EU~UcEO7))^(aWy#O~&*#1S;rqxeDRzwq%C z*>QxRG=D(4C3XuwB#uC%`bSll9g2WLtRk>ki&CS9r2{xKPAU(_`qAzg-O;rvyKB*IbLllm{uFAda5opahgZ2n) znm-`(&BC6~5ok1j7!R>r%Q)6h1s@NC*Zcw5ibvQajzFWi(6Yb|nT0*M*GKC$NMV7M zE}&8gt6fpvR0V86w70HA-#8l_nkD$*Q$_OJGDLu1%@UAa1$I+Oo^p_SYF22J>mvm= zqQL6FBx$e7keMYQ(+UiAzn|#-kf5ntZ!fTg1*S7gi6e@dT!Xw)V4{~ef~Il}8=q=& zRc{s@fnB*CdX6Ia4W7Sa28ReVOZud&Y|8ZeRgzmXu_*^2wNo~M97r5NQ=JIXHf0ZU zRpJPm>O}mYbBfH&Gj8I`iC_>edPjb_Q>l+8%l5;{ck|Bx_Cjydutu4oq- z5XAL0GTHiq0pJqo;l{kW?DmUvi>vx)c$yG_PQRP6!fSfqZuEdAL z5ok0Q#+9&2C9EbklKbcqRYCRXT*4Zbu+3bMynzUj%|J&+6Px~(seWZfi0T6yHXp)t zF?Wl%bjN^Q^M?rdG`C!md{iTY5Rv8&$ea?kp2rBu6V9)57i+TFQ%#qCe0Xda}ps6ar#;5(*RHxEz1G}nFrJ^EO zjOW7~jD-j^f1W$tx}I(i(l?TSW@1wgKn4>y-6U}YP4y_q#MA9Ou1Xw1Q$30wbpDsI z?{ASo2ukw@WZCKV44IU;4K%9H{?l#K>GlsQAo&Xt=1;SdLUcwkm%If;v4NyYnw~x+ zjzFW>K&q9r-*Hvq2%3tmyR%i*s#m3mP4kD?@H2~=E~&$wl&TKX+uleDVQWX zGqI_1Ad`#yID)1sx22@bD{22kUlMFIe?V50^t+kvXpW$%%E88`8D#S)%cUc*t8z6< zDS~^*+4rsiX~9qqLn)w@cgx8qJb&XV}rw z_7~PF$wx?-C4C*afZkkB{{%#_fz&<2YSA4MN1#z`AnneuQ>+paN6=Jkqn)i4cbH2_ zX<*YVAvPj-jcR{I(r%%<5@J>5DweUCXV_SLNUYc_0eRsJyMU__N6=K|j-O#`&akk% z4K|u3AiK`6GU!VjK~t53jZZo$dWb4G0=p{L(IfbVsEy7FY?>t?4a(RxFi9MNMze(R z5X;lla$Vibco@893CMslb}2q2K2m5j7uJ=rv1RNDu1Z252w7UjW|y(f)I}2VrYc|q zvI6}A4wan^4$Tt$@aab)ew=o61izXkAbZN#ceUB?AO%;GYiN|~@n_n}GFFC>NX+hZ`T;45B%O|yj9h+rMFP6uK8KEysYhoNfLTg zl>^ya)-K|z#1S-Ax$0-xfwFcZS0%wlvjn8XS#}{;C61t}%E88`i^=n^={ZMWSLKFz z1oOFi6fJ`~dYQZM)?uABk;m}z& z|19fAZ6sbF^&806v+U)w>@=z%33*c$umPzlwlGWJ&@90ZpT^Rhr{=EN3-|OX3Kc>Z%dttXH{Mg%F#*Z;1`a_NrKIiv<*mI#mUn@i0VX zbai=KT;6m#D+%LKMzI0ucol!A3qQAZC8KaCqsPkI&hj=MeMzuUMzH~D#LQY6Is^yG zC`g40_E$Cs5|02HWwd<-t6#y+gh>+Elu>Lzs*|1i^tR^!4rO#q1?yMA+R`18kR4@o zmLrw0xg{r~OC0G1vV`?I*eIj;f$ai(tYfr}5R@{?PKe#cHD_5;X=sV$U-fuSWoM*} zg6w8I++ig`M5ByWI@?ZEus<*sN!W`iqu7AdV1~TfoOR?{Y~WBvJD+V0&$eHtl0*`0 zlu>LzPABUAVgH5$WfWxK*>;2-r{wYuutB4Y&N?`th;|{pFs#p8RZF# zr=02hQG}7hOZgMn1fIy0QIIAT?H&3?;?HK#D5HaUVyPIPgTqs`GKvjIFUEg8U#fY4 zx+ZWaqt8{ei4{$MdqEOxlu>LzZsAVW_w>y3DGroTkYyF^F~%>^6QXF8(fvGqP;eCt z32e$JHXvWYwkfc|p^R2L$5Q9mX1q(vvzBT%s2*+R$aN__uofZ8Xm>|?fZWYW5p0xE z{J{1shz@HUAt+^(Ga=4hwmimp>Z;OyCNzOFB4re0@;SBx8;PG5L8FYWILGFlW0N71 z{0C8N$|yD&?uuVDp}1+*(Z%epp0SzaxP5c0vjC4=>x^Zb82gKLJrj z7dUb`NKY~v5M>lUu>B3BByl-HP|7H0(K>NvEhv548GaT$fwO646l7Z^ju4VW;-}Qm zD5GW0wZoO-x#fBW8ZwFvNOyc_$MGREIe|kNZGEoQIyatZ1{-A*8<0oI=qbcc>T#fq zg7iMuM&n)b9yJn;GCKWS8+oqX#|24XQ%11?`CpjMXSB`+hcdeATw8RmeLyxPpM!=T z-QkFFWe1%b5M}hJBYKl|qGS=GjN%8jVIX%Cm)j7OGRoUA-aviZgn9bS86Lp|-j*q& zAayI-9=uCDHfWU5zLl+A>QEWgKk&7@i5w`SAl=Tlnp}`vBLo^{bkg}YZh!1)yQpV*{dF{ACEYdmdq{ zdPb*IwP96b4uXv`iVX1-4DcLvHR$m(jQxMFP3 zD5J-!+0JS|n^9~)bONfk0^ZkfD5Lc+v(LRC;ku>sKtgUEq03ex^U(}qFf zHHAhQ9dn`eyYOc-iVcW*M;Y?G!J&*UxzJ`^7}u)e8C~m$B9@PUD5JX_QCBrChNwsJ z1Di&AeLx6G8SPp_|Ndt+Y@xau~rdR`TjQEWi8O0bxx$Abf96l6~Ic>d-Yg+>|OP~Be4XH$=21Hxmo ze`ndV1BWtts=Dp1o?SU=svfOUL&#k$$M+${Gup(F`%=6+Wa6_0IXTwIn z(+Ef&tBjK^k$+x#B=<}^?6v!|0IlWS(@ z02=*@B{uVF+D+I<+y>2djAx6pRiOp{OpOBDwds)( z-PTuFkeU}+$%}m5(b^*sqF*M(280LKM7i@$gySU0aAzCB)ujQ!=Fe%Q=S6lYS0!!( zO$lO~>NfhW@<<{NQ4hI_U*@T+*q%kdOtJA)<5%857F=Z7>Pg%Nn$!4gI*^qY8OIbw z|8f}3ubT32c?xaYMcHd2vFWT6fb=fRjsQ*h0U22scMfiY<_~E<=!_wP-yx0=lzxeDRiP~^%#NDz zOaLJ^kb3Ah3^q9UH%PgQm4k07W;1R;AvUpr94*XVVWGJOWNa+{aIN1@ zTywF#aB+6tVAJm>?sB9q`f(iv(eEe1hK*L(+XEY}_4|p8l=1B4s=m+W*&!{ZVFRhi z|A9yxfkqK@tYr;qWp_v>f&q>ULjS&ClZgN}Y{qi+KtNz`2iw*<%Juckg*({>g!Y4#;6_UUKAG^g9=`Q3N34 zFUjsIXcPg++)J`|s%RcdM}VJ=FkMXU+z;X2&APMCV;jfS>x-=+<%q3nZROx`Y~C)0 z=za=fwX>s!rUmtxQb#s(u(>y^qvTEX8B*Jt*3Qlji0T8#n!I%4BBdUA2bm)JB< ztJkp-b+RJ>(dvQ?2ouDg8$ALXEKO$zwktsT1U5z?HpbH5&eD5dFCJqWO2K zK=+bsoj-oVCf2hni+)g zYyshp!JL~3@~41s2YDBS{Q>tMz5l9MJ7dEwR=>aiQdl>8{y=lCv3vU86#JWBv?d47 zrT04tzsR6>Q`72Nue!0TO5#tso}WfW)Q!F42%35~HKU$vw1ejOIteyQ*wwsJ*A~{b z3S5;0a zAeAnSYp)|{DmIXYm&T|aK~vcQ>3nH68=88*O$1mM60v&JZHTB9^#K`oY4*&5rfC|P zb7}US7R|dsnl!K%i(>PUlF?-#r!KV(m&VmHAj{Lp-lEtXL34eYjZf;@xc7%$Hu$O1 zAp4mX2S0)kH9FeWc0`o7f=cIz)Y68hNfk z_IS|LJqw#<4dQz3HfRn?`$0#~KUxzU!S9+hvcExg_d;_`8cAIi=eFCRd3748c3HL! zn$6Nkv&*t8ho)kicbRp+EIVrIBV_VrHuSRCJ1n%mCTcyv21M(C_AMR(9M`4&@aY_` z)(8lGHRq_pip#Qd4NZ%*&6b>~(bSx4(a;VSMNqusYc{l!4fA4C$72JcnaGVP9UB~) zjYPmF^^JPLqsFghBS_DN+0}+d_Y#odIS88iw#kBqHnkyZUi!a~9nI4+jf5xyNkBB7 zZ4GT@!`KG_QPkLg=t?Ts;6U>f7>&DCK6 zAt>FqL0)Jazs2ip(CEGmvL?q5n!0a;>}qU!(wDdmn#uvl@y7An!gqisXetLF6)(?@ z8qIAf-tzcJzelxKD#J#}G=o7pUY=b!Xmm&KJ3mDYM`QCDHlaS9hb3b~*sw;G5L&3cff@Nz*?UI;Y0&w;Efiog*xHGjG^u|1c^9Mq8wZ0bai zlb6R%bQ?6)i6E7m#13&AG?g8Y#!cd0%n>v-e~19<>!6>AI6_34CF7gepeAumER~61 zUCKuaqAQwnj^IFNkg&~d60_rM(CDNQtV6(4D zoTu&w&AsOJA=m1)+bv^5G5uR^S6J06;tK0*nY>N9!kS*;&oUi@A2gLWkZxDRU4Yx5 zsl0&<$wAOm-sljld&Bhiz(%-=phQ!9{)$*1k2(_p$nqjKN6=IRAe*mh4v4Tx58J^%O$ zivz_5G9||b8pZZ<^rL-W@l~0qiA`*JDp2$qVjKDmWNXvdZ;n8tdvNJ1?NHO0oxr9J z!3IQeX^y%L9IexAg;&No=PNlhZ9%9Ud8>u~UBQMj_fEX4dR-ZN)Y))Qwi-`HSK5dx zV+4v`v$1T7ryNH@1OZXhAPcXI<8cIaGbgqgkA%&W5ITX&{T6#kt@Jn%XOatj@7PQ@ah2ojC}a+S!2|YZmXC&W5IP-R~-^ za8))!eT1~X%IaU0Hy6}9*nnt77L&8Vq5T_v_@vrsW;uf2I#lktt8L6xaW*=FAMM|k zTxGMaifc$f-bnHNw}|L!Kz^5UHf;1ZDemK8za;Hvca9%uG@eS$?Zj2F6T@7X16xB! zSPqMJPsH{tNM}budGFycRaOD1yMI zK3L(1#uK}WPJBJpUu@XOk1F6cuxsZ4vL(k4H0lG8gEVulsSjlVhvZFl(HX!1U z5x~(pJyJaC45d?ufVAkYIs6*yc}@0uP1L$;ZgWJdu__)`W$nclTw_zOiElguqPr$G zAiARW=#Jn(cTJF$MNvBfjqaL<-H&Et&0s?WdX`~DA~xLW#BWr(WJ$d*>7WqjM` zZ>_LV-au-#jQ0gc&{W=fx3tzR<4EOCcQfS;8xYM=J&n5!9IeuM!&={s86FVA)jpBf zrnfYWQsOqyXiWrJ)H2>r9YIrhE7!_awTyQR^+VX*9&Kqmied|MP8r1pM5~MRy?5Zy za~6L1q@LCpq$Bv%Gc8EnR@~Q;MB)fET6Y%CO|@$k?|>l!ReMb<>)YyQV*?r8Dtk>t zQ?Y@}Y!x%=Y-p<5ATP9vtED4os@g<=^~J=c-LNA>q`Nc7u2yjm>rq3ayC%r-R@rxS zG<6~~yR}tp9sRfsHPs2zfY#Qab&NV7IxPa}n1i6H6DHXBq!}FFCc!Qnkg=`f9o=gR zjZT<|4V^-4u0z}pvFd~gWNGW{@j#;!CXjWl%4VGCrltGbD~C5 zYa&SHHgQdKHZ*m@gdcQtm#q>-5K)SSv)pi?bw08j+)FyU_BWP+L0y4f$cCOLX z9tmV_o9z0aso1Qoy_91^eT3|5V;kG(M&|#8j@J$a8xY+A!!9L(Lpv1w@JT!98i>b+ zU#$lqRoiBd2O7;rkfu2ZnwpKzx3z92|jD+IWhiJB`*vQ%3c@OH_rhy zI>l)^Cq;Jj=2G)3WJjkseXg^%*Ttx7prKr^PqABXFQkwQ4Uig$5X~%*QP;(p<);MD z=w1Rcwj6ZiA+(4YKpPcmn7)Xev7($F7T~ zUyh)u9wh>-JHr2L@IyrE#P;p2e*3tNx*x`~F6AQy(VIJUp(8lZUJSN=?Xx3*Mtcg7 zG41`NUi*VKNP?zz4j{AIXXgM-)dyrr5#skbG=3K%2%5?p5nw$8lK(**Azb;{(7^_F zi1qQPi9oS|jO$=^(U&-arXm2D(;?>C5i}J6$cr7~isT5IiXhcVel!Pe4s7_*%6F=R z?d=ffTv&G$+u)8uP|sWWnsl@(9iyLMqu8(kkx>dsBk9;cx~37KjzFW>Cb}Q(P_+{X zY+CtyPm+t6>^~akX?CG_`vIS(#&lrgB~DdfS%chx!O9bG;qz?A;rCG}AlSfQVl` z>VDwR9tl5u(%PYKk2r!~o#G6*!CGIR9UE-gBaOV?dS4&!C2j-qMyh`@-4R{Uy(b_# z#eoeQdDj~62<$q=0azu8VARMV%E8 zo#NmJM4cO-cJZq_)A24=w@VzUuRDxK)$ZHH+I5K|^-cuQ)B9*gbPk~L1Y}K$zw+aV zdb)lylPqPgAR2CH~OUWaIIcXUMA6kCW*r#P@-qimK&+>a7QM#p-G)Zps-0UJ;bX4Yo8tHub@t8*JSTd3n<*4mKcak=O@t=oF`N zSFx$uvEzwNr#M6aqFkRBA|PDtUF=3{+%?{veWaN_7}V9ebd9G3q1x($@s3DW>s3Hr zPx1ceM%icw&?q3VYv%wmw`*K?+y)x;0mw^Tga%w7TqQ;^O5(&{W>GcC#tnVpoNc3VFGk&F>b^#c&lf ziVcWz98VVD(6bDF_@rmrdWcsWzj|&2In>QMaaH2I1C7?5D!)#ZzA5IQ6lkdSw41E( zrntTZM6rRiyeaMi96?jn2I-Z9ps8wujJPS@0o?{oRhtN~)@pe%;s_Dx?hLZ9C^jDt zG`eeoymC|AsXBtDPCfc`x9vB@j5Qqv@k#dt z?Q9)^T{a+XyT=H;6QR*54zZ!5D;Y7rcQD2gN|mfa_xTbt5Y113crY}m?NTLJ!t<6tN)8QPs8f3 zUGx%1mrCyM-pIj7h_D)opXbp%b#tgbi9Mtx8o2{t+<7}&!) z_lR>LAUY)&=ZIp`{UjhdC8%<a|D`KHJ+R8#T-9q>XZOv zLytJK+y>33(|-2$h`r-a{AeoI*qq|WD)BCH8#K42_*Xt2n`UFPfRL7n*nl*-IkLG8 zG&&`iIVDAQu0wxju%QohN-*(e8+>zIm32?m>asr7KRMV_i1tT%1`LQ+a**e4jw_P# zEgG#=Aj@(PG}VdCdfKL&15&N0?*ddg zN6=I!5&_oA%!q&xk@{_DPwU<@RxYfT>ry^aknmjQ2o7|whi!6>A82&X0-4t{p6WKj zSAwSQOdu;tz!Q+WgFnS-FIyb%G`R}(>B#BB&y5gfk7rrr`)zK}P~Q;-F>WM>pj zMF6rg2SHO2fNaY_&{PCK(w~S^$iD#4P<1mxVpFvG>UCe^rLL8u&gE5zm=#Qjiaof3ew zyEV=qN1)M@#OPbC@2xQh@~7FTCy5sv(FhemKom8|%v)m>9Dzos1Z&(z70?P6Y;;Pn zD^F}Z8l4h=RO}t^=#HSNeF#W{-q|*2>XZPa zV~!1)Iwb%Z&^u<-+0fK;BgohsHZ*lg05ZFGoZD`LruI7^OLN%J)F}bTy54bpa~m{u zN&vE_cXo%Msa$vYrJd{@>*F@mM@ZveTIFBH`$FhM^$s>5nm4-Jx(ysUCBP4#R2w}N zID%iD5=^@F{5ETdOCdG5sfmkk)1WE{$j&McUawr-3E5~+1$sL_lfIuh+20HY(O-t zWaAx=13l%GxXljq$zFHxvm|W;l0si2bw4=JDFGwJ<0V|ZHL#Hu&FvnyS@YZCctQl4 z+ru0YTk(wQlmIqtbXA#gKZL7Og8AMd+M)d|AjGCqf|ni9dcCq3qEiC;jk*hYGaxjl zP6-P8+Sc3hMyft2-PaD~N3Bx=Y(O*)MegH)L#G5SolO~)uTVLi5)c78s#-j+B3$iV zYTs_X`o=y8HtK_EeQiYFyg8>nSm=nls(8o0p5nRWcG)Oru@7L^&H?0=zS%Pi8ubCl z_P*J(9!>Q@+1u?%-@Lh?Jq0!(iXhHyICM(DNb#t7-3jsWkQUuF``m7AZ;#_qZNqcp zYDbh!b#Op**PL;?jmo#tT@xFSFz4I`2fAy5EKVar9f3x7&7JN?wbAY|_|aXHsEJL{ zUWE8uV2G+uzkYV?_V|?JPi^#@@&;0&Up9iK^47ke)$bQas(#Q&l{aiabnnrMTh*GBwlT3wC;?WkZRaJ-W!WY@M3@K+&^}_ zKNXN2?Vdme_V);+?{A>cRBRyQir5@MQ`H8U(?5>X5j0h8BEY&QO!o&iBGTO%WJCY# zyE8O;G6LC~gP^JVDafg!*nFgD>UsOQ0aj%|_WWTyIzJdZz?$SEItu{lnuDOJ^8?uU zq`R3;0NoGlvH_VmAU+v+wV~1Z0kNT@E1iQ4vFiK)WZ8i1c?ylr4?s2zi1l$lXlgvo z?y&s>V)r`2cyxXMlDZ?VmX4sQ)e@u{Al@a8psDi%{Gg+5uMrUZ>ihtt`yH`zZUc>W zH6TOp$j&I5+M$3jeX?#lV=+;&TC{=fF6(9YIqa4>CN*22FK5 z$kc%`YPUgC9Y1nL0oKZOLnQdo9u{Qf!0cQ@qqzXGEeAnUJ5`XwIpaZ7a{;8xo!MQ5 zrs@MyD+fVS^#N&pXLfebRJB2R-@$bHTtY7q57oTrRJ>orK-LD|`XMt(rr4YDzW zEBQ#YX!<*_83la@*{``OaRg0`XV)MbJt+PPUn5Mkk}Eqe46>PneAa8``&Te)9f{oUAkmG~w7`HKr#|Djldj_Q9 zT{ee^C61ukC!GV>^b7toIXZNN@#*P<9CW`pJ9$^^-hk*n2U2-(T&o;G^WW?(y9~C*gX5YQY*yfBkR$3Ht@8o- z8whOJC|KPMRv|4U9K4kR!8rLAFEX2(ITBxSy><>>rFp;s`XarXx5s#HMmp z;s~1BBf(bs9_xg6i6dw}o%U0BkN>vg1bkhk%Au(oVAJv*e>}z~T+(xc>I;3*s`cmfg@2|=rl(`d8zjBW)yvII9Uvgolch=*l z-@QWWapepqUO;?@f3I!7$9&^L)cOT;(P(aCbL1Xt!c~bQXsUZ_54EyG0XewLrs6FMp9jVpi#e#8ftxp#{GewtV6$H1EOEux(9JKIFwP4 z8AGinaY-D3Mtx1x#5R&8tXW|OVHCPE?Hp>WhuWP~KvD@i`B|6p?0_sKXZj^5M{uBZ z2exBFZ6CT4_XCYT|J-X8?zKDUc8Pw4IziK)a_+VI_u7T%OFVCAs;02Dzt@`LN8*0a z)QK}Sr9SO1;&(KMWNc^vWpv5CHs;>!Rg9>W1CUww#=Q9~LGxnPokb&LQ7QMo#1)Xf{nFm4;>8psD>1Yz>FSsGSW>?Kn?9{T~VP`Y3PMfRJW?LUtQCv>(L}pL8G5`r!zE)m5j4*^9%n zvyy~Aw7FsqHeB>2(#h7E}PTo%~i(E5fSKFLq3fDn}S2Ow2`75${gGtBN|MSAX6 z*5p@leG64kY#?2WY#c#T5r7QNLC_qLW}BFUps9|ZdY}B%Ag-oJ@S}OU|5vu`S9v?g zs{Hy5$fjRq=Ne5#J#@Him@L|0OXBRG(s?!&EF8qw8Y zqw!z^q7b4D4m6(09)U8cy=Ab`IRzsnHr1yZ;<+YaTKPcc4bSc>Xga5n6~nVT5lw&o z8E#wh$D@9O4McvFP4@#w$242X`y3JK$id-^#v`bigP^H925c>I5HuCR@cXRieKDiX zMvtDCW&_dPQhPB+;Ajs*zftXaTwN9r`cKtfd7mvPVhefG8gkf?6#A-bK(vN{Y`ZVJ zL!i+bQf7qMWTQnq*c?l*E+C3YyEKoDA%2sNt=5R_>_DS?BT=^=kzF4&6#+=^5!v-Y zQ`wn5!bXmW*$EM-KG=XLE_wF|;5bDDtfQ=a*K_qFTFVjL5IBe3F~U~mv*{eR-2Fnt zuh9lSiU8zjjtw+=$5PjAq^~{*Hl10?+eJj)1ESqv-{?o{NI>ocA!;JfEhL^WF+^2v z*Zns7{8U9m$%(nH9F=*%Co|reS2SiP5 zs(`+s;nik{uhIt~OGm~x(!RfjW_zlCvL}x8=3qnAe};`JkOMK@l|kB2GW9{_2khj? z>>kDDeb}%8(NlqZcmz05eKtN|jUTYC3|?}ES_K+lm0#nyC`RUO6iDBr0sW}|9j15yF~zXcl{C^nF8 zqx|<1rw1Eo6x$^Cvj%o@Tofku_v z4CyG-J9J54(;9*e$ROJAHNeLdIuMt{*`V?FKMz{-2aO$eBKb9<%4yx1;)wt43H<1{K7}Z1kYNwnYA#3|>G7bi zJM-POe5u`mWi?{16?`;Z+O&2xN`NZvqHAN3A4Ag{o5ap)a5v>(L}pKhTC zD$ym*hF`tg9r&=deaLiIa=}(?I{g~;ko9@U7J^7Z1aGAHWjII1p?eW?As~9U3mY~o zKz4+FgI(`-K^8w`73c$r+d!j{?tI8rKV-vkEZK}G0=?Tk=EyEC+(-lg(YxIWV`TF! z$hEKqMDKR-1ES~cX(2ZJ>bdd67^^?V!rz{*jE4NE+Wp2@`!V(hd`QB0^iFS#BSX+F z9oVp0lj3)&9a#$U&oENhEIsf?l!~ksm#qVFPlAc`$}0**hKwdN;LujIAAG zdLtrPpRrkzwgFkkC|lsmW5a>o?J`n44(6sk`{E26Y0=zn_^?$X-LOdB%&=*0cXnhA zSG3Cx>yF;-!iLQk__;Oo4&mzE?l|v|``GmTtxHjM^lo>KBY#K#uA7Pwz1yYVsQcOE z>>*zDc+@nf-tC@x*j{|tenSM3cQUc55B5H68y=2-H6kE-w~GzPMs!;ewIkvHsWMh< z=aQMdA!>51ce_LYvXlsZORhZv!qv$_>Je))HvZ*|P;K?W;IYrryxWChu-ZnQas*HAC%_Q%-Kkb?tm*Ev1*UR^AN)GPSm}=`y5Pr;r`Uk}kt-{R&24a?`zgr0N8;bx zbp#sSPq%n%`mN|`+yO!ax}P#0JkDhoaPirhzGm>MT+eZK@DYA{m%sIg{7&1h%*+BQ zIgUS3%PA=02%5@hi*Z(SoXsRQ$*qh@Hp(bAAZNickKDNp9D3_Z1XvFvoBwE*K?ql8 zH6X*s*#Yix61Rayt0lB&?q*Lk&l|bPcLyBG*xYo>5s;)as*9Pd*-A9BKU!O&%{ba zezaPGta{Y^0g&GDRT&yRpMvaoG``7a67&0SkNUkHIFO0Xk<82EOOB^8w%Roktw|3)gCs!o_S)NAvj<>B`l{kW?-Uq|RrvX%>6)ha8=?6 zni@~X33hzEXhya}jSt81X{Q-X0 zq>%v=?7I|yeH3vUXtWc;X6ytzovRW@(A2I5WcCExNn8>~&}^1QmST;*#1S+VTjhzi zZi4-ZxFn7+9w8?u*q#a2pYlt>EYW@k8<4gz%@1sFXum@Qe7cvlU|E4zay7(dJI{ z-@|_vG(@fWgAK?ouIl#&-3AAmKOh??n%>q(9Dzpj#~xE`bJ0IUU?BpnmW&7F9zu>! zAB<0H6-d>`>@4&pK2m5jo^Fp>)5qesto4Mbbw}e_?uZ6|4pRIr56F>ac8jS~J z(qr~Gm6kYyrp5#E{A2b2S0#?1sqvf`S3m?;^AD#!z9idEiAlEkF}neMNm!BO2jswG z)|(ti96?iS;wz8K=58V`O9uy=1>|7nQUz*`?oXnzDN@0!cIq8;io6!?^vjh<~GQv$ySA{5|02HA&V#5jLGpN3((or zz1V=Xq(`qs(r<<)dqzQ4PxhxaJ-Imojb;f^6WccWpu;5@gi&a2S9rpXO*VZeK%)Ja zqF$Hs?0{(R))YUE;6VFP*y=xF)wn8gKhS7D3ex@wyNhm@_&XyswMPQ!_k`UBzr^!~ zrfLc@<_SB5cZvH!Q}2wZDfMZ4QIh<7SjL71P`u_aH~YGRX=&P1&$?0&-5KJl|> zPuPGAL0@l*%gY81u~nL4C!UD8Ch(YRY(ShLoaz72_3T6kq@}=f3O8avAsCO=1j2}Ad-Nn53m9Gl&d-y za|8#94P?U<8wDb91RBM5%Ka=uzZW}>z^2uosEKVfnR%N8_!`d;+ax@(JZV*)w9`N& zjzFXPY1b#M$&)q#ACkbPnqmW@Rs1ya>^5+;PO}Yu(!S=Z#GhQDX$wNN$(wrSjD{H- zT0>_~AkRH%7qCi5oDBzhKHc=BEhBKoBPo9Nl$t6;Crc-YqWIYp$o?m7D-lZ^fktQE z)!b$t`opPSIAPM+Q!_^@gFHb50nynLvEgR{dxN^+?1@-)_5{*>s(s2RB_1_2I(q^c zI@Q*5RpJPmtiCYdy_IFbv6NMB~xf(?~}?t=!W*Q>1@=dM*DeKU(9l0jUSm9K>fZ4)lcF_i1bQw2enqvOZ(8By9sS znDKlTYKjA$Juy-|PC1KHoWcwnY0=z%;c1)sw7mq2W!+rX}SJxJwe_?uyz9|SgN)CVAqpRrwBmADO>>VrYgSeIwwcN#8eKfjrjFw&31%0Nd-jA5%&+Mk z>!>@|!G_MBhyd;0?E8P&FkuK+dp?+B<1A2>g6m*Lvn5QvN9`}nu!1v4s@?`aYULlb z3iLIhG$mHOiRu2RHG9-F8in;B)+jnK|AYK3$a@dLhVm@@@T(A|d?5B~{OarpX7rP6TT0%Hzc}$4>`PJSR4oosZi0)S2Ln%w%*)^0N_;O7WCl+R0E@}t=jrqy^mfOo-XWz5V9eZ}+~pEqhGTT|CC zL&w`*q7}TPNNNp+d3d~i%T>V{Bz0C(?J=7<-gXn0;0$%J2777-B=_mO|u>Jfh;(h*f7#Fzp`8 z8#QKh_5{=WvAicgNUA(*9g)+W$XrHQ z9$`Ik2ERIcg4z3+tw=Lp17|R!oe<2~$4qyi1ZR-ct_G&)1Yb+Eo;ZVKlMGX9g3aKn z;0%(AZNdcWFu^twm*5QTBj&yd)@MTYodZ)7AIAcI zHHW~=onZQVkAnNbj7Bibh6$#uLvRL3jnjIM+kpxH@$|UF<92?6z01HAVr&{E=)hE> zM|~Z86*e@2@x!nCm_IJi7u*kiHG*L}J#OpqE;xgkn^GQI|HrKZR|RK~RBUA?+Wn6k z7k_kOw%~D_^tf$-5#pXgqaGcYwOrLMz!_}F+F=wPr{~c_KyG=^f!W7Z?fYE^2O9M- z7azAjzzEJ@Mx(x=$F>Xk{)~kff#!HhipOgRdl>cL<)M6*#DCi?s~WulFkXw~s9aQNf%s7jiCLdXk^zS(L!YrET_i}VU$Irzu zqn3l&HqpuwvEVvLs-!SSC)$_D3(g>^l6LuXz|Y{ysnp0OdHr;I!pc2it>^=S&x!PF z`GINjgte!31ZR*`4;eB^I%QbrClhtl(RtOVCv4CYRv+(zM~yX|S50$f8amt1iHy#x zT1=A80hpH=3z3-~`2O`ITlxfZZ7L-=gBhJy!R&a#{>fFr8JBeC_!BmUtAaB~>bwe_ z{FCel{0P6oR|-kh8%)JXrmqYMu7l*RbYGQ}*zVxrqH<)e&QL8H+b}&QSwZ9luLI2J zyo$P}b`D=nHrXj*Xc(PW&6s3kCfRq$3-MHHGk)4n7Bh&N8F1w#M)Lv8a_mx@f}gHn zMk^D{u1VQ*a%Yg#dRp*FJ2}a!P(Yy)P_I&d8|zFh`gB+DGt~i%MixxfC+#+BM)24$ zBc|7r*5=9V843%#>!^pI1EUl4p}?(SLp2I>_mlP&mIP-oqn=3A#5RvdUYFHR7)qg$ zwfae$^`!NuW&}O&t=KlDy>?(erMGt?YG-huJuKGtJZTeP1owj(?O|cgJZX~|QNn+5 zLYYERJ5`t>lPy2;g4Y|8YEzgRlkGElyWr~sCLdxw%aCK z8zL5R&#T5ywtFXMpI4@7v#o#*OrSll1e(oL*pRh#lWorA?9*CNM|F)3%&&>-x4?C9 zpt^?HH`#9Fs^AP}RM!orD7HD&L`Jcp15*n5B~b?liVbG?Q`xoAbugpY=DVL&$Zwz(qBYIEL``hdsmHgsMEQ)-Hprhf`P zUt^{n46RMQ-C3BNwr=8wuA%cPn9fsdHa$x42r#3Z_JJujV2V9Rd4$~as)f#ImFbzz zdtL=Id5Uc$V!_X=Fr)LTt*-MXQ6Hf7;;EF*tByFM^Qv#Doyh3Cir9#tE^GD;>|wn; z#M(Yn9(&rh;$85lF{AS;bjm)RT``eG4ewIQj!GR)$q{ke^jQ3uJJGR*d;ef($)xiuuU zvqR_D(|)pjDE1H})kC^ZwR}^#x5Y{eT!*nBrrA_0KQ-HT*3%N2chq;#fq51m7o#6+ zX#a*Ee)VR6eiZj__|lU6&)A8n_8`R&;@OkVt13IQo2$L3gUIN-s+BW^ zxcVoej*QN$@PoBSh~QL=4Zm7{s!g+=&t%I}3JKMlTKnN=Z0Iw#iYtQmM3|;9Go8`u z@-gL!%(^sr$u#NcKHCj3tH!$g?0&{pK9fE3-hdnV(HxHsOn$8W4R|ht17+2PrrGId zY%-!k+}X{|=)laRl&y))>kS7wucD-Qe4cf?S)C*{szqbF_cUuajckKV9B8a60-aY4 zb4DjWdIB%bJ36nz8aglFryaA4`ypJNSIzbwvV>ALi)T+*(|OezXHFwu`*)Z6fzGSw zZ?t<2TA)Y2grRflysFl-ws)GnOa#I^K(VPG6n)mtPRsV|$mqNZ9hejm_W{meL+4c; z+*%WA=BN1bsIjK=Dk4Cp3hi@e?D2%F9ZJ3F)(3-F5~7a!!Gve+zGtl~)`ZyF>IZY3 z8BMFbpVJT4ru)hoI)7kpYs#AKI#}0Q53}J}lYPM%%%~s09C+4htKNV!NU9%{m~Q8v z{g3BW=)fGKeflRBQ`pdX6(z;vAK3H#aAQ&)szoc{;px_CdiHzXgy?mx_4NMf)_=P7 z#hUPYpjOb13mupgKKfFl&R|2<7EHHE)9wFJXM*lRNk{7`Ixq{d(v0%B4i2=Q!fcst z)sYpP!Hm|^iyoVvGn_!=F#@fpln0Oh&Aw8v9Q!Dt@M^gc&smx0tT(M7{DrJV5vWFC z8a`*$uqHTzq-u2FbJpcK`vmVoMam@|?W@p%xtmt&$^8=7!G_MOhyd-s*M{jD{Y>{g zAIy~JtR9|)n@V8~Gny@77CmRHS^EE$oIz5p zUFXg~1P$1s++O06AI+99$7fhYYDVx`88bSsg314U_PqkS1NqMkU+ZBiK5yNT7rb_m z)EW%a;(7Z&t_sc|sq>v(&s&e@|Lxvk=Dcdg^ETvp+fKxS>rgw3(SaHBeBNiJkkok< z*7!A?R;U=)Ijl46`Vm*<+*#NRh{{x`&oBom^L%*9m*oO4w9N-(djkQmT^^Z21%V)5rM2xmNN8f zXYi}@Dwwe|?Mu81&R|A8r2PvvYi9OIOi1s&>Ti2y+UlAA@!2ADU_M6lej@O74jZyo zUsV2n`L!o*<5Nq7 zIYje_Ge~L*GATnCBV79)PeZttYcg$$!gE{h|J%JU$ z86?%;%FZ^Mo$YUIyxfmg=c&$&!Ov9SI!S+nX*An@&Q-zBLolPBc*kt(I{QDKhoA$~ z9Pe#n1lUlG!i=14E2w9|{a{8tk*JC7BD2IHW-(_dg~rcz1ZHQSW%JVrV%wCd9T=T8 z{DIh2&&avlUgs7v~(1H1qtB(?!GdNIeFb~hMhhPL}Fr(O3 zx}P1$-@^S%xGmQ^pc&PWBu?UL~CkO zbYR-kZ=MIPgN-&BYt>#deMLa<{SIby9zttVZ&$QPrJjj-30*_yAuzpPvcE9%3vLYu z%9+N!WW!#vNt8!WJ!otzXIkUT^IU0>&U+pLGy5gxGxA2@=OLKUdB|SZSw$(A(R%UJ zL+2r9ooS1u^F$CCore$`5wvICY0W(Era!HZQ%Uu z&OvRYdQ)ppnQtTJo1QNdVtJGYFLI_gvIpYba&*>F2UtT#^?V}kAh9k#N9WtN`Puit zHsD5nG{>U@qn*=i;5{A(%G%1kY-tQ4Dr`=4=4NzYmQc!OMB%aFK<6Qp6psZ9b0?)* zVvTCi*dFwO=EkMGm1&4pxY8g=OI`_rx0hEi^;m@rg}R=_i_Sg%+7 zTLuiqJa68QeZ}s6#cm}oAwE5$^%NbLC0y0|>kKwzZS^ZQ>lJGNBjlckpaY}*_{a29 z*TI3-QxR1~Xbui!4-ZKgUP8D=$T$^_23!+|4@jC~Jd{5(=-D8^6$MEVP2O zfZ(}iGO}RW!=NKLgQRNo-i3DCLK{wOLhkcB=)nAxQw5!1xDGaS9zq0YKgE7;Xp@8? zTC>n2xX7S*{A+LolP=)9_cV->cbvKy|wx zwe}%r>T7lZ#qp;I6gAAmSM4Nm3C>_fvBAuL)$Zo1;0%&#ZJ153X79Cm#)70;d&;eW z2v%}_G=oGfYbdqI^cHmXO=u*w(!w-Yl=t2Tk~$^W zy2v^&%KN@1eip$@UStCnS$;|>cj*sc3R-u_>>N@>eK_~$Rc|yo%22*W|n3cz7+NvjNlOjDux$uQJ=Inj^yy)Xrq*gZrnc+{9_onb03$@@GxlG@#((`t#|1A8{=AgNIT({qXa zg{y*FLsBgVGjxglgsXxxNUG&v9$sRKNpJ>9^#hohOKdsi7o0&-Gez&EwsJ`}-)6Y_ z9HP2Dy~K7eu{1R!Y)%-}H99aAxT;;JGuV)|YD=xqQk#pc5c`4Z8XcIETzw{5!-47= zrrpx)6Vq-DGpg%h9@_?dd`B;d5ond6Jb3&>rMxmJ59QMw4>N9Q_I(*IDQ4scX7*C+ zO{2|mQ3eB*pouaSX*`+p?*o0V8>C|%O z8)QeKle^Ml4IRz?I=A$-5$jqPCb*w#S;^k6nlSj$x&YJXb$gw)RPfj^^CzN)x$kvr zMOg%AknEi)4|en4z+5#jVJP2C8D{S5wi$WBbugn{GN6V&&LF8w51kUrEM1Ad1OB%r){xXp(P^30gW*DiYE<7J z?e9zpYEwDJ_dtxkKYDN3fKEwjv@Ww>Wc1}EnERJm1sLIibTA`73zpfWW!Z0l>jp>k zv&ES@Txbm$r%d8w%1wTtevPm(X ze|y8qypcU|=0<|+=nJS_oVgY&bwE6S(-%+&I`jV+h6~w;MCKJ3{9tVh%-`vw8D^R9 zRAENEVS27ra0WAqdeIv;<&7UbBcnYmIxv&4rf0_d{0$r0aUFfbw!M)(&5KcM4~q^= zp!b#p?gs};h;5M9&M@vvy;DENcJbmwO4@C?m0RwAW0Z#`vNfvqfoZZl`$oLiHIn+$ zD%SXQCFQRf>j2jsIE|ovsN0rYZQLgDLu2YotMmg}?lGAC9TSFrq4t@v!lo^^>GWLT zC3b~sIn@r#(&g5WQ6)Hoq-Kia%WcPUD^8CR{LNH!G$Ww{Q=8u2meM+d4b3|hS6KcP z_7d_!)Y+8gzKktIIh1Jh%L-9z;YS8FsPsaAj)vcldk z!@XVLQ6s697G}%}Yr=dexHTkoo=EMeWDl`oTxA&@s!}E0wZfLKuqUa0p|<=aB}E4& z{YPfLdlLo+n%}Cfw392WIlWMbCDj}cQ*fniqx^z1NNRo?ze+meDa%vUFXJ#DVAe_-yV8Eo+$Q*& z!!Wudu-cjDiXzL-E;70!fHicE(g%(*DL8{`-4TGPcQ_ zkklOkbc(F9YpEH*86+Rc_^GkVR#VS{zq^d2>HwYgtL$&|0l{^U+?D1HaxZCx-|&>^ z)`X#w)!H!kuClk-g9xsJ8Ql?}<*4f!EqQ;tgJl?+S?l(`RW@f;_Nxu&sBhJqB7j-9 zD!c1+21$MGuibj-9HJ~`@e_5lr+_)P%HG3@;43X=v_pX@w%T;IBRGR(>kLz8wcU{B zITYXwlG^W}({Xj)lQ|@{tAXja+8)D_;5tZZ4%xKYhOhq7_mRZRUu_dtXTR>Xo`R~R zsyB3Ceu{UUw7E5GXg`V{epRIB-a+4S2EXd@4c@dvtFuqA=H`H<-n0v=Z3*Uu=tpA# z9T-KdEZMDLLt_Cy{91&cF4U?s1f{hert_P&2pz#0%qW6JYiz)qv@Xv;3RqNmv=3SM zrakax_S~P&=#0Lw2{ZZM7$o)WNUZT|6qY6cKdHyM{2Y1Hw!ZlvpO8ccW*aNaPT)E? zke{+^%+_RAnHYh-PTz~NtGwxTIuY^hn}W$1|5}W@fw@D#$H2Ih>Y3?9hh3^901PXKz@#`vF&TJ zd)TO>@}L8A2KncxH)n95@|5=o4lzs2Wrm45+Nn}fVp~dFe`5CYHl19w z9VasV5{7=R-rIAXwOVJpXd7WCP-|+;TGn9+QV&hB;DQSaqJQW3zMUS~`3BRGSk zYNy(IE41GF6PFO@1GNu2F!R%Vk&+s69c)}A0_JOG*d?qzbq^#Aleumv+ zgpEM8qm$s-&V0!Qo;1sz1S{;|JylQR{@(b#S2e!PYD5ecQR@2&%QEVkP+W8HB+Nu-R$Y^#! z2Sz8Rzo0zM;6Sm#)Z1udD39O_W)xe0_tTr+agzO8w5B9*PLGwEKFGnml`9_2b85cO{= zq*Cp))S{#Nw9}kL|^Ae-`w8TaPcXNlQ|EQ!q#H#Zun5CO-J*5;pYRo8mhuN{& zW^q+;2FcbL=J;ki#kwsxgQQNf(8<5WHnI8%&LFA%8%)J5mJfNs86(pAgQwrm@!){KUW23kkoz@X2uq~ntB$TK~i;H z@GV=u#mZ8Xf-^}goZMo&w%9H78^L=#jQS2bFr(NF?}|MU8`?qQhhNuLV3%XCc$CCeIt>RWwOt=)dB)!1r(q?AG|X;YZnoGFO4A*C-d z>!<^)p;MAxII32{U|oL3Z?${3+U=A@IFiozQSOWm%mmuzJoAo^U>xXdW8GGpvo-q^ z)#*fMZbk>DGb3w4oDXoI`?Qo4kNgSdRNLu^HL68pyV%=yZfo`_gU=FcTAk}SGmd&& zPaPCY>RR_{v4&22X7K{-2E7hcL~693_mKCx^EHKmmaQG#rycH0^-`S7@tM9@Z@N!Q zf1}-1XZd&x#2GrL?$aK6+a|tkX<`!eByXHuHoa~0-?l)V36ar#T6AEpWbVC+sGY%v z?$cgyYei|F3OPMd_i2d$nT}-C1Dhn}AzYoi9NA{2wwcx+Ax5o!(0Q9R*k(=X143lf z4+c21kb6wWs$F8%(hsnPPILM})fNeZb)BKWJh06w;6re0m{C7~nY_)ma8+;yN%e!R z+ic-BYfJfs1HDjzsMynat(0Q&dBe*Rs!8$D0>et8Kv99l!zM>|?@uM1rx#Jys zlhzho2TAEneaA+=V`V6dkUJL8f!RcD9;}h*U_*7V{T*BUj{TVtFKkGnRvn-Nv!?<1 zY12dp2fDLL)Oc((RwrhbiGU*N^b026c6+TIc^0^}3+2I#<~Nw~+wFH)5}ZL&yQk6H zt=V?_HRDZ)&&P`yyxqEQx7(>rA<(gdcJEn(sPB#EY2`P z-?d`M3(g>^JDynM*CfX1M{%~qx^!S>zH5Ic*A~3*;NW{0Vnb##N8$SDx?3Yw-SLFk z{jODF90<-}W@&~w{jN=*PYccLwWAXFx7TgVXg|!AgPrJopw9y zJY^A_K~i@-i2#{j*5uih4he%_-SLDOw!>bdHU-zgjCKw%<968l^eDj@B()2GnZ3jG zg#*DEB(+0e;nzTV;k?*K@vE^7)8Rd7$ zo$0-i(d>dXbbgDanQ@iDy2dHY-1n>mr4-x`W|%Zmhj-eB_w2tW@is4@NU4Ay#RhZW zJ$n*s!W^BTBdM_fbN)T+L>~~GK~hoI+i4|s+DS&QkUO%_fq9*=Gl$vS8Eh!F{yVJ` zBxMnz&Zcx<`GI+oR+}47&~c#IALjm@rn`fJ>tIH+Kg^_^_7L(yk-9{Uq~|Z#GVj~Popyqj7III}(Sd2& zk*9cjB@7NUzYTof8oqD;iw_}|RP!55m-p>X$|5*}q~^C#yQH&|vTUkyNk?biQ{J}` z?^|v9rx2~_%zKeDH?aQP66=kqb>`h|mvr=L-|iJI>FCTGX50JLJU^%Vz^!3MxhBlf z_iY|=3C-nVic%;?OUx~6u1(wG(fM8eQ8^0Rc8P1|J`@ga1f2gmU< z<^wUG(5ntHN+KhjkVFr!i5Yqu@`z~(MxWPv#9wYxp}f$jRh^3ex` z+|0G=ZZZF){9~z2&rj)9Di2J--ByJ95}d(|GS@b)vzPvMUxiEgsWMk0z}gsUCa`9C zPD@0}T#1@r_6y$b;26+LN-31N!rZ;ve#QJDczH0R%oS!VcR{%-ID@2CXP8;IV%8I! zK~kA3%({Yd8OFt0Y8fH||;d`v#p6pq) zz9yg%tju+yGt0R0A!9o-%3S9=a~wuH+sG($#Shl%GasHM&u~BZ)oM2RBippcmebpX zxbs$PU)W=Z_SkN&3bCZhSW0~)<{C!gvC@~Ab<_dYV3yDeXVgv@tjka5kF3E*_7mDh z$la}@1GA3U3Y1F5HV(8~f8Zk<@KN@C^xVu99hm=PWNl&Y@z`*n%$1Vj@jB+wUp<*v zqgph!w|-;`KQcXgAmnDQN1XX7^>#NU&COh~hE5Om*BdJ*esHbKwXFA$*L#pj+;b^E zRp#2rnSs>IZXSb)^`^{~{zkk1k-cauUMg^g&Z*3G>R#)L8Z{%t{8as5|;BPCBYfY zXzv2k{bL)1cflDX)elC0Y=b|x7L;Ge&0Nue(YJJ-k7FAf%3LWa9@P)Z#dU#d(K@&D zV_WvIJ;!P$#Qaq2+zDs;(5v*YU1YS*VGW%}7`@3W!%>3s{#9OrHZ*4o2|4gBfM6#D>han|UJa@x&UjDszRI zaKNS!vEY6%qs$d%?g8t{C=r}NQspUe&^8>fokT3esFk_G95`STxhgn=q-G?T^9Srk z$|5*}q%v3hAhVUdc-BT4ra7-fa!G5*3veDGe~L|0Mq}VE#s=- z43gTRz}!y|SQ4B;Qn4LAXp;`wDdG~GN%jX@4%&i)wu{Z45c{a-KhEfxn*WXc02|sL z;D=u?F&eA$T!~x5uf{ga#e?=aI)XE}Rv&G6$jThDQp{6A%um%vyEyX*BV-1>H!_-C zu!hcZ%F>q=FcbAbAEz(_583Zne*|YRqXk*)if0oIz5t zZ98O(4%vImdP45_K?mmhLiApGh%?yGOp*S?jvlgsL@Y#|P0aD=zzo30Tg<)A;6QUc zOu0{NB5SGO3}!UP!!-HCo*^N#&bw~QZv7n$k}40(ki&LoXEJ2)@)8&%S7fY>Ic)d5z%z58?@&57 zk{e*geyRxOajxEbe#lrO0_D!T4%_m>maa=$3f>rmH5ld2C!P7A8z;06Tw;_vV-20| zw{eGKZ^96ia%Y%=pIT2W32qHDt1=N({nXkvAU_4pAgSCLoi?9Z_j+XFz!@Y}2Qa-p zwE@58?j`ukE@DGcbpUhsr}npMJTC@Z2gzOOzG?+Z`uaaCRrtEgGYn0pz5_GsQ`<~? z3f^*2^f%YRhH__^IY(?6<3R9?5;Mx3sRPPW=@w41UQKkUFy+oL z`;OQQT1{|kn4xH?iJ#dytd+8qKyULCGwrYId}hTyvyZ4VAvbsK=ghOz!QY52H+P2V z_?fL^P86KMjB@AUuJb14Nmt67I}-tZ?x$uRq`$SpYKn-II}3r0)LuH80AgO%_%z&e&zknw=gQRk2mujibHf$LyKC0+cvP5sJZAZh*)J%I5cmFS?PkZU{4qPoRUwu~ zIa7CM{z;AAnUgcEqYki!PE)Oo%!#gpb@>^6%myE$%sf8|a`OdrVEz}Km)SY^*v5hK zg=NQV`Z3ef=|XPqj1Ei>bh77SI8g3PN%45+&3xH+Sz?W9(bz8Vg`GH-{kx>OxpQS_ zIx%`jQlq)KGuF^qUYOZGo-pBBxpPnNA$ltAohg?xWaZ97ow48HNvt>J&h$6h zy)e6=j_)T7om08ScV790&HTcy<*E=F<<989946|EMC}YVlslhx zYp>JVU*z;e<<3Na%quOJU3w+$L%76TYm1CM6LyL|Ah-^aT7O^;pYR@{Ug8Xr${R;~WfxD_Tv|IH8F%qR~gHX^9i ziP`1ZM2A?F2g6MH%6`iD5!?@Eln28s`pQmmRd5DLm8aZE+xC?WCSoB*tvnd!=vQ_n zR|RK~)G7m$K52iVEP^vgDi6jFGLJKQhtlJn!LRaQm?kG}BeTEY3}&safEjhtzG4m$oIz5t9Y1N)PTHHSJ%TgITEF9@Ej?+qnG1y2 z-?Y}F1G9qp`t#U#u%WdcKm59vkyW`_Vhz6k5hJ@aUjIlG#1c-d6*XXe=#;}Xe{7|Uwf)@vfV!MgI|pW zm>H*RJKhD405jS>!7M*zKf$};43e6!VRoIer&&t{Ur&*wqEhR=wv(r<$wl5X0&(A~ zy(LV+)AkK}5W%e>sqq6-^|XDBcflDX)jqvWTbt8Ay2IWlqXY9L?fGZMx9eczh2Yli zKArbXPRwl2=!`vWS2IQhj~Yq!Dk7M5+Llspf?GpUC52gi+P&o=-)BbDwkoFWj zYRss1=6r3peQjOvE<`_K#(!=1e*L5G0IK(*19LU?b|CIlv7z3JAAUW>IoUxyGuby&Ssr=Bhj%?1 zyUwA1(?RmujLrojKvcjLHU5|3CmaG9`2;NOl#k9)@mRxID@3d!ql@i@~pi~ zSp@%{1F>l=U=8N~YVfXay`+a=<1?(WKVWUI!e>Qp9iBg9js1cmfZ2Z5o}*R-_k$Vr zM3`e|ZGI&>2Jrrdq?q#GTE1_sJ`oG9Lj)sX8eS07mN9o1I+4-%dH9?)`MFa&R|2kv}NDg^lz;( z?I}c^O=+GnJ16E1?4M$6JA(s_dYGNx`uCMzh&q^2)CJDjiEr({X>CD&^H3v8J8yJg zzQWS)8E>c6tFWO_-|C!IK4)JbFMOEj=&TbR7(J=u}1r7cIj~5W`CD`C-U#8#5oaW4S{n(V2JZ7#dkit!0i3bSbkGNO)*Gn zc7ZwjUG`lb*FjRV3rx}TypKgL1KLOjNzE=Wwa#b%p1A8EsoAC8_lj)`qW?#~jCcnwal=B zGf1je!A$zz{>l0)v}CwA4wAdlebuk&J6j&&x%I;748tJMXuSBn z9sb_V(KbRHB^r(Bz>J``|CQeEV*v*`S7tOaO7c^}7h9(@3`6(ZOh(C^*qt?@FrQIY zcG#AARi`ThFIblg*{5D}Pfn*eqrb{flREe)8Ci-AX2b=eN{7$Y;)!^=BjyhE;0EscT$KT-Jaa}u4L~*K_0{pv;WZx_9Z%k&*Yf7#e6ME z|6tE@Rd5DL#n$8pEBAxFN$m)^D-+gWM$X<&cd37{Za?@}VD%-~xMF;9 zxif=)ux8Axf-^|oODmu=>Id6J2?b}6{3fF_?FZXI&lQ|O@-G>kr9YTzRB#5#6PzO* z_XyUK;e0(LVW_u*Fhq^V-_Qa-r{strXo)0r4GPP5YV-#jR!F7=Q zGNaStqHX4?;0%(gw;>m;$3+{-Rlyk|c%MFsADFI1IhkWkbp{(hV2wM3+ye{qLTb#* z6*3HW43&Yw%(!U9Yq2&0U$-%%*}q^aEWc<~=pjOG26pnI?Yd}V(y5dXd%V^KbYSSL zsTbn@8XH;{@WZc~OnYCqPh!KbGBB8`sqk$h>Kb?im{A4>(lFGnfZnJO|@`5u+Dg&Ei;a&@0BQH2Z)S5?O z#`DM4kr$jnQW+T5_*I}cv;PALgLTc8FzYPTtjz2JJZj9ScIt$%kEm&FA^H(hEQE6w z-c8dJfxml61ez1kfq8^E{`VCU9c(BA!wJQ zUJRxm;bBSe9)cO|#U_R@JcKHA2_ZKFLkFftJ@Uo|NqMlLz1XG@=7%r?c_B9gLkH#$ zlrmrJ*ErCM0dpvXj+9662r#oE6ZM4LF+b5=X78aPYIrZA*pp6WE=OK)9V8VsOry)f4HQxE3=By{4b%0qpuc)1xDJwvdZfp;jXvF$kriXp zZiDg=i{9XSojJrAsztjET8@$~qfIN^lFUeIFGdN>;>*HXDopTs6f+tNFxxK+b6FDv zXOLW#a-CxoiB(B(21$*D^7%r(d|?n}5pvf#tifDCTzA(`dI&a@f$?+`Pb%HtCZtw; zU(>BU$kR@W0H%As@DJ8F!Tn%HJrQPbzOaWKjo|$aNioy&h0*zfb_{~+&~hVT%3LYt z7G}Ll=tM^2r%?W|EMI6rg9*7A7|hOm;Z15(@Vo>``6+ODIFT=$rb`KN@2?CD9hfc1 zub>W`!GzBtD=!Z-FAp~&FXU!m=)jC*4qe1d?j?Qra&ObqmxtY# zGhK1&4&n-^`3)VI_C#GNMvVhyVAM7B)U_g`>JN!E8b&Mau>7G~{y<0MU3=DHpphk} zcmB{We~5n@FZ$6+iw=yw(mRNr=yiY%t+W>l$l6($KQoGBjcNqfx+0822lE1hB|Cy) zX6Mg4?;xoW46`PGpg1Xk#v}jXs}qf#+52xgNNNP5b2fi=uJU;YNsVBbqF3bggQVvR z1r%E)%-;-RY>N886`{iw;dk^7A&za$J1~8&2=8!Ja0W?54RhZWL0{GvR?!kEBo#Hx zgeyXxlOH4%HO$;A!X%0)_`HLpqK4UUMR*z?g8M;IQJ?qN0!?;JjZ3j<-YHQ)QBT18 zOm@+(L*X^=Ebx-*UTFOrFSU>69hiCrLT7vk-g1~(#VCR4R3Q9?tAaB~D$9ZCUm!G3 zlLrH5kkm{8bAN$Qk!BM--$qj76lPL^@F_i4a2+IfrTePy&zj4omp`&RQJ6s@a zDG)wEUWh$WJsuqxotDjuJstOH#m z#Y?%2vYbWEd`E1<+4si$M_CTB5y9Rz>ZU~Xj(QjQ&@&)3*cmb0{AXi_kAB5EPd%F1$Jx)ls9 znZ*QWkW`ifGpJxFh^s83l0 zXOL9A^|&guxGK!2wFPI0;C=ciIxt0uU`5Pwu<--dc!Q5O(HOzk+WW(_DHQtB3WD#v zkyI{ItVrlpC^V%#g;+bvWnk_u6mFv|f-^{}MrRcYV+)0Rw15zGl*^z4)0s8ySL{@s z!G>}fnAL^CFiI&ngBj&AFnbDxjpzs-HIm9@V9pc@y{H|*b&ynfV2TtDWwPvcN8%EkK~lNQy@f;j!l41B6r7QDa86bFOfhQ#drjk`Vof*;hEM!w<8b5c`2u3Gr#++*}47 znEm83XB#AQ2sX516jf}q=(%-ynjyxfs2ddxldleAsTpB^ z8f)|_MGdp?>d=>~f-^`eYM8B8hhppvgjHIZkW|z#N3IUFkQZDBNkt7~MZ<597kp2F zq@so?TQppYyx=-WYERMCW4nbs^Ef@&8Di6(g7OfH?qig!n=n+1_7t=nC7p-Psa{E& z(q0-RFe8hGJYPM*jK%`Y)S^M>XxXzgBv)lxdofiRy1rc8h#)GA$K*y z8Vr+d>SEiZhhRgw4Br^wdjSRLz6Yn@?A9LSn*)kK-#=iAV_XaF2Q%u4`eMN~p<89{ zl7jt=;uMmKVDL4e`!yWB@Wv?E2Gnx;M(${5MleQirbZ*9Z`W2UE}eQ@9m=jNGP;{I zvsjo;;204iqc7C%I=1434(-&$hmQnlMLwQnlF8NVE=v_Rt zD;`c2p&8z5+%d=65&N!TZn$NdqM~1E=pON9^!tmq1{vdGO~7v2=vWt zXJ`er&;2Dsr;=e8egu6xPHn1{38sI^puasQ{GM7(A*s84OG`_qH{PdUaWjN;H2XI! z6(*GoYy?w6$%N7D53`_Tb}b=9l0hUh%$AZt-6nRO6q1_#(K%c)o9(&|lA8TtE|v^5 zod2axrZ_$&QPO9Bm@=iZYoqHRsoB3=X~p(aM2CYIo1#8iDs(9owo@MA1u0P;MGZ5s zR2ab(!5JhKHOz=oVK^ZRzhE{`A*rZgrj*L=Ze0gSMGdp4RG3BE2&d>nDI~RK!E7rP z>fl{)9V8WXy0l_@y8`nL``#Fv)-1{cqj8|`lsH4-wPw*il=K%cxBP;gw8}$cYR!Ua zQabz!AA&QO(aHqVt#tS`R|RK~R2~d7sC1}@6~P%KwaUPZ!Ww;A&|eEnA*o&kGp%$O zN1qW~2gzOOzUqneo$@?Wvtnez&}}t-j+YKQN{4HZ7oJztw1Ren=)gQeojpU7yEPmr z4`%$(uOFvRSD2G93^wJ#taHqKrF*ikdd*VBdys3e?kNxMQ6{t~6V_o((D%>eM|toV zXF5@i!tCE(NEpQiGo(y-n3x1-Frz$phU?r+1beDv_RF%SJb1Y?m6%m7)Vste4<cj_sK@?e-O;8pfiBW5NH5hxEPYCL{gnE|ya zVJM>VV3;%4hC&Qo!Rrk(%7bBwlntHmA-EqTl?TJrC>yG9Rd5DL)!S`lL;JEpU&a%h zA%geQt^@NSJKGUN;S4r@z#4yHfWHaQZ+}QNoA7IA9^@|$$l9E;VSL%}KUA@>9>i8a z2PTz<0X|<7)Z~n{b!Ec=db{8ZW^RY6b6wb1HhYfb46)snVa}BeS0XPsgQOxrrx>n` zr$B%+Na}gm;co3w#%NLMAX<}7zw5Zc5^f<_AvbDtU>2phYekQD9US}`Ym^6%)v?x= z8ghnG$l9Un!o=&s3wRfD{cO4}%)c)D0UtuHA9P?!;OAc8I@nOAhaY}D!V04=Y&t_w zM`5Pis=tP^d?~xZ3BSoO{N)y%M!=LR7tWv~_}wwgXgz(PTxd`(Y{Q388mN853@8^m zmkWEiAjH_To}vSDAN8y`(Idcy)>HiO>vQU$5W6R5@T=1Zn91cr1tJza0?gc$^4J!Z z3*9g0ojc$Rl8WGt>%-P^|F&jjz7NYE>p4;`>?AH>Gf>p}J}f#ghq$1xz&e8sS!;BC zD0_XF10&>?2OXG?xjH85;6U>=OxNr4?gB8QUD`;GZ3A_1kf`JS;BgpAipT%v>aXZk zULMM){Ts~G>qB7}!5PfxoC0R?^QEgAK*jy?kg^K1@Vjh&r3ny#M2j zvX6(N4i2=pgc)2u@Jd@sa2?DjUw|21KKvGWp|Ms#B$XAwOfMh4B?7^tMpCO8%(C*~ zD*Om;4N2_=XZKJYJjbXie$%BoP)Q3^2q(&i&#)x;UnNLNiVlpPO#c%(sxvrHKj>K@ zRIU*Ihz}u_RQ(#JRRwNwbCMOygQWWPu!_=YKv_=Fx1)~sNDo&CLo0;;LSBfBb|^EQ zxeFg35nE)m4{29XI#0sfLwiO>`w*Cw6~aI)3C>_f`w*Dj6~Yj%3eF&@eF)6y3ZXAo z1!s`dJ_M#v#qb_}1pjLeNUGjos#OfXL|$+mB()Erq{LR6G5W3Qo5)oyY9E;16+=xd z3C>_fyAA4^+WEK?wZod~3=Jbcvnz&i6@&ibq)c;l9-lU*+i{IMml>dhBXz# z1BeRSK-4+wjQaGOATkjJ-j}3W*;oOz*71OsEvJ$_O3-4z%Oi zP$|r<6uMIu;W40+YR7fnnRmES89z@YjG~4)P${qhND0nhMmw$&m1S)U5ih1!%}R9i zRi}E+RD}6}y<24TW-76vvxcar(0X1TV%2#sOsC30Jy-CkF>`Z<>0ddl<*MKelC3k$ z{guNIt_sc|*($?KsvKr>Rd5DLox|d1LFLe$tAaB~YEFdNQaKFds^AQgEi=sF%Aq}1 z1!s_KlwmGb4rRG2ID_O(8Kz8?P@k)UGe|biFb%7O{9F~BK~i-+rAp{hg?$wJ9gxw< zd|PWol`ybM_#-VKtOsg2^&NCzCSmD(w1y3>+mwf2577sHATe`m_|==KyKV@Js)QS9 zA0hhDx_z`t*j6R%z`GEc_36H;bX74tu$TIp6+JR~GZkwvU*Y`|=3Qs7t~XO*%2f@| z<3n%;Gb(Afs-a2M>{xg=DUaSv9pubcT=^3bL`H9>j&i0TSBGLPGI}!=KUnKdY-{O> z?gzhGvxeLdrd17Jpd*wdM%9~Idq>r(ab|HH>r=;ts1FWIb5kH!* zTnFp&Q}Kq7|Az2q%nKWV{AguD2j)3+ipQN04s^EBCaGJbp%dUZ|LiAF4%Td&Ui6%ne}*Rs@aJIJTENvzH5hp$_7_QzK&yojsIab?1Hv zS8t}C^d6#jv!3X3sdn^cYQbviJ6BScXK%U0=*?968_W?bjV9Z3YjjS%nR<7%P_VRt6j~#)x)f6;U-EdIFs~)J=MbMYJvOxDIqfI2WOnwfu9d^{H#rrmsFQdH%eM7 z_5-YIhXPZC5k|ya{0ZfhR;d8DE&LF9Na9j1zzIqrzNrl*Q+Pk0wQw2XWf$LyH zZ>CaGJdUOx45*keREt)#In~4X>Y*Jz1V1gJq}q$Eb7pE%%E)Ln!x}nzuOdG?NI&z& zwfgn&8ew1cFbzvW96zd2m~+*`QQ{I@2TAGFsS%3R2tz1~kUJL8fq95AdJ?z}HdF`w zYJ`q80v`}d30eu&LsSRoz$_&;wW;giKyRiJH6CYjz}1=KIcF%M_LeXcYh>?L`|cJq zn%`jN*9gC$)dXjd)Gn=5&9JFP_z9kc(zLoF5ObkMI8-CN%mraR5TpGYIxroPKMTBl zu%Z1Me)#nV`pwkXL-4D-1g1gFaE>|?Tn961xdAmp=bE7zT-a#e6YNNUZ3Sy(gtldFO=NZt<9wN}_#GaSXc;0zHg zf+<@o9H|-N-?@v-;tXT8vi0T+l6spJYy28Q9q3C?&R|_SFpX-3Hmpp7w;T?>haom( z?xz);G?N3Ad=&HM)38fKPen31(YK5A2N21%9YSgkO%R^X|al;8~IQT7hA zxK`dXVk9*q!ECRUcLXD;?48(!9j@i7 z;0%)51;8|`9WLXl;0%&YGEDc{;lH>lID@2OTUI*^t{vvlHi9#hN6hrvVKgM639*lA ze}E3m4Op5Gtzkp^10vwp1=^=|oGtOIu?@4ccF@akg8RXY`e=bV;Y981K4de#G!`_w zRCeYIF8qqvBBR*_Yv^c1-5%Qq>l&vpt?J}0DP|Nw@4BI9oiG|5!Lv5}sK>($trPCx zs^AQgifv|{@Nk{b0`Ec`C5jCl812Ib5rH$5jgSl1V3=TAl?X4ST*A3f=ScoOn zEC#ctZn&MRf-^{J7MoOGI%|mdd*V*T0c)|Z>9g->!Oow`55Ti=?stP(tuE<#HQ!gB?z>Ea;cY;B315E$= zilBE#p85G_VvQc640&$7Fri-1DY)=R33OnTA#ZTzC)CaxWiBzwkg?CJaGM z5ANqcz0e&?f?LCkGGuhl*9*Vrs^AQg%8+47)DHu=Dma6r>Hwx5YWNXK*CI9~RR=Jg z>W6Qs8NqdsREA6|P}1?8DNjSoFf^I^4$S@aLqqzF;O&DMWytgcS}tEj?q_kd;0&Ec zezw#P3+jiJw6qZOV2zR~4a5{;K6s1Pj*N6J)(?m4hldGP*aqULFVjFwU%Vd!k?~V0 zXWroIEG+sQf@@{S_-WW6w1*L#!Hj0Hfek{J2HBlMw5F1x12Y?W%_FXZ4Q0qMBN~Jz zj5onEO3WxjrVc32d-SN?RTCX5Oc^rFq6Wd=dW@?xX0(ew+8}Ie5PDNHLT-j!?nW^S zxys8?c`{^}^o`*ll_GeCj2UIfOXssn{^IH-(c8!^iTT6T$j)-&9p+v@i|hG}zCP(CZT4rWxIyKf4;ZVJOFix9J2WyoWlxgPHmKxC95 z&vK>;R~KU~GRlzggEeI=S1`M{AN*=P9p5Odz9}r04v0H^wf32t!k(LcR8nO|MH-2D zEX`ZZIVD|39bgSc-(=2aMp&1h_KiY~M%nV@W(DZLC_^rVHSh5_P*!knqi|cJ>?y$( z>Ou3)+)UIk&4^$=@bch588Ris<77^l+Eq@hQ7szV>l%eQ_`!&Po4HO@Y*6?N1PE;J5@8i!Z#Aw)*~pi~nv2dSOMbNa#B zbYEG6xq}EUFu%DD*0pD(mzmYyp(gQWVw15Lt!CgFc6zYtqa z`zmx`eyR2Wu7eF_$dnY1k6godj&4X8szs~W)+S+Llh79LLd=7;0v>T@3YPW|d1SPj zVGW%vl;s6_mS-%uR==LwG+5K{Dwc#eepI6{Wt)a3)QsRdNJ^(`)6l4CwqNIt1$1Ec z&_3N5r&+`!j%g4$v9Oqih#uX7lg^r4*b&QnL%p z%I3bS(ay#hB$e$F0WvqxJ1%FZ>I{CB?ZTXH&TDsip)O%Cqg?<@p%&pB-UZh|QY$)4 zwHDzTy7MA9LwUrEYY~RE2m@(SA@(=z6VZYB z5bxRD1~#m_uFtm& z2U>gAU9ylvHoD}O&(`_C+gN3N{M_{vvN&Y8Ek|arz zB*{pUkr9&6O-7PrBuPe+kt9j-et+xSz3)BePM=vHclK}n+k3CQ_S*Y-&N)d_`&cmm zd45C9>a^EYn_BoyCr9Aa8NFRoYuMEEd*Y%>Xw;6OGkW7@Ldw(f3DFx6$&_qn{hHb| zSVbEl$>{Aska11p?Uy5P>g_;~*-hj76c1r51*hH)1XGQ*Q@?Y-?)2hgZ}= za|>ssw9MhAb{h>Mmw{7W*Kprn#_NYl7W%g2TJI0O?1g{8IRyxv*PR37Mo(`*W?{&% zjFw^)q(d|7jb)KX2*aXC1R2oG=HZvf5jbB@xy*!SRvvzlBXBAbS2eS_&8!;yqN_nQ zZi+;-fegg2huMdHe$eqb+Sr5HKXb0;49vxtYhzEA2OvkA#rJz1L5<=7q)c<$N>qtl z8=OL#Hn*D1i@lGecbwZ_D&%qE<|4+;wc(qhcj3j>sd;>}l;z-FD_?^QYHp?Ii^$L0 zaLUg7<~FIh-2$uV?E)E9cF2JI9R3lIBj`{iw5z$TZ641hK_)-xCK-_a@P8U)FrYOD za=f{XLchpmP$REvUu@+rj`8*|avEz@x5$7z$msWA#(QcO(4jTg%wwj1FWZGgg@A_MYUwA>rK#(?e<8EeMrB4+zSZWesp zm>BJ56F-JKD{V0r`;DVZjbMw3{`$RNB4)8B8z3 zh|W!QOD%3;7qqa-@QWUW>jcmwI)!X87D$lp1IQ?m^+tcCrW z*b(WjF9ql7w6?_QRTn0{g4RYWT`!!=MYEQmO!6~mna$4FqxGQoQIOTN%_w9S`uebiW0KseJ zMEZj-JqWlzH7!8symBJ*Lr=HkSG$%xx#C|)cQZi?LLIU_?`1}F17KO+IE^mA&2O0W4j}I=Ddb62y0GW zgRH#NT7!rjL5=P$kGPEP51KODPl76{^e#0XV5bbuT+Wy|f=4CDF4{3JwX^Vch!xI<|^?aM3*r8IUtX?FB3z-(}FD zcd5%>W)oY*@7oA_iQc6Knb(R@X9R;CIEOGlAZuD>?x%3-U22e>t^5;6j|3Sw^)5BY zu~xR4Q4zTvIQ1@dE%)HB_;nW3n|xX3(@SRVgT%Fg48{X}{>8PS<43gd z6prUik3PVQcND*l@KjFcACTRb*#UNDk&iVU@$*k>J8_vMXcJ|ee_C7l*7hVJBMNIl zJ4Q=KGz0U3*XYoWfgS$38XMm;cJ2Xob^ZbA+S)%Eq)!LA2dMc|+P9&ttuyf{as*DD z7m%6S+GdfXME=$|oGn25gP8MAimkB*>S*^+VFf4Su`&La1E)8#%oZSw343b8J78SH4>>gQSIJX=W&h#n+@ zl|z&hkpa=SDU3Ti$XsqZqhkkczhX4?i>0m&yE^|cr_4vS`aJ2P_;-XkRxJiHIxq9P zXHetkpFEqH7qjwPI3N#Hiy;Ftg}$5#{XvJHfAVZgo{fN2RP_9V49F8iuA<#zbXlJ7 z7$C_N{+TY_`+FoF%=0<~r0Nych+c{ufm8eTwkxdR6?Oz|qHxMlwE@!Z3SH`Ye%HS# zIJIws^eaRVW1_C`eH&z4A>uM{YTpK#eMPK8aGXKE!uM^E6-XES=Q40=-(J;5zO4k) z_o)Wo!O180kXb?F9r@RKK(I$Sv(obM;s@ec)+{SK&U*s}y z%4?7gZR~eACGry(oT@fJ2DHia08V*5*L{19E{aO{&>wvH2pcz0qB%n6Rc$ao z^t3%PUCS5DDf6XO06Ii46Le6HU-#{iHT0a+DWxKA7l`4zUXIm#QkmFZ+ zg|8~#PZDs-PVKfi4v@^=<77tcybR zq!So2AbQ9960L2#NG)vZb6VjlJK2_dSKgX{Hb5c2Ap=qg-jTs;4Cn;LSTjzWndw`} zu&#}X(SADZDr}Wql2IMHMtAZVLXg{siUfPa>=sBQ| z4zr*YoY&44Ulq?741?Rz3I@r)3hwlO>Szj1tzeLSSH+CvEaJS-k<*2U%fP7>j7+6= znRejR3I?gyF4GR2eqOj*zA-p@y($%alh^#rMXz>ow!_+%*B~R?#T@SlobnoEMmy76 zuOiPoaLQ|trS0N7r!E7hyaw6a&d#SJBF{T;%4?7V?P83&44m@1iu?8k?#?cmnRgmE zqWO6^=p~f*NHPkiJ*ja9Txlo}{_SlUO`@<)b;?;8kz10?Qx3?S_NK8G`52%^r=0CBa|QhOGjl~xIe35_ zeQV!C%#R~@q*D%F^H&wTu3k1LU5C&`opL}*U1PsTM&x-EH9F;h= zyarj$h(7hJ0)#H=lmk+$gN*lqTqo}Immzvz{W4b7)S@&_{1BZ>AHimuHovRxXdU%0jIqLWL*clh=>=tZ>Z5; za-xIn?vQy$OdeGQi3~_1=I3e1=La3yOX^%}<*$wJN^N4|v@a}5%Ycl*hTgGquQ8z2 zh_;s3+A>;2t_?M-(_VMI)}E$S?&y^_&QDst|D*IF%F6xNmymJA;}c_$IG6 zb+o!2?QWEaJdZLu@*1QyVzi1Jfm4|rq({g2xlqsKa4M674DXn^FTg3UL8f=a7vATC zJd?wzOb)W7V`io5oP7VA`__@T?#u=hd{YHUfAHly{L;;rBXnMwoS9>6^?pdBaIR;* zl*vIVUl*Tnq+_(BXJwH3*V*IvC2|B#<#>=b*V$XNiX4Gc5kLAm>w_4rqN14s8IU}7 zm=Pfo(V+@*WjE{oO3q=1^Rkb6rX#-9EB>uCAj_`v_tsm5HHR8SBFL8O%u14TA&)mW zck``{Nhdpa9e1ed{=d(^iferWwxJ`V8H3A+?Q~Dm-)R9-wUdp)W051MQPtV&MrqUU z05{bRfULA>&2{Q*?K;JKSdyP3m(ibbovdFcAiRqEoE6o`e_GZNo;f)SQ=!I(K3D?_z z>tnr>U*L6q;$r|(63c@jM=;gjjIhTP`UW1&xA%3FQGc26)8l*xOyB$p; zmw{7Ww{qX=FlCiOMT~FCu=EFC4#BSjfXmQ%W!Tf+(+@$8fQ0!`h6NecC9VZWP@_Bw zGOdd}ij2q+I8`fyEbd}=(JFETPSwgF`CZ~uIIk1o)H(&(*Cp1yE(51(Wnza}(7pOy zp;ji)6!GrN22?8(@kC-Lg63mxj~!uos8%K`lP$lk$S3c6 z7u3pRX}!}p<3<~Kqx}ULk-l$2aiEHLvm;m1dOzc>H${cWH;|<_+SfFQ96^mL;sY*o z8X09~z3(9z-TUWsl^xytk11VDq@hWT|J8_lQ{yXDq@gBU2Ow?i5!7b6>&B9;KN^#yLG}HQnteG>8a#N2-wDKz4SIyNn}n-cA-n8-M9jbI={Q+_r49HIBo2>aw@mn8*2Lsb~K&rr>8)Pt``k+To_2(JZTxF_G z*H+Mkugas*EGr)3YxtYq{*q%T26{W)=y?dE^*ivptl zAOq42nX35a2nJ-QP7f>JBhwBZs6WVn==QHtkimfZ)73rrg8cq%`9eF7rhAHS>+ov@ z+0Ubwp;R@<7!2)UFQ7@}2x?lVk*PgwDy|u*~#IsrGkKzq&AiCL~3%LwB zTBWt^?O}b7$Fgm|T zYXccU;A|jp96?7*5F(!0-c5Gt!mDJC5a(Oc$nc(-?@nU+>ohXGr*%n?fm{YoJ<~(m zlAhL{JSy^MIdE#WEBCTZJ?$>6i!Ng}v`U1W>1q3W+Cn@Qg{-VNKnCPT*69L5*RwJ@ zR99h#zq18$WOXR-6sb^pyeR|nyG>QD1 zW8rK8(zuU}?qx6It;l8YTF>-AX7;jnw2B;oQ?sz8mo4k%Z^7$L_#o3YEd$b&DEu|! z?Fc&bOb=}bd)c>W5;=kzJ<|h8dh_L%DgRyhuYS$A!Kr6@AXR%?W%xxd1E=}}(y+Hp zXUs&7z^Ob6(yq5PqgCVxoSN;~y{%tw+g*~?2suJeRSAKN>s|QCx^j2`r=IDdjlaIF z!Fz-C3S`i(dIw}hZ+ik>k$a6AjZTd|wyn46{c};UBcx;>JKWoz%He(o(rO9$8X1tC z?94i`xC}a!ud%~l|6uiwIllnGuAb>Jr_9H@ck*3Sm*k{nm}8w-KsxlXv(YB<2tkcb zEED?JfIgYG1dM@BEXaUVWab`%{HZTGbYfZ6$L992(s(R-43gKnkwFHeBGFroIPkp$ z1FHEzcJ#4-(|^$zjVNkXr@cPf$Mg$KBDVvlD)0F>TbY~fIaaXf_h^(IofklA-W)4@ zmJnY=db3yFAWd(MJBD_R6r8HOK{{p0z^Td`WYEoVXOfu|oT|J*Cfyv*7;XnnRo+wj z%C|N!=iqhlObwAQ{ARz^)y?j&6bEq1Ymjn% zy^cRbqszc4uR&_}jqfzRpsvCxuR&V$rM}^pwSo+s@_LB-rfM;X5C@`X8KD%MI!S=+ z>1)~(L@ooT)||eS$smiKRezXm?Ip;7T+fMMHaWo~1Rc7OX>*6Qo11fJD<_=! zx4O1b4d?oe3`nb6GT%%}S`9tI@3r^K8({8b0x7aoei;CXJhF?c)Sovd4hjAUdUzzavvp(+ieUcVSseoKHF?J@`YSzfe;okO9#f$@=bEN6;Z{OKI*GKdDjlMg|#>-pI^jwp|7T8Xb_${Y=j=M2?_F z6$)OXw=I!zDW@Dq=!I@%s@!ThxAF;)^ocDzlgLkx0f=s-^d^}j7*KvgTZ3Eqv|9R` z$6Om~G}e7@wYIm~ezb`~#4Eoc19A!Tsc*-AOYw#d<+oY4+Sps|QyN4?Z)A`G$)TtF zARlWCD0;WvYRhkp&wn-`7ory#kYD1pK2?@41OvK}Awrl#1;Y7%DbPkZX{_7#w-Ws` zvl#Ouq)~sX)<0H*!Hy~iWI*FNXOf(4F*J>Vd0e5 zAOmmnr@lvn44m>BWa4e6>P+Mr7EXB$GVivSDcla6@_MKHrca#TM!pKZDZ|nqd^v!} z9q5!JbY2;D@&L`kJdk!&cYagC{3yeMlpPSii@2WEbj6i(g9EO8I=7=vTsxeOlYMh363_yN}Qsnp#Ax~Ll& zkWB+^G}%?;{XvaxWI*;0w13fmk;}lT8yS!@12ex@3Qmn%{X4Ak9i}%kL@t8|x{*N! zJbBu3qcVtwbY5t4MAbsx0yh}rkc8r;K*yuYl-%P-c zb_{8|!@9B--i164(4ie;%N@4t4x3E8i8eu63#y2b0V$7fPebk-2DIit4&D*(tGq@+ z&1%K~BpGD-RydK58=T5~D+XEBL8k8{5QXP}%6uRV2N4_T{}>=H5(atZ18FxXvxXJt zg)Y;t5OEnemHChvSEvnBoPP#+<^!2sh`0=#%6xPGD&IQ6d>Jb%_$IFh{MEJ%vc({x zjnc;G$ZL?pgY0%1M2^6zd<|0aul7$`MV>9;l-D3N{u*zOT?S5h4bm78r$l~(4yW=p zNQb}1Z`pAfIOX*O_w7ymdWLlud{e%rKlpMO>-v17BXnN*n)#up*CSJpdu5+f=1ch+ zWEEmq7de6&5+oZwvBF>76R>Zp;(LVY%ExZ( z<<3}F;kesTPp8~zL+)gUU__xlkYZF7F)|>tXnBKT#}RZ$+xk0g;hph&TZ>l2$bkGE zng0zk7|`f|?77q0GM^&Xh8k7Gc#YmWSn;zM9Y^SeD&h-3wLvIpLmknyp`fTDNb5X&FJC!g7wprZ8wG9VY>*WBPW22>FfAYu2Bb9GwVfxGM!Jr(&Us^HWos+tUw2e)%7daqG|HhfbaT|U&R3^k7DDG?Vy zJ_gF8APt7bxF#*6QgAAdg0vkPKZ*8JA#f^>g7nRjfm3-DWbDxR+mdbvPUTUMS%uo% z4xGxPbMBUJe@1L_@tScK75zjN$f2RJc5wtwc@0wH?s#+RpQwUUUV~J- z+rPG25EnH{FWV;fm2?Oci*N~;non>gKx_I^ao$` zZD=blDnRJGvOn`fPy2&RZCUWCC8k-~A7tg-@pl#dlTN5njtAL(cl?CEBXFu(2RU+g zyjOMvPDK?+sbQvX0u%Wss^C;qf#eReHAJDvW#Ck`PFxc^o#@ZXMFj|pK&x@!FzYys z?`le=L>r(`ts?`XS~Q*;Wtv)<)yOJYLFCq1QLsu_x~kUMG05bP6HX(jEOdv`j2%SP z`c51h7C*~Vv|2BFkB~R8Gm4ojTCIZ|8)hHilE@L%s9LY(GMngS4T3Gyw$X z=dqszMAbUJVdq_Z()V9`l}1NYt%G#F#~wgNYXI>^-F@t2NV8=R`vK^6_Saab2Q0;k4p?{M2lmzZr)@Zf{QWk6H`?IE%p zLC241n=;lKjLGT7i@JB+ImD4sRmS+QAAnRGVgJT!k^6>eW&hzLtnLW=DcVHg23<&x z5!QMHKhn;VVkkts_61}>^ajzp!E1DAU%(E3l_S;;Gj{G9cBiC~=_BlR5RrR;8a-n{ zX2}SCrk6DbIRdAiNq}q`VefIK75PmgoGn0RkFxz}!@4Mpj-IiAoXJAq)QHv}X_ZIX z`;4Y2$aGE1fV5>~a>*2FWQ0FsL0g-VHVGRdM^K|@EFgVG+T+NG+-o@Xj0I%$Nc$i7 zMJ@xU`U5g^q~BoZ7Q+!Z^^65%*+_qzLFZ>j;M6mgWRz_g8Gq-_5q2|WOOS&j?Ey52 z9D!5MSkT5_&y&Twgjqnlaw168QT9wiwGO%0sL|+*8)Xeg`MVzez6YrCn~;8^tlg-1 zUI=lZ^ENUdi}1KI{O$odE=jou{PiO9S)JP75$x(23vozVT&C!W5*ZNP zxL3uF`-TDS3m}b0+lP29@)IR$R;Ru0Fxn;&9U`{_r*`KuV{E`^n}Rk`IJK#!0GTj4 zo*S7WzHni*@6I4|N5}WL7(TX+(Y`x_tjdysQ@bwvH3EE~eVQKPj0QhTiJK%2-i6Ai`B_N8sz(NdCF=c=y%ajM>MM=2)5ZIva~3iMi1^(%47`eO zGkgr>SB-#RN5925a-8LjD>ep-1CU->2%P#YMzrylMo0d+9Za{Ru3{GGvsyWtr4gn~ zzr{FxqUJ|_H3$eE=u~}RoNXRwt7sJ!y+5dOpO6U{xD;a^JIE+@KyvPj-;nMIYIJ{q z9c0Q7QD23uj8huxCih!|`-*+CPWK0W@3Xe|#ZT-My+1$(KN z28E!P-5($WG7uZu7aT!{DwGoA?a+Py z^&MwqKpsZs1V&s20~#HWYUATuqK=?O_Xl{5-my&3RpI`CUg-Xy|9ERZKE9=sU*L6q z!s+9FA%|(Xi*axS1Bz>q@#F0dT19RLH5%)c<899P_`Y({`vYV^?#1I9>8alzphIze zWV~%3Z=YaCRP>1&G9dcQ?iS>HtTCV%&As1B-5+l~itgLUfSf|pEx~IH=>C8RVGi~C zR3FwZ&_+0EtmoZt9q*4%x)iILIUy78w}JQD<1~nZ9o31*fau<72zK7)-xNAjCk~$| zZRgTD7tb9jh~8uO+nW1hMhbRTGYcR)?~l8tGFb{vo%ricluRiabUsI+`=)(v!2~Ni zA;vWWjseKNlbCwL8+UGz97s|LDIJM7#OwN*l zQ~TW12jm+M13VuD-{f`I2W;Jh`1`aTRg8|j2H8EqrXnM91WxVFASd{Xj)?r(E}Zfj zr2GT+2>c?Kfm2?C)Oo;0z%TOm$KjOMAT1xT@$idW22OcB)P2*r{@3J?;G1@5`hzbu z(4=1$c7)DrcV>R*>F+=u<9_EIG-@)nJA*8Gz^2e3as)NngF!YvVAE+8IRd9n{2+TD zuuZgz9D!3iI>@O9tT}c>z82urst2h!F@7JH%fP7xa0WL(mMM!gYkjrV~FqIyt^H=a@TtP+RH5&knB> z|E7tyWMcdt^l+}%8`EbT(XIAtgh#j^m2V*XC&n>w1T{MGSAJ01R^UN1^874h<+V=y z^&Lq-T9hh8bmGT1Wa=|FcQOVWkW)u=;s_Hn&FGXI9;k8cuAX^IUI0C0m z{2&J(G(HuO5;+2=PW&LrB!7~krzwuWsS`g))k*O@=LnoS@wamiK4yOYSgp_lo%rz@ zi#idMu33Q4MVE-Wqe0{dYHkLZ`;c{bDBh1cf^WB{kpU0IeZdhp)gNRgJY>0O z5;+2AFJz9owuZF!4hY&Lv*RIK^^iLY5Hq>Xn#h1KJ=6*X+Awep+UO4!xs37r=62|X zv~`+nWhTdJBX}*O>13-p`M-`1G9Vm0QelKr=+K!KJN(7MO|i7o{lTe&AcIFGjeF$W zT%Au#@>yuvdA&vtzjpzdG&#Ph#Lh8~+D+f9Rj;H;@WbJmNK{j-W<2G9VXBi8=l} z&=j1Pfpni@t)@f|{N5isZztVSn;#J(EtQ~vsO|+BR%pi&)TrhInKmV^5=Y?FxK(<@ z7EkfdO{q29`)k}l@~6bHb{RMo2O#^V#C7U2aBAE@PERq7jK~o9mQpLkC}G&iLoM=+r37Hz#Ai6iQEP@@|ekdcr0D$z>Gg;H?p1O_tW zk?6Je2TrYRkfmumvgLN*R6SZ^M8a4%rB&hRG6nJ0cB&nCBvy6-(YS%+OwF_dr^XGW z%GAs`g;V1O(qL-lQyw@qZg_xn13YL8xgFe84qrr%%GFTU|$(GDRXtlW8#ye14>c>WMgD=Gr530vSgL8m-`+ z(`?|hVl$@*0hySEz^MoUnU{sYDX&4+WFc@W63b7Q9f~yHe?sgiE0=xDjupxzaD=Qp z*b(Jit*n5^x8{#ot;gaiCm`|-84#^_WpYO_Am2bbXUU*OzD;&Jii1A}86rek8L#n8 z*8dDitGd`M)lJBP$6|hS1U1^7cRyz99*g@=@J;iB42afG+?~y6QoBL0;isRfDF$<;M8*& zkm--d9nd|1Q*{W)k}L#HeYOu|)8jFdy9}Hf>-sZn|Ko9;I>P)2sXW8ZJRW05k*}Fk z>>vXY;>Kmrp~?-X$0;1)fJFsX+)^Ypho>UIK#Hgi2X@G)gS%pO7et|P(1}izq(S@ z5n0#H91#8L3U-iDyyZe}2fM0JO3t)~PsHdA*+sM6?+I)7M6t2{Gsrkcq$Sqm__jXj zCT++_iz43bpj~!WJYln+h$9+&Q{{jRh~`Ht%Of5Gy8Sx*gl#J>vnVYCBK^u$ZU+PU z)fIY*#Tv9;9keklTHB3hT8)`8Uk4AgwmUeIoh@spwIQSaDF3=0+|{qHOz;TlN^2^o z0AURDt1ELIQU5CyLG-ID#2fRjomro{c5MWwes!hHleTJRoQ2?<;^62^+cC4)xan6{ zkO5H~$Um1shkkXXrfXBIRfpUTzUfz2@Bp4)&>FKc?y80@H_MtnSuCy<2ZNrpPEW>h z3)&P1lN?ctA}b(oCf%eB8O@FExg0^eDoBv|S=vyeH~?AuWM;g?Pr0sgL*chm` zL#9$JlWMPWc8hG7EuIvkfw1cARaOfm5@M2S``Pa2?1IJkq`mvU#>C zABw!EsL_53av%$VQ+G9EpSGN*qt`A&f0lu?ecGx#9mhH#%hO1Mr#(hx-4QtTD>7)~ zFYP6~6qQEME*X%%PiICI27Um+H+YoabY^mG_}V{>%z8Sr+Ca^UG_w5Z%$~xj{#2V| zTZ{KccTXUPvJg0xEkR1~Kdg(~12}c}gm3U@Wz`A@cGstoMsqSfK#i&zWZKV(5#rk5 zRD}Z4e@V28gH z@xKlI!LITFNU3KseM5~_BS>x*0;l47;xpFdnb^~!t8w5n*72DbRlzq!JTf5Sjky;c zT8-G@FXgH@*4Wi*1ey0t%vC<3s8KZtvgVo0S%6c%4W4T|pNVUZjnmhupMU1sv1j7S zN(vCIU}Opqf>XCrC+6DjxiMdBw^gosJK+=l z^Mok7>MRow#Q{k9XJh5<2x^r1KBlpLkC}G@|OQBN$Lk zfwoi6#;9^_sL>7xQgL3~f6hlP1*i5okh=3SM+Z)=Igr-#q6Z}<1E+4K)(uJ+>+5OI zTc5!)-0%SDD_|W9 zIfA>2>-x{xnR#)3+-o94c0ejW7gtFdndj@Y-F(TYMHNbr(alev=d8_hF^`6x>gH#( zBdUhAz5}A0pQ`gEqe#~b1VlGKATyuK9Bb6P&TNA$%R=DP%@4?y=VE_c8=McO?HqhA zep8CiHk=waWRm$YSGf$Fy7{4}_;wzC-4c9bSTx%p4GU#_3{az+AI6%|xg7qtAV-)O z&GxqW)^C1hgfP~c1(0z#0l&y);M6RD%$^_n;|QGc8f3-%nEf4rQ?p%Wf$V6kRXI6= z9c8|f&)eZbuVpLLE(0Q>%p4H;*7$j=@qEmD0g-RWfM{iD%pAdhd;{r_C4(CIHo@&^ zKmB8n!8c_-yv8?K*ZNjGsEf@~-Gt12K8}GSsL>9%<9S<^We07VA7ntJP5dr{4&D5K z9DP2{f@e$A=;nu+W88GYnIB}BX8*n2K}pR8e*V!J$hDzHr^8MQtm%U2Td2HsI-KN) z_66|=L|%goS`a;O1U0((neQ?hQ9UyXGP?O$8Ny<|>zg zQ#BIEkSqjFRjMFUUWlXPGH`0I2U(b92Ts*hAnUWV!KtynV4>}KAIpmirL3ow<=U{To1eamtkuGpLxLSuPs0{k_k}Sh24q9h zEj7&%wWtyZh;Dw+hKy=AtrSPluA3i_#S7zVbObf(&%TA0zcBVEK~8I1H$SHxQDv)$ z3W#ogD*a6|>SbKPT8(KBK;%KZ>%^|AfSg5E?{BfEA-ia{d;QJw{uXE3BN1&n@sD&w z<0fqZS)cGJpGA_K4=&af>Sp?C0?}U#eGv899m>s7Zr;G-TWW} zqKu?i@cy7fH$T-}o9d%@YGda7_jU&*@MxUtLhd#0s!lAm*c!bU;~?}$anS!oYyV=* z6k)a%2jd;l%qgw|@@CRa+K^FYB0G+tT~!*$oEI~niK9kw0J8GMn8jQMPQ}5I7j65C z#bQVG8!{mBR-@`(qr-o1cTj@G2DCmH5QarN;F`sjyEu+06X7dM`)S9;)?{&v_)-Ok z_IhMME}-Q?$Psi%+r-5-aB++(&4kve_ETg)Nr0h$+vNT7Iz^M^!{*u*tDbA_J zPBI!%WI%pTgL>*R=Xw|8nLY45zXs$eAnzPTl-q2OdR7 zt>7DWb@KyKe`%%%sL^a6TxxBWdMSa3F8E`n7`@c`ERExq6d;NnWI)ssvoboQZP`+r zStt`K6vYlQ1&Fe_Yr}wI2V_g3j3cN~>?E(qH|;Vy`veb^Dd-P~X6}5*$Bq7Joq|+- zC7w?mL5*$}+Pz{8Ux{Pwkw}ERopejBS|&ui(ijls9gu#n#B3>4YP7OI#=R2f#}PO+ zIwhCc>?|4VXmmhUyb@#7W#H84fNXmu#33Y$f zTD=;_K(nFxK)&TWqFfmBTR|jFd)0=$8b>t9$Tws_w5pUx9KnEm16iCUgBtm^&+TY$ ztQ};qqx^=~_$F=jAkSiSu^F=sa{AR6RgR!W`$D}HR%u0CbHO*w4>BN%HSxO)I&`xD zlD8t(2VOa##@{LFnJ{juW@ZE#g}R=O^-M;ti0>o0Hq_|!v2=yaSP|z`=M0UgP9Fyx zQH#!J0g=}rn^(k{a|AWIS;+Z^v`N24D9Gq$p^77_IFvqH{UdXJ;M5rd zWO)_>r*0NNw*DiIo7;g?l@Q3GEIV-eJ0(4n5-a1XcNsYSosynOwJZcqjrI7I)@Wsn zc$Z;*g!Er&?N`Rw3H!EU2N@7WVu+ssHyEm6`p)j%wxY zD{Wly-Qb!z7bSU!$-*mHpHe^)4$CDn~b+Z6c>a|Qes8N5Kyk@zt#r`D7DiU?G z(9sd)0re>$x>*?Lh+37&1EQM+?4V82q#D+J!>+1;&Z}(VYcYC5cF}CFdClg%mKg_l zpcCcJh^SAYr|Xk$(uRy$74eRsU3SW@vSY8sDlPct=O0HTBl3vHfS-R>S*=ykw;;19 z?KOycs_}L^7|_iEJ;kC{Ra`#|i`Mq!RW`V|Hm&Ui5z$Hvc676VHe{4TqaC`an}yvT zA-8~3B+Z5~(9OaLM^ukz-z*Ss%)3r`O@a);shfqatF8R%IM%@f#X-x}R%dmwansEL zG9dCedW{a6yTzdw{^joiq%CTm~KfPD#%M z>AvD6dL6-CRqOb+<@NaF&JoloTY?;XJ@XU_r^c<_T1(bO4>U^hKuE*2R<#fb^P>?( z21H{VW;}%sf2X8p!e2UP>DjKw0e1bJlAcMwwe}lYMUJ3G8EMN6$+)#~Zw#5w&p&V2 zY}|ui6cG7V@(o*&_CQ`Z0;hZf*_MUCso4fOyf&^=uT?C1WUed_-4cLI$dZ9mHw$Rv zFRfrjqiaLEWI$G>5urZYsL{;=zQLoD(LF&1Uv;wpa`cT@rMWiL=w<<=%(~2~22S;7 z&^oKRu2_F`vjEa`U1k*kr?MqTr*(1W+zy<&S-=iF+Lg37ID%c>EPzZ}mpRs`QB?yn zKg%~bRiS{aU6(ncaH@I&*_DOBDc@SWX~);ah<6W|1tGQHv~q98jFjM?)`DsmWI)6l zGb}n(yI_aERB2R)TpM{MgG_ldj;JGWDy~5m7W(E0 zoQi9Z^>4m#`d(mJiwhJqc{uplS1d_#>Q9;Cwh%m{%~l`6;uSqPk33m~o5 zXT}bknjetv>tj!Sbl}wdfDBuoIdgDown3(4*@085K5v69ULSi(^7Hx8j5#JF7xo@cHjn^Q3H`;QhOymfhozwk6?>CfneMr2H&_A6^=;^GD zro1L{1U0IJK$dUhCXR3agzkb;a9)>2wr;eRG>GJR3eGuc7Rwbsc#9H z^OlW&D`uo1qi+dW>4;*c=q--EB?N8AD5`!HJV3iDJCN;f#kJttP@_5oi86A2yjJ2b0lk=W3TI%WUw{2aP9Y#kzMFwOG zhED_!FrZamXOo?H+gj5q3O&^>15$odtW+I=Q>%XZJCac~e18!cc`$U7wcHe=*P{v# zR;RiN>AETIC0Z#dIQ99t9`8s-E$2cZ;&s=#Xp>Fd6hHBHzGTp*yUvY{)TKddJ0QC2 zL>n^Fq;Ylx)4J;f*}EyeyW$9HUQc^)YEv9*N8r?5Co&b^G2IY|9D(z}w4J)|#N2xg zXbMh^0Wz)Mi8tFW1LuyUo5qcvE`{}VX3r4@S+fl?{GAxRj-W<&oy;6#{TKM3O$ua~ zX6+y7^iJHF9D(y(R@R=al2JV_8$m`pEyx)x(kdzqNsabxkjk4g z5ja&JfYjd{=hS83R22ZyW^?q-5jeHigY?PL2B#{nEt_rh=9qU}hS?UfY_rYW9CznL zzJX}mkO5JgX^(Rmbf^}?4u7da%MA#274Z%KX$LpQtb7irvdZU3}>|BN1lS&#=H;|e`+1WtJX zGCS>oS{;E?zs3c!B1;>bTJ>w+l^sQ}!&N^Z#>kWM{$_8?YtDXwatqAOj*B+UFd>fcmq_ zJ!nen9RZ;~s;lTJUTTcBZ~Is?EP6f%vSUjeYe!I{Ul#*8nuWlrc&quYm3cSTmccj0 z8!{k@HC02d4IQo0+M2$bX$LhwOCz1$jZx(?a4Nf?ZP2@!5f7(4nE$R#%F;$pf05P( zqKMb1x;AvQ1R>s-?S8cC8&(`4{xsXi-?d#h4kAh*MZ9uI?X5yo5vxxDQ4Rqqw>2{k zP@^2u!ewrR|Mns>C(_vkZ5W~M-m@+ioVt+8@&893zu$ds*_ zIRs9P&ibvkaBH#H(fl9-l8aw)HKOAT9*{@Le9w^FR7r(?(l%TCUd+lxa|lTOdokV|fm5pyWZ!!+Mje4uV-0fpy|{uMfm3TP z=Y84vZ#g7yo7LME>w_?E@@=UjTEW^i1ENeZa+~$q7QGILd_x9AD?Vll49GW-8QU^v z8#VH6v)g$KnIDVTQ9i(HeA6tS6UL1$zMkSeyZ7zDwwRT*hNNa^(k)fRd-?|&h6Wi{ z$=}e%EHDN?`yak;k_Qvg+Keev9JGDk8oVDz)T0WS57CAUNIiHPLXKcS{Tchd^?g6S z(Vh#c)u{fo-!4SEv%Cn1WR|~gv)+%HLZcL9wmPDl2;vQ+K3q!*$wIPqiAiJ0cG{LjjT3AS;okRpbb2 zv>K1NOkG;12Lx?;+E?lW*=a%RzltDw+J|o-AK|gSN8kH{uevD#$^C%(CcU4!*QmKT zjWqedZ?@Iy2%M^skm>kAe2dBvICX~tGVlYB5Jib2aH>WEnfO6GpE?4kPP-uUKJX_g zHG>SCs^37?eBf`N{XQUYsuly;`GM!e+BhkWbf`+h4u7?y_1S=6S5Nzv?6k={{He$< z1A-mhdaT=F3wFfM@dpn!B>ZNOBO00JMP&4}4{gZ&iPpgZLA##zft=V8-|TU1s8N6F zd}!rAj5#s%M^F1&I-+}j`4$j8?d$5uxwKwX1kuwz?4Yd~ts@|}gI%3mTko`?9~L{G zYPJ`BXj4Co88-A(PkA;vqPUiwfUHk=FKwq}6r+Ozf_B+C^`Y(kFz&&@Yn@M#0a0D0 zJ;);-19~P=cc)d{8Ta5IvnVYCqJ8oFU9vdY z)Syjkd%7dalFI%8(bGP(A)}bS6!Mh)Mw=;uQzW{$(@&6>k=THpRgfN3^n96p?u|;k~q7 zl2K;)Ye3MhdkT<)I8Lj`wV_6F0Fvy=MBr2$G~8uXcNL2R-C!UCqG~JV9dzhvA3eq5 zb0GRQez(K0Xg3?T%lhq#{n4%wcC*=zsHGVc5bb7YL*_18Uxjr4B-4uP4jC^R z0I9Givp;aELIJs8Pi7qgr+k~X$6D=)rz!WESr9U8k9FS@BP6Uj)t1PBCS+R*xVK(MQ|4YGJoW`9tlNZhx_^7s7LTKTjiKSPr;Z16zY1#QS^O>5V1574f4 z3R3Bl%os(DJZP}j>U|QQNhrRx7PLx0@;-_6wIguKw~?P%uTNr)lv^O9Re}tNY8Pd5 zN6;Y;mVRP0K8d?#kjYQFNd}|_{B?s229)DLHh&Ul!DUdR{04I1lUQ|Xhf2YzEC!OZ z*UqIunj(m9k3p(^n&|;*UQapF=u>M3zsR-0srwyd+J72Xup@9j zn6}gZ)69E+I5lp_jL)(I=Z=K8+}t(Wz)}5k#j@e8Yn^v_6gJ-XDC`DHLSEXK@9)*Qn7c z6lC3JnY#>}+G#;{f0lVVgj1(bkQ1Nzc|m6e*9NC@JV^QdnKE#y9tEkhKQkx7sl5cG z<$kM+CXs7{Q#(3H*ZrCK8cv-;L5618fm8br$kZ$uI5pO%_S>TUac#RD=10ih{kCy` zvC2-dgA9mz`Iq1uI<(7Rhrh0+_1S>PE;HBgbF298_*^E~QI*#E-&XhE#rEwD3D1li zQU6s}1R0$|(T0p-N4M0Dpk1d>km3KfL9~h-L5=#e
  • ^-^JFPPNAC|sQ|y8u9kxo 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%0A^UMyNsRM|Vy9`Ns7j;oET?jsM>}{^Qz2J# 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
    >p)aNo*{M6(+H|B$mIA)$C(o`&jZm7XJ`C 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

    $It?SzX&8}C!-#YmMx@g)BAtd2=`@T; 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%0DG|p}Q-f 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

    #z*Htpxeg`gd$I)B95P^7)G1+vob-ivFPQb#9Gv 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�_yv+=jg^?Z=uE&&Le+TUYAI|77FL!QPhk_qS>9KQEcVSZAL_saM3~lBvV~ zoI54;<|6anhUb@c|D9`^_d<7E>rL*1IZm!~E1LNknBxqODXDj0wtXks(%wJq{dXmw z``>KtdDz#au*kk9MX6WBRoL&-YErLDy&?6McuqVI`@A|*r@h{ldLHk|relVE%}cQ7 zN5tdek)A9wBc6lVC)ajf>RqWPy;<8l?D?X&A|8?axOi%j--G8MJ}0vN*610@(4L_^ zGcTD+E*noxJP!MsG^9Qy^_JB0eOW(6@g{LaToX6M=f!j4t~kN>LVRrej)<>kUR)HH zBwvwwP23Q-#B<`VIDcJs+@iQ5u8AAs!Rxc}55YeE5vdO^$?D^*L~WPw7eTqiD~sdTQ3^{L`#0uP4b(nfKw}MfPic&&}E6XodL74`%($ zJX6N-tjq^szu(*OLpEO?Yt?hIxzEEKKd)m~VCMPzK_&bfrCuKw4-cY#(%z39Uy&Va zDw_SwOFemR*3V!xAIl}Fk4Sx7>Qhpm5nqD++OnyT&1Hx9fcX6Lvbo>){4Bp|RaV~z z`+e{5Z9VC~tJw2`tWNuR+y?s?j{RtMzRtp4za;K?VOC!uUIqL9+#vN$Qr{-^ed4n( z!slQw?MeRdm+|+M)=U554dNYlW_#v9xhK5Vt30(gp?&{v8qUUZ41N1t&i+j1W1BLc z6<-qf+?{1sh&PD0iT8<*iO-5JiF;m_^*^vV8}q=+Gp`b#kLLa#c!g!?D=_ywzZ=l= zO6e0$&x_Re-IHaGiO-5Rye7-+du`@p;(@JM|Et8C#M@wB{~c1_C-r0EZLiDn`^3k@ zXT_^VvN3ED?+_o@mSye}AE-)QykRsO!+qG7zJ}+;SHuI`v&?@;vW2653jF))8oD)^FHx0@mcXD@v1#ppPR(1@b^IdSewK< z#0SKy-ks$aem!&FdonMGd+OPk`(Pf6=X6xO0Q>VS?a#|Y6Pbr$Z#ykMFCLoAGONV1 z;-TNnGSlMW-^#{7`xqu*U!Pg=g1B#g*5{CT7WRJVbdE8@dxL=k_T2QzpYBbDU_aJy zG}mfEydWNWZ+6`2X!f}P`*CSM?(F-rI_>qoga6mwb^>+x0_=nu2ZD9m+O{z~lI=plGoG7FOF`?%$q8HRmc6S2;I zrX|yNA{*NQ*w=jGzN~HEC$h}6c=(f2j}DI)@#x8{pJ{RFQ&`)0?q`%@A7yPz zu;+)RJ{9YHu9=qljO6FV$sb!k%=f{*K7&#(MRQ+`h({$qF8PUAXMRfRGtsQiix(uH zoXW;CC?0}+Z}_Wxe;)R=otOH8tS z7bo{;V;B?ZRx~2JtBD z=V)B=`(Pi#v}9&thW%WU%+Q}@{ghxor=wDzk@{?`v!A}tWNimwf4_@nKfG4Z{@zzf zGPKq`KO!00Gqh($;dJhjAD8^JWaeRSyAbOfe}eC6dVL5^&%4wŸQDwzfG&}Xx@ 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 BlAw0M}Czu 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 XTIZR_q?P2me|^BKw?X~{{Fk`_L literal 0 HcmV?d00001 diff --git a/afterRemoveByPassOptim.dtp.DotSettings b/afterRemoveByPassOptim.dtp.DotSettings new file mode 100644 index 00000000..d6e34e3a --- /dev/null +++ b/afterRemoveByPassOptim.dtp.DotSettings @@ -0,0 +1,123 @@ + + <data><Implementations><Implementation FuId="0x006000FE" OwnTime="813993" SysTime="3077406" TotalTime="69827203" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00200001" OwnTime="135532" SysTime="1417469" TotalTime="32870363" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006002F2" OwnTime="1273239" SysTime="256921" TotalTime="10288663" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006002F4" OwnTime="706325" SysTime="696203" TotalTime="3263186" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006002D1" OwnTime="301364" SysTime="435821" TotalTime="737185" /><Implementation FuId="0x006002D2" OwnTime="269426" SysTime="311137" TotalTime="648271" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006000E8" OwnTime="636485" SysTime="528832" TotalTime="71935782" /><Implementation FuId="0x006000FB" OwnTime="63561" SysTime="15623" TotalTime="753383" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006001AD" OwnTime="334855" SysTime="592655" TotalTime="24726519" /><Implementation FuId="0x006001AE" OwnTime="31524" SysTime="42279" TotalTime="4165114" /><Implementation FuId="0x006001AF" OwnTime="38172" SysTime="0" TotalTime="243341" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006002F6" OwnTime="483855" SysTime="294027" TotalTime="1605908" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600247" OwnTime="452089" SysTime="299248" TotalTime="1595182" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600119" OwnTime="298383" SysTime="433251" TotalTime="8699443" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600377" OwnTime="96871" SysTime="283106" TotalTime="379977" /><Implementation FuId="0x00600387" OwnTime="105570" SysTime="55351" TotalTime="160921" /><Implementation FuId="0x00600383" OwnTime="86083" SysTime="44195" TotalTime="130278" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006003D7" OwnTime="271291" SysTime="376644" TotalTime="1090476" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600266" OwnTime="5007" SysTime="571706" TotalTime="580469" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600284" OwnTime="545540" SysTime="0" TotalTime="545540" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006002B8" OwnTime="70033" SysTime="411720" TotalTime="552541" /></Implementations></data> + <data><Implementations><Implementation FuId="0x0060040D" OwnTime="7733" SysTime="470690" TotalTime="480734" /></Implementations></data> + <data><Implementations><Implementation FuId="0x0060023A" OwnTime="304187" SysTime="113831" TotalTime="12546010" /><Implementation FuId="0x00600239" OwnTime="38225" SysTime="2569" TotalTime="12586804" /></Implementations></data> + <data><Implementations><Implementation FuId="0x0060036D" OwnTime="434075" SysTime="0" TotalTime="1235244" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600367" OwnTime="429145" SysTime="0" TotalTime="1791456" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600175" OwnTime="47552" SysTime="374830" TotalTime="1680530" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600355" OwnTime="152405" SysTime="232911" TotalTime="625032" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006000FD" OwnTime="224605" SysTime="138551" TotalTime="702252" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600176" OwnTime="49508" SysTime="307530" TotalTime="398140" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600279" OwnTime="161655" SysTime="69197" TotalTime="334577" /><Implementation FuId="0x0060027C" OwnTime="38136" SysTime="0" TotalTime="256338" /><Implementation FuId="0x0060027B" OwnTime="37243" SysTime="0" TotalTime="203705" /><Implementation FuId="0x00600278" OwnTime="17632" SysTime="0" TotalTime="24685" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006002B5" OwnTime="65590" SysTime="235102" TotalTime="322556" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600267" OwnTime="70206" SysTime="215974" TotalTime="876085" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600028" OwnTime="133359" SysTime="46780" TotalTime="25768896" /><Implementation FuId="0x00600029" OwnTime="90778" SysTime="0" TotalTime="12970738" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600272" OwnTime="261915" SysTime="3184" TotalTime="1188069" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006001AA" OwnTime="132518" SysTime="0" TotalTime="29267492" /><Implementation FuId="0x006001E3" OwnTime="17784" SysTime="86288" TotalTime="486966" /><Implementation FuId="0x006001E2" OwnTime="13859" SysTime="0" TotalTime="506297" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006000C7" OwnTime="181902" SysTime="60020" TotalTime="344352" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600171" OwnTime="160660" SysTime="0" TotalTime="11254979" /><Implementation FuId="0x00600128" OwnTime="68190" SysTime="0" TotalTime="6618920" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600044" OwnTime="123946" SysTime="103987" TotalTime="227933" /></Implementations></data> + <data><Implementations><Implementation FuId="0x0060029A" OwnTime="94186" SysTime="14334" TotalTime="326370" /><Implementation FuId="0x00600299" OwnTime="89084" SysTime="12122" TotalTime="179363" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600116" OwnTime="37951" SysTime="158563" TotalTime="1029133" /></Implementations></data> + <data><Implementations><Implementation FuId="0x0060043F" OwnTime="99598" SysTime="83053" TotalTime="710638" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600041" OwnTime="97636" SysTime="83099" TotalTime="214183" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600283" OwnTime="159901" SysTime="0" TotalTime="159901" /></Implementations></data> + <data><Implementations><Implementation FuId="0x0060026E" OwnTime="31942" SysTime="126992" TotalTime="168201" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006000F8" OwnTime="21071" SysTime="136535" TotalTime="296044" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600285" OwnTime="156644" SysTime="0" TotalTime="156644" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600241" OwnTime="108923" SysTime="44347" TotalTime="465089" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006001CE" OwnTime="46539" SysTime="106623" TotalTime="195203" /></Implementations></data> + <data><Implementations><Implementation FuId="0x0060014B" OwnTime="27969" SysTime="51603" TotalTime="285654" /><Implementation FuId="0x0060014A" OwnTime="54098" SysTime="8526" TotalTime="289714" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600282" OwnTime="142022" SysTime="0" TotalTime="142022" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600036" OwnTime="135591" SysTime="0" TotalTime="135591" /></Implementations></data> + <data><Implementations><Implementation FuId="0x0060036A" OwnTime="131600" SysTime="0" TotalTime="131600" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600443" OwnTime="31463" SysTime="98145" TotalTime="136675" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600364" OwnTime="127132" SysTime="0" TotalTime="127132" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600274" OwnTime="17083" SysTime="107390" TotalTime="128829" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600347" OwnTime="121488" SysTime="0" TotalTime="121488" /></Implementations></data> + <data><Implementations><Implementation FuId="0x0060026A" OwnTime="120335" SysTime="0" TotalTime="1418053" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006000BE" OwnTime="118745" SysTime="0" TotalTime="118745" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006002B9" OwnTime="5374" SysTime="113191" TotalTime="125881" /></Implementations></data> + <data><Implementations><Implementation FuId="0x0060023C" OwnTime="64214" SysTime="52928" TotalTime="329156" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600173" OwnTime="14551" SysTime="100822" TotalTime="115373" /></Implementations></data> + <data><Implementations><Implementation FuId="0x0040004B" OwnTime="25738" SysTime="76616" TotalTime="113072" /></Implementations></data> + <data><Implementations><Implementation FuId="0x0060003B" OwnTime="101966" SysTime="0" TotalTime="101966" /></Implementations></data> + <data><Implementations><Implementation FuId="0x0060028A" OwnTime="101266" SysTime="0" TotalTime="426074" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006000BD" OwnTime="51162" SysTime="46519" TotalTime="169482" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006002E9" OwnTime="51290" SysTime="44875" TotalTime="107996" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006000FA" OwnTime="64589" SysTime="31159" TotalTime="8948106" /></Implementations></data> + <data><Implementations><Implementation FuId="0x0060017D" OwnTime="28568" SysTime="63864" TotalTime="97390" /></Implementations></data> + <data><Implementations><Implementation FuId="0x0060026B" OwnTime="7234" SysTime="84922" TotalTime="97813" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600414" OwnTime="90721" SysTime="0" TotalTime="325726" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600411" OwnTime="46995" SysTime="43077" TotalTime="776237" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600039" OwnTime="89840" SysTime="0" TotalTime="89840" /></Implementations></data> + <data><Implementations><Implementation FuId="0x0060017C" OwnTime="89234" SysTime="162" TotalTime="186864" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600269" OwnTime="89259" SysTime="0" TotalTime="2383582" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006000ED" OwnTime="86374" SysTime="3" TotalTime="366302" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600359" OwnTime="84938" SysTime="0" TotalTime="84938" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006001D9" OwnTime="54884" SysTime="27880" TotalTime="82764" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006000E9" OwnTime="69612" SysTime="12205" TotalTime="13972134" /></Implementations></data> + <data><Implementations><Implementation FuId="0x0060035B" OwnTime="79035" SysTime="0" TotalTime="79035" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006000FC" OwnTime="74335" SysTime="0" TotalTime="166120" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006002A1" OwnTime="74326" SysTime="0" TotalTime="74326" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600275" OwnTime="36647" SysTime="33800" TotalTime="83737" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600149" OwnTime="65207" SysTime="5169" TotalTime="80746" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600065" OwnTime="55317" SysTime="10108" TotalTime="87906" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006000D5" OwnTime="7605" SysTime="57199" TotalTime="64891" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006000D4" OwnTime="61893" SysTime="0" TotalTime="89620" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600045" OwnTime="22179" SysTime="38271" TotalTime="71847" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006002E0" OwnTime="58794" SysTime="0" TotalTime="58794" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600035" OwnTime="57635" SysTime="0" TotalTime="57635" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00400054" OwnTime="28870" SysTime="28300" TotalTime="100766" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600034" OwnTime="56477" SysTime="0" TotalTime="56477" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006002A3" OwnTime="56234" SysTime="0" TotalTime="56234" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600303" OwnTime="3332" SysTime="51384" TotalTime="54808" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600037" OwnTime="54635" SysTime="0" TotalTime="54635" /></Implementations></data> + <data><Implementations><Implementation FuId="0x0060029D" OwnTime="54549" SysTime="0" TotalTime="54549" /></Implementations></data> + <data><Implementations><Implementation FuId="0x0060033C" OwnTime="53604" SysTime="0" TotalTime="53604" /></Implementations></data> + <data><Implementations><Implementation FuId="0x0060003C" OwnTime="52601" SysTime="0" TotalTime="52601" /></Implementations></data> + <data><Implementations><Implementation FuId="0x0060023F" OwnTime="4777" SysTime="47011" TotalTime="51788" /></Implementations></data> + <data><Implementations><Implementation FuId="0x0060014C" OwnTime="3417" SysTime="47064" TotalTime="50481" /></Implementations></data> + <data><Implementations><Implementation FuId="0x0060029B" OwnTime="50269" SysTime="0" TotalTime="50269" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006000B1" OwnTime="9756" SysTime="40405" TotalTime="50353" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006002A8" OwnTime="49874" SysTime="0" TotalTime="49874" /></Implementations></data> + <data><Implementations><Implementation FuId="0x0060029E" OwnTime="48889" SysTime="0" TotalTime="48889" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600337" OwnTime="46752" SysTime="0" TotalTime="46752" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006001CF" OwnTime="46124" SysTime="0" TotalTime="82381" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006000C0" OwnTime="45723" SysTime="0" TotalTime="45723" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006002CE" OwnTime="45677" SysTime="0" TotalTime="180772" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600066" OwnTime="43999" SysTime="0" TotalTime="43999" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600038" OwnTime="43884" SysTime="0" TotalTime="65328" /></Implementations></data> + <data><Implementations><Implementation FuId="0x0060029C" OwnTime="43787" SysTime="0" TotalTime="43787" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600026" OwnTime="43496" SysTime="0" TotalTime="76915" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600243" OwnTime="8149" SysTime="34966" TotalTime="65163" /></Implementations></data> + <data><Implementations><Implementation FuId="0x0060012A" OwnTime="10625" SysTime="28596" TotalTime="1386685" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006001A7" OwnTime="7325" SysTime="15766" TotalTime="28373" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006003EA" OwnTime="8702" SysTime="12121" TotalTime="1331412" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600406" OwnTime="15430" SysTime="0" TotalTime="96176" /></Implementations></data> + <data><Implementations><Implementation FuId="0x0060018E" OwnTime="15117" SysTime="0" TotalTime="28063" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006003E5" OwnTime="128" SysTime="14632" TotalTime="14928" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600374" OwnTime="989" SysTime="13486" TotalTime="14483" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600027" OwnTime="18017" SysTime="0" TotalTime="25786989" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006001E1" OwnTime="11944" SysTime="0" TotalTime="2902064" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600177" OwnTime="7554" SysTime="23951" TotalTime="357397" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006000F6" OwnTime="29364" SysTime="10113" TotalTime="259597" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00600230" OwnTime="25618" SysTime="2812" TotalTime="359642" /></Implementations></data> + <data><Implementations><Implementation FuId="0x00400011" OwnTime="18587" SysTime="0" TotalTime="440111" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006003CC" OwnTime="19977" SysTime="0" TotalTime="277282" /></Implementations></data> + <data><Implementations><Implementation FuId="0x0040000F" OwnTime="16048" SysTime="7714" TotalTime="131754" /></Implementations></data> + <data><Implementations><Implementation FuId="0x006000FF" OwnTime="16202" SysTime="23805" TotalTime="73651" /></Implementations></data> \ No newline at end of file diff --git a/sly/parser/parser/SyntaxParseResult.cs b/sly/parser/parser/SyntaxParseResult.cs index 6c824d40..6cb29e21 100644 --- a/sly/parser/parser/SyntaxParseResult.cs +++ b/sly/parser/parser/SyntaxParseResult.cs @@ -27,6 +27,8 @@ public void AddExpectings(IEnumerable expected) } Expecting.AddRange(expected); } - + + public bool HasByPassNodes { get; set; } = false; + } } \ No newline at end of file diff --git a/sly/parser/parser/SyntaxTreeCleaner.cs b/sly/parser/parser/SyntaxTreeCleaner.cs index ba3d68fd..98d7c4c6 100644 --- a/sly/parser/parser/SyntaxTreeCleaner.cs +++ b/sly/parser/parser/SyntaxTreeCleaner.cs @@ -10,7 +10,16 @@ public SyntaxParseResult CleanSyntaxTree(SyntaxParseResult result) var tree = result.Root; if (tree != null) { - tree = RemoveByPassNodes(tree); + if (tree.GetType().AssemblyQualifiedName.ToLower().Contains("json")) + { + ; + } + if (result.HasByPassNodes) + { + tree = RemoveByPassNodes(tree); + } + + if (NeedAssociativityProcessing(tree)) tree = SetAssociativity(tree); result.Root = tree; } diff --git a/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs b/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs index 6a429965..d9084b81 100644 --- a/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs +++ b/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs @@ -364,6 +364,7 @@ public SyntaxParseResult ParseZeroOrMore(IList> tokens, ZeroOrMore var innerErrors = new List>(); + bool hasByPasNodes = false; while (stillOk) { SyntaxParseResult innerResult = null; @@ -371,10 +372,12 @@ public SyntaxParseResult ParseZeroOrMore(IList> tokens, ZeroOrMore { manyNode.IsManyTokens = true; innerResult = ParseTerminal(tokens, term, currentPosition); + hasByPasNodes = hasByPasNodes || innerResult.HasByPassNodes; } else if (innerClause is NonTerminalClause nonTerm) { innerResult = ParseNonTerminal(tokens, nonTerm, currentPosition); + hasByPasNodes = hasByPasNodes || innerResult.HasByPassNodes; if (nonTerm.IsGroup) manyNode.IsManyGroups = true; else @@ -384,12 +387,14 @@ public SyntaxParseResult ParseZeroOrMore(IList> tokens, ZeroOrMore { manyNode.IsManyGroups = true; innerResult = ParseNonTerminal(tokens, innerClause as NonTerminalClause, currentPosition); + hasByPasNodes = hasByPasNodes || innerResult.HasByPassNodes; } else if (innerClause is ChoiceClause choice) { manyNode.IsManyTokens = choice.IsTerminalChoice; manyNode.IsManyValues = choice.IsNonTerminalChoice; innerResult = ParseChoice(tokens, choice, currentPosition); + hasByPasNodes = hasByPasNodes || innerResult.HasByPassNodes; } else { @@ -401,6 +406,7 @@ public SyntaxParseResult ParseZeroOrMore(IList> tokens, ZeroOrMore manyNode.Add(innerResult.Root); currentPosition = innerResult.EndingPosition; lastInnerResult = innerResult; + hasByPasNodes = hasByPasNodes || innerResult.HasByPassNodes; } else { @@ -419,6 +425,7 @@ public SyntaxParseResult ParseZeroOrMore(IList> tokens, ZeroOrMore result.Errors = innerErrors; result.Root = manyNode; result.IsEnded = lastInnerResult != null && lastInnerResult.IsEnded; + result.HasByPassNodes = hasByPasNodes; return result; } @@ -432,22 +439,26 @@ public SyntaxParseResult ParseOneOrMore(IList> tokens, OneOrMoreCl SyntaxParseResult lastInnerResult = null; + bool hasByPasNodes = false; SyntaxParseResult firstInnerResult = null; if (innerClause is TerminalClause) { manyNode.IsManyTokens = true; firstInnerResult = ParseTerminal(tokens, innerClause as TerminalClause, currentPosition); + hasByPasNodes = hasByPasNodes || firstInnerResult.HasByPassNodes; } else if (innerClause is NonTerminalClause) { manyNode.IsManyValues = true; firstInnerResult = ParseNonTerminal(tokens, innerClause as NonTerminalClause, currentPosition); + hasByPasNodes = hasByPasNodes || firstInnerResult.HasByPassNodes; } else if (innerClause is ChoiceClause choice) { manyNode.IsManyTokens = choice.IsTerminalChoice; manyNode.IsManyValues = choice.IsNonTerminalChoice; firstInnerResult = ParseChoice(tokens, choice, currentPosition); + hasByPasNodes = hasByPasNodes || firstInnerResult.HasByPassNodes; } else { @@ -480,6 +491,7 @@ public SyntaxParseResult ParseOneOrMore(IList> tokens, OneOrMoreCl result.IsError = isError; result.Root = manyNode; result.IsEnded = lastInnerResult != null && lastInnerResult.IsEnded; + result.HasByPassNodes = hasByPasNodes; return result; } @@ -492,6 +504,7 @@ public SyntaxParseResult ParseOption(IList> tokens, OptionClause innerResult = null; + bool hasByPassNode = false; if (innerClause is TerminalClause term) innerResult = ParseTerminal(tokens, term, currentPosition); @@ -540,11 +553,12 @@ public SyntaxParseResult ParseOption(IList> tokens, OptionClause> {innerResult.Root}; result.Root = new OptionSyntaxNode( rule.NonTerminalName,children, rule.GetVisitor()); result.EndingPosition = innerResult.EndingPosition; + result.HasByPassNodes = innerResult.HasByPassNodes; } return result; diff --git a/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs b/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs index 7655db83..50121b50 100644 --- a/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs +++ b/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs @@ -320,6 +320,7 @@ protected SyntaxNode ManageExpressionRules(Rule rule, SyntaxNode nod if (rule.IsExpressionRule && rule.IsByPassRule) { node.IsByPassNode = true; + node.HasByPassNodes = true; } else if (rule.IsExpressionRule && !rule.IsByPassRule) { @@ -363,6 +364,7 @@ public SyntaxParseResult ParseTerminal(IList> tokens, TerminalClau var token = tokens[position]; token.Discarded = terminal.Discarded; result.Root = new SyntaxLeaf(token,terminal.Discarded); + result.HasByPassNodes = false; return result; } @@ -440,6 +442,7 @@ public SyntaxParseResult ParseNonTerminal(IList> tokens, NonTermin result.EndingPosition = max.EndingPosition; result.IsError = max.IsError; result.IsEnded = max.IsEnded; + result.HasByPassNodes = max.HasByPassNodes; if (rulesResults.Any()) { diff --git a/sly/parser/syntax/tree/ISyntaxNode.cs b/sly/parser/syntax/tree/ISyntaxNode.cs index 778d33e7..f54f647e 100644 --- a/sly/parser/syntax/tree/ISyntaxNode.cs +++ b/sly/parser/syntax/tree/ISyntaxNode.cs @@ -5,5 +5,7 @@ public interface ISyntaxNode where IN : struct bool Discarded { get; } string Name { get; } + + bool HasByPassNodes { get; set; } } } \ No newline at end of file diff --git a/sly/parser/syntax/tree/SyntaxLeaf.cs b/sly/parser/syntax/tree/SyntaxLeaf.cs index db4051ab..d1c38563 100644 --- a/sly/parser/syntax/tree/SyntaxLeaf.cs +++ b/sly/parser/syntax/tree/SyntaxLeaf.cs @@ -15,6 +15,7 @@ public SyntaxLeaf(Token token, bool discarded) public Token Token { get; } public bool Discarded { get; } public string Name => Token.TokenID.ToString(); - + + public bool HasByPassNodes { get; set; } = false; } } \ No newline at end of file diff --git a/sly/parser/syntax/tree/SyntaxNode.cs b/sly/parser/syntax/tree/SyntaxNode.cs index a8686f3b..0e91e006 100644 --- a/sly/parser/syntax/tree/SyntaxNode.cs +++ b/sly/parser/syntax/tree/SyntaxNode.cs @@ -28,6 +28,8 @@ public SyntaxNode(string name, List> children = null, MethodInfo public bool Discarded => false; public string Name { get; set; } + public bool HasByPassNodes { get; set; } = false; + #region expression syntax nodes public OperationMetaData Operation { get; set; } = null; From e27bb393cdb9c8dd8878817a7fca39423a0dd69d Mon Sep 17 00:00:00 2001 From: b3b00 Date: Fri, 5 Nov 2021 14:28:16 +0100 Subject: [PATCH 31/82] cleaning --- sly/parser/parser/SyntaxTreeCleaner.cs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/sly/parser/parser/SyntaxTreeCleaner.cs b/sly/parser/parser/SyntaxTreeCleaner.cs index 98d7c4c6..a34a9298 100644 --- a/sly/parser/parser/SyntaxTreeCleaner.cs +++ b/sly/parser/parser/SyntaxTreeCleaner.cs @@ -10,10 +10,6 @@ public SyntaxParseResult CleanSyntaxTree(SyntaxParseResult result) var tree = result.Root; if (tree != null) { - if (tree.GetType().AssemblyQualifiedName.ToLower().Contains("json")) - { - ; - } if (result.HasByPassNodes) { tree = RemoveByPassNodes(tree); From 7395f52be6f84fc9242414d502366e75b86a50cb Mon Sep 17 00:00:00 2001 From: Olivier Duhart <1224790+b3b00@users.noreply.github.com> Date: Fri, 5 Nov 2021 16:15:06 +0100 Subject: [PATCH 32/82] upgrade to v2.7.0.5 parser optimisation --- sly/sly.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sly/sly.csproj b/sly/sly.csproj index 6a1476f6..947eed3d 100644 --- a/sly/sly.csproj +++ b/sly/sly.csproj @@ -6,11 +6,11 @@ $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb #LY is a parser generator halfway between parser combinators and parser generator like ANTLR b3b00 - 2.7.0.4 + 2.7.0.5 https://github.com/b3b00/sly https://github.com/b3b00/sly https://github.com/b3b00/sly/blob/master/LICENSE - 2.7.0.4 + 2.7.0.5 Library From 8c381821b4e1fa6e57f3e54972e3a99fa803adc6 Mon Sep 17 00:00:00 2001 From: Olivier Duhart <1224790+b3b00@users.noreply.github.com> Date: Sun, 7 Nov 2021 15:01:50 +0100 Subject: [PATCH 33/82] Update dotnetcore.yml --- .github/workflows/dotnetcore.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index 2f49c11f..60478b4c 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -31,7 +31,7 @@ jobs: - name: Build with dotnet run: dotnet build --configuration Release - name: Test with dotnet - uses: b3b00/coverlet-action@1.1.7 + uses: b3b00/coverlet-action@1.1.1 id: 'coverlet' if: env.RUN_TESTS with: From 7423eb2ed22bff5a315cf57a074b8ebedcf8a3a5 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Sun, 7 Nov 2021 16:07:09 +0100 Subject: [PATCH 34/82] optim : remove useless call to SyntaxTreeCleaner.SetAssociativity when no operation attributes were used --- .../generator/ExpressionRulesGenerator.cs | 2 ++ sly/parser/generator/ParserConfiguration.cs | 1 + sly/parser/parser/Parser.cs | 1 + sly/parser/parser/SyntaxParseResult.cs | 2 +- sly/parser/parser/SyntaxTreeCleaner.cs | 19 +------------------ 5 files changed, 6 insertions(+), 19 deletions(-) diff --git a/sly/parser/generator/ExpressionRulesGenerator.cs b/sly/parser/generator/ExpressionRulesGenerator.cs index bd2a0b8d..d65153af 100644 --- a/sly/parser/generator/ExpressionRulesGenerator.cs +++ b/sly/parser/generator/ExpressionRulesGenerator.cs @@ -94,6 +94,7 @@ public BuildResult> BuildExpressionRules( } }); + if (operationsByPrecedence.Count > 0) { var operandNonTerminal = GetOperandNonTerminal(parserClass,configuration, result); @@ -104,6 +105,7 @@ public BuildResult> BuildExpressionRules( parserClass.Name); } + configuration.UsesOperations = operationsByPrecedence.Any(); result.Result = configuration; return result; } diff --git a/sly/parser/generator/ParserConfiguration.cs b/sly/parser/generator/ParserConfiguration.cs index fedd9f03..8cbde258 100644 --- a/sly/parser/generator/ParserConfiguration.cs +++ b/sly/parser/generator/ParserConfiguration.cs @@ -9,6 +9,7 @@ public class ParserConfiguration where IN : struct public string StartingRule { get; set; } public Dictionary> NonTerminals { get; set; } + public bool UsesOperations { get; set; } public void AddNonTerminalIfNotExists(NonTerminal nonTerminal) { diff --git a/sly/parser/parser/Parser.cs b/sly/parser/parser/Parser.cs index 8d4436f9..5e6b5fa3 100644 --- a/sly/parser/parser/Parser.cs +++ b/sly/parser/parser/Parser.cs @@ -102,6 +102,7 @@ public ParseResult ParseWithContext(IList> tokens, object par var cleaner = new SyntaxTreeCleaner(); var syntaxResult = SyntaxParser.Parse(tokens, startingNonTerminal); + syntaxResult.UsesOperations = Configuration.UsesOperations; syntaxResult = cleaner.CleanSyntaxTree(syntaxResult); if (!syntaxResult.IsError && syntaxResult.Root != null) { diff --git a/sly/parser/parser/SyntaxParseResult.cs b/sly/parser/parser/SyntaxParseResult.cs index 6cb29e21..a1851a0c 100644 --- a/sly/parser/parser/SyntaxParseResult.cs +++ b/sly/parser/parser/SyntaxParseResult.cs @@ -29,6 +29,6 @@ public void AddExpectings(IEnumerable expected) } public bool HasByPassNodes { get; set; } = false; - + public bool UsesOperations { get; set; } } } \ No newline at end of file diff --git a/sly/parser/parser/SyntaxTreeCleaner.cs b/sly/parser/parser/SyntaxTreeCleaner.cs index a34a9298..0793a55e 100644 --- a/sly/parser/parser/SyntaxTreeCleaner.cs +++ b/sly/parser/parser/SyntaxTreeCleaner.cs @@ -16,30 +16,13 @@ public SyntaxParseResult CleanSyntaxTree(SyntaxParseResult result) } - if (NeedAssociativityProcessing(tree)) tree = SetAssociativity(tree); + if (result.UsesOperations) tree = SetAssociativity(tree); result.Root = tree; } return result; } - private bool NeedAssociativityProcessing(ISyntaxNode tree) - { - var need = false; - if (tree is ManySyntaxNode many) - foreach (var child in many.Children) - { - need = need || NeedAssociativityProcessing(child); - if (need) break; - } - else if (tree is SyntaxLeaf leaf) - need = false; - else if (tree is SyntaxNode node) need = true; - - - return need; - } - private ISyntaxNode RemoveByPassNodes(ISyntaxNode tree) { ISyntaxNode result = null; From 99757f63abb0526cbc4e638b83651ddec6a49a65 Mon Sep 17 00:00:00 2001 From: Olivier Duhart <1224790+b3b00@users.noreply.github.com> Date: Sun, 7 Nov 2021 16:44:45 +0100 Subject: [PATCH 35/82] Update dotnetcore.yml --- .github/workflows/dotnetcore.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index 60478b4c..75a5a62c 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -54,6 +54,10 @@ jobs: reporttypes: 'HtmlInline;lcov' verbosity: 'Info' # The verbosity level of the log messages. Values: Verbose, Info, Warning, Error, Off tag: '${{ github.run_number }}_${{ github.run_id }}' + - name: Publish coverage summary + uses: marocchino/sticky-pull-request-comment@v2 + with: + path: coveragereport/Summary.md - name: publish nuget if: matrix.os == 'windows-latest' && env.PUBLISH_NUGET id: publish_nuget From 1b18b3d71723253917f494be74291850e8426c19 Mon Sep 17 00:00:00 2001 From: Olivier Duhart <1224790+b3b00@users.noreply.github.com> Date: Sun, 7 Nov 2021 16:47:52 +0100 Subject: [PATCH 36/82] Update dotnetcore.yml --- .github/workflows/dotnetcore.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index 75a5a62c..a2244605 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -51,7 +51,7 @@ jobs: with: reports: ${{steps.coverlet.outputs.coverageFile}} targetdir: 'coveragereport' - reporttypes: 'HtmlInline;lcov' + reporttypes: 'HtmlInline;Cobertura;MarkdownSummary;lcov' verbosity: 'Info' # The verbosity level of the log messages. Values: Verbose, Info, Warning, Error, Off tag: '${{ github.run_number }}_${{ github.run_id }}' - name: Publish coverage summary From b895ddb751e2a37a5b5473afbc75ad845ec7507d Mon Sep 17 00:00:00 2001 From: Olivier Duhart <1224790+b3b00@users.noreply.github.com> Date: Sun, 7 Nov 2021 16:50:36 +0100 Subject: [PATCH 37/82] Update dotnetcore.yml --- .github/workflows/dotnetcore.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index a2244605..a177bdc3 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -51,7 +51,7 @@ jobs: with: reports: ${{steps.coverlet.outputs.coverageFile}} targetdir: 'coveragereport' - reporttypes: 'HtmlInline;Cobertura;MarkdownSummary;lcov' + reporttypes: 'HtmlInline;Cobertura;MarkdownSummary' verbosity: 'Info' # The verbosity level of the log messages. Values: Verbose, Info, Warning, Error, Off tag: '${{ github.run_number }}_${{ github.run_id }}' - name: Publish coverage summary From 60070af513868d806226ae5361f4530b6df3c44c Mon Sep 17 00:00:00 2001 From: Olivier Duhart <1224790+b3b00@users.noreply.github.com> Date: Sun, 7 Nov 2021 17:08:29 +0100 Subject: [PATCH 38/82] Update dotnetcore.yml --- .github/workflows/dotnetcore.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index a177bdc3..caa27b7d 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -47,11 +47,11 @@ jobs: github-token: ${{secrets.GITHUB_TOKEN }} path-to-lcov: ${{steps.coverlet.outputs.coverageFile}} - name: ReportGenerator - uses: danielpalme/ReportGenerator-GitHub-Action@4.8.4 + uses: danielpalme/ReportGenerator-GitHub-Action@4.8.12 with: reports: ${{steps.coverlet.outputs.coverageFile}} targetdir: 'coveragereport' - reporttypes: 'HtmlInline;Cobertura;MarkdownSummary' + reporttypes: 'HtmlInline;MarkdownSummary' verbosity: 'Info' # The verbosity level of the log messages. Values: Verbose, Info, Warning, Error, Off tag: '${{ github.run_number }}_${{ github.run_id }}' - name: Publish coverage summary From 8539d4424d59e574d6cda740a4674912cc1eade2 Mon Sep 17 00:00:00 2001 From: Olivier Duhart <1224790+b3b00@users.noreply.github.com> Date: Sun, 7 Nov 2021 17:11:04 +0100 Subject: [PATCH 39/82] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index decdb7b5..64ac57e9 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# C# lex and yacc # +# C# lex and yacc # ![Test status](http://teststatusbadge.azurewebsites.net/api/status/mmaitre314/securestringcodegen) From 1e975900b4e728c5fde7c62803d6cf00630a9d07 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Tue, 9 Nov 2021 15:46:20 +0100 Subject: [PATCH 40/82] add thanks to Jetbrains --- README.md | 5 ++++ logos/jetbrains-variant-2.svg | 51 +++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 logos/jetbrains-variant-2.svg diff --git a/README.md b/README.md index decdb7b5..200ff080 100644 --- a/README.md +++ b/README.md @@ -111,3 +111,8 @@ or with dotnet core ## License [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fb3b00%2Fcsly.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fb3b00%2Fcsly?ref=badge_large) + + +# Special thanks to + + diff --git a/logos/jetbrains-variant-2.svg b/logos/jetbrains-variant-2.svg new file mode 100644 index 00000000..8e7ba2d7 --- /dev/null +++ b/logos/jetbrains-variant-2.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 8e9104457c871743566bdcaca45a18cae61020ab Mon Sep 17 00:00:00 2001 From: b3b00 Date: Sun, 21 Nov 2021 16:04:43 +0100 Subject: [PATCH 41/82] . --- sly.sln | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sly.sln b/sly.sln index 7755d7b6..76413341 100644 --- a/sly.sln +++ b/sly.sln @@ -33,6 +33,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "indented", "samples\indente EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "indentedWhile", "samples\IndentedWhile\indentedWhile.csproj", "{B1FAADF0-208D-4A0A-A24D-D7BF4E33DCB4}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Issue254", "Issue254\Issue254.csproj", "{AA23B994-2CD1-48A7-A4F2-4CCDE3150CF2}" +EndProject Global GlobalSection(Performance) = preSolution HasPerformanceSessions = true @@ -102,6 +104,10 @@ Global {B1FAADF0-208D-4A0A-A24D-D7BF4E33DCB4}.Debug|Any CPU.Build.0 = Debug|Any CPU {B1FAADF0-208D-4A0A-A24D-D7BF4E33DCB4}.Release|Any CPU.ActiveCfg = Release|Any CPU {B1FAADF0-208D-4A0A-A24D-D7BF4E33DCB4}.Release|Any CPU.Build.0 = Release|Any CPU + {AA23B994-2CD1-48A7-A4F2-4CCDE3150CF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AA23B994-2CD1-48A7-A4F2-4CCDE3150CF2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AA23B994-2CD1-48A7-A4F2-4CCDE3150CF2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AA23B994-2CD1-48A7-A4F2-4CCDE3150CF2}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From 951dcea07087b53a3687e48015135ac4b7aa97bd Mon Sep 17 00:00:00 2001 From: b3b00 Date: Sun, 21 Nov 2021 16:39:05 +0100 Subject: [PATCH 42/82] test infra --- Issue254/Bench.cs | 91 +++++ Issue254/Issue254.csproj | 19 + Issue254/Issue254/BinaryExpression.cs | 50 +++ Issue254/Issue254/BinaryNumericExpression.cs | 154 +++++++ Issue254/Issue254/BooleanLogicalExpression.cs | 124 ++++++ Issue254/Issue254/ComparisonExpression.cs | 152 +++++++ Issue254/Issue254/ConstantNode.cs | 31 ++ Issue254/Issue254/ErrorNode.cs | 25 ++ Issue254/Issue254/ExpressionParser.cs | 114 ++++++ Issue254/Issue254/ExpressionToken.cs | 128 ++++++ Issue254/Issue254/IAstNode.cs | 17 + Issue254/Issue254/IConnection.cs | 11 + Issue254/Issue254/IVariable.cs | 13 + Issue254/Issue254/IWASMChannel.cs | 14 + Issue254/Issue254/LVarManager.cs | 226 +++++++++++ Issue254/Issue254/LightExpression.cs | 39 ++ Issue254/Issue254/LiteralBoolNode.cs | 17 + Issue254/Issue254/LiteralNumericNode.cs | 19 + Issue254/Issue254/LvarExpression.cs | 22 + Issue254/Issue254/MSFSExpressionParser.cs | 47 +++ Issue254/Issue254/NameAndUnits.cs | 13 + Issue254/Issue254/OldExpressionParser.cs | 121 ++++++ Issue254/Issue254/OldMSFSExpressionParser.cs | 39 ++ Issue254/Issue254/SimConnectConnection.cs | 375 ++++++++++++++++++ Issue254/Issue254/SimVarExpression.cs | 25 ++ Issue254/Issue254/UnaryExpression.cs | 96 +++++ Issue254/Issue254/ValueChangedEventArgs.cs | 9 + Issue254/Issue254/VariableBase.cs | 56 +++ Issue254/Issue254/VariableHandlerUtils.cs | 24 ++ Issue254/Issue254/rules.txt | 23 ++ Issue254/Program.cs | 177 +++++++++ 31 files changed, 2271 insertions(+) create mode 100644 Issue254/Bench.cs create mode 100644 Issue254/Issue254.csproj create mode 100644 Issue254/Issue254/BinaryExpression.cs create mode 100644 Issue254/Issue254/BinaryNumericExpression.cs create mode 100644 Issue254/Issue254/BooleanLogicalExpression.cs create mode 100644 Issue254/Issue254/ComparisonExpression.cs create mode 100644 Issue254/Issue254/ConstantNode.cs create mode 100644 Issue254/Issue254/ErrorNode.cs create mode 100644 Issue254/Issue254/ExpressionParser.cs create mode 100644 Issue254/Issue254/ExpressionToken.cs create mode 100644 Issue254/Issue254/IAstNode.cs create mode 100644 Issue254/Issue254/IConnection.cs create mode 100644 Issue254/Issue254/IVariable.cs create mode 100644 Issue254/Issue254/IWASMChannel.cs create mode 100644 Issue254/Issue254/LVarManager.cs create mode 100644 Issue254/Issue254/LightExpression.cs create mode 100644 Issue254/Issue254/LiteralBoolNode.cs create mode 100644 Issue254/Issue254/LiteralNumericNode.cs create mode 100644 Issue254/Issue254/LvarExpression.cs create mode 100644 Issue254/Issue254/MSFSExpressionParser.cs create mode 100644 Issue254/Issue254/NameAndUnits.cs create mode 100644 Issue254/Issue254/OldExpressionParser.cs create mode 100644 Issue254/Issue254/OldMSFSExpressionParser.cs create mode 100644 Issue254/Issue254/SimConnectConnection.cs create mode 100644 Issue254/Issue254/SimVarExpression.cs create mode 100644 Issue254/Issue254/UnaryExpression.cs create mode 100644 Issue254/Issue254/ValueChangedEventArgs.cs create mode 100644 Issue254/Issue254/VariableBase.cs create mode 100644 Issue254/Issue254/VariableHandlerUtils.cs create mode 100644 Issue254/Issue254/rules.txt create mode 100644 Issue254/Program.cs diff --git a/Issue254/Bench.cs b/Issue254/Bench.cs new file mode 100644 index 00000000..a8433b98 --- /dev/null +++ b/Issue254/Bench.cs @@ -0,0 +1,91 @@ +using System; +using System.IO; +using System.Linq.Expressions; +using BenchmarkDotNet.Analysers; +using BenchmarkDotNet.Attributes; +using BenchmarkDotNet.Configs; +using BenchmarkDotNet.Jobs; +using BenchmarkDotNet.Toolchains.CsProj; +using BravoLights.Ast; +using BravoLights.Common.Ast; +using sly.parser; +using sly.parser.generator; + +namespace Issue254 +{ + public class Bench + { + [MemoryDiagnoser] + + [Config(typeof(Config))] + public class JsonParserBench + { + + + private class Config : ManualConfig + { + public Config() + { + try + { + Console.WriteLine("configuring bench"); + var baseJob = Job.MediumRun.WithToolchain(CsProjCoreToolchain.NetCoreApp50); + AddJob(baseJob.WithNuGet("sly", "2.7.0.5").WithId("2.7.0.5")); + AddJob(baseJob.WithNuGet("sly", "2.7.0.4").WithId("2.7.0.4")); + AddJob(baseJob.WithNuGet("sly", "2.7.0.1").WithId("2.7.0.1")); + } + catch (Exception e) + { + Console.WriteLine("in Config : "); + Console.WriteLine(e.Message); + } + + } + } + + private Parser BenchedParser; + + + + [GlobalSetup] + public void Setup() + { + Console.WriteLine(("SETUP")); + + var parserInstance = new MSFSExpressionParser(); + var builder = new ParserBuilder(); + var result = builder.BuildParser(parserInstance, ParserType.EBNF_LL_RECURSIVE_DESCENT, "MSFSExpressionParser_expressions"); + + Console.WriteLine("parser built."); + if (result.IsError) + { + Console.WriteLine("ERROR"); + result.Errors.ForEach(e => Console.WriteLine(e.Message)); + } + else + { + Console.WriteLine("parser ok"); + BenchedParser = result.Result; + } + + Console.WriteLine($"parser {BenchedParser}"); + } + + [Benchmark] + public void Test254() + { + if (BenchedParser == null) + { + Console.WriteLine("parser is null"); + } + else + { + var ignored = BenchedParser.Parse("-(1+2 * 3)"); + } + } + + + + } + } +} \ No newline at end of file diff --git a/Issue254/Issue254.csproj b/Issue254/Issue254.csproj new file mode 100644 index 00000000..4517d870 --- /dev/null +++ b/Issue254/Issue254.csproj @@ -0,0 +1,19 @@ + + + + net5.0 + Exe + + + + + + + + + + + + + + diff --git a/Issue254/Issue254/BinaryExpression.cs b/Issue254/Issue254/BinaryExpression.cs new file mode 100644 index 00000000..3f16a1a7 --- /dev/null +++ b/Issue254/Issue254/BinaryExpression.cs @@ -0,0 +1,50 @@ + +using System; +using System.Collections.Generic; + +namespace BravoLights.Common.Ast +{ + abstract class BinaryExpression : IAstNode + { + internal readonly IAstNode Lhs; + internal readonly IAstNode Rhs; + + private object lastLhsValue; + private object lastRhsValue; + private object lastReportedValue; + + protected BinaryExpression(IAstNode lhs, IAstNode rhs) + { + Lhs = lhs; + Rhs = rhs; + } + + public string ErrorText => null; + public event EventHandler ValueChanged; + + public IEnumerable Variables + { + get + { + foreach (var variable in Lhs.Variables) { + yield return variable; + } + foreach (var variable in Rhs.Variables) + { + yield return variable; + } + } + } + + protected abstract string OperatorText { get; } + protected abstract object ComputeValue(object lhsValue, object rhsValue); + + + + + public override string ToString() + { + return $"({Lhs} {OperatorText} {Rhs})"; + } + } +} diff --git a/Issue254/Issue254/BinaryNumericExpression.cs b/Issue254/Issue254/BinaryNumericExpression.cs new file mode 100644 index 00000000..d7d8cefc --- /dev/null +++ b/Issue254/Issue254/BinaryNumericExpression.cs @@ -0,0 +1,154 @@ +using System; +using sly.lexer; + +namespace BravoLights.Common.Ast +{ + enum NumericOperator + { + Plus, + Minus, + Times, + Divide, + BinaryAnd, + BinaryOr + } + + ///

    + /// A binary expression such as 'X + Y' or 'X / Y', which produces a number from two other numbers and an operator. + /// + abstract class BinaryNumericExpression : BinaryExpression + { + protected BinaryNumericExpression(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected abstract double ComputeNumericValue(double lhs, double rhs); + + protected override object ComputeValue(object lhsValue, object rhsValue) + { + if (lhsValue is Exception) + { + return lhsValue; + } + if (rhsValue is Exception) + { + return rhsValue; + } + var lhs = Convert.ToDouble(lhsValue); + var rhs = Convert.ToDouble(rhsValue); + return ComputeNumericValue(lhs, rhs); + } + + public static BinaryNumericExpression Create(IAstNode lhs, Token op, IAstNode rhs) + { + return op.Value switch + { + "+" => new PlusExpression(lhs, rhs), + "-" => new MinusExpression(lhs, rhs), + "*" => new TimesExpression(lhs, rhs), + "/" => new DivideExpression(lhs, rhs), + "&" => new BitwiseAndExpression(lhs, rhs), + "|" => new BitwiseOrExpression(lhs, rhs), + _ => throw new Exception($"Unexpected operator: {op.Value}"), + }; + } + + public static BinaryNumericExpression Create(IAstNode lhs, Token op, IAstNode rhs) + { + return op.Value switch + { + "+" => new PlusExpression(lhs, rhs), + "-" => new MinusExpression(lhs, rhs), + "*" => new TimesExpression(lhs, rhs), + "/" => new DivideExpression(lhs, rhs), + "&" => new BitwiseAndExpression(lhs, rhs), + "|" => new BitwiseOrExpression(lhs, rhs), + _ => throw new Exception($"Unexpected operator: {op.Value}"), + }; + } + } + + class PlusExpression : BinaryNumericExpression + { + public PlusExpression(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected override string OperatorText => "+"; + + protected override double ComputeNumericValue(double lhs, double rhs) + { + return lhs + rhs; + } + } + + class MinusExpression : BinaryNumericExpression + { + public MinusExpression(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected override string OperatorText => "-"; + + protected override double ComputeNumericValue(double lhs, double rhs) + { + return lhs - rhs; + } + } + + class TimesExpression : BinaryNumericExpression + { + public TimesExpression(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected override string OperatorText => "*"; + + protected override double ComputeNumericValue(double lhs, double rhs) + { + return lhs * rhs; + } + } + + class DivideExpression : BinaryNumericExpression + { + public DivideExpression(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected override string OperatorText => "/"; + + protected override double ComputeNumericValue(double lhs, double rhs) + { + return lhs / rhs; + } + } + + class BitwiseOrExpression : BinaryNumericExpression + { + public BitwiseOrExpression(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected override string OperatorText => "|"; + + protected override double ComputeNumericValue(double lhs, double rhs) + { + return Convert.ToDouble(Convert.ToInt32(lhs) | Convert.ToInt32(rhs)); + } + } + + class BitwiseAndExpression : BinaryNumericExpression + { + public BitwiseAndExpression(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected override string OperatorText => "&"; + + protected override double ComputeNumericValue(double lhs, double rhs) + { + return Convert.ToDouble(Convert.ToInt32(lhs) & Convert.ToInt32(rhs)); + } + } +} diff --git a/Issue254/Issue254/BooleanLogicalExpression.cs b/Issue254/Issue254/BooleanLogicalExpression.cs new file mode 100644 index 00000000..d571ae96 --- /dev/null +++ b/Issue254/Issue254/BooleanLogicalExpression.cs @@ -0,0 +1,124 @@ +using System; +using System.Collections.Generic; +using sly.lexer; + +namespace BravoLights.Common.Ast +{ + abstract class BooleanLogicalExpression : BinaryExpression + { + protected BooleanLogicalExpression(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + + public static BooleanLogicalExpression Create(IAstNode lhs, Token token, IAstNode rhs) + { + return token.Value switch + { + "&&" or "AND" => new AndExpression(lhs, rhs), + "||" or "OR" => new OrExpression(lhs, rhs), + _ => throw new Exception($"Unexpected operator {token.Value}"), + }; + } + + public static BooleanLogicalExpression Create(IAstNode lhs, Token token, IAstNode rhs) + { + return token.TokenID switch + { + OldExpressionToken.AND => new AndExpression(lhs, rhs), + OldExpressionToken.OR => new OrExpression(lhs, rhs), + _ => throw new Exception($"Unexpected operator {token.Value}"), + }; + } + } + + class AndExpression : BooleanLogicalExpression + { + public AndExpression(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected override object ComputeValue(object lhsValue, object rhsValue) + { + if (lhsValue is Boolean lhs) + { + if (lhs == false) + { + return false; + } + } + if (rhsValue is Boolean rhs) + { + if (rhs == false) + { + return false; + } + } + if (lhsValue is Exception) + { + return lhsValue; + } + if (rhsValue is Exception) + { + return rhsValue; + } + + // Neither side is false, and neither are Exceptions + return true; + } + + protected override string OperatorText => "AND"; + } + + class OrExpression : BooleanLogicalExpression + { + public OrExpression(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected override object ComputeValue(object lhsValue, object rhsValue) + { + if (lhsValue is Boolean lhs) + { + if (lhs == true) + { + return true; + } + } + if (rhsValue is Boolean rhs) + { + if (rhs == true) + { + return true; + } + } + if (lhsValue is Exception) + { + return lhsValue; + } + if (rhsValue is Exception) + { + return rhsValue; + } + + // Neither side is true, and neither are Exceptions + return false; + } + + protected override string OperatorText => "OR"; + } + + class NotExpression : UnaryExpression + { + public NotExpression(IAstNode child) : base(child) + { + } + + protected override string OperatorText => "NOT"; + + protected override bool ComputeValue(bool child) + { + return !child; + } + } +} diff --git a/Issue254/Issue254/ComparisonExpression.cs b/Issue254/Issue254/ComparisonExpression.cs new file mode 100644 index 00000000..e5e13c61 --- /dev/null +++ b/Issue254/Issue254/ComparisonExpression.cs @@ -0,0 +1,152 @@ +using System; +using sly.lexer; + +namespace BravoLights.Common.Ast +{ + /// + /// A binary expression such as 'X < Y' or 'X == Y', which produces a boolean from two other numbers and an operator. + /// + abstract class ComparisonExpression : BinaryExpression + { + protected ComparisonExpression(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected abstract bool ComputeComparisonValue(double lhs, double rhs); + + protected override object ComputeValue(object lhsValue, object rhsValue) + { + if (lhsValue is Exception) + { + return lhsValue; + } + if (rhsValue is Exception) + { + return rhsValue; + } + var lhs = Convert.ToDouble(lhsValue); + var rhs = Convert.ToDouble(rhsValue); + return ComputeComparisonValue(lhs, rhs); + } + + public static ComparisonExpression Create(IAstNode lhs, Token token, IAstNode rhs) + { + return token.Value switch + { + "<" => new LtComparison(lhs, rhs), + "<=" => new LeqComparison(lhs, rhs), + "==" => new EqComparison(lhs, rhs), + "!=" or "<>" => new NeqComparison(lhs, rhs), + ">=" => new GeqComparison(lhs, rhs), + ">" => new GtComparison(lhs, rhs), + _ => throw new Exception($"Unexpected operator {token.Value}"), + }; + } + + public static ComparisonExpression Create(IAstNode lhs, Token token, IAstNode rhs) + { + return token.Value switch + { + "<" => new LtComparison(lhs, rhs), + "<=" => new LeqComparison(lhs, rhs), + "==" => new EqComparison(lhs, rhs), + "!=" or "<>" => new NeqComparison(lhs, rhs), + ">=" => new GeqComparison(lhs, rhs), + ">" => new GtComparison(lhs, rhs), + _ => throw new Exception($"Unexpected operator {token.Value}"), + }; + } + } + + class LtComparison : ComparisonExpression + { + public LtComparison(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected override bool ComputeComparisonValue(double lhs, double rhs) + { + return lhs < rhs; + } + protected override string OperatorText => "<"; + } + + class LeqComparison : ComparisonExpression + { + public LeqComparison(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected override bool ComputeComparisonValue(double lhs, double rhs) + { + return lhs <= rhs; + } + protected override string OperatorText => "<="; + } + + class EqComparison : ComparisonExpression + { + public EqComparison(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected override bool ComputeComparisonValue(double lhs, double rhs) + { + return lhs == rhs; + } + protected override string OperatorText => "=="; + } + + class NeqComparison : ComparisonExpression + { + public NeqComparison(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected override bool ComputeComparisonValue(double lhs, double rhs) + { + return lhs != rhs; + } + protected override string OperatorText => "!="; + } + + class GeqComparison : ComparisonExpression + { + public GeqComparison(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected override bool ComputeComparisonValue(double lhs, double rhs) + { + return lhs >= rhs; + } + protected override string OperatorText => ">="; + } + + class GtComparison : ComparisonExpression + { + public GtComparison(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected override bool ComputeComparisonValue(double lhs, double rhs) + { + return lhs > rhs; + } + protected override string OperatorText => ">"; + } + + class UnaryMinusExpression : UnaryExpression + { + public UnaryMinusExpression(IAstNode child) : base(child) + { + } + + protected override string OperatorText => "-"; + + protected override double ComputeValue(double child) + { + return -child; + } + } +} \ No newline at end of file diff --git a/Issue254/Issue254/ConstantNode.cs b/Issue254/Issue254/ConstantNode.cs new file mode 100644 index 00000000..c7363540 --- /dev/null +++ b/Issue254/Issue254/ConstantNode.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; + +namespace BravoLights.Common.Ast +{ + /// + /// A node which represents a constant value. + /// + abstract class ConstantNode: IAstNode + { + protected ConstantNode(T value) + { + Value = value; + } + + public readonly T Value; + + public string ErrorText { get { return null; } } + + public IEnumerable Variables + { + get { return Array.Empty(); } + } + + public event EventHandler ValueChanged + { + add { value(this, new ValueChangedEventArgs { NewValue = Value }); } + remove { } + } + } +} diff --git a/Issue254/Issue254/ErrorNode.cs b/Issue254/Issue254/ErrorNode.cs new file mode 100644 index 00000000..54609549 --- /dev/null +++ b/Issue254/Issue254/ErrorNode.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace BravoLights.Common.Ast +{ + public class ErrorNode : IAstNode + { + public string ErrorText { get; set; } + + public IEnumerable Variables { + get { return Array.Empty(); } + } + + event EventHandler IAstNode.ValueChanged + { + add { } + remove { } + } + + public override string ToString() + { + return ErrorText; + } + } +} diff --git a/Issue254/Issue254/ExpressionParser.cs b/Issue254/Issue254/ExpressionParser.cs new file mode 100644 index 00000000..070b8ac3 --- /dev/null +++ b/Issue254/Issue254/ExpressionParser.cs @@ -0,0 +1,114 @@ +using System; +using System.Globalization; +using BravoLights.Common.Ast; +using sly.lexer; +using sly.parser; +using sly.parser.generator; + +namespace BravoLights.Common +{ + #pragma warning disable CA1822 // Mark members as static + public abstract class ExpressionParserBase + { + [Operand] + [Production("logical_literal: OFF")] + [Production("logical_literal: ON")] + public IAstNode LiteralBool(Token token) + { + return new LiteralBoolNode(token.Value == "ON"); + } + + [Operand] + [Production("primary: HEX_NUMBER")] + public IAstNode NumericExpressionFromLiteralNumber(Token offsetToken) + { + var text = offsetToken.Value; + var num = text[2..]; + var value = int.Parse(num, NumberStyles.HexNumber); + return new LiteralNumericNode(value); + } + + [Operand] + [Production("primary: DECIMAL_NUMBER")] + public IAstNode NumericExpressionFromDecimalNumber(Token offsetToken) + { + var text = offsetToken.Value; + var value = double.Parse(text, CultureInfo.InvariantCulture); + return new LiteralNumericNode(value); + } + + [Operation((int)ExpressionToken.PLUS,Affix.InFix, Associativity.Left, 14)] + [Operation((int)ExpressionToken.MINUS, Affix.InFix,Associativity.Left, 14)] + [Operation((int)ExpressionToken.TIMES, Affix.InFix, Associativity.Left, 15)] + [Operation((int)ExpressionToken.DIVIDE, Affix.InFix, Associativity.Left, 15)] + [Operation((int)ExpressionToken.BITWISE_AND, Affix.InFix, Associativity.Left, 10)] + [Operation((int)ExpressionToken.BITWISE_OR, Affix.InFix, Associativity.Left, 8)] + public IAstNode NumberExpression(IAstNode lhs, Token token, IAstNode rhs) + { + return BinaryNumericExpression.Create(lhs, token, rhs); + } + + [Operation((int)ExpressionToken.LOGICAL_AND, Affix.InFix, Associativity.Left, 7)] + [Operation((int)ExpressionToken.LOGICAL_OR, Affix.InFix, Associativity.Left, 6)] + public IAstNode LogicalExpression(IAstNode lhs, Token token, IAstNode rhs) + { + return BooleanLogicalExpression.Create(lhs, token, rhs); + } + + [Operation((int)ExpressionToken.MINUS, Affix.PreFix, Associativity.Right, 17)] + public IAstNode NumericExpression(Token _, IAstNode child) + { + return new UnaryMinusExpression(child); + } + + // We want NOT to to bind tighter than AND/OR but looser than numeric comparison operations + [Operation((int)ExpressionToken.NOT, Affix.PreFix, Associativity.Right, 11)] + public IAstNode LogicalExpression(Token _, IAstNode child) + { + return new NotExpression(child); + } + + + [Operation((int)ExpressionToken.COMPARISON, Affix.InFix,Associativity.Left, 12)] + public IAstNode Comparison(IAstNode lhs, Token token, IAstNode rhs) + { + return ComparisonExpression.Create(lhs, token, rhs); + } + + private static Parser cachedParser; + + public static IAstNode Parse(string expression) where T : ExpressionParserBase, new() + { + if (cachedParser == null) + { + var startingRule = $"{typeof(T).Name}_expressions"; + var parserInstance = new T(); + var builder = new ParserBuilder(); + var parser = builder.BuildParser(parserInstance, ParserType.EBNF_LL_RECURSIVE_DESCENT, startingRule); + if (parser.IsError) + { + throw new Exception($"Could not create parser. BNF is not valid. {parser.Errors[0]}"); + } + cachedParser = parser.Result; + } + + // To simplify an ambiguous lexer which would result from having both && and & as well as || and |, we'll + // simplify the incoming expression by turning && into AND and || into OR: + expression = expression.Replace("&&", " AND "); + expression = expression.Replace("||", " OR "); + + var parseResult = cachedParser.Parse(expression); + if (parseResult.IsError) + { + return new ErrorNode + { + ErrorText = parseResult.Errors[0].ErrorMessage + }; + } + + return parseResult.Result; + } + } + #pragma warning restore CA1822 // Mark members as static +} + diff --git a/Issue254/Issue254/ExpressionToken.cs b/Issue254/Issue254/ExpressionToken.cs new file mode 100644 index 00000000..ac2c9560 --- /dev/null +++ b/Issue254/Issue254/ExpressionToken.cs @@ -0,0 +1,128 @@ +using sly.lexer; + +namespace BravoLights.Common.Ast +{ + public enum ExpressionToken + { + [Lexeme("L:[A-Za-z0-9_]+")] + LVAR = 50, + + [Lexeme("A:[:A-Za-z0-9 ]+,\\s*([A-Za-z0-9 ]+)")] + SIMVAR = 52, + + // [Lexeme("\\[[A-Z_0-9 ]+:[A-Z_0-9 ]+\\]")] + [Lexeme("\\[[A-Za-z_0-9 ]+:[A-Za-z_0-9 ]+\\]")] + DCS_VAR = 53, + + [Lexeme("OFF")] + OFF = 0, + + [Lexeme("ON")] + ON = 1, + + // Hex/decimal prefix? + [Lexeme("0[xX][0-9a-fA-F]+")] + HEX_NUMBER = 2, + + [Lexeme("[0-9]+(\\.[0-9]+)?")] + DECIMAL_NUMBER = 3, + + [Lexeme("\\+")] + PLUS = 4, + + [Lexeme("-")] + MINUS = 5, + + [Lexeme("\\*")] + TIMES = 6, + + [Lexeme("/")] + DIVIDE = 7, + + [Lexeme("\\|")] + BITWISE_OR = 8, + + [Lexeme("&")] + BITWISE_AND = 9, + + [Lexeme("[ \\t]+", isSkippable: true)] + WHITESPACE = 20, + + [Lexeme("OR")] + LOGICAL_OR = 10, + [Lexeme("AND")] + LOGICAL_AND = 11, + + [Lexeme("NOT")] + NOT = 12, + + [Lexeme("(<=?)|(==)|(!=)|(>=?)")] + COMPARISON = 13, + + [Lexeme("\\(")] + LPAREN = 30, + + [Lexeme("\\)")] + RPAREN = 31, + + } + + + public enum OldExpressionToken + { + [Lexeme("L:[A-Za-z0-9_]+")] + LVAR = 50, + + [Lexeme("A:[:A-Za-z0-9 ]+,\\s*([A-Za-z0-9 ]+)")] + SIMVAR = 52, + + // [Lexeme("\\[[A-Z_0-9 ]+:[A-Z_0-9 ]+\\]")] + [Lexeme("\\[[A-Za-z_0-9 ]+:[A-Za-z_0-9 ]+\\]")] + DCS_VAR = 53, + + [Lexeme("OFF")] + OFF = 0, + + [Lexeme("ON")] + ON = 1, + + // Hex/decimal prefix? + [Lexeme("0[xX][0-9a-fA-F]+")] + HEX_NUMBER = 2, + + [Lexeme("[0-9]+(\\.[0-9]+)?")] + DECIMAL_NUMBER = 3, + + [Lexeme("\\+")] + PLUS = 4, + + [Lexeme("-")] + MINUS = 5, + + [Lexeme("\\*")] + TIMES = 6, + + [Lexeme("/")] + DIVIDE = 7, + + [Lexeme("[ \\t]+", isSkippable: true)] + WHITESPACE = 20, + + [Lexeme("(\\|\\|)|(OR)")] + OR = 10, + [Lexeme("(&&)|(AND)")] + AND = 11, + + [Lexeme("NOT")] + NOT = 12, + + [Lexeme("(<=?)|(==)|(!=)|(>=?)")] + COMPARISON = 13, + + [Lexeme("\\(")] + LPAREN = 30, + + [Lexeme("\\)")] + RPAREN = 31, + } +} \ No newline at end of file diff --git a/Issue254/Issue254/IAstNode.cs b/Issue254/Issue254/IAstNode.cs new file mode 100644 index 00000000..bdb3ac96 --- /dev/null +++ b/Issue254/Issue254/IAstNode.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; + +namespace BravoLights.Common.Ast +{ + /// + /// Represents a node in a parsed expression tree. + /// + public interface IAstNode + { + string ErrorText { get; } + + event EventHandler ValueChanged; + + IEnumerable Variables { get; } + } +} diff --git a/Issue254/Issue254/IConnection.cs b/Issue254/Issue254/IConnection.cs new file mode 100644 index 00000000..e070a224 --- /dev/null +++ b/Issue254/Issue254/IConnection.cs @@ -0,0 +1,11 @@ +using System; +using BravoLights.Common; + +namespace BravoLights.Common +{ + public interface IConnection + { + void AddListener(IVariable variable, EventHandler handler); + void RemoveListener(IVariable variable, EventHandler handler); + } +} diff --git a/Issue254/Issue254/IVariable.cs b/Issue254/Issue254/IVariable.cs new file mode 100644 index 00000000..3d6778d0 --- /dev/null +++ b/Issue254/Issue254/IVariable.cs @@ -0,0 +1,13 @@ +using System; +using BravoLights.Common.Ast; + +namespace BravoLights.Common +{ + public interface IVariable : IAstNode, IEquatable + { + /// + /// Gets the identifier for this variable. For an lvar this would be the simple name; for a sim var, it would be the name plus units. + /// + string Identifier { get; } + } +} diff --git a/Issue254/Issue254/IWASMChannel.cs b/Issue254/Issue254/IWASMChannel.cs new file mode 100644 index 00000000..a0f45b1a --- /dev/null +++ b/Issue254/Issue254/IWASMChannel.cs @@ -0,0 +1,14 @@ +using System; + +namespace BravoLights.Connections +{ + public interface IWASMChannel + { + void ClearSubscriptions(); + void Subscribe(short id); + void Unsubscribe(short id); + + SimState SimState { get; } + event EventHandler OnSimStateChanged; + } +} diff --git a/Issue254/Issue254/LVarManager.cs b/Issue254/Issue254/LVarManager.cs new file mode 100644 index 00000000..0927da28 --- /dev/null +++ b/Issue254/Issue254/LVarManager.cs @@ -0,0 +1,226 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using BravoLights.Ast; +using BravoLights.Common; + +namespace BravoLights.Connections +{ + public interface ILVarData + { + short ValueCount { get; } + + short[] Ids { get; } + + double[] Values { get; } + } + + public class LVarManager : IConnection + { + public readonly static LVarManager Connection = new(); + + private readonly Dictionary lvarIds = new(); + private readonly Dictionary lvarNames = new(); + private readonly Dictionary lvarValues = new(); + + private readonly Dictionary> handlers = new(); + + public void AddListener(IVariable variable, EventHandler handler) + { + var lvar = (LvarExpression)variable; + var name = lvar.LVarName; + + lock (this) + { + handlers.TryGetValue(name, out var existingHandlersForDefinition); + var newListeners = (EventHandler)Delegate.Combine(existingHandlersForDefinition, handler); + handlers[name] = newListeners; + + if (existingHandlersForDefinition == null) + { + // First subscription for this variable + if (lvarIds.TryGetValue(name, out var id)) + { + wasmChannel.Subscribe(id); + } + } + + SendLastValue(name, handler); + } + } + + public void RemoveListener(IVariable variable, EventHandler handler) + { + var lvar = (LvarExpression)variable; + var name = lvar.LVarName; + + lock (this) + { + handlers.TryGetValue(name, out var existingHandlersForDefinition); + var newListeners = (EventHandler)Delegate.Remove(existingHandlersForDefinition, handler); + + if (newListeners == null) + { + handlers.Remove(name); + // No more subscriptions for this variable + if (lvarIds.TryGetValue(name, out var id)) + { + wasmChannel.Unsubscribe(id); + } + } + else + { + handlers[name] = newListeners; + } + + SendLastValue(name, handler); + } + } + + private void SendLastValue(string name, EventHandler handler) + { + if (DisableLVars) + { + handler(this, new ValueChangedEventArgs { NewValue = new Exception("The LVars module is not installed") }); + return; + } + + if (wasmChannel.SimState == SimState.SimExited) + { + VariableHandlerUtils.SendNoConnectionError(this, handler); + return; + } + + if (lvarValues.TryGetValue(name, out var lastValue)) + { + handler(this, new ValueChangedEventArgs { NewValue = lastValue }); + return; + } + + // We have no value for this lvar. Is it because the LVar doesn't exist, or just + // because it's not being used for _this_ aircraft? + if (lvarIds.ContainsKey(name)) + { + VariableHandlerUtils.SendNoValueError(this, handler); + } + else + { + SendNoSuchLVarError(handler); + } + } + + private IWASMChannel wasmChannel; + + /// + /// Gets or sets a value that disables LVar support. This is typically set if we know that the LVar module is missing or the wrong version. + /// + public bool DisableLVars { get; internal set; } + + public void SetWASMChannel(IWASMChannel wasmChannel) + { + this.wasmChannel = wasmChannel; + wasmChannel.OnSimStateChanged += WasmChannel_OnSimStateChanged; + } + + private void WasmChannel_OnSimStateChanged(object sender, SimStateEventArgs e) + { + if (e.SimState == SimState.SimExited) + { + this.ResetKnownLVars(); + } + } + + private void SendNoSuchLVarError(EventHandler handler) + { + handler(this, new ValueChangedEventArgs { NewValue = new Exception("LVar does not exist yet; this aircraft may not support it") }); + } + + private void ResetKnownLVars() + { + lvarIds.Clear(); + lvarNames.Clear(); + lvarValues.Clear(); + + SendAllValues(); + } + + private void SendAllValues() + { + lock (this) + { + foreach (var kvp in this.handlers) + { + var lvarName = kvp.Key; + var handler = kvp.Value; + SendLastValue(lvarName, handler); + } + } + } + + /// + /// Informs the LVar manager that the simulator list of LVars has changed. + /// + /// + /// The list _usually_ grows but if the simulator is restarted without restarting BBL, it will shrink. + /// + public void UpdateLVarList(List newLVars) + { + // During one run of the simulator, lvar ids will not disappear, but + // between runs of the simulator, all bets are off. + // So it's just safest for us to reset and resubscribe whenever lvars change. + + lock (this) + { + wasmChannel.ClearSubscriptions(); + + var oldCount = lvarIds.Count; + lvarIds.Clear(); + lvarNames.Clear(); + + Debug.WriteLine($"Incoming lvars: {newLVars.Count}"); + for (short id = 0; id < newLVars.Count; id++) + { + var name = newLVars[id]; + + if (id >= oldCount) + { + Debug.WriteLine($"Received new lvar {name}"); + } + + if (!lvarIds.ContainsKey(name)) + { + lvarIds[name] = id; + lvarNames[id] = name; + + if (handlers.ContainsKey(name)) + { + wasmChannel.Subscribe(id); + } + } + } + + SendAllValues(); + } + } + + public void UpdateLVarValues(ILVarData data) + { + lock (this) + { + for (var i = 0; i < data.ValueCount; i++) + { + var id = data.Ids[i]; + var value = data.Values[i]; + var name = lvarNames[id]; + + lvarValues[name] = value; + + if (handlers.TryGetValue(name, out var handler)) + { + SendLastValue(name, handler); + } + } + } + } + } +} diff --git a/Issue254/Issue254/LightExpression.cs b/Issue254/Issue254/LightExpression.cs new file mode 100644 index 00000000..dc681de7 --- /dev/null +++ b/Issue254/Issue254/LightExpression.cs @@ -0,0 +1,39 @@ +using System; +using BravoLights.Common.Ast; + +namespace BravoLights.Common +{ + public class LightExpression + { + public string LightName; + public IAstNode Expression; + + private EventHandler handlers; + + public event EventHandler ValueChanged + { + add + { + var send = handlers == null; + handlers += value; + if (send) + { + Expression.ValueChanged += Expression_ValueChanged; + } + } + remove + { + handlers -= value; + if (handlers == null) + { + Expression.ValueChanged -= Expression_ValueChanged; + } + } + } + + private void Expression_ValueChanged(object sender, ValueChangedEventArgs e) + { + handlers?.Invoke(this, e); + } + } +} diff --git a/Issue254/Issue254/LiteralBoolNode.cs b/Issue254/Issue254/LiteralBoolNode.cs new file mode 100644 index 00000000..f56e0cf4 --- /dev/null +++ b/Issue254/Issue254/LiteralBoolNode.cs @@ -0,0 +1,17 @@ +namespace BravoLights.Common.Ast +{ + /// + /// A node which represents a literal bool. + /// + class LiteralBoolNode : ConstantNode + { + public LiteralBoolNode(bool value) : base(value) + { + } + + public override string ToString() + { + return Value ? "ON" : "OFF"; + } + } +} diff --git a/Issue254/Issue254/LiteralNumericNode.cs b/Issue254/Issue254/LiteralNumericNode.cs new file mode 100644 index 00000000..a3b7a69d --- /dev/null +++ b/Issue254/Issue254/LiteralNumericNode.cs @@ -0,0 +1,19 @@ +using System.Globalization; + +namespace BravoLights.Common.Ast +{ + /// + /// A node which represents a literal double number. + /// + class LiteralNumericNode : ConstantNode + { + public LiteralNumericNode(double value) : base(value) + { + } + + public override string ToString() + { + return Value.ToString(CultureInfo.InvariantCulture); + } + } +} diff --git a/Issue254/Issue254/LvarExpression.cs b/Issue254/Issue254/LvarExpression.cs new file mode 100644 index 00000000..1240de11 --- /dev/null +++ b/Issue254/Issue254/LvarExpression.cs @@ -0,0 +1,22 @@ +using BravoLights.Common; +using BravoLights.Common.Ast; +using BravoLights.Connections; + +namespace BravoLights.Ast +{ + class LvarExpression : VariableBase, IAstNode + { + public string LVarName { get; set; } + + protected override IConnection Connection => LVarManager.Connection; + + public override string Identifier => $"L:{LVarName}"; + + public override string ToString() + { + return Identifier; + } + } + + +} diff --git a/Issue254/Issue254/MSFSExpressionParser.cs b/Issue254/Issue254/MSFSExpressionParser.cs new file mode 100644 index 00000000..b26fdaa8 --- /dev/null +++ b/Issue254/Issue254/MSFSExpressionParser.cs @@ -0,0 +1,47 @@ +using BravoLights.Common; +using BravoLights.Common.Ast; +using sly.lexer; +using sly.parser.generator; + +namespace BravoLights.Ast +{ +#pragma warning disable CA1822 // Mark members as static + public class MSFSExpressionParser : ExpressionParserBase + { + [Operand] + [Production("numeric_literal: LVAR")] + public IAstNode Lvar(Token token) + { + var text = token.Value[2..]; + + return new LvarExpression + { + LVarName = text + }; + } + + [Operand] + [Production("numeric_literal: SIMVAR")] + public IAstNode SimVarExpression(Token simvarToken) + { + var text = simvarToken.Value[2..]; + var bits = text.Split(","); + var varName = bits[0]; + var type = bits[1].Trim(); + return new SimVarExpression(varName, type); + } + + [Operand] + [Production("group : LPAREN MSFSExpressionParser_expressions RPAREN")] + public IAstNode Group(Token _1, IAstNode child, Token _2) + { + return child; + } + + public static IAstNode Parse(string expression) + { + return Parse(expression); + } + } +#pragma warning restore CA1822 // Mark members as static +} \ No newline at end of file diff --git a/Issue254/Issue254/NameAndUnits.cs b/Issue254/Issue254/NameAndUnits.cs new file mode 100644 index 00000000..d2c9f541 --- /dev/null +++ b/Issue254/Issue254/NameAndUnits.cs @@ -0,0 +1,13 @@ +namespace ParserTests.Issue254 +{ + class NameAndUnits + { + public string Name; + public string Units; + + public override string ToString() + { + return $"{Name}, {Units}"; + } + } +} \ No newline at end of file diff --git a/Issue254/Issue254/OldExpressionParser.cs b/Issue254/Issue254/OldExpressionParser.cs new file mode 100644 index 00000000..5c7605a4 --- /dev/null +++ b/Issue254/Issue254/OldExpressionParser.cs @@ -0,0 +1,121 @@ +using System; +using System.Globalization; +using BravoLights.Common; +using BravoLights.Common.Ast; +using sly.lexer; +using sly.parser; +using sly.parser.generator; + +namespace Issue254.Issue254 +{ + public class OldExpressionParser + { + [Production("logicalPrimary: OFF")] + [Production("logicalPrimary: ON")] + public IAstNode LiteralBool(Token token) + { + return new LiteralBoolNode(token.Value == "ON"); + } + + [Production("primary: HEX_NUMBER")] + public IAstNode NumericExpressionFromLiteralNumber(Token offsetToken) + { + var text = offsetToken.Value; + var num = text[2..]; + var value = int.Parse(num, NumberStyles.HexNumber); + return new LiteralNumericNode(value); + } + + [Production("primary: DECIMAL_NUMBER")] + public IAstNode NumericExpressionFromDecimalNumber(Token offsetToken) + { + var text = offsetToken.Value; + + + var value = double.Parse(text, CultureInfo.InvariantCulture); + return new LiteralNumericNode(value); + } + + [Production("numericExpression: term PLUS numericExpression")] + [Production("numericExpression: term MINUS numericExpression")] + [Production("term: factor TIMES term")] + [Production("term: factor DIVIDE term")] + public IAstNode NumberExpression(IAstNode lhs, Token token, IAstNode rhs) + { + return BinaryNumericExpression.Create(lhs, token, rhs); + } + + [Production("numericExpression: term")] + [Production("term: factor")] + [Production("factor: primary")] + [Production("logicalPrimary: comparison")] + [Production("logicalTerm: logicalPrimary")] + [Production("logicalExpression: logicalTerm")] + public IAstNode Direct(IAstNode node) + + { + return node; + } + + [Production("logicalExpression: logicalTerm OR logicalExpression")] + [Production("logicalTerm: logicalPrimary AND logicalTerm")] + public IAstNode LogicalJunction(IAstNode lhs, Token token, IAstNode rhs) + { + return BooleanLogicalExpression.Create(lhs, token, rhs); + } + + [Production("primary: MINUS [d] primary")] + public IAstNode UnaryMinus(IAstNode child) + { + return new UnaryMinusExpression(child); + } + + [Production("logicalPrimary: NOT [d] logicalPrimary")] + public IAstNode LogicalUnary(IAstNode child) + { + return new NotExpression(child); + } + + [Production("comparison: numericExpression COMPARISON numericExpression")] + public IAstNode Comparison(IAstNode lhs, Token token, IAstNode rhs) + { + return ComparisonExpression.Create(lhs, token, rhs); + } + + + [Production("primary: LPAREN [d] numericExpression RPAREN [d]")] + [Production("logicalPrimary: LPAREN [d] logicalExpression RPAREN [d]")] + public IAstNode Parens(IAstNode exp) + { + return exp; + } + + private static Parser cachedParser; + + public static IAstNode Parse(string expression) where T : ExpressionParserBase, new() + { + if (cachedParser == null) + { + var parserInstance = new T(); + var builder = new ParserBuilder(); + var parser = builder.BuildParser(parserInstance, ParserType.EBNF_LL_RECURSIVE_DESCENT, "logicalExpression"); + if (parser.IsError) + { + throw new Exception($"Could not create parser. BNF is not valid. {parser.Errors[0]}"); + } + cachedParser = parser.Result; + } + + var parseResult = cachedParser.Parse(expression); + if (parseResult.IsError) + { + return new ErrorNode + { + ErrorText = parseResult.Errors[0].ErrorMessage + }; + } + + return parseResult.Result; + } + } +} \ No newline at end of file diff --git a/Issue254/Issue254/OldMSFSExpressionParser.cs b/Issue254/Issue254/OldMSFSExpressionParser.cs new file mode 100644 index 00000000..d64799f5 --- /dev/null +++ b/Issue254/Issue254/OldMSFSExpressionParser.cs @@ -0,0 +1,39 @@ +using BravoLights.Common; +using BravoLights.Common.Ast; +using Issue254.Issue254; +using sly.lexer; +using sly.parser.generator; + +namespace BravoLights.Ast +{ +#pragma warning disable CA1822 // Mark members as static + public class OldMSFSExpressionParser : OldExpressionParser + { + [Production("primary: LVAR")] + public IAstNode Lvar(Token token) + { + var text = token.Value[2..]; + + return new LvarExpression + { + LVarName = text + }; + } + + [Production("primary: SIMVAR")] + public IAstNode SimVarExpression(Token simvarToken) + { + var text = simvarToken.Value[2..]; + var bits = text.Split(","); + var varName = bits[0]; + var type = bits[1].Trim(); + return new SimVarExpression(varName, type); + } + + public static IAstNode Parse(string expression) + { + return Parse(expression); + } + } +#pragma warning restore CA1822 // Mark members as static +} \ No newline at end of file diff --git a/Issue254/Issue254/SimConnectConnection.cs b/Issue254/Issue254/SimConnectConnection.cs new file mode 100644 index 00000000..1fce9b40 --- /dev/null +++ b/Issue254/Issue254/SimConnectConnection.cs @@ -0,0 +1,375 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; +using System.Runtime.InteropServices; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading; +using BravoLights.Ast; +using BravoLights.Common; + +namespace BravoLights.Connections +{ + enum DefineId : uint + { + WASMRequestResponse = 1, + WASMLVars = 2, + + // The start of dynamically-allocated definitions for simulator variables + DynamicStart = 100 + } + + enum RequestId : uint + { + SimState = 1, + WASMResponse = 2, + WASMLVars = 3, + AircraftLoaded = 4, + FlightLoaded = 5, + + // The start of dynamically-allocated request ids for simulator variables + DynamicStart = DefineId.DynamicStart + } + + enum WASMReaderState + { + Neutral, + ReadingLVars + } + + class SimConnectConnection : IConnection, IWASMChannel + { + // Names of the client data areas established by the WASM module + private const string CDA_NAME_SIMVAR = "BetterBravoLights.LVars"; + private const string CDA_NAME_REQUEST = "BetterBravoLights.Request"; + private const string CDA_NAME_RESPONSE = "BetterBravoLights.Response"; + + // Ids for the client data areas + private enum ClientDataId + { + LVars = 0, + Request = 1, + Response = 2 + } + + private const string RESPONSE_LVAR_START = "!LVARS-START"; + private const string RESPONSE_LVAR_END = "!LVARS-END"; + + // Size of the request and response CDAs + private const int RequestResponseSize = 256; + + [StructLayout(LayoutKind.Sequential)] + public struct RequestString + { + [MarshalAs(UnmanagedType.ByValArray, SizeConst = RequestResponseSize)] + public byte[] data; + + public RequestString(string str) + { + var bytes = Encoding.ASCII.GetBytes(str); + var ret = new byte[RequestResponseSize]; + Array.Copy(bytes, ret, bytes.Length); + data = ret; + } + } + + public struct ResponseString + { + [MarshalAs(UnmanagedType.ByValTStr, SizeConst = RequestResponseSize)] + public string Data; + } + + // This MUST match the value in the WASM + private const int MaxDataValuesInPacket = 10; + + public struct LVarData : ILVarData + { + [MarshalAs(UnmanagedType.U2)] + public short ValueCount; + + [MarshalAs(UnmanagedType.ByValArray, SizeConst = MaxDataValuesInPacket, ArraySubType = UnmanagedType.U2)] + public short[] Ids; + + [MarshalAs(UnmanagedType.ByValArray, SizeConst = MaxDataValuesInPacket, ArraySubType = UnmanagedType.R8)] + public double[] Values; + + short ILVarData.ValueCount => ValueCount; + + short[] ILVarData.Ids => Ids; + + double[] ILVarData.Values => Values; + } + + private readonly uint LVarDataSize = (uint)Marshal.SizeOf(); + + public static SimConnectConnection Connection = new(); + + private Timer reconnectTimer = null; + private SimState simState = SimState.SimExited; + + private SimConnectConnection() + { + LVarManager.Connection.SetWASMChannel(this); + } + + public void Start() + { + ConnectNow(); + } + + private uint nextVariableId = (uint)DefineId.DynamicStart; + + private readonly Dictionary idToName = new(); + private readonly Dictionary nameToId = new(new NameAndUnitsComparer()); + private readonly Dictionary> variableHandlers = + new(new NameAndUnitsComparer()); + private readonly Dictionary lastReportedValue = new(new NameAndUnitsComparer()); + + private void SubscribeToSimConnect(NameAndUnits nameAndUnits) + { + + } + + private void UnsubscribeFromSimConnect(SimVarExpression simvar) + { + } + + public void AddListener(IVariable variable, EventHandler handler) + { + } + + private void SendLastValue(NameAndUnits variable, EventHandler handler) + { + } + + + public void RemoveListener(IVariable variable, EventHandler handler) + { + } + + private const int WM_USER_SIMCONNECT = 0x0402; + + + public void ReceiveMessage() + { + } + + private void ReconnectTimerElapsed(object sender) + { + } + + private void ConnectNow() + { + + } + + private void ConfigureWASMComms() + { + + } + + private void RequestAircraftAndFlightStatus() + { + } + + + + private Timer periodicLVarTimer = null; + + private void PeriodicLVarTimerElapsed(object state) + { + Debug.WriteLine("PeriodicLVarTimerElapsed"); + ScheduleLVarCheck(); + } + + private void RaiseSimStateChanged(SimState state) + { + } + + private static readonly Regex AircraftPathRegex = new("Airplanes\\\\(.*)\\\\"); + + private void HandleAircraftChanged(string aircraftPath) + { + if (OnAircraftLoaded != null) + { + // aircraftPath is something like + // SimObjects\\Airplanes\\Asobo_C172SP_Classic\\aircraft.CFG + // We just want 'Asobo_C172SP_Classic' + var match = AircraftPathRegex.Match(aircraftPath); + if (match.Success) + { + var aircraftName = match.Groups[1].Value; + Debug.WriteLine($"HandleAircraftChanged {aircraftName}. Checking LVars"); + + // Note: LVars are not registered by an aircraft until a little while _after_ it has loaded. + // So the first time we get an AircraftChanged event, the lvars will not be present. + // However, we request aircraft + flight information on each SimStart/SimStop, which should catch them. + ScheduleLVarCheck(); + OnAircraftLoaded(this, new AircraftEventArgs { Aircraft = aircraftName }); + } + } + } + + private void HandleFlightLoaded(string flightPath) + { + // Examples: + // flights\other\MainMenu.FLT + // C:\Users\royston\AppData\Local\Packages\Microsoft.FlightSimulator_8wekyb3d8bbwe\LocalState\MISSIONS\ACTIVITIES\ASOBO-BUSHTRIP-FINLAND_SAVE\ASOBO-BUSHTRIP-FINLAND_SAVE\ASOBO-BUSHTRIP-FINLAND_SAVE.FLT + // C:\Users\royston\AppData\Local\Packages\Microsoft.FlightSimulator_8wekyb3d8bbwe\LocalState\MISSIONS\ACTIVITIES\ASOBO-BUSHTRIP-FINLAND_SAVE\AUTOSAVE\\BCKP\\ASOBO-BUSHTRIP-FINLAND_SAVE.FLT + // missions\Asobo\Tutorials\VFRNavigation\LandmarkNavigation\03_Training_LandmarkNavigation.FLT + + InMainMenu = flightPath.EndsWith("flights\\other\\mainmenu.flt", StringComparison.InvariantCultureIgnoreCase); + Debug.WriteLine($"HandleFlightLoaded. {flightPath}. Checking LVars"); + ScheduleLVarCheck(); + } + + /// + /// Called when we receive some event that suggests that the simulator LVars may have changed, e.g. aircraft/flight change/simstart/simstop + /// + private void ScheduleLVarCheck() + { +#if DEBUG + Debug.WriteLine("ScheduleLVarCheck"); +#endif + + if (lvarCheckTimer == null) + { + lvarCheckTimer = new(LVarCheckTimerElapsed, null, TimeSpan.FromSeconds(2), Timeout.InfiniteTimeSpan); + } + } + + private Timer lvarCheckTimer = null; + + /// + /// Called every ~30s or so, just to check if new lvars have appeared. Some aircraft take a while to register theirs. + /// + private void LVarCheckTimerElapsed(object state) + { +#if DEBUG + Debug.WriteLine("LVarCheckTimerElapsed"); +#endif + lvarCheckTimer.Dispose(); + lvarCheckTimer = null; + + CheckForNewLVars(); + } + + private bool hasEverCheckedForLVars = false; + + /// + /// Asks the WASM module to check for new LVars. + /// + private void CheckForNewLVars() + { + + } + + public event EventHandler OnInMainMenuChanged; + + private bool inMainMenu = true; + public bool InMainMenu + { + get { + return inMainMenu; + } + private set + { + if (inMainMenu == value) + { + return; + } + + CheckForNewLVars(); + inMainMenu = value; + OnInMainMenuChanged?.Invoke(this, EventArgs.Empty); + } + } + + + + private void RegisterCurrentVariables() + { + foreach (var nau in this.variableHandlers.Keys) + { + SubscribeToSimConnect(nau); + } + } + + private List incomingLVars = new(); + + private WASMReaderState readerState = WASMReaderState.Neutral; + + + + public static IntPtr HWnd { get; set; } + + public event EventHandler OnAircraftLoaded; + public void ClearSubscriptions() + { + } + + public void Subscribe(short id) + { + } + + public void Unsubscribe(short id) + { + } + + public SimState SimState + { + get { return simState; } + } + public event EventHandler OnSimStateChanged; + + } + + public enum SimState + { + SimRunning, + SimStopped, + SimExited + } + + class NameAndUnits + { + public string Name; + public string Units; + + public override string ToString() + { + return $"{Name}, {Units}"; + } + } + + class NameAndUnitsComparer : IEqualityComparer + { + public bool Equals(NameAndUnits x, NameAndUnits y) + { + return x.Name == y.Name && x.Units == y.Units; + } + + public int GetHashCode([DisallowNull] NameAndUnits obj) + { + return obj.Name.GetHashCode(); + } + } + + public class SimStateEventArgs: EventArgs + { + public SimState SimState; + } + + class AircraftEventArgs : EventArgs + { + public string Aircraft; + } + + [StructLayout(LayoutKind.Explicit, CharSet = CharSet.Ansi, Pack = 1)] + struct ContainerStruct + { + [FieldOffset(0)] + public double doubleValue; + } +} diff --git a/Issue254/Issue254/SimVarExpression.cs b/Issue254/Issue254/SimVarExpression.cs new file mode 100644 index 00000000..77cbe1ec --- /dev/null +++ b/Issue254/Issue254/SimVarExpression.cs @@ -0,0 +1,25 @@ +using BravoLights.Common; +using BravoLights.Common.Ast; +using BravoLights.Connections; + +namespace BravoLights.Ast +{ + class SimVarExpression : VariableBase, IAstNode + { + public readonly NameAndUnits NameAndUnits; + + public SimVarExpression(string simVarName, string units) + { + NameAndUnits = new NameAndUnits { Name = simVarName, Units = units }; + } + + public override string ToString() + { + return Identifier; + } + + protected override IConnection Connection => SimConnectConnection.Connection; + + public override string Identifier => $"A:{this.NameAndUnits.Name}, {this.NameAndUnits.Units}"; + } +} diff --git a/Issue254/Issue254/UnaryExpression.cs b/Issue254/Issue254/UnaryExpression.cs new file mode 100644 index 00000000..5e00aff5 --- /dev/null +++ b/Issue254/Issue254/UnaryExpression.cs @@ -0,0 +1,96 @@ +using System; +using System.Collections.Generic; + +namespace BravoLights.Common.Ast +{ + abstract class UnaryExpression : IAstNode + { + private readonly IAstNode Child; + + private object lastChildValue; + private object lastReportedValue; + + protected UnaryExpression(IAstNode child) + { + Child = child; + } + + public string ErrorText => null; + + public IEnumerable Variables + { + get { return Child.Variables; } + } + + protected abstract string OperatorText { get; } + protected abstract TOutput ComputeValue(TChildren child); + + private void HandleChildValueChanged(object sender, ValueChangedEventArgs e) + { + lastChildValue = e.NewValue; + + Recompute(); + } + + private void Recompute() + { + if (lastChildValue == null) + { + return; + } + + object newValue; + if (lastChildValue is Exception) + { + newValue = lastChildValue; + } + else + { + var child = (TChildren)Convert.ChangeType(lastChildValue, typeof(TChildren)); + newValue = ComputeValue(child); + } + + if (lastReportedValue == null || !lastReportedValue.Equals(newValue)) // N.B. We must unbox before doing the comparison otherwise we'll be comparing boxed pointers + { + lastReportedValue = newValue; + + listeners?.Invoke(this, new ValueChangedEventArgs { NewValue = newValue }); + } + } + + private EventHandler listeners; + + public event EventHandler ValueChanged + { + add + { + var subscribe = listeners == null; + // It's important that we add the listener before subscribing to children + // because the subscription may fire immediately + listeners += value; + if (subscribe) + { + Child.ValueChanged += HandleChildValueChanged; + } + if (lastReportedValue != null) + { + // New subscriber and we already have a valid computed value. Ship it. + value(this, new ValueChangedEventArgs { NewValue = lastReportedValue }); + } + } + remove + { + listeners -= value; + if (listeners == null) + { + Child.ValueChanged -= HandleChildValueChanged; + } + } + } + + public override string ToString() + { + return $"({OperatorText} {Child})"; + } + } +} diff --git a/Issue254/Issue254/ValueChangedEventArgs.cs b/Issue254/Issue254/ValueChangedEventArgs.cs new file mode 100644 index 00000000..62782a4c --- /dev/null +++ b/Issue254/Issue254/ValueChangedEventArgs.cs @@ -0,0 +1,9 @@ +using System; + +namespace BravoLights.Common +{ + public class ValueChangedEventArgs : EventArgs + { + public object NewValue; + } +} diff --git a/Issue254/Issue254/VariableBase.cs b/Issue254/Issue254/VariableBase.cs new file mode 100644 index 00000000..a43a6e58 --- /dev/null +++ b/Issue254/Issue254/VariableBase.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; + +namespace BravoLights.Common.Ast +{ + /// + /// Base class for a variable. + /// + public abstract class VariableBase : IVariable + { + public string ErrorText { get { return null; } } + + public IEnumerable Variables + { + get { yield return this; } + } + + protected abstract IConnection Connection { get; } + public abstract string Identifier { get; } + + private readonly Dictionary, EventHandler> handlerMappings + = new(); + + public event EventHandler ValueChanged + { + add + { + // For this incoming subscription we're just going to subscribe to the + // underlying connection but with a callback that changes the sender + // to be this variable. + void mappedDelegate(object sender, ValueChangedEventArgs e) + { + value(this, e); + } + + handlerMappings[value] = mappedDelegate; + Connection.AddListener(this, mappedDelegate); + } + remove + { + var mappedDelegate = handlerMappings[value]; + handlerMappings.Remove(value); + Connection.RemoveListener(this, mappedDelegate); + } + } + + public bool Equals(IVariable other) + { + return Identifier.Equals(other.Identifier); + } + public override int GetHashCode() + { + return Identifier.GetHashCode(); + } + } +} diff --git a/Issue254/Issue254/VariableHandlerUtils.cs b/Issue254/Issue254/VariableHandlerUtils.cs new file mode 100644 index 00000000..1055c1b6 --- /dev/null +++ b/Issue254/Issue254/VariableHandlerUtils.cs @@ -0,0 +1,24 @@ +using System; +using BravoLights.Common; + +namespace BravoLights.Connections +{ + static class VariableHandlerUtils + { + /// + /// Reports that, whilst we are connected to the server, we haven't yet received a value for this variable. + /// + public static void SendNoValueError(object sender, EventHandler handler) + { + handler(sender, new ValueChangedEventArgs { NewValue = new Exception("No value yet received from simulator") }); + } + + /// + /// Reports that a variable doesn't have a value because the simulator isn't connected. + /// + public static void SendNoConnectionError(object sender, EventHandler handler) + { + handler(sender, new ValueChangedEventArgs { NewValue = new Exception("No connection to simulator") }); + } + } +} diff --git a/Issue254/Issue254/rules.txt b/Issue254/Issue254/rules.txt new file mode 100644 index 00000000..0bfd8659 --- /dev/null +++ b/Issue254/Issue254/rules.txt @@ -0,0 +1,23 @@ +logicalPrimary: OFF +logicalPrimary: ON +primary: HEX_NUMBER +primary: DECIMAL_NUMBER +numericExpression: term PLUS numericExpression +numericExpression: term MINUS numericExpression +term: factor TIMES term +term: factor DIVIDE term +numericExpression: term +term: factor +factor: primary +logicalPrimary: comparison +logicalTerm: logicalPrimary +logicalExpression: logicalTerm +logicalExpression: logicalTerm OR logicalExpression +logicalTerm: logicalPrimary AND logicalTerm +primary: MINUS [d] primary +logicalPrimary: NOT [d] logicalPrimary +comparison: numericExpression COMPARISON numericExpression +primary: LPAREN [d] numericExpression RPAREN [d] +logicalPrimary: LPAREN [d] logicalExpression RPAREN [d] +primary: LVAR +primary: SIMVAR diff --git a/Issue254/Program.cs b/Issue254/Program.cs new file mode 100644 index 00000000..0a2f470f --- /dev/null +++ b/Issue254/Program.cs @@ -0,0 +1,177 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; +using BravoLights.Ast; +using BravoLights.Common.Ast; +using sly.parser.generator; +using sly.parser.generator.visitor; + +namespace Issue254 +{ + public static class Program + { + + public static void Bench() + { + Console.WriteLine("starting bench"); + // var summary = BenchmarkRunner.Run(); + } + + public static void Main(string[] args) + { + Test254(); + //Test254Old(); + // try + // { + // Bench(); + // } + // catch (Exception e) + // { + // Console.WriteLine(e.Message); + // Console.WriteLine(e.StackTrace); + // } + + ; + } + + private static void Test254() + { + var tests = new Dictionary() + { + {"1 + 2 * 3", 7.0}, + {"2 - 3 / 4", 1.25}, + {"-3 - -4", 1.0}, + {"-3--4", 1.0}, + {"-3+-4", -7.0}, + {"-(1+2)", -3.0}, + { "-(1+2 * 3)", -7.0 } , + {"3 * -2", -6.0}, + {"9 & 8", 8.0}, + {"7 & 8", 0.0}, + {"8 & 8", 8.0}, + {"1 + 7 & 15 - 7", 8.0}, + {"1 | 2", 3.0}, + {"3 | 5", 7.0}, + {"1 + 3 | 3 - 1", 6.0} + }; + + var times = new List() {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; + + var c = new Stopwatch(); + + int repetition = 10; + + for (int i = 0; i < repetition; i++) + { + Console.WriteLine($"repetition #{i}"); + int testIndex = 0; + foreach (var test in tests) + { + var parserInstance = new MSFSExpressionParser(); + var builder = new ParserBuilder(); + var parser = builder.BuildParser(parserInstance, ParserType.EBNF_LL_RECURSIVE_DESCENT, + "MSFSExpressionParser_expressions"); + + c.Reset(); + c.Start(); + var x = parser.Result.Parse(test.Key); + bool isok = x.IsOk; + c.Stop(); + Console.WriteLine($"\t{test.Key} : {c.ElapsedMilliseconds}"); + + times[testIndex] += c.ElapsedMilliseconds; + testIndex++; + } + } + + //times = times.Select(x => x / repetition).ToList(); + PrintTimes(times); + + } + + private static void PrintTimes(List times) + { + string file = @"C:\Users\olduh\dev\times.txt"; + var lines = new List(); + if (File.Exists(file)) + { + using (var stream = File.OpenRead(file)) + { + using (var reader = new StreamReader(stream)) + { + + string line = reader.ReadLine(); + int i = 0; + while (line != null) + { + if (i == 0) + { + line = line + ";" + DateTime.Today.ToString("dd/MM/yyyy"); + } + else + { + line += ";" + times[i - 1]; + } + lines.Add(line); + line = reader.ReadLine(); + i++; + } + } + } + + File.WriteAllLines(file,lines); + } + } + + private static void Test254Old() + { + var tests = new Dictionary() + { + {"1 + 2 * 3", 7.0}, + {"2 - 3 / 4", 1.25}, + {"-3 - -4", 1.0}, + {"-3--4", 1.0}, + {"-3+-4", -7.0}, + {"-(1+2)", -3.0}, + { "-(1+2 * 3)", -7.0 } , + {"3 * -2", -6.0}, + {"9 & 8", 8.0}, + {"7 & 8", 0.0}, + {"8 & 8", 8.0}, + {"1 + 7 & 15 - 7", 8.0} + , + {"1 | 2", 3.0}, + {"3 | 5", 7.0}, + {"1 + 3 | 3 - 1", 6.0} + }; + + var c = new Stopwatch(); + + + + foreach (var test in tests) + { + var parserInstance = new OldMSFSExpressionParser(); + var builder = new ParserBuilder(); + var parser = builder.BuildParser(parserInstance, ParserType.EBNF_LL_RECURSIVE_DESCENT, + "logicalExpression"); + File.WriteAllText(@"c:\temp\parser.dump.old.txt",parser.Result.Configuration.Dump()); + c.Reset(); + c.Start(); + var x = parser.Result.Parse(test.Key); + bool isok = x.IsOk; + c.Stop(); + Console.WriteLine($"test {test.Key} : {isok} : {c.ElapsedMilliseconds} ms"); + var result = parser.Result.Parse("2 + 2 * 3"); + var tree = result.SyntaxTree; + var graphviz = new GraphVizEBNFSyntaxTreeVisitor(); + var root = graphviz.VisitTree(tree); + string graph = graphviz.Graph.Compile(); + File.Delete("c:\\temp\\tree.old.dot"); + File.AppendAllText("c:\\temp\\tree.dot", graph); + } + } + } +} \ No newline at end of file From 429ed83d094e8b9d9bbfa87757b20f8a98d4957f Mon Sep 17 00:00:00 2001 From: b3b00 Date: Sun, 21 Nov 2021 18:35:50 +0100 Subject: [PATCH 43/82] wip --- ParserTests/EBNFTests.cs | 2 +- .../parser/llparser/RecursiveDescentSyntaxParser.cs | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/ParserTests/EBNFTests.cs b/ParserTests/EBNFTests.cs index d11b7991..38a8e80a 100644 --- a/ParserTests/EBNFTests.cs +++ b/ParserTests/EBNFTests.cs @@ -869,7 +869,7 @@ public void TestNonEmptyTerminalOption() var optionParser = buildResult.Result; var result = optionParser.Parse("a b c", "root"); - Assert.Equal("R(a,B(b),c)", result.Result); + Assert.Equal("R(a,b,c)", result.Result); } diff --git a/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs b/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs index 50121b50..f0535da2 100644 --- a/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs +++ b/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs @@ -172,6 +172,8 @@ public SyntaxParseResult Parse(IList> tokens, string startingNonTe var errors = new List>(); var nt = NonTerminals[start]; + //return ParseNonTerminal(tokens, nt.Name, 0); + var rules = nt.Rules.Where(r => !tokens[0].IsEOS && r.PossibleLeadingTokens.Contains(tokens[0].TokenID)).ToList(); if (!rules.Any()) @@ -371,9 +373,15 @@ public SyntaxParseResult ParseTerminal(IList> tokens, TerminalClau public SyntaxParseResult ParseNonTerminal(IList> tokens, NonTerminalClause nonTermClause, int currentPosition) + { + return ParseNonTerminal(tokens, nonTermClause.NonTerminalName, currentPosition); + } + + public SyntaxParseResult ParseNonTerminal(IList> tokens, string nonTerminalName, + int currentPosition) { var startPosition = currentPosition; - var nt = Configuration.NonTerminals[nonTermClause.NonTerminalName]; + var nt = Configuration.NonTerminals[nonTerminalName]; var errors = new List>(); var i = 0; @@ -398,7 +406,7 @@ public SyntaxParseResult ParseNonTerminal(IList> tokens, NonTermin while (i < rules.Count) { var innerrule = rules[i]; - var innerRuleRes = Parse(tokens, innerrule, startPosition, nonTermClause.NonTerminalName); + var innerRuleRes = Parse(tokens, innerrule, startPosition, nonTerminalName); rulesResults.Add(innerRuleRes); var other = greaterIndex == 0 && innerRuleRes.EndingPosition == 0; From 6d7946652f0bd3ddae25bb5d02fa9e1eefde6db3 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Sun, 21 Nov 2021 18:38:22 +0100 Subject: [PATCH 44/82] fix compilation --- Issue254/Bench.cs | 91 +++++ Issue254/Issue254.csproj | 19 + Issue254/Issue254/BinaryExpression.cs | 50 +++ Issue254/Issue254/BinaryNumericExpression.cs | 154 +++++++ Issue254/Issue254/BooleanLogicalExpression.cs | 124 ++++++ Issue254/Issue254/ComparisonExpression.cs | 152 +++++++ Issue254/Issue254/ConstantNode.cs | 31 ++ Issue254/Issue254/ErrorNode.cs | 25 ++ Issue254/Issue254/ExpressionParser.cs | 114 ++++++ Issue254/Issue254/ExpressionToken.cs | 128 ++++++ Issue254/Issue254/IAstNode.cs | 17 + Issue254/Issue254/IConnection.cs | 11 + Issue254/Issue254/IVariable.cs | 13 + Issue254/Issue254/IWASMChannel.cs | 14 + Issue254/Issue254/LVarManager.cs | 226 +++++++++++ Issue254/Issue254/LightExpression.cs | 39 ++ Issue254/Issue254/LiteralBoolNode.cs | 17 + Issue254/Issue254/LiteralNumericNode.cs | 19 + Issue254/Issue254/LvarExpression.cs | 22 + Issue254/Issue254/MSFSExpressionParser.cs | 47 +++ Issue254/Issue254/NameAndUnits.cs | 13 + Issue254/Issue254/OldExpressionParser.cs | 123 ++++++ Issue254/Issue254/OldMSFSExpressionParser.cs | 39 ++ Issue254/Issue254/SimConnectConnection.cs | 378 ++++++++++++++++++ Issue254/Issue254/SimVarExpression.cs | 25 ++ Issue254/Issue254/UnaryExpression.cs | 96 +++++ Issue254/Issue254/ValueChangedEventArgs.cs | 9 + Issue254/Issue254/VariableBase.cs | 56 +++ Issue254/Issue254/VariableHandlerUtils.cs | 24 ++ Issue254/Issue254/rules.txt | 23 ++ Issue254/Program.cs | 136 +++++++ 31 files changed, 2235 insertions(+) create mode 100644 Issue254/Bench.cs create mode 100644 Issue254/Issue254.csproj create mode 100644 Issue254/Issue254/BinaryExpression.cs create mode 100644 Issue254/Issue254/BinaryNumericExpression.cs create mode 100644 Issue254/Issue254/BooleanLogicalExpression.cs create mode 100644 Issue254/Issue254/ComparisonExpression.cs create mode 100644 Issue254/Issue254/ConstantNode.cs create mode 100644 Issue254/Issue254/ErrorNode.cs create mode 100644 Issue254/Issue254/ExpressionParser.cs create mode 100644 Issue254/Issue254/ExpressionToken.cs create mode 100644 Issue254/Issue254/IAstNode.cs create mode 100644 Issue254/Issue254/IConnection.cs create mode 100644 Issue254/Issue254/IVariable.cs create mode 100644 Issue254/Issue254/IWASMChannel.cs create mode 100644 Issue254/Issue254/LVarManager.cs create mode 100644 Issue254/Issue254/LightExpression.cs create mode 100644 Issue254/Issue254/LiteralBoolNode.cs create mode 100644 Issue254/Issue254/LiteralNumericNode.cs create mode 100644 Issue254/Issue254/LvarExpression.cs create mode 100644 Issue254/Issue254/MSFSExpressionParser.cs create mode 100644 Issue254/Issue254/NameAndUnits.cs create mode 100644 Issue254/Issue254/OldExpressionParser.cs create mode 100644 Issue254/Issue254/OldMSFSExpressionParser.cs create mode 100644 Issue254/Issue254/SimConnectConnection.cs create mode 100644 Issue254/Issue254/SimVarExpression.cs create mode 100644 Issue254/Issue254/UnaryExpression.cs create mode 100644 Issue254/Issue254/ValueChangedEventArgs.cs create mode 100644 Issue254/Issue254/VariableBase.cs create mode 100644 Issue254/Issue254/VariableHandlerUtils.cs create mode 100644 Issue254/Issue254/rules.txt create mode 100644 Issue254/Program.cs diff --git a/Issue254/Bench.cs b/Issue254/Bench.cs new file mode 100644 index 00000000..a8433b98 --- /dev/null +++ b/Issue254/Bench.cs @@ -0,0 +1,91 @@ +using System; +using System.IO; +using System.Linq.Expressions; +using BenchmarkDotNet.Analysers; +using BenchmarkDotNet.Attributes; +using BenchmarkDotNet.Configs; +using BenchmarkDotNet.Jobs; +using BenchmarkDotNet.Toolchains.CsProj; +using BravoLights.Ast; +using BravoLights.Common.Ast; +using sly.parser; +using sly.parser.generator; + +namespace Issue254 +{ + public class Bench + { + [MemoryDiagnoser] + + [Config(typeof(Config))] + public class JsonParserBench + { + + + private class Config : ManualConfig + { + public Config() + { + try + { + Console.WriteLine("configuring bench"); + var baseJob = Job.MediumRun.WithToolchain(CsProjCoreToolchain.NetCoreApp50); + AddJob(baseJob.WithNuGet("sly", "2.7.0.5").WithId("2.7.0.5")); + AddJob(baseJob.WithNuGet("sly", "2.7.0.4").WithId("2.7.0.4")); + AddJob(baseJob.WithNuGet("sly", "2.7.0.1").WithId("2.7.0.1")); + } + catch (Exception e) + { + Console.WriteLine("in Config : "); + Console.WriteLine(e.Message); + } + + } + } + + private Parser BenchedParser; + + + + [GlobalSetup] + public void Setup() + { + Console.WriteLine(("SETUP")); + + var parserInstance = new MSFSExpressionParser(); + var builder = new ParserBuilder(); + var result = builder.BuildParser(parserInstance, ParserType.EBNF_LL_RECURSIVE_DESCENT, "MSFSExpressionParser_expressions"); + + Console.WriteLine("parser built."); + if (result.IsError) + { + Console.WriteLine("ERROR"); + result.Errors.ForEach(e => Console.WriteLine(e.Message)); + } + else + { + Console.WriteLine("parser ok"); + BenchedParser = result.Result; + } + + Console.WriteLine($"parser {BenchedParser}"); + } + + [Benchmark] + public void Test254() + { + if (BenchedParser == null) + { + Console.WriteLine("parser is null"); + } + else + { + var ignored = BenchedParser.Parse("-(1+2 * 3)"); + } + } + + + + } + } +} \ No newline at end of file diff --git a/Issue254/Issue254.csproj b/Issue254/Issue254.csproj new file mode 100644 index 00000000..4517d870 --- /dev/null +++ b/Issue254/Issue254.csproj @@ -0,0 +1,19 @@ + + + + net5.0 + Exe + + + + + + + + + + + + + + diff --git a/Issue254/Issue254/BinaryExpression.cs b/Issue254/Issue254/BinaryExpression.cs new file mode 100644 index 00000000..3f16a1a7 --- /dev/null +++ b/Issue254/Issue254/BinaryExpression.cs @@ -0,0 +1,50 @@ + +using System; +using System.Collections.Generic; + +namespace BravoLights.Common.Ast +{ + abstract class BinaryExpression : IAstNode + { + internal readonly IAstNode Lhs; + internal readonly IAstNode Rhs; + + private object lastLhsValue; + private object lastRhsValue; + private object lastReportedValue; + + protected BinaryExpression(IAstNode lhs, IAstNode rhs) + { + Lhs = lhs; + Rhs = rhs; + } + + public string ErrorText => null; + public event EventHandler ValueChanged; + + public IEnumerable Variables + { + get + { + foreach (var variable in Lhs.Variables) { + yield return variable; + } + foreach (var variable in Rhs.Variables) + { + yield return variable; + } + } + } + + protected abstract string OperatorText { get; } + protected abstract object ComputeValue(object lhsValue, object rhsValue); + + + + + public override string ToString() + { + return $"({Lhs} {OperatorText} {Rhs})"; + } + } +} diff --git a/Issue254/Issue254/BinaryNumericExpression.cs b/Issue254/Issue254/BinaryNumericExpression.cs new file mode 100644 index 00000000..d7d8cefc --- /dev/null +++ b/Issue254/Issue254/BinaryNumericExpression.cs @@ -0,0 +1,154 @@ +using System; +using sly.lexer; + +namespace BravoLights.Common.Ast +{ + enum NumericOperator + { + Plus, + Minus, + Times, + Divide, + BinaryAnd, + BinaryOr + } + + /// + /// A binary expression such as 'X + Y' or 'X / Y', which produces a number from two other numbers and an operator. + /// + abstract class BinaryNumericExpression : BinaryExpression + { + protected BinaryNumericExpression(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected abstract double ComputeNumericValue(double lhs, double rhs); + + protected override object ComputeValue(object lhsValue, object rhsValue) + { + if (lhsValue is Exception) + { + return lhsValue; + } + if (rhsValue is Exception) + { + return rhsValue; + } + var lhs = Convert.ToDouble(lhsValue); + var rhs = Convert.ToDouble(rhsValue); + return ComputeNumericValue(lhs, rhs); + } + + public static BinaryNumericExpression Create(IAstNode lhs, Token op, IAstNode rhs) + { + return op.Value switch + { + "+" => new PlusExpression(lhs, rhs), + "-" => new MinusExpression(lhs, rhs), + "*" => new TimesExpression(lhs, rhs), + "/" => new DivideExpression(lhs, rhs), + "&" => new BitwiseAndExpression(lhs, rhs), + "|" => new BitwiseOrExpression(lhs, rhs), + _ => throw new Exception($"Unexpected operator: {op.Value}"), + }; + } + + public static BinaryNumericExpression Create(IAstNode lhs, Token op, IAstNode rhs) + { + return op.Value switch + { + "+" => new PlusExpression(lhs, rhs), + "-" => new MinusExpression(lhs, rhs), + "*" => new TimesExpression(lhs, rhs), + "/" => new DivideExpression(lhs, rhs), + "&" => new BitwiseAndExpression(lhs, rhs), + "|" => new BitwiseOrExpression(lhs, rhs), + _ => throw new Exception($"Unexpected operator: {op.Value}"), + }; + } + } + + class PlusExpression : BinaryNumericExpression + { + public PlusExpression(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected override string OperatorText => "+"; + + protected override double ComputeNumericValue(double lhs, double rhs) + { + return lhs + rhs; + } + } + + class MinusExpression : BinaryNumericExpression + { + public MinusExpression(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected override string OperatorText => "-"; + + protected override double ComputeNumericValue(double lhs, double rhs) + { + return lhs - rhs; + } + } + + class TimesExpression : BinaryNumericExpression + { + public TimesExpression(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected override string OperatorText => "*"; + + protected override double ComputeNumericValue(double lhs, double rhs) + { + return lhs * rhs; + } + } + + class DivideExpression : BinaryNumericExpression + { + public DivideExpression(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected override string OperatorText => "/"; + + protected override double ComputeNumericValue(double lhs, double rhs) + { + return lhs / rhs; + } + } + + class BitwiseOrExpression : BinaryNumericExpression + { + public BitwiseOrExpression(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected override string OperatorText => "|"; + + protected override double ComputeNumericValue(double lhs, double rhs) + { + return Convert.ToDouble(Convert.ToInt32(lhs) | Convert.ToInt32(rhs)); + } + } + + class BitwiseAndExpression : BinaryNumericExpression + { + public BitwiseAndExpression(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected override string OperatorText => "&"; + + protected override double ComputeNumericValue(double lhs, double rhs) + { + return Convert.ToDouble(Convert.ToInt32(lhs) & Convert.ToInt32(rhs)); + } + } +} diff --git a/Issue254/Issue254/BooleanLogicalExpression.cs b/Issue254/Issue254/BooleanLogicalExpression.cs new file mode 100644 index 00000000..d571ae96 --- /dev/null +++ b/Issue254/Issue254/BooleanLogicalExpression.cs @@ -0,0 +1,124 @@ +using System; +using System.Collections.Generic; +using sly.lexer; + +namespace BravoLights.Common.Ast +{ + abstract class BooleanLogicalExpression : BinaryExpression + { + protected BooleanLogicalExpression(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + + public static BooleanLogicalExpression Create(IAstNode lhs, Token token, IAstNode rhs) + { + return token.Value switch + { + "&&" or "AND" => new AndExpression(lhs, rhs), + "||" or "OR" => new OrExpression(lhs, rhs), + _ => throw new Exception($"Unexpected operator {token.Value}"), + }; + } + + public static BooleanLogicalExpression Create(IAstNode lhs, Token token, IAstNode rhs) + { + return token.TokenID switch + { + OldExpressionToken.AND => new AndExpression(lhs, rhs), + OldExpressionToken.OR => new OrExpression(lhs, rhs), + _ => throw new Exception($"Unexpected operator {token.Value}"), + }; + } + } + + class AndExpression : BooleanLogicalExpression + { + public AndExpression(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected override object ComputeValue(object lhsValue, object rhsValue) + { + if (lhsValue is Boolean lhs) + { + if (lhs == false) + { + return false; + } + } + if (rhsValue is Boolean rhs) + { + if (rhs == false) + { + return false; + } + } + if (lhsValue is Exception) + { + return lhsValue; + } + if (rhsValue is Exception) + { + return rhsValue; + } + + // Neither side is false, and neither are Exceptions + return true; + } + + protected override string OperatorText => "AND"; + } + + class OrExpression : BooleanLogicalExpression + { + public OrExpression(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected override object ComputeValue(object lhsValue, object rhsValue) + { + if (lhsValue is Boolean lhs) + { + if (lhs == true) + { + return true; + } + } + if (rhsValue is Boolean rhs) + { + if (rhs == true) + { + return true; + } + } + if (lhsValue is Exception) + { + return lhsValue; + } + if (rhsValue is Exception) + { + return rhsValue; + } + + // Neither side is true, and neither are Exceptions + return false; + } + + protected override string OperatorText => "OR"; + } + + class NotExpression : UnaryExpression + { + public NotExpression(IAstNode child) : base(child) + { + } + + protected override string OperatorText => "NOT"; + + protected override bool ComputeValue(bool child) + { + return !child; + } + } +} diff --git a/Issue254/Issue254/ComparisonExpression.cs b/Issue254/Issue254/ComparisonExpression.cs new file mode 100644 index 00000000..e5e13c61 --- /dev/null +++ b/Issue254/Issue254/ComparisonExpression.cs @@ -0,0 +1,152 @@ +using System; +using sly.lexer; + +namespace BravoLights.Common.Ast +{ + /// + /// A binary expression such as 'X < Y' or 'X == Y', which produces a boolean from two other numbers and an operator. + /// + abstract class ComparisonExpression : BinaryExpression + { + protected ComparisonExpression(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected abstract bool ComputeComparisonValue(double lhs, double rhs); + + protected override object ComputeValue(object lhsValue, object rhsValue) + { + if (lhsValue is Exception) + { + return lhsValue; + } + if (rhsValue is Exception) + { + return rhsValue; + } + var lhs = Convert.ToDouble(lhsValue); + var rhs = Convert.ToDouble(rhsValue); + return ComputeComparisonValue(lhs, rhs); + } + + public static ComparisonExpression Create(IAstNode lhs, Token token, IAstNode rhs) + { + return token.Value switch + { + "<" => new LtComparison(lhs, rhs), + "<=" => new LeqComparison(lhs, rhs), + "==" => new EqComparison(lhs, rhs), + "!=" or "<>" => new NeqComparison(lhs, rhs), + ">=" => new GeqComparison(lhs, rhs), + ">" => new GtComparison(lhs, rhs), + _ => throw new Exception($"Unexpected operator {token.Value}"), + }; + } + + public static ComparisonExpression Create(IAstNode lhs, Token token, IAstNode rhs) + { + return token.Value switch + { + "<" => new LtComparison(lhs, rhs), + "<=" => new LeqComparison(lhs, rhs), + "==" => new EqComparison(lhs, rhs), + "!=" or "<>" => new NeqComparison(lhs, rhs), + ">=" => new GeqComparison(lhs, rhs), + ">" => new GtComparison(lhs, rhs), + _ => throw new Exception($"Unexpected operator {token.Value}"), + }; + } + } + + class LtComparison : ComparisonExpression + { + public LtComparison(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected override bool ComputeComparisonValue(double lhs, double rhs) + { + return lhs < rhs; + } + protected override string OperatorText => "<"; + } + + class LeqComparison : ComparisonExpression + { + public LeqComparison(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected override bool ComputeComparisonValue(double lhs, double rhs) + { + return lhs <= rhs; + } + protected override string OperatorText => "<="; + } + + class EqComparison : ComparisonExpression + { + public EqComparison(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected override bool ComputeComparisonValue(double lhs, double rhs) + { + return lhs == rhs; + } + protected override string OperatorText => "=="; + } + + class NeqComparison : ComparisonExpression + { + public NeqComparison(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected override bool ComputeComparisonValue(double lhs, double rhs) + { + return lhs != rhs; + } + protected override string OperatorText => "!="; + } + + class GeqComparison : ComparisonExpression + { + public GeqComparison(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected override bool ComputeComparisonValue(double lhs, double rhs) + { + return lhs >= rhs; + } + protected override string OperatorText => ">="; + } + + class GtComparison : ComparisonExpression + { + public GtComparison(IAstNode lhs, IAstNode rhs) : base(lhs, rhs) + { + } + + protected override bool ComputeComparisonValue(double lhs, double rhs) + { + return lhs > rhs; + } + protected override string OperatorText => ">"; + } + + class UnaryMinusExpression : UnaryExpression + { + public UnaryMinusExpression(IAstNode child) : base(child) + { + } + + protected override string OperatorText => "-"; + + protected override double ComputeValue(double child) + { + return -child; + } + } +} \ No newline at end of file diff --git a/Issue254/Issue254/ConstantNode.cs b/Issue254/Issue254/ConstantNode.cs new file mode 100644 index 00000000..c7363540 --- /dev/null +++ b/Issue254/Issue254/ConstantNode.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; + +namespace BravoLights.Common.Ast +{ + /// + /// A node which represents a constant value. + /// + abstract class ConstantNode: IAstNode + { + protected ConstantNode(T value) + { + Value = value; + } + + public readonly T Value; + + public string ErrorText { get { return null; } } + + public IEnumerable Variables + { + get { return Array.Empty(); } + } + + public event EventHandler ValueChanged + { + add { value(this, new ValueChangedEventArgs { NewValue = Value }); } + remove { } + } + } +} diff --git a/Issue254/Issue254/ErrorNode.cs b/Issue254/Issue254/ErrorNode.cs new file mode 100644 index 00000000..54609549 --- /dev/null +++ b/Issue254/Issue254/ErrorNode.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace BravoLights.Common.Ast +{ + public class ErrorNode : IAstNode + { + public string ErrorText { get; set; } + + public IEnumerable Variables { + get { return Array.Empty(); } + } + + event EventHandler IAstNode.ValueChanged + { + add { } + remove { } + } + + public override string ToString() + { + return ErrorText; + } + } +} diff --git a/Issue254/Issue254/ExpressionParser.cs b/Issue254/Issue254/ExpressionParser.cs new file mode 100644 index 00000000..070b8ac3 --- /dev/null +++ b/Issue254/Issue254/ExpressionParser.cs @@ -0,0 +1,114 @@ +using System; +using System.Globalization; +using BravoLights.Common.Ast; +using sly.lexer; +using sly.parser; +using sly.parser.generator; + +namespace BravoLights.Common +{ + #pragma warning disable CA1822 // Mark members as static + public abstract class ExpressionParserBase + { + [Operand] + [Production("logical_literal: OFF")] + [Production("logical_literal: ON")] + public IAstNode LiteralBool(Token token) + { + return new LiteralBoolNode(token.Value == "ON"); + } + + [Operand] + [Production("primary: HEX_NUMBER")] + public IAstNode NumericExpressionFromLiteralNumber(Token offsetToken) + { + var text = offsetToken.Value; + var num = text[2..]; + var value = int.Parse(num, NumberStyles.HexNumber); + return new LiteralNumericNode(value); + } + + [Operand] + [Production("primary: DECIMAL_NUMBER")] + public IAstNode NumericExpressionFromDecimalNumber(Token offsetToken) + { + var text = offsetToken.Value; + var value = double.Parse(text, CultureInfo.InvariantCulture); + return new LiteralNumericNode(value); + } + + [Operation((int)ExpressionToken.PLUS,Affix.InFix, Associativity.Left, 14)] + [Operation((int)ExpressionToken.MINUS, Affix.InFix,Associativity.Left, 14)] + [Operation((int)ExpressionToken.TIMES, Affix.InFix, Associativity.Left, 15)] + [Operation((int)ExpressionToken.DIVIDE, Affix.InFix, Associativity.Left, 15)] + [Operation((int)ExpressionToken.BITWISE_AND, Affix.InFix, Associativity.Left, 10)] + [Operation((int)ExpressionToken.BITWISE_OR, Affix.InFix, Associativity.Left, 8)] + public IAstNode NumberExpression(IAstNode lhs, Token token, IAstNode rhs) + { + return BinaryNumericExpression.Create(lhs, token, rhs); + } + + [Operation((int)ExpressionToken.LOGICAL_AND, Affix.InFix, Associativity.Left, 7)] + [Operation((int)ExpressionToken.LOGICAL_OR, Affix.InFix, Associativity.Left, 6)] + public IAstNode LogicalExpression(IAstNode lhs, Token token, IAstNode rhs) + { + return BooleanLogicalExpression.Create(lhs, token, rhs); + } + + [Operation((int)ExpressionToken.MINUS, Affix.PreFix, Associativity.Right, 17)] + public IAstNode NumericExpression(Token _, IAstNode child) + { + return new UnaryMinusExpression(child); + } + + // We want NOT to to bind tighter than AND/OR but looser than numeric comparison operations + [Operation((int)ExpressionToken.NOT, Affix.PreFix, Associativity.Right, 11)] + public IAstNode LogicalExpression(Token _, IAstNode child) + { + return new NotExpression(child); + } + + + [Operation((int)ExpressionToken.COMPARISON, Affix.InFix,Associativity.Left, 12)] + public IAstNode Comparison(IAstNode lhs, Token token, IAstNode rhs) + { + return ComparisonExpression.Create(lhs, token, rhs); + } + + private static Parser cachedParser; + + public static IAstNode Parse(string expression) where T : ExpressionParserBase, new() + { + if (cachedParser == null) + { + var startingRule = $"{typeof(T).Name}_expressions"; + var parserInstance = new T(); + var builder = new ParserBuilder(); + var parser = builder.BuildParser(parserInstance, ParserType.EBNF_LL_RECURSIVE_DESCENT, startingRule); + if (parser.IsError) + { + throw new Exception($"Could not create parser. BNF is not valid. {parser.Errors[0]}"); + } + cachedParser = parser.Result; + } + + // To simplify an ambiguous lexer which would result from having both && and & as well as || and |, we'll + // simplify the incoming expression by turning && into AND and || into OR: + expression = expression.Replace("&&", " AND "); + expression = expression.Replace("||", " OR "); + + var parseResult = cachedParser.Parse(expression); + if (parseResult.IsError) + { + return new ErrorNode + { + ErrorText = parseResult.Errors[0].ErrorMessage + }; + } + + return parseResult.Result; + } + } + #pragma warning restore CA1822 // Mark members as static +} + diff --git a/Issue254/Issue254/ExpressionToken.cs b/Issue254/Issue254/ExpressionToken.cs new file mode 100644 index 00000000..ac2c9560 --- /dev/null +++ b/Issue254/Issue254/ExpressionToken.cs @@ -0,0 +1,128 @@ +using sly.lexer; + +namespace BravoLights.Common.Ast +{ + public enum ExpressionToken + { + [Lexeme("L:[A-Za-z0-9_]+")] + LVAR = 50, + + [Lexeme("A:[:A-Za-z0-9 ]+,\\s*([A-Za-z0-9 ]+)")] + SIMVAR = 52, + + // [Lexeme("\\[[A-Z_0-9 ]+:[A-Z_0-9 ]+\\]")] + [Lexeme("\\[[A-Za-z_0-9 ]+:[A-Za-z_0-9 ]+\\]")] + DCS_VAR = 53, + + [Lexeme("OFF")] + OFF = 0, + + [Lexeme("ON")] + ON = 1, + + // Hex/decimal prefix? + [Lexeme("0[xX][0-9a-fA-F]+")] + HEX_NUMBER = 2, + + [Lexeme("[0-9]+(\\.[0-9]+)?")] + DECIMAL_NUMBER = 3, + + [Lexeme("\\+")] + PLUS = 4, + + [Lexeme("-")] + MINUS = 5, + + [Lexeme("\\*")] + TIMES = 6, + + [Lexeme("/")] + DIVIDE = 7, + + [Lexeme("\\|")] + BITWISE_OR = 8, + + [Lexeme("&")] + BITWISE_AND = 9, + + [Lexeme("[ \\t]+", isSkippable: true)] + WHITESPACE = 20, + + [Lexeme("OR")] + LOGICAL_OR = 10, + [Lexeme("AND")] + LOGICAL_AND = 11, + + [Lexeme("NOT")] + NOT = 12, + + [Lexeme("(<=?)|(==)|(!=)|(>=?)")] + COMPARISON = 13, + + [Lexeme("\\(")] + LPAREN = 30, + + [Lexeme("\\)")] + RPAREN = 31, + + } + + + public enum OldExpressionToken + { + [Lexeme("L:[A-Za-z0-9_]+")] + LVAR = 50, + + [Lexeme("A:[:A-Za-z0-9 ]+,\\s*([A-Za-z0-9 ]+)")] + SIMVAR = 52, + + // [Lexeme("\\[[A-Z_0-9 ]+:[A-Z_0-9 ]+\\]")] + [Lexeme("\\[[A-Za-z_0-9 ]+:[A-Za-z_0-9 ]+\\]")] + DCS_VAR = 53, + + [Lexeme("OFF")] + OFF = 0, + + [Lexeme("ON")] + ON = 1, + + // Hex/decimal prefix? + [Lexeme("0[xX][0-9a-fA-F]+")] + HEX_NUMBER = 2, + + [Lexeme("[0-9]+(\\.[0-9]+)?")] + DECIMAL_NUMBER = 3, + + [Lexeme("\\+")] + PLUS = 4, + + [Lexeme("-")] + MINUS = 5, + + [Lexeme("\\*")] + TIMES = 6, + + [Lexeme("/")] + DIVIDE = 7, + + [Lexeme("[ \\t]+", isSkippable: true)] + WHITESPACE = 20, + + [Lexeme("(\\|\\|)|(OR)")] + OR = 10, + [Lexeme("(&&)|(AND)")] + AND = 11, + + [Lexeme("NOT")] + NOT = 12, + + [Lexeme("(<=?)|(==)|(!=)|(>=?)")] + COMPARISON = 13, + + [Lexeme("\\(")] + LPAREN = 30, + + [Lexeme("\\)")] + RPAREN = 31, + } +} \ No newline at end of file diff --git a/Issue254/Issue254/IAstNode.cs b/Issue254/Issue254/IAstNode.cs new file mode 100644 index 00000000..bdb3ac96 --- /dev/null +++ b/Issue254/Issue254/IAstNode.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; + +namespace BravoLights.Common.Ast +{ + /// + /// Represents a node in a parsed expression tree. + /// + public interface IAstNode + { + string ErrorText { get; } + + event EventHandler ValueChanged; + + IEnumerable Variables { get; } + } +} diff --git a/Issue254/Issue254/IConnection.cs b/Issue254/Issue254/IConnection.cs new file mode 100644 index 00000000..e070a224 --- /dev/null +++ b/Issue254/Issue254/IConnection.cs @@ -0,0 +1,11 @@ +using System; +using BravoLights.Common; + +namespace BravoLights.Common +{ + public interface IConnection + { + void AddListener(IVariable variable, EventHandler handler); + void RemoveListener(IVariable variable, EventHandler handler); + } +} diff --git a/Issue254/Issue254/IVariable.cs b/Issue254/Issue254/IVariable.cs new file mode 100644 index 00000000..3d6778d0 --- /dev/null +++ b/Issue254/Issue254/IVariable.cs @@ -0,0 +1,13 @@ +using System; +using BravoLights.Common.Ast; + +namespace BravoLights.Common +{ + public interface IVariable : IAstNode, IEquatable + { + /// + /// Gets the identifier for this variable. For an lvar this would be the simple name; for a sim var, it would be the name plus units. + /// + string Identifier { get; } + } +} diff --git a/Issue254/Issue254/IWASMChannel.cs b/Issue254/Issue254/IWASMChannel.cs new file mode 100644 index 00000000..a0f45b1a --- /dev/null +++ b/Issue254/Issue254/IWASMChannel.cs @@ -0,0 +1,14 @@ +using System; + +namespace BravoLights.Connections +{ + public interface IWASMChannel + { + void ClearSubscriptions(); + void Subscribe(short id); + void Unsubscribe(short id); + + SimState SimState { get; } + event EventHandler OnSimStateChanged; + } +} diff --git a/Issue254/Issue254/LVarManager.cs b/Issue254/Issue254/LVarManager.cs new file mode 100644 index 00000000..0927da28 --- /dev/null +++ b/Issue254/Issue254/LVarManager.cs @@ -0,0 +1,226 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using BravoLights.Ast; +using BravoLights.Common; + +namespace BravoLights.Connections +{ + public interface ILVarData + { + short ValueCount { get; } + + short[] Ids { get; } + + double[] Values { get; } + } + + public class LVarManager : IConnection + { + public readonly static LVarManager Connection = new(); + + private readonly Dictionary lvarIds = new(); + private readonly Dictionary lvarNames = new(); + private readonly Dictionary lvarValues = new(); + + private readonly Dictionary> handlers = new(); + + public void AddListener(IVariable variable, EventHandler handler) + { + var lvar = (LvarExpression)variable; + var name = lvar.LVarName; + + lock (this) + { + handlers.TryGetValue(name, out var existingHandlersForDefinition); + var newListeners = (EventHandler)Delegate.Combine(existingHandlersForDefinition, handler); + handlers[name] = newListeners; + + if (existingHandlersForDefinition == null) + { + // First subscription for this variable + if (lvarIds.TryGetValue(name, out var id)) + { + wasmChannel.Subscribe(id); + } + } + + SendLastValue(name, handler); + } + } + + public void RemoveListener(IVariable variable, EventHandler handler) + { + var lvar = (LvarExpression)variable; + var name = lvar.LVarName; + + lock (this) + { + handlers.TryGetValue(name, out var existingHandlersForDefinition); + var newListeners = (EventHandler)Delegate.Remove(existingHandlersForDefinition, handler); + + if (newListeners == null) + { + handlers.Remove(name); + // No more subscriptions for this variable + if (lvarIds.TryGetValue(name, out var id)) + { + wasmChannel.Unsubscribe(id); + } + } + else + { + handlers[name] = newListeners; + } + + SendLastValue(name, handler); + } + } + + private void SendLastValue(string name, EventHandler handler) + { + if (DisableLVars) + { + handler(this, new ValueChangedEventArgs { NewValue = new Exception("The LVars module is not installed") }); + return; + } + + if (wasmChannel.SimState == SimState.SimExited) + { + VariableHandlerUtils.SendNoConnectionError(this, handler); + return; + } + + if (lvarValues.TryGetValue(name, out var lastValue)) + { + handler(this, new ValueChangedEventArgs { NewValue = lastValue }); + return; + } + + // We have no value for this lvar. Is it because the LVar doesn't exist, or just + // because it's not being used for _this_ aircraft? + if (lvarIds.ContainsKey(name)) + { + VariableHandlerUtils.SendNoValueError(this, handler); + } + else + { + SendNoSuchLVarError(handler); + } + } + + private IWASMChannel wasmChannel; + + /// + /// Gets or sets a value that disables LVar support. This is typically set if we know that the LVar module is missing or the wrong version. + /// + public bool DisableLVars { get; internal set; } + + public void SetWASMChannel(IWASMChannel wasmChannel) + { + this.wasmChannel = wasmChannel; + wasmChannel.OnSimStateChanged += WasmChannel_OnSimStateChanged; + } + + private void WasmChannel_OnSimStateChanged(object sender, SimStateEventArgs e) + { + if (e.SimState == SimState.SimExited) + { + this.ResetKnownLVars(); + } + } + + private void SendNoSuchLVarError(EventHandler handler) + { + handler(this, new ValueChangedEventArgs { NewValue = new Exception("LVar does not exist yet; this aircraft may not support it") }); + } + + private void ResetKnownLVars() + { + lvarIds.Clear(); + lvarNames.Clear(); + lvarValues.Clear(); + + SendAllValues(); + } + + private void SendAllValues() + { + lock (this) + { + foreach (var kvp in this.handlers) + { + var lvarName = kvp.Key; + var handler = kvp.Value; + SendLastValue(lvarName, handler); + } + } + } + + /// + /// Informs the LVar manager that the simulator list of LVars has changed. + /// + /// + /// The list _usually_ grows but if the simulator is restarted without restarting BBL, it will shrink. + /// + public void UpdateLVarList(List newLVars) + { + // During one run of the simulator, lvar ids will not disappear, but + // between runs of the simulator, all bets are off. + // So it's just safest for us to reset and resubscribe whenever lvars change. + + lock (this) + { + wasmChannel.ClearSubscriptions(); + + var oldCount = lvarIds.Count; + lvarIds.Clear(); + lvarNames.Clear(); + + Debug.WriteLine($"Incoming lvars: {newLVars.Count}"); + for (short id = 0; id < newLVars.Count; id++) + { + var name = newLVars[id]; + + if (id >= oldCount) + { + Debug.WriteLine($"Received new lvar {name}"); + } + + if (!lvarIds.ContainsKey(name)) + { + lvarIds[name] = id; + lvarNames[id] = name; + + if (handlers.ContainsKey(name)) + { + wasmChannel.Subscribe(id); + } + } + } + + SendAllValues(); + } + } + + public void UpdateLVarValues(ILVarData data) + { + lock (this) + { + for (var i = 0; i < data.ValueCount; i++) + { + var id = data.Ids[i]; + var value = data.Values[i]; + var name = lvarNames[id]; + + lvarValues[name] = value; + + if (handlers.TryGetValue(name, out var handler)) + { + SendLastValue(name, handler); + } + } + } + } + } +} diff --git a/Issue254/Issue254/LightExpression.cs b/Issue254/Issue254/LightExpression.cs new file mode 100644 index 00000000..dc681de7 --- /dev/null +++ b/Issue254/Issue254/LightExpression.cs @@ -0,0 +1,39 @@ +using System; +using BravoLights.Common.Ast; + +namespace BravoLights.Common +{ + public class LightExpression + { + public string LightName; + public IAstNode Expression; + + private EventHandler handlers; + + public event EventHandler ValueChanged + { + add + { + var send = handlers == null; + handlers += value; + if (send) + { + Expression.ValueChanged += Expression_ValueChanged; + } + } + remove + { + handlers -= value; + if (handlers == null) + { + Expression.ValueChanged -= Expression_ValueChanged; + } + } + } + + private void Expression_ValueChanged(object sender, ValueChangedEventArgs e) + { + handlers?.Invoke(this, e); + } + } +} diff --git a/Issue254/Issue254/LiteralBoolNode.cs b/Issue254/Issue254/LiteralBoolNode.cs new file mode 100644 index 00000000..f56e0cf4 --- /dev/null +++ b/Issue254/Issue254/LiteralBoolNode.cs @@ -0,0 +1,17 @@ +namespace BravoLights.Common.Ast +{ + /// + /// A node which represents a literal bool. + /// + class LiteralBoolNode : ConstantNode + { + public LiteralBoolNode(bool value) : base(value) + { + } + + public override string ToString() + { + return Value ? "ON" : "OFF"; + } + } +} diff --git a/Issue254/Issue254/LiteralNumericNode.cs b/Issue254/Issue254/LiteralNumericNode.cs new file mode 100644 index 00000000..a3b7a69d --- /dev/null +++ b/Issue254/Issue254/LiteralNumericNode.cs @@ -0,0 +1,19 @@ +using System.Globalization; + +namespace BravoLights.Common.Ast +{ + /// + /// A node which represents a literal double number. + /// + class LiteralNumericNode : ConstantNode + { + public LiteralNumericNode(double value) : base(value) + { + } + + public override string ToString() + { + return Value.ToString(CultureInfo.InvariantCulture); + } + } +} diff --git a/Issue254/Issue254/LvarExpression.cs b/Issue254/Issue254/LvarExpression.cs new file mode 100644 index 00000000..1240de11 --- /dev/null +++ b/Issue254/Issue254/LvarExpression.cs @@ -0,0 +1,22 @@ +using BravoLights.Common; +using BravoLights.Common.Ast; +using BravoLights.Connections; + +namespace BravoLights.Ast +{ + class LvarExpression : VariableBase, IAstNode + { + public string LVarName { get; set; } + + protected override IConnection Connection => LVarManager.Connection; + + public override string Identifier => $"L:{LVarName}"; + + public override string ToString() + { + return Identifier; + } + } + + +} diff --git a/Issue254/Issue254/MSFSExpressionParser.cs b/Issue254/Issue254/MSFSExpressionParser.cs new file mode 100644 index 00000000..b26fdaa8 --- /dev/null +++ b/Issue254/Issue254/MSFSExpressionParser.cs @@ -0,0 +1,47 @@ +using BravoLights.Common; +using BravoLights.Common.Ast; +using sly.lexer; +using sly.parser.generator; + +namespace BravoLights.Ast +{ +#pragma warning disable CA1822 // Mark members as static + public class MSFSExpressionParser : ExpressionParserBase + { + [Operand] + [Production("numeric_literal: LVAR")] + public IAstNode Lvar(Token token) + { + var text = token.Value[2..]; + + return new LvarExpression + { + LVarName = text + }; + } + + [Operand] + [Production("numeric_literal: SIMVAR")] + public IAstNode SimVarExpression(Token simvarToken) + { + var text = simvarToken.Value[2..]; + var bits = text.Split(","); + var varName = bits[0]; + var type = bits[1].Trim(); + return new SimVarExpression(varName, type); + } + + [Operand] + [Production("group : LPAREN MSFSExpressionParser_expressions RPAREN")] + public IAstNode Group(Token _1, IAstNode child, Token _2) + { + return child; + } + + public static IAstNode Parse(string expression) + { + return Parse(expression); + } + } +#pragma warning restore CA1822 // Mark members as static +} \ No newline at end of file diff --git a/Issue254/Issue254/NameAndUnits.cs b/Issue254/Issue254/NameAndUnits.cs new file mode 100644 index 00000000..d2c9f541 --- /dev/null +++ b/Issue254/Issue254/NameAndUnits.cs @@ -0,0 +1,13 @@ +namespace ParserTests.Issue254 +{ + class NameAndUnits + { + public string Name; + public string Units; + + public override string ToString() + { + return $"{Name}, {Units}"; + } + } +} \ No newline at end of file diff --git a/Issue254/Issue254/OldExpressionParser.cs b/Issue254/Issue254/OldExpressionParser.cs new file mode 100644 index 00000000..ab2df4d1 --- /dev/null +++ b/Issue254/Issue254/OldExpressionParser.cs @@ -0,0 +1,123 @@ +using System; +using System.Globalization; +using BravoLights.Common; +using BravoLights.Common.Ast; +using sly.lexer; +using sly.parser; +using sly.parser.generator; + +namespace Issue254.Issue254 +{ + public class OldExpressionParser + { + [Production("logicalPrimary: OFF")] + [Production("logicalPrimary: ON")] + public IAstNode LiteralBool(Token token) + { + return new LiteralBoolNode(token.Value == "ON"); + } + + [Production("primary: HEX_NUMBER")] + public IAstNode NumericExpressionFromLiteralNumber(Token offsetToken) + { + var text = offsetToken.Value; + var num = text[2..]; + + // TODO: error handling + var value = int.Parse(num, NumberStyles.HexNumber); + return new LiteralNumericNode(value); + } + + [Production("primary: DECIMAL_NUMBER")] + public IAstNode NumericExpressionFromDecimalNumber(Token offsetToken) + { + var text = offsetToken.Value; + + // TODO: error handling + var value = double.Parse(text, CultureInfo.InvariantCulture); + return new LiteralNumericNode(value); + } + + [Production("numericExpression: term PLUS numericExpression")] + [Production("numericExpression: term MINUS numericExpression")] + [Production("term: factor TIMES term")] + [Production("term: factor DIVIDE term")] + public IAstNode NumberExpression(IAstNode lhs, Token token, IAstNode rhs) + { + return BinaryNumericExpression.Create(lhs, token, rhs); + } + + [Production("numericExpression: term")] + [Production("term: factor")] + [Production("factor: primary")] + [Production("logicalPrimary: comparison")] + [Production("logicalTerm: logicalPrimary")] + [Production("logicalExpression: logicalTerm")] + public IAstNode Direct(IAstNode node) + + { + return node; + } + + [Production("logicalExpression: logicalTerm OR logicalExpression")] + [Production("logicalTerm: logicalPrimary AND logicalTerm")] + public IAstNode LogicalJunction(IAstNode lhs, Token token, IAstNode rhs) + { + return BooleanLogicalExpression.Create(lhs, token, rhs); + } + + [Production("primary: MINUS [d] primary")] + public IAstNode UnaryMinus(IAstNode child) + { + return new UnaryMinusExpression(child); + } + + [Production("logicalPrimary: NOT [d] logicalPrimary")] + public IAstNode LogicalUnary(IAstNode child) + { + return new NotExpression(child); + } + + [Production("comparison: numericExpression COMPARISON numericExpression")] + public IAstNode Comparison(IAstNode lhs, Token token, IAstNode rhs) + { + return ComparisonExpression.Create(lhs, token, rhs); + } + + + [Production("primary: LPAREN [d] numericExpression RPAREN [d]")] + [Production("logicalPrimary: LPAREN [d] logicalExpression RPAREN [d]")] + public IAstNode Parens(IAstNode exp) + { + return exp; + } + + private static Parser cachedParser; + + public static IAstNode Parse(string expression) where T : ExpressionParserBase, new() + { + if (cachedParser == null) + { + var parserInstance = new T(); + var builder = new ParserBuilder(); + var parser = builder.BuildParser(parserInstance, ParserType.EBNF_LL_RECURSIVE_DESCENT, "logicalExpression"); + if (parser.IsError) + { + throw new Exception($"Could not create parser. BNF is not valid. {parser.Errors[0]}"); + } + cachedParser = parser.Result; + } + + var parseResult = cachedParser.Parse(expression); + if (parseResult.IsError) + { + return new ErrorNode + { + ErrorText = parseResult.Errors[0].ErrorMessage + }; + } + + return parseResult.Result; + } + } +} \ No newline at end of file diff --git a/Issue254/Issue254/OldMSFSExpressionParser.cs b/Issue254/Issue254/OldMSFSExpressionParser.cs new file mode 100644 index 00000000..d64799f5 --- /dev/null +++ b/Issue254/Issue254/OldMSFSExpressionParser.cs @@ -0,0 +1,39 @@ +using BravoLights.Common; +using BravoLights.Common.Ast; +using Issue254.Issue254; +using sly.lexer; +using sly.parser.generator; + +namespace BravoLights.Ast +{ +#pragma warning disable CA1822 // Mark members as static + public class OldMSFSExpressionParser : OldExpressionParser + { + [Production("primary: LVAR")] + public IAstNode Lvar(Token token) + { + var text = token.Value[2..]; + + return new LvarExpression + { + LVarName = text + }; + } + + [Production("primary: SIMVAR")] + public IAstNode SimVarExpression(Token simvarToken) + { + var text = simvarToken.Value[2..]; + var bits = text.Split(","); + var varName = bits[0]; + var type = bits[1].Trim(); + return new SimVarExpression(varName, type); + } + + public static IAstNode Parse(string expression) + { + return Parse(expression); + } + } +#pragma warning restore CA1822 // Mark members as static +} \ No newline at end of file diff --git a/Issue254/Issue254/SimConnectConnection.cs b/Issue254/Issue254/SimConnectConnection.cs new file mode 100644 index 00000000..9a660a6a --- /dev/null +++ b/Issue254/Issue254/SimConnectConnection.cs @@ -0,0 +1,378 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; +using System.Runtime.InteropServices; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading; +using BravoLights.Ast; +using BravoLights.Common; + +namespace BravoLights.Connections +{ + enum DefineId : uint + { + WASMRequestResponse = 1, + WASMLVars = 2, + + // The start of dynamically-allocated definitions for simulator variables + DynamicStart = 100 + } + + enum RequestId : uint + { + SimState = 1, + WASMResponse = 2, + WASMLVars = 3, + AircraftLoaded = 4, + FlightLoaded = 5, + + // The start of dynamically-allocated request ids for simulator variables + DynamicStart = DefineId.DynamicStart + } + + enum WASMReaderState + { + Neutral, + ReadingLVars + } + + class SimConnectConnection : IConnection, IWASMChannel + { + // Names of the client data areas established by the WASM module + private const string CDA_NAME_SIMVAR = "BetterBravoLights.LVars"; + private const string CDA_NAME_REQUEST = "BetterBravoLights.Request"; + private const string CDA_NAME_RESPONSE = "BetterBravoLights.Response"; + + // Ids for the client data areas + private enum ClientDataId + { + LVars = 0, + Request = 1, + Response = 2 + } + + private const string RESPONSE_LVAR_START = "!LVARS-START"; + private const string RESPONSE_LVAR_END = "!LVARS-END"; + + // Size of the request and response CDAs + private const int RequestResponseSize = 256; + + [StructLayout(LayoutKind.Sequential)] + public struct RequestString + { + [MarshalAs(UnmanagedType.ByValArray, SizeConst = RequestResponseSize)] + public byte[] data; + + public RequestString(string str) + { + var bytes = Encoding.ASCII.GetBytes(str); + var ret = new byte[RequestResponseSize]; + Array.Copy(bytes, ret, bytes.Length); + data = ret; + } + } + + public struct ResponseString + { + [MarshalAs(UnmanagedType.ByValTStr, SizeConst = RequestResponseSize)] + public string Data; + } + + // This MUST match the value in the WASM + private const int MaxDataValuesInPacket = 10; + + public struct LVarData : ILVarData + { + [MarshalAs(UnmanagedType.U2)] + public short ValueCount; + + [MarshalAs(UnmanagedType.ByValArray, SizeConst = MaxDataValuesInPacket, ArraySubType = UnmanagedType.U2)] + public short[] Ids; + + [MarshalAs(UnmanagedType.ByValArray, SizeConst = MaxDataValuesInPacket, ArraySubType = UnmanagedType.R8)] + public double[] Values; + + short ILVarData.ValueCount => ValueCount; + + short[] ILVarData.Ids => Ids; + + double[] ILVarData.Values => Values; + } + + private readonly uint LVarDataSize = (uint)Marshal.SizeOf(); + + public static SimConnectConnection Connection = new(); + + private Timer reconnectTimer = null; + private SimState simState = SimState.SimExited; + + private SimConnectConnection() + { + LVarManager.Connection.SetWASMChannel(this); + } + + public void Start() + { + ConnectNow(); + } + + private uint nextVariableId = (uint)DefineId.DynamicStart; + + private readonly Dictionary idToName = new(); + private readonly Dictionary nameToId = new(new NameAndUnitsComparer()); + private readonly Dictionary> variableHandlers = + new(new NameAndUnitsComparer()); + private readonly Dictionary lastReportedValue = new(new NameAndUnitsComparer()); + + private void SubscribeToSimConnect(NameAndUnits nameAndUnits) + { + + } + + private void UnsubscribeFromSimConnect(SimVarExpression simvar) + { + } + + public void AddListener(IVariable variable, EventHandler handler) + { + } + + private void SendLastValue(NameAndUnits variable, EventHandler handler) + { + } + + + public void RemoveListener(IVariable variable, EventHandler handler) + { + } + + private const int WM_USER_SIMCONNECT = 0x0402; + + + public void ReceiveMessage() + { + } + + private void ReconnectTimerElapsed(object sender) + { + } + + private void ConnectNow() + { + + } + + private void ConfigureWASMComms() + { + + } + + private void RequestAircraftAndFlightStatus() + { + } + + + + private Timer periodicLVarTimer = null; + + private void PeriodicLVarTimerElapsed(object state) + { + Debug.WriteLine("PeriodicLVarTimerElapsed"); + ScheduleLVarCheck(); + } + + private void RaiseSimStateChanged(SimState state) + { + } + + private static readonly Regex AircraftPathRegex = new("Airplanes\\\\(.*)\\\\"); + + private void HandleAircraftChanged(string aircraftPath) + { + if (OnAircraftLoaded != null) + { + // aircraftPath is something like + // SimObjects\\Airplanes\\Asobo_C172SP_Classic\\aircraft.CFG + // We just want 'Asobo_C172SP_Classic' + var match = AircraftPathRegex.Match(aircraftPath); + if (match.Success) + { + var aircraftName = match.Groups[1].Value; + Debug.WriteLine($"HandleAircraftChanged {aircraftName}. Checking LVars"); + + // Note: LVars are not registered by an aircraft until a little while _after_ it has loaded. + // So the first time we get an AircraftChanged event, the lvars will not be present. + // However, we request aircraft + flight information on each SimStart/SimStop, which should catch them. + ScheduleLVarCheck(); + OnAircraftLoaded(this, new AircraftEventArgs { Aircraft = aircraftName }); + } + } + } + + private void HandleFlightLoaded(string flightPath) + { + // Examples: + // flights\other\MainMenu.FLT + // C:\Users\royston\AppData\Local\Packages\Microsoft.FlightSimulator_8wekyb3d8bbwe\LocalState\MISSIONS\ACTIVITIES\ASOBO-BUSHTRIP-FINLAND_SAVE\ASOBO-BUSHTRIP-FINLAND_SAVE\ASOBO-BUSHTRIP-FINLAND_SAVE.FLT + // C:\Users\royston\AppData\Local\Packages\Microsoft.FlightSimulator_8wekyb3d8bbwe\LocalState\MISSIONS\ACTIVITIES\ASOBO-BUSHTRIP-FINLAND_SAVE\AUTOSAVE\\BCKP\\ASOBO-BUSHTRIP-FINLAND_SAVE.FLT + // missions\Asobo\Tutorials\VFRNavigation\LandmarkNavigation\03_Training_LandmarkNavigation.FLT + + InMainMenu = flightPath.EndsWith("flights\\other\\mainmenu.flt", StringComparison.InvariantCultureIgnoreCase); + Debug.WriteLine($"HandleFlightLoaded. {flightPath}. Checking LVars"); + ScheduleLVarCheck(); + } + + /// + /// Called when we receive some event that suggests that the simulator LVars may have changed, e.g. aircraft/flight change/simstart/simstop + /// + private void ScheduleLVarCheck() + { +#if DEBUG + Debug.WriteLine("ScheduleLVarCheck"); +#endif + + if (lvarCheckTimer == null) + { + lvarCheckTimer = new(LVarCheckTimerElapsed, null, TimeSpan.FromSeconds(2), Timeout.InfiniteTimeSpan); + } + } + + private Timer lvarCheckTimer = null; + + /// + /// Called every ~30s or so, just to check if new lvars have appeared. Some aircraft take a while to register theirs. + /// + private void LVarCheckTimerElapsed(object state) + { +#if DEBUG + Debug.WriteLine("LVarCheckTimerElapsed"); +#endif + lvarCheckTimer.Dispose(); + lvarCheckTimer = null; + + CheckForNewLVars(); + } + + private bool hasEverCheckedForLVars = false; + + /// + /// Asks the WASM module to check for new LVars. + /// + private void CheckForNewLVars() + { + + } + + public event EventHandler OnInMainMenuChanged; + + private bool inMainMenu = true; + public bool InMainMenu + { + get { + return inMainMenu; + } + private set + { + if (inMainMenu == value) + { + return; + } + + CheckForNewLVars(); + inMainMenu = value; + OnInMainMenuChanged?.Invoke(this, EventArgs.Empty); + } + } + + + + private void RegisterCurrentVariables() + { + foreach (var nau in this.variableHandlers.Keys) + { + SubscribeToSimConnect(nau); + } + } + + private List incomingLVars = new(); + + private WASMReaderState readerState = WASMReaderState.Neutral; + + + + public static IntPtr HWnd { get; set; } + + public event EventHandler OnAircraftLoaded; + public void ClearSubscriptions() + { + throw new NotImplementedException(); + } + + public void Subscribe(short id) + { + throw new NotImplementedException(); + } + + public void Unsubscribe(short id) + { + throw new NotImplementedException(); + } + + public SimState SimState + { + get { return simState; } + } + public event EventHandler OnSimStateChanged; + + } + + public enum SimState + { + SimRunning, + SimStopped, + SimExited + } + + class NameAndUnits + { + public string Name; + public string Units; + + public override string ToString() + { + return $"{Name}, {Units}"; + } + } + + class NameAndUnitsComparer : IEqualityComparer + { + public bool Equals(NameAndUnits x, NameAndUnits y) + { + return x.Name == y.Name && x.Units == y.Units; + } + + public int GetHashCode([DisallowNull] NameAndUnits obj) + { + return obj.Name.GetHashCode(); + } + } + + public class SimStateEventArgs: EventArgs + { + public SimState SimState; + } + + class AircraftEventArgs : EventArgs + { + public string Aircraft; + } + + [StructLayout(LayoutKind.Explicit, CharSet = CharSet.Ansi, Pack = 1)] + struct ContainerStruct + { + [FieldOffset(0)] + public double doubleValue; + } +} diff --git a/Issue254/Issue254/SimVarExpression.cs b/Issue254/Issue254/SimVarExpression.cs new file mode 100644 index 00000000..77cbe1ec --- /dev/null +++ b/Issue254/Issue254/SimVarExpression.cs @@ -0,0 +1,25 @@ +using BravoLights.Common; +using BravoLights.Common.Ast; +using BravoLights.Connections; + +namespace BravoLights.Ast +{ + class SimVarExpression : VariableBase, IAstNode + { + public readonly NameAndUnits NameAndUnits; + + public SimVarExpression(string simVarName, string units) + { + NameAndUnits = new NameAndUnits { Name = simVarName, Units = units }; + } + + public override string ToString() + { + return Identifier; + } + + protected override IConnection Connection => SimConnectConnection.Connection; + + public override string Identifier => $"A:{this.NameAndUnits.Name}, {this.NameAndUnits.Units}"; + } +} diff --git a/Issue254/Issue254/UnaryExpression.cs b/Issue254/Issue254/UnaryExpression.cs new file mode 100644 index 00000000..5e00aff5 --- /dev/null +++ b/Issue254/Issue254/UnaryExpression.cs @@ -0,0 +1,96 @@ +using System; +using System.Collections.Generic; + +namespace BravoLights.Common.Ast +{ + abstract class UnaryExpression : IAstNode + { + private readonly IAstNode Child; + + private object lastChildValue; + private object lastReportedValue; + + protected UnaryExpression(IAstNode child) + { + Child = child; + } + + public string ErrorText => null; + + public IEnumerable Variables + { + get { return Child.Variables; } + } + + protected abstract string OperatorText { get; } + protected abstract TOutput ComputeValue(TChildren child); + + private void HandleChildValueChanged(object sender, ValueChangedEventArgs e) + { + lastChildValue = e.NewValue; + + Recompute(); + } + + private void Recompute() + { + if (lastChildValue == null) + { + return; + } + + object newValue; + if (lastChildValue is Exception) + { + newValue = lastChildValue; + } + else + { + var child = (TChildren)Convert.ChangeType(lastChildValue, typeof(TChildren)); + newValue = ComputeValue(child); + } + + if (lastReportedValue == null || !lastReportedValue.Equals(newValue)) // N.B. We must unbox before doing the comparison otherwise we'll be comparing boxed pointers + { + lastReportedValue = newValue; + + listeners?.Invoke(this, new ValueChangedEventArgs { NewValue = newValue }); + } + } + + private EventHandler listeners; + + public event EventHandler ValueChanged + { + add + { + var subscribe = listeners == null; + // It's important that we add the listener before subscribing to children + // because the subscription may fire immediately + listeners += value; + if (subscribe) + { + Child.ValueChanged += HandleChildValueChanged; + } + if (lastReportedValue != null) + { + // New subscriber and we already have a valid computed value. Ship it. + value(this, new ValueChangedEventArgs { NewValue = lastReportedValue }); + } + } + remove + { + listeners -= value; + if (listeners == null) + { + Child.ValueChanged -= HandleChildValueChanged; + } + } + } + + public override string ToString() + { + return $"({OperatorText} {Child})"; + } + } +} diff --git a/Issue254/Issue254/ValueChangedEventArgs.cs b/Issue254/Issue254/ValueChangedEventArgs.cs new file mode 100644 index 00000000..62782a4c --- /dev/null +++ b/Issue254/Issue254/ValueChangedEventArgs.cs @@ -0,0 +1,9 @@ +using System; + +namespace BravoLights.Common +{ + public class ValueChangedEventArgs : EventArgs + { + public object NewValue; + } +} diff --git a/Issue254/Issue254/VariableBase.cs b/Issue254/Issue254/VariableBase.cs new file mode 100644 index 00000000..a43a6e58 --- /dev/null +++ b/Issue254/Issue254/VariableBase.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; + +namespace BravoLights.Common.Ast +{ + /// + /// Base class for a variable. + /// + public abstract class VariableBase : IVariable + { + public string ErrorText { get { return null; } } + + public IEnumerable Variables + { + get { yield return this; } + } + + protected abstract IConnection Connection { get; } + public abstract string Identifier { get; } + + private readonly Dictionary, EventHandler> handlerMappings + = new(); + + public event EventHandler ValueChanged + { + add + { + // For this incoming subscription we're just going to subscribe to the + // underlying connection but with a callback that changes the sender + // to be this variable. + void mappedDelegate(object sender, ValueChangedEventArgs e) + { + value(this, e); + } + + handlerMappings[value] = mappedDelegate; + Connection.AddListener(this, mappedDelegate); + } + remove + { + var mappedDelegate = handlerMappings[value]; + handlerMappings.Remove(value); + Connection.RemoveListener(this, mappedDelegate); + } + } + + public bool Equals(IVariable other) + { + return Identifier.Equals(other.Identifier); + } + public override int GetHashCode() + { + return Identifier.GetHashCode(); + } + } +} diff --git a/Issue254/Issue254/VariableHandlerUtils.cs b/Issue254/Issue254/VariableHandlerUtils.cs new file mode 100644 index 00000000..1055c1b6 --- /dev/null +++ b/Issue254/Issue254/VariableHandlerUtils.cs @@ -0,0 +1,24 @@ +using System; +using BravoLights.Common; + +namespace BravoLights.Connections +{ + static class VariableHandlerUtils + { + /// + /// Reports that, whilst we are connected to the server, we haven't yet received a value for this variable. + /// + public static void SendNoValueError(object sender, EventHandler handler) + { + handler(sender, new ValueChangedEventArgs { NewValue = new Exception("No value yet received from simulator") }); + } + + /// + /// Reports that a variable doesn't have a value because the simulator isn't connected. + /// + public static void SendNoConnectionError(object sender, EventHandler handler) + { + handler(sender, new ValueChangedEventArgs { NewValue = new Exception("No connection to simulator") }); + } + } +} diff --git a/Issue254/Issue254/rules.txt b/Issue254/Issue254/rules.txt new file mode 100644 index 00000000..0bfd8659 --- /dev/null +++ b/Issue254/Issue254/rules.txt @@ -0,0 +1,23 @@ +logicalPrimary: OFF +logicalPrimary: ON +primary: HEX_NUMBER +primary: DECIMAL_NUMBER +numericExpression: term PLUS numericExpression +numericExpression: term MINUS numericExpression +term: factor TIMES term +term: factor DIVIDE term +numericExpression: term +term: factor +factor: primary +logicalPrimary: comparison +logicalTerm: logicalPrimary +logicalExpression: logicalTerm +logicalExpression: logicalTerm OR logicalExpression +logicalTerm: logicalPrimary AND logicalTerm +primary: MINUS [d] primary +logicalPrimary: NOT [d] logicalPrimary +comparison: numericExpression COMPARISON numericExpression +primary: LPAREN [d] numericExpression RPAREN [d] +logicalPrimary: LPAREN [d] logicalExpression RPAREN [d] +primary: LVAR +primary: SIMVAR diff --git a/Issue254/Program.cs b/Issue254/Program.cs new file mode 100644 index 00000000..d1500ab1 --- /dev/null +++ b/Issue254/Program.cs @@ -0,0 +1,136 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using BravoLights.Ast; +using BravoLights.Common.Ast; +using sly.parser.generator; +using sly.parser.generator.visitor; + +namespace Issue254 +{ + public static class Program + { + + public static void Bench() + { + Console.WriteLine("starting bench"); + // var summary = BenchmarkRunner.Run(); + } + + public static void Main(string[] args) + { + // Test254(); + Test254Old(); + // try + // { + // Bench(); + // } + // catch (Exception e) + // { + // Console.WriteLine(e.Message); + // Console.WriteLine(e.StackTrace); + // } + + ; + } + + private static void Test254() + { + var tests = new Dictionary() + { + // {"1 + 2 * 3", 7.0}, + // {"2 - 3 / 4", 1.25}, + // {"-3 - -4", 1.0}, + // {"-3--4", 1.0}, + // {"-3+-4", -7.0}, + // {"-(1+2)", -3.0}, + // { "-(1+2 * 3)", -7.0 } , + // {"3 * -2", -6.0}, + // {"9 & 8", 8.0}, + // {"7 & 8", 0.0}, + // {"8 & 8", 8.0}, + {"1 + 7 & 15 - 7", 8.0} + // , + // {"1 | 2", 3.0}, + // {"3 | 5", 7.0}, + // {"1 + 3 | 3 - 1", 6.0} + }; + + var c = new Stopwatch(); + + + + foreach (var test in tests) + { + var parserInstance = new MSFSExpressionParser(); + var builder = new ParserBuilder(); + var parser = builder.BuildParser(parserInstance, ParserType.EBNF_LL_RECURSIVE_DESCENT, + "MSFSExpressionParser_expressions"); + File.WriteAllText(@"c:\temp\parser.dump.txt",parser.Result.Configuration.Dump()); + c.Reset(); + c.Start(); + var x = parser.Result.Parse(test.Key); + bool isok = x.IsOk; + c.Stop(); + Console.WriteLine($"test {test.Key} : {isok} : {c.ElapsedMilliseconds} ms"); + var result = parser.Result.Parse("2 + 2 * 3"); + var tree = result.SyntaxTree; + var graphviz = new GraphVizEBNFSyntaxTreeVisitor(); + var root = graphviz.VisitTree(tree); + string graph = graphviz.Graph.Compile(); + File.Delete("c:\\temp\\tree.dot"); + File.AppendAllText("c:\\temp\\tree.dot", graph); + } + } + + private static void Test254Old() + { + var tests = new Dictionary() + { + // {"1 + 2 * 3", 7.0}, + // {"2 - 3 / 4", 1.25}, + // {"-3 - -4", 1.0}, + // {"-3--4", 1.0}, + // {"-3+-4", -7.0}, + // {"-(1+2)", -3.0}, + { "-(1+2 * 3)", -7.0 } , + // {"3 * -2", -6.0}, + // {"9 & 8", 8.0}, + // {"7 & 8", 0.0}, + // {"8 & 8", 8.0}, + //{"1 + 7 & 15 - 7", 8.0} + // , + // {"1 | 2", 3.0}, + // {"3 | 5", 7.0}, + // {"1 + 3 | 3 - 1", 6.0} + }; + + var c = new Stopwatch(); + + + + foreach (var test in tests) + { + var parserInstance = new OldMSFSExpressionParser(); + var builder = new ParserBuilder(); + var parser = builder.BuildParser(parserInstance, ParserType.EBNF_LL_RECURSIVE_DESCENT, + "logicalExpression"); + File.WriteAllText(@"c:\temp\parser.dump.old.txt",parser.Result.Configuration.Dump()); + c.Reset(); + c.Start(); + var x = parser.Result.Parse(test.Key); + bool isok = x.IsOk; + c.Stop(); + Console.WriteLine($"test {test.Key} : {isok} : {c.ElapsedMilliseconds} ms"); + var result = parser.Result.Parse("2 + 2 * 3"); + var tree = result.SyntaxTree; + var graphviz = new GraphVizEBNFSyntaxTreeVisitor(); + var root = graphviz.VisitTree(tree); + string graph = graphviz.Graph.Compile(); + File.Delete("c:\\temp\\tree.old.dot"); + File.AppendAllText("c:\\temp\\tree.dot", graph); + } + } + } +} \ No newline at end of file From 9d3cfb56a1ad5b2e34ace8b57e58038a2b8ef70f Mon Sep 17 00:00:00 2001 From: b3b00 Date: Sun, 21 Nov 2021 18:45:12 +0100 Subject: [PATCH 45/82] . --- benchCurrent/benchCurrent.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchCurrent/benchCurrent.csproj b/benchCurrent/benchCurrent.csproj index d29c5ae3..aa2f03e9 100644 --- a/benchCurrent/benchCurrent.csproj +++ b/benchCurrent/benchCurrent.csproj @@ -2,7 +2,7 @@ Exe - netcoreapp2.0 + net5.0 From c319af667f3301b008da7c8b20ead1a91e9f7ef4 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Sun, 21 Nov 2021 18:51:40 +0100 Subject: [PATCH 46/82] fix unit tests --- ParserTests/EBNFTests.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ParserTests/EBNFTests.cs b/ParserTests/EBNFTests.cs index 38a8e80a..62d78408 100644 --- a/ParserTests/EBNFTests.cs +++ b/ParserTests/EBNFTests.cs @@ -132,7 +132,7 @@ public string Root2(Token a, ValueOption b, Token a, string b, Token c) { var r = $"R({a.StringWithoutQuotes},{b}"; @@ -712,7 +712,7 @@ public void TestEmptyTerminalOption() Assert.False(buildResult.IsError); var optionParser = buildResult.Result; - var result = optionParser.Parse("a b", "root"); + var result = optionParser.Parse("a b", "root3"); Assert.Equal("R(a,B(b),)", result.Result); } From 91573e3402397473238727c05b8a293b639b96f8 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Sun, 21 Nov 2021 18:54:30 +0100 Subject: [PATCH 47/82] . --- sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs b/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs index f0535da2..12d12b15 100644 --- a/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs +++ b/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs @@ -172,8 +172,6 @@ public SyntaxParseResult Parse(IList> tokens, string startingNonTe var errors = new List>(); var nt = NonTerminals[start]; - //return ParseNonTerminal(tokens, nt.Name, 0); - var rules = nt.Rules.Where(r => !tokens[0].IsEOS && r.PossibleLeadingTokens.Contains(tokens[0].TokenID)).ToList(); if (!rules.Any()) From 00791e60db6b93b2157b8960eaaee0c323d73387 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Sun, 21 Nov 2021 19:20:14 +0100 Subject: [PATCH 48/82] cleaning parse and parseNonTerminal --- .../llparser/RecursiveDescentSyntaxParser.cs | 74 ++++++++++--------- 1 file changed, 41 insertions(+), 33 deletions(-) diff --git a/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs b/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs index 12d12b15..4e579249 100644 --- a/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs +++ b/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs @@ -172,20 +172,26 @@ public SyntaxParseResult Parse(IList> tokens, string startingNonTe var errors = new List>(); var nt = NonTerminals[start]; - var rules = nt.Rules.Where(r => !tokens[0].IsEOS && r.PossibleLeadingTokens.Contains(tokens[0].TokenID)).ToList(); - - if (!rules.Any()) - { - errors.Add(new UnexpectedTokenSyntaxError(tokens[0], I18n,nt.PossibleLeadingTokens.ToArray())); - } var rs = new List>(); - foreach (var rule in rules) + + var matchingRuleCount = 0; + + foreach (var rule in nt.Rules) { - var r = Parse(tokens, rule, 0, start); - rs.Add(r); + if (!tokens[0].IsEOS && rule.PossibleLeadingTokens.Contains(tokens[0].TokenID)) + { + matchingRuleCount++; + var r = Parse(tokens, rule, 0, start); + rs.Add(r); + } } + if (matchingRuleCount == 0) + { + errors.Add(new UnexpectedTokenSyntaxError(tokens[0], I18n,nt.PossibleLeadingTokens.ToArray())); + } + SyntaxParseResult result = null; @@ -383,20 +389,7 @@ public SyntaxParseResult ParseNonTerminal(IList> tokens, string no var errors = new List>(); var i = 0; - var rules = nt.Rules - .Where(r => startPosition < tokens.Count && !tokens[startPosition].IsEOS && r.PossibleLeadingTokens.Contains(tokens[startPosition].TokenID) || r.MayBeEmpty) - .ToList(); - - if (rules.Count == 0 ) - { - var allAcceptableTokens = new List(); - nt.Rules.ForEach(r => - { - if (r != null && r.PossibleLeadingTokens != null) allAcceptableTokens.AddRange(r.PossibleLeadingTokens); - }); - allAcceptableTokens = allAcceptableTokens.Distinct().ToList(); - return NoMatchingRuleError(tokens, currentPosition, allAcceptableTokens); - } + var rules = nt.Rules; var innerRuleErrors = new List>(); var greaterIndex = 0; @@ -404,22 +397,37 @@ public SyntaxParseResult ParseNonTerminal(IList> tokens, string no while (i < rules.Count) { var innerrule = rules[i]; - var innerRuleRes = Parse(tokens, innerrule, startPosition, nonTerminalName); - rulesResults.Add(innerRuleRes); - - var other = greaterIndex == 0 && innerRuleRes.EndingPosition == 0; - if (innerRuleRes.EndingPosition > greaterIndex && innerRuleRes.Errors != null && - !innerRuleRes.Errors.Any() || other) + if (startPosition < tokens.Count && !tokens[startPosition].IsEOS && innerrule.PossibleLeadingTokens.Contains(tokens[startPosition].TokenID) || innerrule.MayBeEmpty) { - greaterIndex = innerRuleRes.EndingPosition; - //innerRuleErrors.Clear(); + var innerRuleRes = Parse(tokens, innerrule, startPosition, nonTerminalName); + rulesResults.Add(innerRuleRes); + + var other = greaterIndex == 0 && innerRuleRes.EndingPosition == 0; + if (innerRuleRes.EndingPosition > greaterIndex && innerRuleRes.Errors != null && + !innerRuleRes.Errors.Any() || other) + { + greaterIndex = innerRuleRes.EndingPosition; + //innerRuleErrors.Clear(); + innerRuleErrors.AddRange(innerRuleRes.Errors); + } + innerRuleErrors.AddRange(innerRuleRes.Errors); } - - innerRuleErrors.AddRange(innerRuleRes.Errors); + i++; } + if (rulesResults.Count() == 0) + { + var allAcceptableTokens = new List(); + nt.Rules.ForEach(r => + { + if (r != null && r.PossibleLeadingTokens != null) allAcceptableTokens.AddRange(r.PossibleLeadingTokens); + }); + allAcceptableTokens = allAcceptableTokens.Distinct().ToList(); + return NoMatchingRuleError(tokens, currentPosition, allAcceptableTokens); + } + errors.AddRange(innerRuleErrors); SyntaxParseResult max = null; if (rulesResults.Any()) From c5039847dd56d9818caf23ab785f7fd40966b8af Mon Sep 17 00:00:00 2001 From: b3b00 Date: Sun, 21 Nov 2021 19:55:47 +0100 Subject: [PATCH 49/82] separate parsing and configuration concerns --- .../llparser/RecursiveDescentSyntaxParser.cs | 148 +--------------- .../RecursiveDescentSyntaxParserStarter.cs | 161 ++++++++++++++++++ 2 files changed, 163 insertions(+), 146 deletions(-) create mode 100644 sly/parser/parser/llparser/RecursiveDescentSyntaxParserStarter.cs diff --git a/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs b/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs index 4e579249..f3043b51 100644 --- a/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs +++ b/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs @@ -1,5 +1,5 @@ using System.Collections.Generic; -using System.Linq; + using sly.lexer; using sly.parser.generator; using sly.parser.syntax.grammar; @@ -7,7 +7,7 @@ namespace sly.parser.llparser { - public class RecursiveDescentSyntaxParser : ISyntaxParser where IN : struct + public partial class RecursiveDescentSyntaxParser : ISyntaxParser where IN : struct { public RecursiveDescentSyntaxParser(ParserConfiguration configuration, string startingNonTerminal, string i18n) { @@ -18,150 +18,6 @@ public RecursiveDescentSyntaxParser(ParserConfiguration configuration, InitializeStartingTokens(Configuration, startingNonTerminal); } - public ParserConfiguration Configuration { get; set; } - public string StartingNonTerminal { get; set; } - - public string I18n { get; set; } - - public ParserConfiguration ComputeSubRules(ParserConfiguration configuration) - { - var newNonTerms = new List>(); - foreach (var nonTerm in configuration.NonTerminals) - foreach (var rule in nonTerm.Value.Rules) - { - var newclauses = new List>(); - if (rule.ContainsSubRule) - { - foreach (var clause in rule.Clauses) - if (clause is GroupClause group) - { - var newNonTerm = CreateSubRule(group); - newNonTerms.Add(newNonTerm); - var newClause = new NonTerminalClause(newNonTerm.Name); - newClause.IsGroup = true; - newclauses.Add(newClause); - } - else if (clause is ManyClause many) - { - if (many.Clause is GroupClause manyGroup) - { - var newNonTerm = CreateSubRule(manyGroup); - newNonTerms.Add(newNonTerm); - var newInnerNonTermClause = new NonTerminalClause(newNonTerm.Name); - newInnerNonTermClause.IsGroup = true; - many.Clause = newInnerNonTermClause; - newclauses.Add(many); - } - } - else if (clause is OptionClause option) - { - if (option.Clause is GroupClause optionGroup) - { - var newNonTerm = CreateSubRule(optionGroup); - newNonTerms.Add(newNonTerm); - var newInnerNonTermClause = new NonTerminalClause(newNonTerm.Name); - newInnerNonTermClause.IsGroup = true; - option.Clause = newInnerNonTermClause; - newclauses.Add(option); - } - } - else - { - newclauses.Add(clause); - } - - rule.Clauses.Clear(); - rule.Clauses.AddRange(newclauses); - } - } - - newNonTerms.ForEach(nonTerminal => configuration.AddNonTerminalIfNotExists(nonTerminal)); - return configuration; - } - - public NonTerminal CreateSubRule(GroupClause group) - { - var subRuleNonTerminalName = "GROUP-" + group.Clauses.Select(c => c.ToString()) - .Aggregate((c1, c2) => $"{c1.ToString()}-{c2.ToString()}"); - var nonTerminal = new NonTerminal(subRuleNonTerminalName); - var subRule = new Rule(); - subRule.Clauses = group.Clauses; - subRule.IsSubRule = true; - nonTerminal.Rules.Add(subRule); - nonTerminal.IsSubRule = true; - - return nonTerminal; - } - - #region STARTING_TOKENS - - protected virtual void InitializeStartingTokens(ParserConfiguration configuration, string root) - { - var nts = configuration.NonTerminals; - - - InitStartingTokensForNonTerminal(nts, root); - foreach (var nt in nts.Values) - { - foreach (var rule in nt.Rules) - { - if (rule.PossibleLeadingTokens == null || rule.PossibleLeadingTokens.Count == 0) - InitStartingTokensForRule(nts, rule); - } - } - } - - protected virtual void InitStartingTokensForNonTerminal(Dictionary> nonTerminals, - string name) - { - if (nonTerminals.ContainsKey(name)) - { - var nt = nonTerminals[name]; - nt.Rules.ForEach(r => InitStartingTokensForRule(nonTerminals, r)); - } - } - - protected void InitStartingTokensForRule(Dictionary> nonTerminals, - Rule rule) - { - if (rule.PossibleLeadingTokens == null || rule.PossibleLeadingTokens.Count == 0) - { - rule.PossibleLeadingTokens = new List(); - if (rule.Clauses.Count > 0) - { - var first = rule.Clauses[0]; - if (first is TerminalClause term) - { - rule.PossibleLeadingTokens.Add(term.ExpectedToken); - rule.PossibleLeadingTokens = rule.PossibleLeadingTokens.Distinct().ToList(); - } - else if (first is NonTerminalClause nonterm) - { - InitStartingTokensForNonTerminal(nonTerminals, nonterm.NonTerminalName); - if (nonTerminals.ContainsKey(nonterm.NonTerminalName)) - { - var firstNonTerminal = nonTerminals[nonterm.NonTerminalName]; - firstNonTerminal.Rules.ForEach(r => - { - rule.PossibleLeadingTokens.AddRange(r.PossibleLeadingTokens); - }); - rule.PossibleLeadingTokens = rule.PossibleLeadingTokens.Distinct().ToList(); - } - } - else - { - InitStartingTokensForRuleExtensions(first,rule,nonTerminals); - } - } - } - } - - protected virtual void InitStartingTokensForRuleExtensions(IClause first, Rule rule, - Dictionary> nonTerminals) - { - } - - #endregion #region parsing diff --git a/sly/parser/parser/llparser/RecursiveDescentSyntaxParserStarter.cs b/sly/parser/parser/llparser/RecursiveDescentSyntaxParserStarter.cs new file mode 100644 index 00000000..a87d3e19 --- /dev/null +++ b/sly/parser/parser/llparser/RecursiveDescentSyntaxParserStarter.cs @@ -0,0 +1,161 @@ +using System.Collections.Generic; +using System.Linq; +using sly.lexer; +using sly.parser.generator; +using sly.parser.syntax.grammar; +using sly.parser.syntax.tree; + +namespace sly.parser.llparser +{ + public partial class RecursiveDescentSyntaxParser : ISyntaxParser where IN : struct + { + + + public ParserConfiguration Configuration { get; set; } + public string StartingNonTerminal { get; set; } + + public string I18n { get; set; } + + public ParserConfiguration ComputeSubRules(ParserConfiguration configuration) + { + var newNonTerms = new List>(); + foreach (var nonTerm in configuration.NonTerminals) + foreach (var rule in nonTerm.Value.Rules) + { + var newclauses = new List>(); + if (rule.ContainsSubRule) + { + foreach (var clause in rule.Clauses) + if (clause is GroupClause group) + { + var newNonTerm = CreateSubRule(group); + newNonTerms.Add(newNonTerm); + var newClause = new NonTerminalClause(newNonTerm.Name); + newClause.IsGroup = true; + newclauses.Add(newClause); + } + else if (clause is ManyClause many) + { + if (many.Clause is GroupClause manyGroup) + { + var newNonTerm = CreateSubRule(manyGroup); + newNonTerms.Add(newNonTerm); + var newInnerNonTermClause = new NonTerminalClause(newNonTerm.Name); + newInnerNonTermClause.IsGroup = true; + many.Clause = newInnerNonTermClause; + newclauses.Add(many); + } + } + else if (clause is OptionClause option) + { + if (option.Clause is GroupClause optionGroup) + { + var newNonTerm = CreateSubRule(optionGroup); + newNonTerms.Add(newNonTerm); + var newInnerNonTermClause = new NonTerminalClause(newNonTerm.Name); + newInnerNonTermClause.IsGroup = true; + option.Clause = newInnerNonTermClause; + newclauses.Add(option); + } + } + else + { + newclauses.Add(clause); + } + + rule.Clauses.Clear(); + rule.Clauses.AddRange(newclauses); + } + } + + newNonTerms.ForEach(nonTerminal => configuration.AddNonTerminalIfNotExists(nonTerminal)); + return configuration; + } + + public NonTerminal CreateSubRule(GroupClause group) + { + var subRuleNonTerminalName = "GROUP-" + group.Clauses.Select(c => c.ToString()) + .Aggregate((c1, c2) => $"{c1.ToString()}-{c2.ToString()}"); + var nonTerminal = new NonTerminal(subRuleNonTerminalName); + var subRule = new Rule(); + subRule.Clauses = group.Clauses; + subRule.IsSubRule = true; + nonTerminal.Rules.Add(subRule); + nonTerminal.IsSubRule = true; + + return nonTerminal; + } + + #region STARTING_TOKENS + + protected virtual void InitializeStartingTokens(ParserConfiguration configuration, string root) + { + var nts = configuration.NonTerminals; + + + InitStartingTokensForNonTerminal(nts, root); + foreach (var nt in nts.Values) + { + foreach (var rule in nt.Rules) + { + if (rule.PossibleLeadingTokens == null || rule.PossibleLeadingTokens.Count == 0) + InitStartingTokensForRule(nts, rule); + } + } + } + + protected virtual void InitStartingTokensForNonTerminal(Dictionary> nonTerminals, + string name) + { + if (nonTerminals.ContainsKey(name)) + { + var nt = nonTerminals[name]; + nt.Rules.ForEach(r => InitStartingTokensForRule(nonTerminals, r)); + } + } + + protected void InitStartingTokensForRule(Dictionary> nonTerminals, + Rule rule) + { + if (rule.PossibleLeadingTokens == null || rule.PossibleLeadingTokens.Count == 0) + { + rule.PossibleLeadingTokens = new List(); + if (rule.Clauses.Count > 0) + { + var first = rule.Clauses[0]; + if (first is TerminalClause term) + { + rule.PossibleLeadingTokens.Add(term.ExpectedToken); + rule.PossibleLeadingTokens = rule.PossibleLeadingTokens.Distinct().ToList(); + } + else if (first is NonTerminalClause nonterm) + { + InitStartingTokensForNonTerminal(nonTerminals, nonterm.NonTerminalName); + if (nonTerminals.ContainsKey(nonterm.NonTerminalName)) + { + var firstNonTerminal = nonTerminals[nonterm.NonTerminalName]; + firstNonTerminal.Rules.ForEach(r => + { + rule.PossibleLeadingTokens.AddRange(r.PossibleLeadingTokens); + }); + rule.PossibleLeadingTokens = rule.PossibleLeadingTokens.Distinct().ToList(); + } + } + else + { + InitStartingTokensForRuleExtensions(first,rule,nonTerminals); + } + } + } + } + + protected virtual void InitStartingTokensForRuleExtensions(IClause first, Rule rule, + Dictionary> nonTerminals) + { + } + + #endregion + + + } +} \ No newline at end of file From 3e8099b53280588fe06862e11e8e8ff29237fc2a Mon Sep 17 00:00:00 2001 From: b3b00 Date: Sun, 21 Nov 2021 19:57:15 +0100 Subject: [PATCH 50/82] separate parsing and configuration concerns --- .../EBNFRecursiveDescentSyntaxParser.cs | 210 +--------------- ...EBNFRecursiveDescentSyntaxParserStarter.cs | 225 ++++++++++++++++++ 2 files changed, 226 insertions(+), 209 deletions(-) create mode 100644 sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParserStarter.cs diff --git a/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs b/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs index d9084b81..a0e3924e 100644 --- a/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs +++ b/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs @@ -8,221 +8,13 @@ namespace sly.parser.llparser { - public class EBNFRecursiveDescentSyntaxParser : RecursiveDescentSyntaxParser where IN : struct + public partial class EBNFRecursiveDescentSyntaxParser : RecursiveDescentSyntaxParser where IN : struct { public EBNFRecursiveDescentSyntaxParser(ParserConfiguration configuration, string startingNonTerminal, string i18n) : base(configuration, startingNonTerminal, i18n) { } - #region STARTING_TOKENS - - protected override void InitStartingTokensForRuleExtensions(IClause first, Rule rule, - Dictionary> nonTerminals) - { - - if (first is TerminalClause) - { - var term = first as TerminalClause; - - InitStartingTokensWithTerminal(rule, term); - } - else if (first is NonTerminalClause) - { - var nonterm = first as NonTerminalClause; - InitStartingTokensWithNonTerminal(rule, nonterm, nonTerminals); - } - else if (first is ZeroOrMoreClause zeroOrMore) - { - InitStartingTokensWithZeroOrMore(rule, zeroOrMore, nonTerminals); - int i = 1; - bool optional = true; - while (i < rule.Clauses.Count && optional) - { - IClause clause = rule.Clauses[i]; - - switch (clause) - { - case TerminalClause terminalClause: - { - rule.PossibleLeadingTokens.Add(terminalClause.ExpectedToken); - break; - } - case NonTerminalClause terminalClause: - { - InitStartingTokensForNonTerminal(nonTerminals, terminalClause.NonTerminalName); - NonTerminal nonTerminal = nonTerminals[terminalClause.NonTerminalName]; - { - rule.PossibleLeadingTokens.AddRange(nonTerminal.PossibleLeadingTokens); - } - break; - } - case ChoiceClause choice: - { - InitStartingTokensWithChoice(rule, choice, nonTerminals); - break; - } - case OptionClause option: - { - InitStartingTokensWithOption(rule, option, nonTerminals); - break; - } - } - - // add startig tokens of clause in rule.startingtokens - optional = clause is ZeroOrMoreClause || clause is OptionClause; - i++; - } - } - else if (first is OneOrMoreClause) - { - var many = first as OneOrMoreClause; - InitStartingTokensWithOneOrMore(rule, many, nonTerminals); - } - else if (first is ChoiceClause choice) - { - InitStartingTokensWithChoice(rule, choice, nonTerminals); - } - else if (first is OptionClause option) - { - InitStartingTokensWithOption(rule,option,nonTerminals); - int i = 1; - bool optional = true; - while (i < rule.Clauses.Count && optional) - { - IClause clause = rule.Clauses[i]; - - switch (clause) - { - case TerminalClause terminalClause: - { - rule.PossibleLeadingTokens.Add(terminalClause.ExpectedToken); - break; - } - case NonTerminalClause terminalClause: - { - InitStartingTokensForNonTerminal(nonTerminals, terminalClause.NonTerminalName); - NonTerminal nonTerminal = nonTerminals[terminalClause.NonTerminalName]; - { - rule.PossibleLeadingTokens.AddRange(nonTerminal.PossibleLeadingTokens); - } - break; - } - case ChoiceClause choiceClause: - { - InitStartingTokensWithChoice(rule, choiceClause, nonTerminals); - break; - } - case OptionClause optionClause: - { - InitStartingTokensWithOption(rule, optionClause, nonTerminals); - break; - } - case ZeroOrMoreClause zeroOrMoreClause: - { - InitStartingTokensWithZeroOrMore(rule,zeroOrMoreClause,nonTerminals); - break; - } - case OneOrMoreClause oneOrMoreClause: - { - InitStartingTokensWithOneOrMore(rule, oneOrMoreClause, nonTerminals); - break; - } - } - - // add startig tokens of clause in rule.startingtokens - optional = clause is ZeroOrMoreClause || clause is OptionClause; - i++; - } - } - } - - private void InitStartingTokensWithOption(Rule rule, OptionClause option, - Dictionary> nonTerminals) - { - if (option.Clause is TerminalClause term) - { - InitStartingTokensWithTerminal(rule,term); - } - else if (option.Clause is NonTerminalClause nonTerminal) - { - InitStartingTokensWithNonTerminal(rule,nonTerminal,nonTerminals); - } - else if (option.Clause is ChoiceClause choice) - { - InitStartingTokensWithChoice(rule,choice,nonTerminals); - } - } - - private void InitStartingTokensWithChoice(Rule rule, ChoiceClause choice,Dictionary> nonTerminals) - { - foreach (var alternate in choice.Choices) - { - if (alternate is TerminalClause term) - { - InitStartingTokensWithTerminal(rule,term); - } - else if (alternate is NonTerminalClause nonTerminal) - { - InitStartingTokensWithNonTerminal(rule,nonTerminal,nonTerminals); - } - } - } - - - private void InitStartingTokensWithTerminal(Rule rule, TerminalClause term) - { - rule.PossibleLeadingTokens.Add(term.ExpectedToken); - rule.PossibleLeadingTokens = rule.PossibleLeadingTokens.Distinct().ToList(); - } - - private void InitStartingTokensWithNonTerminal(Rule rule, NonTerminalClause nonterm, - Dictionary> nonTerminals) - { - InitStartingTokensForNonTerminal(nonTerminals, nonterm.NonTerminalName); - if (nonTerminals.ContainsKey(nonterm.NonTerminalName)) - { - var firstNonTerminal = nonTerminals[nonterm.NonTerminalName]; - firstNonTerminal.Rules.ForEach(r => { rule.PossibleLeadingTokens.AddRange(r.PossibleLeadingTokens); }); - rule.PossibleLeadingTokens = rule.PossibleLeadingTokens.Distinct().ToList(); - } - } - - private void InitStartingTokensWithZeroOrMore(Rule rule, ZeroOrMoreClause manyClause, - Dictionary> nonTerminals) - { - if (manyClause.Clause is TerminalClause term) - { - InitStartingTokensWithTerminal(rule, term); - } - else if (manyClause.Clause is NonTerminalClause nonTerm) - { - InitStartingTokensWithNonTerminal(rule, nonTerm, nonTerminals); - } - else if (manyClause.Clause is ChoiceClause choice) - { - InitStartingTokensWithChoice(rule,choice,nonTerminals); - } - } - - private void InitStartingTokensWithOneOrMore(Rule rule, OneOrMoreClause manyClause, - Dictionary> nonTerminals) - { - if (manyClause.Clause is TerminalClause term) - { - InitStartingTokensWithTerminal(rule, term); - } - else if (manyClause.Clause is NonTerminalClause nonterm) - { - InitStartingTokensWithNonTerminal(rule, nonterm, nonTerminals); - } - else if (manyClause.Clause is ChoiceClause choice) - { - InitStartingTokensWithChoice(rule, choice, nonTerminals); - } - } - - #endregion #region parsing diff --git a/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParserStarter.cs b/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParserStarter.cs new file mode 100644 index 00000000..a013b292 --- /dev/null +++ b/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParserStarter.cs @@ -0,0 +1,225 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using sly.lexer; +using sly.parser.generator; +using sly.parser.syntax.tree; +using sly.parser.syntax.grammar; + +namespace sly.parser.llparser +{ + public partial class EBNFRecursiveDescentSyntaxParser : RecursiveDescentSyntaxParser where IN : struct + { + + #region STARTING_TOKENS + + protected override void InitStartingTokensForRuleExtensions(IClause first, Rule rule, + Dictionary> nonTerminals) + { + + if (first is TerminalClause) + { + var term = first as TerminalClause; + + InitStartingTokensWithTerminal(rule, term); + } + else if (first is NonTerminalClause) + { + var nonterm = first as NonTerminalClause; + InitStartingTokensWithNonTerminal(rule, nonterm, nonTerminals); + } + else if (first is ZeroOrMoreClause zeroOrMore) + { + InitStartingTokensWithZeroOrMore(rule, zeroOrMore, nonTerminals); + int i = 1; + bool optional = true; + while (i < rule.Clauses.Count && optional) + { + IClause clause = rule.Clauses[i]; + + switch (clause) + { + case TerminalClause terminalClause: + { + rule.PossibleLeadingTokens.Add(terminalClause.ExpectedToken); + break; + } + case NonTerminalClause terminalClause: + { + InitStartingTokensForNonTerminal(nonTerminals, terminalClause.NonTerminalName); + NonTerminal nonTerminal = nonTerminals[terminalClause.NonTerminalName]; + { + rule.PossibleLeadingTokens.AddRange(nonTerminal.PossibleLeadingTokens); + } + break; + } + case ChoiceClause choice: + { + InitStartingTokensWithChoice(rule, choice, nonTerminals); + break; + } + case OptionClause option: + { + InitStartingTokensWithOption(rule, option, nonTerminals); + break; + } + } + + // add startig tokens of clause in rule.startingtokens + optional = clause is ZeroOrMoreClause || clause is OptionClause; + i++; + } + } + else if (first is OneOrMoreClause) + { + var many = first as OneOrMoreClause; + InitStartingTokensWithOneOrMore(rule, many, nonTerminals); + } + else if (first is ChoiceClause choice) + { + InitStartingTokensWithChoice(rule, choice, nonTerminals); + } + else if (first is OptionClause option) + { + InitStartingTokensWithOption(rule,option,nonTerminals); + int i = 1; + bool optional = true; + while (i < rule.Clauses.Count && optional) + { + IClause clause = rule.Clauses[i]; + + switch (clause) + { + case TerminalClause terminalClause: + { + rule.PossibleLeadingTokens.Add(terminalClause.ExpectedToken); + break; + } + case NonTerminalClause terminalClause: + { + InitStartingTokensForNonTerminal(nonTerminals, terminalClause.NonTerminalName); + NonTerminal nonTerminal = nonTerminals[terminalClause.NonTerminalName]; + { + rule.PossibleLeadingTokens.AddRange(nonTerminal.PossibleLeadingTokens); + } + break; + } + case ChoiceClause choiceClause: + { + InitStartingTokensWithChoice(rule, choiceClause, nonTerminals); + break; + } + case OptionClause optionClause: + { + InitStartingTokensWithOption(rule, optionClause, nonTerminals); + break; + } + case ZeroOrMoreClause zeroOrMoreClause: + { + InitStartingTokensWithZeroOrMore(rule,zeroOrMoreClause,nonTerminals); + break; + } + case OneOrMoreClause oneOrMoreClause: + { + InitStartingTokensWithOneOrMore(rule, oneOrMoreClause, nonTerminals); + break; + } + } + + // add startig tokens of clause in rule.startingtokens + optional = clause is ZeroOrMoreClause || clause is OptionClause; + i++; + } + } + } + + private void InitStartingTokensWithOption(Rule rule, OptionClause option, + Dictionary> nonTerminals) + { + if (option.Clause is TerminalClause term) + { + InitStartingTokensWithTerminal(rule,term); + } + else if (option.Clause is NonTerminalClause nonTerminal) + { + InitStartingTokensWithNonTerminal(rule,nonTerminal,nonTerminals); + } + else if (option.Clause is ChoiceClause choice) + { + InitStartingTokensWithChoice(rule,choice,nonTerminals); + } + } + + private void InitStartingTokensWithChoice(Rule rule, ChoiceClause choice,Dictionary> nonTerminals) + { + foreach (var alternate in choice.Choices) + { + if (alternate is TerminalClause term) + { + InitStartingTokensWithTerminal(rule,term); + } + else if (alternate is NonTerminalClause nonTerminal) + { + InitStartingTokensWithNonTerminal(rule,nonTerminal,nonTerminals); + } + } + } + + + private void InitStartingTokensWithTerminal(Rule rule, TerminalClause term) + { + rule.PossibleLeadingTokens.Add(term.ExpectedToken); + rule.PossibleLeadingTokens = rule.PossibleLeadingTokens.Distinct().ToList(); + } + + private void InitStartingTokensWithNonTerminal(Rule rule, NonTerminalClause nonterm, + Dictionary> nonTerminals) + { + InitStartingTokensForNonTerminal(nonTerminals, nonterm.NonTerminalName); + if (nonTerminals.ContainsKey(nonterm.NonTerminalName)) + { + var firstNonTerminal = nonTerminals[nonterm.NonTerminalName]; + firstNonTerminal.Rules.ForEach(r => { rule.PossibleLeadingTokens.AddRange(r.PossibleLeadingTokens); }); + rule.PossibleLeadingTokens = rule.PossibleLeadingTokens.Distinct().ToList(); + } + } + + private void InitStartingTokensWithZeroOrMore(Rule rule, ZeroOrMoreClause manyClause, + Dictionary> nonTerminals) + { + if (manyClause.Clause is TerminalClause term) + { + InitStartingTokensWithTerminal(rule, term); + } + else if (manyClause.Clause is NonTerminalClause nonTerm) + { + InitStartingTokensWithNonTerminal(rule, nonTerm, nonTerminals); + } + else if (manyClause.Clause is ChoiceClause choice) + { + InitStartingTokensWithChoice(rule,choice,nonTerminals); + } + } + + private void InitStartingTokensWithOneOrMore(Rule rule, OneOrMoreClause manyClause, + Dictionary> nonTerminals) + { + if (manyClause.Clause is TerminalClause term) + { + InitStartingTokensWithTerminal(rule, term); + } + else if (manyClause.Clause is NonTerminalClause nonterm) + { + InitStartingTokensWithNonTerminal(rule, nonterm, nonTerminals); + } + else if (manyClause.Clause is ChoiceClause choice) + { + InitStartingTokensWithChoice(rule, choice, nonTerminals); + } + } + + #endregion + + + } +} \ No newline at end of file From 4036ca973d5976203fbc33bd7ec26305edcbd145 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Sun, 21 Nov 2021 20:31:10 +0100 Subject: [PATCH 51/82] . --- .../parser/UnexpectedTokenSyntaxError.cs | 17 ++++ .../llparser/RecursiveDescentSyntaxParser.cs | 94 ++++++++++++++----- 2 files changed, 86 insertions(+), 25 deletions(-) diff --git a/sly/parser/parser/UnexpectedTokenSyntaxError.cs b/sly/parser/parser/UnexpectedTokenSyntaxError.cs index 3361f8e8..893df01c 100644 --- a/sly/parser/parser/UnexpectedTokenSyntaxError.cs +++ b/sly/parser/parser/UnexpectedTokenSyntaxError.cs @@ -29,6 +29,23 @@ public UnexpectedTokenSyntaxError(Token unexpectedToken, string i18n=null, pa } + public UnexpectedTokenSyntaxError(Token unexpectedToken, string i18n = null, List expectedTokens = null) + { + I18n = i18n; + ErrorType = unexpectedToken.IsEOS ? ErrorType.UnexpectedEOS : ErrorType.UnexpectedToken; + + UnexpectedToken = unexpectedToken; + if (expectedTokens != null) + { + ExpectedTokens = new List(); + ExpectedTokens.AddRange(expectedTokens); + } + else + { + ExpectedTokens = null; + } + } + public Token UnexpectedToken { get; set; } diff --git a/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs b/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs index f3043b51..b03e0ff4 100644 --- a/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs +++ b/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs @@ -4,6 +4,7 @@ using sly.parser.generator; using sly.parser.syntax.grammar; using sly.parser.syntax.tree; +using System.Linq; namespace sly.parser.llparser { @@ -57,20 +58,30 @@ public SyntaxParseResult Parse(IList> tokens, string startingNonTe if (result == null) { - var endingPositions = rs.Select(r => r.EndingPosition).ToList(); - var lastposition = endingPositions.Max(); - var furtherResults = rs.Where(r => r.EndingPosition == lastposition).ToList(); - + int lastPosition = -1; + List> furtherResults = new List>(); + //List> furtherErrors = new List>(); + foreach (var r in rs) + { + if (r.EndingPosition > lastPosition) + { + lastPosition = r.EndingPosition; + furtherResults.Clear(); + errors.Clear(); + } + if (r.EndingPosition == lastPosition) + { + furtherResults.Add(r); + errors.AddRange(r.Errors); + } + } - furtherResults.ForEach(r => - { - if (r.Errors != null) errors.AddRange(r.Errors); - }); - if (!errors.Any()) + if (errors.Count == 0) { - errors.Add(new UnexpectedTokenSyntaxError(tokens[lastposition], null)); + errors.Add(new UnexpectedTokenSyntaxError(tokens[lastPosition], null)); } + } } @@ -136,7 +147,7 @@ public virtual SyntaxParseResult Parse(IList> tokens, Rule rul { children.Add(nonTerminalResult.Root); currentPosition = nonTerminalResult.EndingPosition; - if (nonTerminalResult.Errors != null && nonTerminalResult.Errors.Any()) + if (nonTerminalResult.Errors != null && nonTerminalResult.Errors.Count > 0) errors.AddRange(nonTerminalResult.Errors); } else @@ -260,7 +271,7 @@ public SyntaxParseResult ParseNonTerminal(IList> tokens, string no var other = greaterIndex == 0 && innerRuleRes.EndingPosition == 0; if (innerRuleRes.EndingPosition > greaterIndex && innerRuleRes.Errors != null && - !innerRuleRes.Errors.Any() || other) + innerRuleRes.Errors.Count == 0 || other) { greaterIndex = innerRuleRes.EndingPosition; //innerRuleErrors.Clear(); @@ -273,28 +284,56 @@ public SyntaxParseResult ParseNonTerminal(IList> tokens, string no i++; } - if (rulesResults.Count() == 0) + if (rulesResults.Count == 0) { var allAcceptableTokens = new List(); nt.Rules.ForEach(r => { if (r != null && r.PossibleLeadingTokens != null) allAcceptableTokens.AddRange(r.PossibleLeadingTokens); }); - allAcceptableTokens = allAcceptableTokens.Distinct().ToList(); + // allAcceptableTokens = allAcceptableTokens.ToList(); return NoMatchingRuleError(tokens, currentPosition, allAcceptableTokens); } errors.AddRange(innerRuleErrors); SyntaxParseResult max = null; - if (rulesResults.Any()) + int okEndingPosition = -1; + int koEndingPosition = -1; + bool hasOk = false; + bool hasKo = false; + SyntaxParseResult maxOk = null; + SyntaxParseResult maxKo = null; + if (rulesResults.Count > 0) { - if (rulesResults.Any(x => x.IsOk)) + foreach (var rulesResult in rulesResults) + { + if (rulesResult.IsOk) + { + hasOk = true; + if (rulesResult.EndingPosition > okEndingPosition) + { + okEndingPosition = rulesResult.EndingPosition; + maxOk = rulesResult; + } + } + if (rulesResult.IsError) + { + hasKo = true; + if (rulesResult.EndingPosition > koEndingPosition) + { + koEndingPosition = rulesResult.EndingPosition; + maxKo = rulesResult; + } + } + } + + if (hasOk) { - max = rulesResults.Where(x => x.IsOk).OrderBy(x => x.EndingPosition).Last(); + max = maxOk; } else { - max = rulesResults.Where(x => !x.IsOk).OrderBy(x => x.EndingPosition).Last(); + max = maxKo; } } else @@ -314,12 +353,17 @@ public SyntaxParseResult ParseNonTerminal(IList> tokens, string no result.IsEnded = max.IsEnded; result.HasByPassNodes = max.HasByPassNodes; - if (rulesResults.Any()) + if (rulesResults.Count > 0) { - var terr = rulesResults.SelectMany(x => x.Errors).ToList(); - var unexpected = terr.Cast>().ToList(); - var expecting = unexpected.SelectMany(x => x.ExpectedTokens).ToList(); - result.AddExpectings(expecting); + List> terr = new List>(); + foreach (var ruleResult in rulesResults) + { + terr.AddRange(ruleResult.Errors); + foreach (var err in ruleResult.Errors) + { + result.AddExpectings(err.ExpectedTokens); + } + } } return result; @@ -332,12 +376,12 @@ private SyntaxParseResult NoMatchingRuleError(IList> tokens, int c if (currentPosition < tokens.Count) { noRuleErrors.Add(new UnexpectedTokenSyntaxError(tokens[currentPosition],I18n, - allAcceptableTokens.ToArray())); + allAcceptableTokens)); } else { noRuleErrors.Add(new UnexpectedTokenSyntaxError(new Token() {IsEOS = true},I18n, - allAcceptableTokens.ToArray())); + allAcceptableTokens)); } var error = new SyntaxParseResult(); From 93e58ffee3a820bf14945a5dd26d23ea479672e8 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Mon, 22 Nov 2021 13:40:38 +0100 Subject: [PATCH 52/82] wip : what a mess --- sly/parser/parser/SyntaxParseResult.cs | 9 ++ .../EBNFRecursiveDescentSyntaxParser.cs | 144 ++++++++++++++++++ .../llparser/RecursiveDescentSyntaxParser.cs | 59 ++++--- sly/parser/syntax/grammar/Rule.cs | 2 + sly/parser/syntax/tree/ISyntaxNode.cs | 2 + sly/parser/syntax/tree/SyntaxLeaf.cs | 5 + sly/parser/syntax/tree/SyntaxNode.cs | 14 ++ 7 files changed, 212 insertions(+), 23 deletions(-) diff --git a/sly/parser/parser/SyntaxParseResult.cs b/sly/parser/parser/SyntaxParseResult.cs index a1851a0c..81bab0ff 100644 --- a/sly/parser/parser/SyntaxParseResult.cs +++ b/sly/parser/parser/SyntaxParseResult.cs @@ -19,6 +19,15 @@ public class SyntaxParseResult where IN : struct public List Expecting {get; set;} + public void AddExpecting(IN expected) + { + if (Expecting == null) + { + Expecting = new List(); + } + Expecting.Add(expected); + } + public void AddExpectings(IEnumerable expected) { if (Expecting == null) diff --git a/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs b/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs index a0e3924e..6c094028 100644 --- a/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs +++ b/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs @@ -21,6 +21,11 @@ public EBNFRecursiveDescentSyntaxParser(ParserConfiguration configurati public override SyntaxParseResult Parse(IList> tokens, Rule rule, int position, string nonTerminalName) { + if (rule.IsInfixExpressionRule && rule.IsExpressionRule) + { + return ParseExpressionRule(tokens, rule, position, nonTerminalName); + } + var currentPosition = position; var errors = new List>(); var isError = false; @@ -142,6 +147,145 @@ public override SyntaxParseResult Parse(IList> tokens, Rule ru return result; } + + public virtual SyntaxParseResult ParseExpressionRule(IList> tokens, Rule rule, int position, + string nonTerminalName) + { + var currentPosition = position; + var errors = new List>(); + var isError = false; + var children = new List>(); + if (!tokens[position].IsEOS && rule.PossibleLeadingTokens.Contains(tokens[position].TokenID)) + if (rule.Clauses != null && rule.Clauses.Count > 0) + { + if (MatchExpressionRuleScheme(rule)) + { + var first = rule.Clauses[0]; + SyntaxParseResult firstResult = null; + if (first is NonTerminalClause firstNonTerminal) + { + firstResult = ParseNonTerminal(tokens, firstNonTerminal, currentPosition); + + if (firstResult.IsError) + { + return firstResult; + } + } + + currentPosition = firstResult.EndingPosition; + var second = rule.Clauses[1]; + SyntaxParseResult secondResult = null; + if (second is ChoiceClause secondChoice) + { + secondResult = ParseChoice(tokens, secondChoice, currentPosition); + + if (secondResult.IsError) + { + if (firstResult.Root is SyntaxNode node) + { + node.IsByPassNode = true; + node.HasByPassNodes = true; + firstResult.AddExpectings(secondResult.Expecting); + return firstResult; + } + } + } + if (second is TerminalClause secondTerminal) + { + secondResult = ParseTerminal(tokens, secondTerminal, currentPosition); + + if (secondResult.IsError) + { + if (firstResult.Root is SyntaxNode node) + { + node.IsByPassNode = true; + node.HasByPassNodes = true; + firstResult.AddExpectings(secondResult.Expecting); + return firstResult; + } + } + } + + + currentPosition = secondResult.EndingPosition; + var third = rule.Clauses[2]; + SyntaxParseResult thirdResult; + if (second is NonTerminalClause thirdNonTerminal) + { + thirdResult = ParseNonTerminal(tokens, thirdNonTerminal, currentPosition); + + if (thirdResult.IsError) + { + if (firstResult.Root is SyntaxNode node) + { + node.IsByPassNode = true; + node.HasByPassNodes = true; + firstResult.AddExpectings(thirdResult.Expecting); + return firstResult; + } + } + else + { + children = new List>(); + children.Add(firstResult.Root); + children.Add(secondResult.Root); + children.Add(thirdResult.Root); + + var finalNode = new SyntaxNode( nonTerminalName, children); + finalNode.ExpressionAffix = rule.ExpressionAffix; + finalNode = ManageExpressionRules(rule, finalNode); + var finalResult = new SyntaxParseResult(); + finalResult.Root = finalNode; + finalResult.IsEnded = currentPosition >= tokens.Count - 1 + || currentPosition == tokens.Count - 2 && + tokens[tokens.Count - 1].IsEOS; + return finalResult; + } + } + + } + else + { + throw new ParserConfigurationException( + $@"expression rule {rule.RuleString} is incorrect : must have ""nonterminal terminal nonterminal"" scheme"); + } + + + } + + var result = new SyntaxParseResult(); + result.IsError = isError; + result.Errors = errors; + result.EndingPosition = currentPosition; + if (!isError) + { + SyntaxNode node = null; + if (rule.IsSubRule) + node = new GroupSyntaxNode(nonTerminalName, children); + else + node = new SyntaxNode( nonTerminalName, children); + node = ManageExpressionRules(rule, node); + if (node.IsByPassNode) // inutile de créer un niveau supplémentaire + result.Root = children[0]; + result.Root = node; + result.IsEnded = result.EndingPosition >= tokens.Count - 1 + || result.EndingPosition == tokens.Count - 2 && + tokens[tokens.Count - 1].IsEOS; + + } + + + return result; + } + + private static bool MatchExpressionRuleScheme(Rule rule) + { + return rule.Clauses.Count == 3 + && rule.Clauses[0] is NonTerminalClause + && (rule.Clauses[1] is ChoiceClause || + rule.Clauses[1] is TerminalClause) + && rule.Clauses[2] is NonTerminalClause; + } public SyntaxParseResult ParseZeroOrMore(IList> tokens, ZeroOrMoreClause clause, int position) { diff --git a/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs b/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs index b03e0ff4..90777455 100644 --- a/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs +++ b/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs @@ -1,16 +1,18 @@ -using System.Collections.Generic; - +using System; +using System.Collections.Generic; using sly.lexer; using sly.parser.generator; using sly.parser.syntax.grammar; using sly.parser.syntax.tree; -using System.Linq; +using System.Linq; +using sly.parser.generator.visitor; namespace sly.parser.llparser { public partial class RecursiveDescentSyntaxParser : ISyntaxParser where IN : struct { - public RecursiveDescentSyntaxParser(ParserConfiguration configuration, string startingNonTerminal, string i18n) + public RecursiveDescentSyntaxParser(ParserConfiguration configuration, string startingNonTerminal, + string i18n) { I18n = i18n; Configuration = configuration; @@ -29,11 +31,11 @@ public SyntaxParseResult Parse(IList> tokens, string startingNonTe var errors = new List>(); var nt = NonTerminals[start]; - + var rs = new List>(); var matchingRuleCount = 0; - + foreach (var rule in nt.Rules) { if (!tokens[0].IsEOS && rule.PossibleLeadingTokens.Contains(tokens[0].TokenID)) @@ -41,14 +43,21 @@ public SyntaxParseResult Parse(IList> tokens, string startingNonTe matchingRuleCount++; var r = Parse(tokens, rule, 0, start); rs.Add(r); + if (typeof(IN).FullName.Contains("ExpressionToken")) + { + var tree = r.Root; + var dump = tree.Dump(""); + Console.WriteLine(dump); + ; + } } } if (matchingRuleCount == 0) { - errors.Add(new UnexpectedTokenSyntaxError(tokens[0], I18n,nt.PossibleLeadingTokens.ToArray())); + errors.Add(new UnexpectedTokenSyntaxError(tokens[0], I18n, nt.PossibleLeadingTokens.ToArray())); } - + SyntaxParseResult result = null; @@ -69,19 +78,19 @@ public SyntaxParseResult Parse(IList> tokens, string startingNonTe furtherResults.Clear(); errors.Clear(); } + if (r.EndingPosition == lastPosition) { furtherResults.Add(r); errors.AddRange(r.Errors); } } - - + + if (errors.Count == 0) { errors.Add(new UnexpectedTokenSyntaxError(tokens[lastPosition], null)); } - } } @@ -133,8 +142,8 @@ public virtual SyntaxParseResult Parse(IList> tokens, Rule rul else { var tok = tokens[currentPosition]; - errors.Add(new UnexpectedTokenSyntaxError(tok,I18n, - ((TerminalClause) clause).ExpectedToken)); + errors.Add(new UnexpectedTokenSyntaxError(tok, I18n, + ((TerminalClause)clause).ExpectedToken)); } isError = isError || termRes.IsError; @@ -172,7 +181,7 @@ public virtual SyntaxParseResult Parse(IList> tokens, Rule rul if (rule.IsSubRule) node = new GroupSyntaxNode(nonTerminalName, children); else - node = new SyntaxNode( nonTerminalName, children); + node = new SyntaxNode(nonTerminalName, children); node = ManageExpressionRules(rule, node); if (node.IsByPassNode) // inutile de créer un niveau supplémentaire result.Root = children[0]; @@ -180,7 +189,6 @@ public virtual SyntaxParseResult Parse(IList> tokens, Rule rul result.IsEnded = result.EndingPosition >= tokens.Count - 1 || result.EndingPosition == tokens.Count - 2 && tokens[tokens.Count - 1].IsEOS; - } @@ -236,8 +244,9 @@ public SyntaxParseResult ParseTerminal(IList> tokens, TerminalClau result.EndingPosition = !result.IsError ? position + 1 : position; var token = tokens[position]; token.Discarded = terminal.Discarded; - result.Root = new SyntaxLeaf(token,terminal.Discarded); + result.Root = new SyntaxLeaf(token, terminal.Discarded); result.HasByPassNodes = false; + result.AddExpecting(terminal.ExpectedToken); return result; } @@ -264,7 +273,8 @@ public SyntaxParseResult ParseNonTerminal(IList> tokens, string no while (i < rules.Count) { var innerrule = rules[i]; - if (startPosition < tokens.Count && !tokens[startPosition].IsEOS && innerrule.PossibleLeadingTokens.Contains(tokens[startPosition].TokenID) || innerrule.MayBeEmpty) + if (startPosition < tokens.Count && !tokens[startPosition].IsEOS && + innerrule.PossibleLeadingTokens.Contains(tokens[startPosition].TokenID) || innerrule.MayBeEmpty) { var innerRuleRes = Parse(tokens, innerrule, startPosition, nonTerminalName); rulesResults.Add(innerRuleRes); @@ -289,7 +299,8 @@ public SyntaxParseResult ParseNonTerminal(IList> tokens, string no var allAcceptableTokens = new List(); nt.Rules.ForEach(r => { - if (r != null && r.PossibleLeadingTokens != null) allAcceptableTokens.AddRange(r.PossibleLeadingTokens); + if (r != null && r.PossibleLeadingTokens != null) + allAcceptableTokens.AddRange(r.PossibleLeadingTokens); }); // allAcceptableTokens = allAcceptableTokens.ToList(); return NoMatchingRuleError(tokens, currentPosition, allAcceptableTokens); @@ -316,6 +327,7 @@ public SyntaxParseResult ParseNonTerminal(IList> tokens, string no maxOk = rulesResult; } } + if (rulesResult.IsError) { hasKo = true; @@ -352,7 +364,7 @@ public SyntaxParseResult ParseNonTerminal(IList> tokens, string no result.IsError = max.IsError; result.IsEnded = max.IsEnded; result.HasByPassNodes = max.HasByPassNodes; - + if (rulesResults.Count > 0) { List> terr = new List>(); @@ -365,22 +377,23 @@ public SyntaxParseResult ParseNonTerminal(IList> tokens, string no } } } - + return result; } - private SyntaxParseResult NoMatchingRuleError(IList> tokens, int currentPosition, List allAcceptableTokens) + private SyntaxParseResult NoMatchingRuleError(IList> tokens, int currentPosition, + List allAcceptableTokens) { var noRuleErrors = new List>(); if (currentPosition < tokens.Count) { - noRuleErrors.Add(new UnexpectedTokenSyntaxError(tokens[currentPosition],I18n, + noRuleErrors.Add(new UnexpectedTokenSyntaxError(tokens[currentPosition], I18n, allAcceptableTokens)); } else { - noRuleErrors.Add(new UnexpectedTokenSyntaxError(new Token() {IsEOS = true},I18n, + noRuleErrors.Add(new UnexpectedTokenSyntaxError(new Token() { IsEOS = true }, I18n, allAcceptableTokens)); } diff --git a/sly/parser/syntax/grammar/Rule.cs b/sly/parser/syntax/grammar/Rule.cs index f12dc076..a69e875f 100644 --- a/sly/parser/syntax/grammar/Rule.cs +++ b/sly/parser/syntax/grammar/Rule.cs @@ -24,6 +24,8 @@ public Rule() private MethodInfo Visitor { get; set; } public bool IsExpressionRule { get; set; } + + public bool IsInfixExpressionRule { get; set; } public Affix ExpressionAffix { get; set; } diff --git a/sly/parser/syntax/tree/ISyntaxNode.cs b/sly/parser/syntax/tree/ISyntaxNode.cs index f54f647e..cb21cc95 100644 --- a/sly/parser/syntax/tree/ISyntaxNode.cs +++ b/sly/parser/syntax/tree/ISyntaxNode.cs @@ -7,5 +7,7 @@ public interface ISyntaxNode where IN : struct string Name { get; } bool HasByPassNodes { get; set; } + + string Dump(string tab); } } \ No newline at end of file diff --git a/sly/parser/syntax/tree/SyntaxLeaf.cs b/sly/parser/syntax/tree/SyntaxLeaf.cs index d1c38563..112cb341 100644 --- a/sly/parser/syntax/tree/SyntaxLeaf.cs +++ b/sly/parser/syntax/tree/SyntaxLeaf.cs @@ -17,5 +17,10 @@ public SyntaxLeaf(Token token, bool discarded) public string Name => Token.TokenID.ToString(); public bool HasByPassNodes { get; set; } = false; + + public string Dump(string tab) + { + return $"{tab}+ {Token.TokenID} : {Token.Value}"; + } } } \ No newline at end of file diff --git a/sly/parser/syntax/tree/SyntaxNode.cs b/sly/parser/syntax/tree/SyntaxNode.cs index 0e91e006..099c61a5 100644 --- a/sly/parser/syntax/tree/SyntaxNode.cs +++ b/sly/parser/syntax/tree/SyntaxNode.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using System.Linq; using System.Reflection; +using System.Text; using sly.parser.generator; namespace sly.parser.syntax.tree @@ -78,6 +79,19 @@ public ISyntaxNode Right return r; } } + + public string Dump(string tab) + { + StringBuilder builder = new StringBuilder(); + builder.AppendLine($"{tab}+ {Name} {(IsByPassNode ? "===":"")}"); + foreach (var child in Children) + { + builder.AppendLine($"{child.Dump(tab + "\t")}"); + } + + return builder.ToString(); + } + #endregion } From 134e39a56508cabe127530af911b8f8595f0f4ef Mon Sep 17 00:00:00 2001 From: b3b00 Date: Mon, 22 Nov 2021 16:46:59 +0100 Subject: [PATCH 53/82] wip : smelling good :) --- Issue254/Program.cs | 84 +++++++++---------- sly/Debug.cs | 7 ++ .../generator/ExpressionRulesGenerator.cs | 17 ++-- .../visitor/GraphVizEBNFSyntaxTreeVisitor.cs | 2 +- .../EBNFRecursiveDescentSyntaxParser.cs | 25 +++++- .../llparser/RecursiveDescentSyntaxParser.cs | 5 +- sly/parser/syntax/tree/SyntaxLeaf.cs | 2 +- 7 files changed, 87 insertions(+), 55 deletions(-) create mode 100644 sly/Debug.cs diff --git a/Issue254/Program.cs b/Issue254/Program.cs index 0a2f470f..9382ac55 100644 --- a/Issue254/Program.cs +++ b/Issue254/Program.cs @@ -12,13 +12,12 @@ namespace Issue254 { public static class Program { - public static void Bench() { Console.WriteLine("starting bench"); // var summary = BenchmarkRunner.Run(); } - + public static void Main(string[] args) { Test254(); @@ -40,29 +39,29 @@ private static void Test254() { var tests = new Dictionary() { - {"1 + 2 * 3", 7.0}, - {"2 - 3 / 4", 1.25}, - {"-3 - -4", 1.0}, - {"-3--4", 1.0}, - {"-3+-4", -7.0}, - {"-(1+2)", -3.0}, - { "-(1+2 * 3)", -7.0 } , - {"3 * -2", -6.0}, - {"9 & 8", 8.0}, - {"7 & 8", 0.0}, - {"8 & 8", 8.0}, - {"1 + 7 & 15 - 7", 8.0}, - {"1 | 2", 3.0}, - {"3 | 5", 7.0}, - {"1 + 3 | 3 - 1", 6.0} + { "1 + 2 * 3", 7.0 }, + { "2 - 3 / 4", 1.25 }, + { "-3 - -4", 1.0 }, + { "-3--4", 1.0 }, + { "-3+-4", -7.0 }, + { "-(1+2)", -3.0 }, + { "-(1+2 * 3)", -7.0 }, + { "3 * -2", -6.0 }, + { "9 & 8", 8.0 }, + { "7 & 8", 0.0 }, + { "8 & 8", 8.0 }, + { "1 + 7 & 15 - 7", 8.0 }, + { "1 | 2", 3.0 }, + { "3 | 5", 7.0 }, + { "1 + 3 | 3 - 1", 6.0 } }; - var times = new List() {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; + var times = new List() { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; var c = new Stopwatch(); - + int repetition = 10; - + for (int i = 0; i < repetition; i++) { Console.WriteLine($"repetition #{i}"); @@ -73,6 +72,10 @@ private static void Test254() var builder = new ParserBuilder(); var parser = builder.BuildParser(parserInstance, ParserType.EBNF_LL_RECURSIVE_DESCENT, "MSFSExpressionParser_expressions"); + if (sly.Debug.DEBUG_EXPRESSION_OPTIMIZATION) + { + Console.WriteLine(parser.Result.Configuration.Dump()); + } c.Reset(); c.Start(); @@ -88,7 +91,6 @@ private static void Test254() //times = times.Select(x => x / repetition).ToList(); PrintTimes(times); - } private static void PrintTimes(List times) @@ -101,7 +103,6 @@ private static void PrintTimes(List times) { using (var reader = new StreamReader(stream)) { - string line = reader.ReadLine(); int i = 0; while (line != null) @@ -114,6 +115,7 @@ private static void PrintTimes(List times) { line += ";" + times[i - 1]; } + lines.Add(line); line = reader.ReadLine(); i++; @@ -121,35 +123,33 @@ private static void PrintTimes(List times) } } - File.WriteAllLines(file,lines); + File.WriteAllLines(file, lines); } } - + private static void Test254Old() { var tests = new Dictionary() { - {"1 + 2 * 3", 7.0}, - {"2 - 3 / 4", 1.25}, - {"-3 - -4", 1.0}, - {"-3--4", 1.0}, - {"-3+-4", -7.0}, - {"-(1+2)", -3.0}, - { "-(1+2 * 3)", -7.0 } , - {"3 * -2", -6.0}, - {"9 & 8", 8.0}, - {"7 & 8", 0.0}, - {"8 & 8", 8.0}, - {"1 + 7 & 15 - 7", 8.0} - , - {"1 | 2", 3.0}, - {"3 | 5", 7.0}, - {"1 + 3 | 3 - 1", 6.0} + { "1 + 2 * 3", 7.0 }, + { "2 - 3 / 4", 1.25 }, + { "-3 - -4", 1.0 }, + { "-3--4", 1.0 }, + { "-3+-4", -7.0 }, + { "-(1+2)", -3.0 }, + { "-(1+2 * 3)", -7.0 }, + { "3 * -2", -6.0 }, + { "9 & 8", 8.0 }, + { "7 & 8", 0.0 }, + { "8 & 8", 8.0 }, + { "1 + 7 & 15 - 7", 8.0 }, + { "1 | 2", 3.0 }, + { "3 | 5", 7.0 }, + { "1 + 3 | 3 - 1", 6.0 } }; var c = new Stopwatch(); - foreach (var test in tests) { @@ -157,7 +157,7 @@ private static void Test254Old() var builder = new ParserBuilder(); var parser = builder.BuildParser(parserInstance, ParserType.EBNF_LL_RECURSIVE_DESCENT, "logicalExpression"); - File.WriteAllText(@"c:\temp\parser.dump.old.txt",parser.Result.Configuration.Dump()); + File.WriteAllText(@"c:\temp\parser.dump.old.txt", parser.Result.Configuration.Dump()); c.Reset(); c.Start(); var x = parser.Result.Parse(test.Key); diff --git a/sly/Debug.cs b/sly/Debug.cs new file mode 100644 index 00000000..e774b815 --- /dev/null +++ b/sly/Debug.cs @@ -0,0 +1,7 @@ +namespace sly +{ + public class Debug + { + public static bool DEBUG_EXPRESSION_OPTIMIZATION = true; + } +} \ No newline at end of file diff --git a/sly/parser/generator/ExpressionRulesGenerator.cs b/sly/parser/generator/ExpressionRulesGenerator.cs index d65153af..78517e43 100644 --- a/sly/parser/generator/ExpressionRulesGenerator.cs +++ b/sly/parser/generator/ExpressionRulesGenerator.cs @@ -234,6 +234,8 @@ private NonTerminal BuildPrecedenceNonTerminal(string name, string nextName, { rule.SetVisitor(x); rule.IsExpressionRule = true; + rule.IsInfixExpressionRule = true; + }); nonTerminal.Rules.Add(rule); } @@ -275,12 +277,15 @@ private NonTerminal BuildPrecedenceNonTerminal(string name, string nextName, nonTerminal.Rules.Add(rule); } - var rule0 = new Rule(); - rule0.Clauses.Add(new NonTerminalClause(nextName)); - rule0.IsExpressionRule = true; - rule0.ExpressionAffix = Affix.NotOperator; - rule0.IsByPassRule = true; - nonTerminal.Rules.Add(rule0); + if (InFixOps.Count == 0 || !Debug.DEBUG_EXPRESSION_OPTIMIZATION ) + { + var rule0 = new Rule(); + rule0.Clauses.Add(new NonTerminalClause(nextName)); + rule0.IsExpressionRule = true; + rule0.ExpressionAffix = Affix.NotOperator; + rule0.IsByPassRule = true; + nonTerminal.Rules.Add(rule0); + } return nonTerminal; } diff --git a/sly/parser/generator/visitor/GraphVizEBNFSyntaxTreeVisitor.cs b/sly/parser/generator/visitor/GraphVizEBNFSyntaxTreeVisitor.cs index ab496855..c58833b9 100644 --- a/sly/parser/generator/visitor/GraphVizEBNFSyntaxTreeVisitor.cs +++ b/sly/parser/generator/visitor/GraphVizEBNFSyntaxTreeVisitor.cs @@ -125,7 +125,7 @@ private DotNode Visit(SyntaxNode node) if (node.IsByPassNode) { - result = children[0]; + //result = children[0]; } else { diff --git a/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs b/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs index 6c094028..fae8b9cd 100644 --- a/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs +++ b/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs @@ -21,7 +21,12 @@ public EBNFRecursiveDescentSyntaxParser(ParserConfiguration configurati public override SyntaxParseResult Parse(IList> tokens, Rule rule, int position, string nonTerminalName) { - if (rule.IsInfixExpressionRule && rule.IsExpressionRule) + if (rule.RuleString == "primary: DECIMAL_NUMBER") + { + ; + } + + if (rule.IsInfixExpressionRule && rule.IsExpressionRule && Debug.DEBUG_EXPRESSION_OPTIMIZATION) { return ParseExpressionRule(tokens, rule, position, nonTerminalName); } @@ -151,6 +156,12 @@ public override SyntaxParseResult Parse(IList> tokens, Rule ru public virtual SyntaxParseResult ParseExpressionRule(IList> tokens, Rule rule, int position, string nonTerminalName) { + + if (nonTerminalName == "expr_14_PLUS_MINUS") + { + ; + } + var currentPosition = position; var errors = new List>(); var isError = false; @@ -189,7 +200,14 @@ public virtual SyntaxParseResult ParseExpressionRule(IList> tokens return firstResult; } } + else + { + currentPosition = secondResult.EndingPosition; + } } + + + if (second is TerminalClause secondTerminal) { secondResult = ParseTerminal(tokens, secondTerminal, currentPosition); @@ -210,7 +228,7 @@ public virtual SyntaxParseResult ParseExpressionRule(IList> tokens currentPosition = secondResult.EndingPosition; var third = rule.Clauses[2]; SyntaxParseResult thirdResult; - if (second is NonTerminalClause thirdNonTerminal) + if (third is NonTerminalClause thirdNonTerminal) { thirdResult = ParseNonTerminal(tokens, thirdNonTerminal, currentPosition); @@ -230,7 +248,7 @@ public virtual SyntaxParseResult ParseExpressionRule(IList> tokens children.Add(firstResult.Root); children.Add(secondResult.Root); children.Add(thirdResult.Root); - + currentPosition = thirdResult.EndingPosition; var finalNode = new SyntaxNode( nonTerminalName, children); finalNode.ExpressionAffix = rule.ExpressionAffix; finalNode = ManageExpressionRules(rule, finalNode); @@ -239,6 +257,7 @@ public virtual SyntaxParseResult ParseExpressionRule(IList> tokens finalResult.IsEnded = currentPosition >= tokens.Count - 1 || currentPosition == tokens.Count - 2 && tokens[tokens.Count - 1].IsEOS; + finalResult.EndingPosition = currentPosition; return finalResult; } } diff --git a/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs b/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs index 90777455..bcd1bfaf 100644 --- a/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs +++ b/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs @@ -43,7 +43,7 @@ public SyntaxParseResult Parse(IList> tokens, string startingNonTe matchingRuleCount++; var r = Parse(tokens, rule, 0, start); rs.Add(r); - if (typeof(IN).FullName.Contains("ExpressionToken")) + if (typeof(IN).FullName.Contains("ExpressionToken") && Debug.DEBUG_EXPRESSION_OPTIMIZATION) { var tree = r.Root; var dump = tree.Dump(""); @@ -276,6 +276,7 @@ public SyntaxParseResult ParseNonTerminal(IList> tokens, string no if (startPosition < tokens.Count && !tokens[startPosition].IsEOS && innerrule.PossibleLeadingTokens.Contains(tokens[startPosition].TokenID) || innerrule.MayBeEmpty) { + Console.WriteLine($"{innerrule.Key} @ {startPosition}"); var innerRuleRes = Parse(tokens, innerrule, startPosition, nonTerminalName); rulesResults.Add(innerRuleRes); @@ -354,7 +355,7 @@ public SyntaxParseResult ParseNonTerminal(IList> tokens, string no max.IsError = true; max.Root = null; max.IsEnded = false; - max.EndingPosition = currentPosition; + //max.EndingPosition = currentPosition; } var result = new SyntaxParseResult(); diff --git a/sly/parser/syntax/tree/SyntaxLeaf.cs b/sly/parser/syntax/tree/SyntaxLeaf.cs index 112cb341..7e31be8f 100644 --- a/sly/parser/syntax/tree/SyntaxLeaf.cs +++ b/sly/parser/syntax/tree/SyntaxLeaf.cs @@ -20,7 +20,7 @@ public SyntaxLeaf(Token token, bool discarded) public string Dump(string tab) { - return $"{tab}+ {Token.TokenID} : {Token.Value}"; + return $"{tab}+ {Token.TokenID} : {Token.Value} @{Token.PositionInTokenFlow}"; } } } \ No newline at end of file From c624860dbcab1ec1dc77878bfedaa2cbbb097800 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Mon, 22 Nov 2021 17:21:08 +0100 Subject: [PATCH 54/82] wip --- ParserTests/ExpressionGeneratorTests.cs | 4 ++-- .../generator/visitor/EBNFSyntaxTreeVisitor.cs | 2 +- .../llparser/EBNFRecursiveDescentSyntaxParser.cs | 12 ++++++------ .../parser/llparser/RecursiveDescentSyntaxParser.cs | 7 ------- 4 files changed, 9 insertions(+), 16 deletions(-) diff --git a/ParserTests/ExpressionGeneratorTests.cs b/ParserTests/ExpressionGeneratorTests.cs index 49c4bbe9..af653f66 100644 --- a/ParserTests/ExpressionGeneratorTests.cs +++ b/ParserTests/ExpressionGeneratorTests.cs @@ -182,12 +182,12 @@ public void TestBuild() Assert.Equal(3, nt.Rules.Count); Assert.Contains("primary_value", nt.Name); nt = nonterminals[2]; - Assert.Equal(2, nt.Rules.Count); + Assert.Equal(1, nt.Rules.Count); Assert.Contains("10", nt.Name); Assert.Contains("PLUS", nt.Name); Assert.Contains("MINUS", nt.Name); nt = nonterminals[3]; - Assert.Equal(2, nt.Rules.Count); + Assert.Equal(1, nt.Rules.Count); Assert.Contains("50", nt.Name); Assert.Contains("TIMES", nt.Name); Assert.Contains("DIVIDE", nt.Name); diff --git a/sly/parser/generator/visitor/EBNFSyntaxTreeVisitor.cs b/sly/parser/generator/visitor/EBNFSyntaxTreeVisitor.cs index cdaa4070..7974f20b 100644 --- a/sly/parser/generator/visitor/EBNFSyntaxTreeVisitor.cs +++ b/sly/parser/generator/visitor/EBNFSyntaxTreeVisitor.cs @@ -124,7 +124,7 @@ private SyntaxVisitorResult Visit(SyntaxNode node, object context = if (node.IsByPassNode) { - result = SyntaxVisitorResult.NewValue((OUT) args[0]); + result = SyntaxVisitorResult.NewValue((OUT)args[0]); } else { diff --git a/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs b/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs index fae8b9cd..885890f2 100644 --- a/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs +++ b/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs @@ -194,8 +194,12 @@ public virtual SyntaxParseResult ParseExpressionRule(IList> tokens { if (firstResult.Root is SyntaxNode node) { - node.IsByPassNode = true; - node.HasByPassNodes = true; + if (node.Name == "expr_17_MINUS") + { + ; + } + // node.IsByPassNode = true; + // node.HasByPassNodes = true; firstResult.AddExpectings(secondResult.Expecting); return firstResult; } @@ -216,8 +220,6 @@ public virtual SyntaxParseResult ParseExpressionRule(IList> tokens { if (firstResult.Root is SyntaxNode node) { - node.IsByPassNode = true; - node.HasByPassNodes = true; firstResult.AddExpectings(secondResult.Expecting); return firstResult; } @@ -236,8 +238,6 @@ public virtual SyntaxParseResult ParseExpressionRule(IList> tokens { if (firstResult.Root is SyntaxNode node) { - node.IsByPassNode = true; - node.HasByPassNodes = true; firstResult.AddExpectings(thirdResult.Expecting); return firstResult; } diff --git a/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs b/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs index bcd1bfaf..90114120 100644 --- a/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs +++ b/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs @@ -43,13 +43,6 @@ public SyntaxParseResult Parse(IList> tokens, string startingNonTe matchingRuleCount++; var r = Parse(tokens, rule, 0, start); rs.Add(r); - if (typeof(IN).FullName.Contains("ExpressionToken") && Debug.DEBUG_EXPRESSION_OPTIMIZATION) - { - var tree = r.Root; - var dump = tree.Dump(""); - Console.WriteLine(dump); - ; - } } } From d011d5846001664522a40ec7985271e9ad809546 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Wed, 24 Nov 2021 08:20:54 +0100 Subject: [PATCH 55/82] prepare release : publish alpha version --- sly/sly.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sly/sly.csproj b/sly/sly.csproj index 947eed3d..e61412af 100644 --- a/sly/sly.csproj +++ b/sly/sly.csproj @@ -6,11 +6,11 @@ $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb #LY is a parser generator halfway between parser combinators and parser generator like ANTLR b3b00 - 2.7.0.5 + 2.8.0.0-alpha https://github.com/b3b00/sly https://github.com/b3b00/sly https://github.com/b3b00/sly/blob/master/LICENSE - 2.7.0.5 + 2.8.0.0-alpha Library From c3e762f8048623bb77067e96900dc71a612f2ad3 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Wed, 24 Nov 2021 08:34:34 +0100 Subject: [PATCH 56/82] . --- ParserTests/Issue164/Issue164Tests.cs | 44 +++++++++++++-------------- benchCurrent/benchCurrent.csproj | 2 +- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/ParserTests/Issue164/Issue164Tests.cs b/ParserTests/Issue164/Issue164Tests.cs index 65f13bd2..33f91a70 100644 --- a/ParserTests/Issue164/Issue164Tests.cs +++ b/ParserTests/Issue164/Issue164Tests.cs @@ -31,27 +31,27 @@ public static void TestOk() Assert.Equal(4.0,result.Result); } - [Fact] - public static void TestErrorMessage() - { - var parser = BuildParser(); - var result = parser.Parse("2 ( 2"); - Assert.True(result.IsError); - var errors = result.Errors; - Assert.Single(errors); - var error = errors.First(); - Assert.IsType>(error); - var unexpectedTokenError = error as UnexpectedTokenSyntaxError; - Assert.NotNull(unexpectedTokenError); - Assert.NotNull(unexpectedTokenError.ExpectedTokens); - Assert.NotEmpty(unexpectedTokenError.ExpectedTokens); - Assert.Equal(5,unexpectedTokenError.ExpectedTokens.Count); - Assert.Contains(unexpectedTokenError.ExpectedTokens, x => x == ExpressionToken.PLUS); - Assert.Contains(unexpectedTokenError.ExpectedTokens, x => x == ExpressionToken.MINUS); - Assert.Contains(unexpectedTokenError.ExpectedTokens, x => x == ExpressionToken.TIMES); - Assert.Contains(unexpectedTokenError.ExpectedTokens, x => x == ExpressionToken.DIVIDE); - Assert.Contains(unexpectedTokenError.ExpectedTokens, x => x == ExpressionToken.FACTORIAL); - ; - } + // [Fact] + // public static void TestErrorMessage() + // { + // var parser = BuildParser(); + // var result = parser.Parse("2 ( 2"); + // Assert.True(result.IsError); + // var errors = result.Errors; + // Assert.Single(errors); + // var error = errors.First(); + // Assert.IsType>(error); + // var unexpectedTokenError = error as UnexpectedTokenSyntaxError; + // Assert.NotNull(unexpectedTokenError); + // Assert.NotNull(unexpectedTokenError.ExpectedTokens); + // Assert.NotEmpty(unexpectedTokenError.ExpectedTokens); + // Assert.Equal(5,unexpectedTokenError.ExpectedTokens.Count); + // Assert.Contains(unexpectedTokenError.ExpectedTokens, x => x == ExpressionToken.PLUS); + // Assert.Contains(unexpectedTokenError.ExpectedTokens, x => x == ExpressionToken.MINUS); + // Assert.Contains(unexpectedTokenError.ExpectedTokens, x => x == ExpressionToken.TIMES); + // Assert.Contains(unexpectedTokenError.ExpectedTokens, x => x == ExpressionToken.DIVIDE); + // Assert.Contains(unexpectedTokenError.ExpectedTokens, x => x == ExpressionToken.FACTORIAL); + // ; + // } } } \ No newline at end of file diff --git a/benchCurrent/benchCurrent.csproj b/benchCurrent/benchCurrent.csproj index aa2f03e9..d29c5ae3 100644 --- a/benchCurrent/benchCurrent.csproj +++ b/benchCurrent/benchCurrent.csproj @@ -2,7 +2,7 @@ Exe - net5.0 + netcoreapp2.0 From 5facb71f8e0b1e447abe35d751a4875096ae361c Mon Sep 17 00:00:00 2001 From: b3b00 Date: Wed, 24 Nov 2021 09:01:40 +0100 Subject: [PATCH 57/82] update github workflow to .net 5 --- .github/workflows/dotnetcore.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index caa27b7d..88ccb55c 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -25,7 +25,7 @@ jobs: - name: Setup .NET Core uses: actions/setup-dotnet@v1 with: - dotnet-version: 3.1.101 + dotnet-version: 5.0.101 - name: Clean artifacts and nugets run: dotnet clean --configuration Release && dotnet nuget locals all --clear - name: Build with dotnet From 16e65147d12110faa742cba7b2f051a4c3c0fb4c Mon Sep 17 00:00:00 2001 From: b3b00 Date: Wed, 24 Nov 2021 09:06:08 +0100 Subject: [PATCH 58/82] revert --- .github/workflows/dotnetcore.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index 88ccb55c..caa27b7d 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -25,7 +25,7 @@ jobs: - name: Setup .NET Core uses: actions/setup-dotnet@v1 with: - dotnet-version: 5.0.101 + dotnet-version: 3.1.101 - name: Clean artifacts and nugets run: dotnet clean --configuration Release && dotnet nuget locals all --clear - name: Build with dotnet From b01739beaf29f7fb97efddecf7a4bcad218d1c94 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Wed, 24 Nov 2021 09:07:59 +0100 Subject: [PATCH 59/82] unload issue 254 project --- sly.sln | 6 ------ 1 file changed, 6 deletions(-) diff --git a/sly.sln b/sly.sln index 76413341..7755d7b6 100644 --- a/sly.sln +++ b/sly.sln @@ -33,8 +33,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "indented", "samples\indente EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "indentedWhile", "samples\IndentedWhile\indentedWhile.csproj", "{B1FAADF0-208D-4A0A-A24D-D7BF4E33DCB4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Issue254", "Issue254\Issue254.csproj", "{AA23B994-2CD1-48A7-A4F2-4CCDE3150CF2}" -EndProject Global GlobalSection(Performance) = preSolution HasPerformanceSessions = true @@ -104,10 +102,6 @@ Global {B1FAADF0-208D-4A0A-A24D-D7BF4E33DCB4}.Debug|Any CPU.Build.0 = Debug|Any CPU {B1FAADF0-208D-4A0A-A24D-D7BF4E33DCB4}.Release|Any CPU.ActiveCfg = Release|Any CPU {B1FAADF0-208D-4A0A-A24D-D7BF4E33DCB4}.Release|Any CPU.Build.0 = Release|Any CPU - {AA23B994-2CD1-48A7-A4F2-4CCDE3150CF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AA23B994-2CD1-48A7-A4F2-4CCDE3150CF2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AA23B994-2CD1-48A7-A4F2-4CCDE3150CF2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AA23B994-2CD1-48A7-A4F2-4CCDE3150CF2}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From ad6139accdece788d8f7b063796270d013d31d7c Mon Sep 17 00:00:00 2001 From: b3b00 Date: Wed, 24 Nov 2021 09:23:29 +0100 Subject: [PATCH 60/82] cleaning --- sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs b/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs index 90114120..d0a5b03f 100644 --- a/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs +++ b/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs @@ -269,7 +269,6 @@ public SyntaxParseResult ParseNonTerminal(IList> tokens, string no if (startPosition < tokens.Count && !tokens[startPosition].IsEOS && innerrule.PossibleLeadingTokens.Contains(tokens[startPosition].TokenID) || innerrule.MayBeEmpty) { - Console.WriteLine($"{innerrule.Key} @ {startPosition}"); var innerRuleRes = Parse(tokens, innerrule, startPosition, nonTerminalName); rulesResults.Add(innerRuleRes); From fc85144e1894dfa5634f9b64bb302edc2e278797 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Wed, 24 Nov 2021 11:23:12 +0100 Subject: [PATCH 61/82] fix #164 unit test after expression parsing refactoring --- ParserTests/Issue164/Issue164Tests.cs | 44 +++++++++---------- .../EBNFRecursiveDescentSyntaxParser.cs | 2 + 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/ParserTests/Issue164/Issue164Tests.cs b/ParserTests/Issue164/Issue164Tests.cs index 33f91a70..65f13bd2 100644 --- a/ParserTests/Issue164/Issue164Tests.cs +++ b/ParserTests/Issue164/Issue164Tests.cs @@ -31,27 +31,27 @@ public static void TestOk() Assert.Equal(4.0,result.Result); } - // [Fact] - // public static void TestErrorMessage() - // { - // var parser = BuildParser(); - // var result = parser.Parse("2 ( 2"); - // Assert.True(result.IsError); - // var errors = result.Errors; - // Assert.Single(errors); - // var error = errors.First(); - // Assert.IsType>(error); - // var unexpectedTokenError = error as UnexpectedTokenSyntaxError; - // Assert.NotNull(unexpectedTokenError); - // Assert.NotNull(unexpectedTokenError.ExpectedTokens); - // Assert.NotEmpty(unexpectedTokenError.ExpectedTokens); - // Assert.Equal(5,unexpectedTokenError.ExpectedTokens.Count); - // Assert.Contains(unexpectedTokenError.ExpectedTokens, x => x == ExpressionToken.PLUS); - // Assert.Contains(unexpectedTokenError.ExpectedTokens, x => x == ExpressionToken.MINUS); - // Assert.Contains(unexpectedTokenError.ExpectedTokens, x => x == ExpressionToken.TIMES); - // Assert.Contains(unexpectedTokenError.ExpectedTokens, x => x == ExpressionToken.DIVIDE); - // Assert.Contains(unexpectedTokenError.ExpectedTokens, x => x == ExpressionToken.FACTORIAL); - // ; - // } + [Fact] + public static void TestErrorMessage() + { + var parser = BuildParser(); + var result = parser.Parse("2 ( 2"); + Assert.True(result.IsError); + var errors = result.Errors; + Assert.Single(errors); + var error = errors.First(); + Assert.IsType>(error); + var unexpectedTokenError = error as UnexpectedTokenSyntaxError; + Assert.NotNull(unexpectedTokenError); + Assert.NotNull(unexpectedTokenError.ExpectedTokens); + Assert.NotEmpty(unexpectedTokenError.ExpectedTokens); + Assert.Equal(5,unexpectedTokenError.ExpectedTokens.Count); + Assert.Contains(unexpectedTokenError.ExpectedTokens, x => x == ExpressionToken.PLUS); + Assert.Contains(unexpectedTokenError.ExpectedTokens, x => x == ExpressionToken.MINUS); + Assert.Contains(unexpectedTokenError.ExpectedTokens, x => x == ExpressionToken.TIMES); + Assert.Contains(unexpectedTokenError.ExpectedTokens, x => x == ExpressionToken.DIVIDE); + Assert.Contains(unexpectedTokenError.ExpectedTokens, x => x == ExpressionToken.FACTORIAL); + ; + } } } \ No newline at end of file diff --git a/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs b/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs index 885890f2..654e3924 100644 --- a/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs +++ b/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs @@ -200,6 +200,7 @@ public virtual SyntaxParseResult ParseExpressionRule(IList> tokens } // node.IsByPassNode = true; // node.HasByPassNodes = true; + firstResult.Errors.AddRange(secondResult.Errors); firstResult.AddExpectings(secondResult.Expecting); return firstResult; } @@ -220,6 +221,7 @@ public virtual SyntaxParseResult ParseExpressionRule(IList> tokens { if (firstResult.Root is SyntaxNode node) { + firstResult.Errors.AddRange(secondResult.Errors); firstResult.AddExpectings(secondResult.Expecting); return firstResult; } From 235ed6f557a4951006a4106bc5e37169506a6d8f Mon Sep 17 00:00:00 2001 From: b3b00 Date: Wed, 24 Nov 2021 11:30:21 +0100 Subject: [PATCH 62/82] upgrade to 2.8.0.0 --- sly/sly.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sly/sly.csproj b/sly/sly.csproj index e61412af..74a8166d 100644 --- a/sly/sly.csproj +++ b/sly/sly.csproj @@ -6,11 +6,11 @@ $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb #LY is a parser generator halfway between parser combinators and parser generator like ANTLR b3b00 - 2.8.0.0-alpha + 2.8.0.0 https://github.com/b3b00/sly https://github.com/b3b00/sly https://github.com/b3b00/sly/blob/master/LICENSE - 2.8.0.0-alpha + 2.8.0.0 Library From 8462a031ecf4f47427c8b215c874b0510658cadb Mon Sep 17 00:00:00 2001 From: b3b00 Date: Wed, 24 Nov 2021 13:25:34 +0100 Subject: [PATCH 63/82] cleaning --- sly/Debug.cs | 7 ------- sly/parser/generator/ExpressionRulesGenerator.cs | 2 +- .../llparser/EBNFRecursiveDescentSyntaxParser.cs | 16 +++------------- 3 files changed, 4 insertions(+), 21 deletions(-) delete mode 100644 sly/Debug.cs diff --git a/sly/Debug.cs b/sly/Debug.cs deleted file mode 100644 index e774b815..00000000 --- a/sly/Debug.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace sly -{ - public class Debug - { - public static bool DEBUG_EXPRESSION_OPTIMIZATION = true; - } -} \ No newline at end of file diff --git a/sly/parser/generator/ExpressionRulesGenerator.cs b/sly/parser/generator/ExpressionRulesGenerator.cs index 78517e43..349bf28b 100644 --- a/sly/parser/generator/ExpressionRulesGenerator.cs +++ b/sly/parser/generator/ExpressionRulesGenerator.cs @@ -277,7 +277,7 @@ private NonTerminal BuildPrecedenceNonTerminal(string name, string nextName, nonTerminal.Rules.Add(rule); } - if (InFixOps.Count == 0 || !Debug.DEBUG_EXPRESSION_OPTIMIZATION ) + if (InFixOps.Count == 0) { var rule0 = new Rule(); rule0.Clauses.Add(new NonTerminalClause(nextName)); diff --git a/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs b/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs index 654e3924..0c741e7e 100644 --- a/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs +++ b/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs @@ -21,14 +21,10 @@ public EBNFRecursiveDescentSyntaxParser(ParserConfiguration configurati public override SyntaxParseResult Parse(IList> tokens, Rule rule, int position, string nonTerminalName) { - if (rule.RuleString == "primary: DECIMAL_NUMBER") - { - ; - } - if (rule.IsInfixExpressionRule && rule.IsExpressionRule && Debug.DEBUG_EXPRESSION_OPTIMIZATION) + if (rule.IsInfixExpressionRule && rule.IsExpressionRule) { - return ParseExpressionRule(tokens, rule, position, nonTerminalName); + return ParseInfixExpressionRule(tokens, rule, position, nonTerminalName); } var currentPosition = position; @@ -153,15 +149,9 @@ public override SyntaxParseResult Parse(IList> tokens, Rule ru } - public virtual SyntaxParseResult ParseExpressionRule(IList> tokens, Rule rule, int position, + public virtual SyntaxParseResult ParseInfixExpressionRule(IList> tokens, Rule rule, int position, string nonTerminalName) { - - if (nonTerminalName == "expr_14_PLUS_MINUS") - { - ; - } - var currentPosition = position; var errors = new List>(); var isError = false; From 980a2f56c0cf420295c8f1aff01d87de0f71a3f5 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Wed, 24 Nov 2021 13:42:56 +0100 Subject: [PATCH 64/82] . --- sly/sly.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sly/sly.csproj b/sly/sly.csproj index 74a8166d..d02525d5 100644 --- a/sly/sly.csproj +++ b/sly/sly.csproj @@ -6,11 +6,11 @@ $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb #LY is a parser generator halfway between parser combinators and parser generator like ANTLR b3b00 - 2.8.0.0 + 2.8.0 https://github.com/b3b00/sly https://github.com/b3b00/sly https://github.com/b3b00/sly/blob/master/LICENSE - 2.8.0.0 + 2.8.0 Library From fe7bc8ca50da7d5126b12f506eac89a3faf2dd37 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Wed, 24 Nov 2021 13:55:38 +0100 Subject: [PATCH 65/82] . --- sly/parser/syntax/grammar/TerminalClause.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sly/parser/syntax/grammar/TerminalClause.cs b/sly/parser/syntax/grammar/TerminalClause.cs index 6bccbbdc..98b82677 100644 --- a/sly/parser/syntax/grammar/TerminalClause.cs +++ b/sly/parser/syntax/grammar/TerminalClause.cs @@ -39,7 +39,7 @@ public override string ToString() return b.ToString(); } - public string Dump() + public virtual string Dump() { return ExpectedToken.ToString(); } @@ -77,14 +77,14 @@ public override bool Check(Token nextToken) public override string ToString() { var b = new StringBuilder(); - b.Append(ExpectedToken); + b.Append(ExpectedIndentation == IndentationType.Indent ? "TAB" : "UNTAB" ); if (Discarded) b.Append("[d]"); return b.ToString(); } - public new string Dump() + public override string Dump() { - return ExpectedToken.ToString(); + return ToString(); } } } \ No newline at end of file From 1a66abe60c14d66f3a1e266cb70dd0f5140fe9b9 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Wed, 24 Nov 2021 20:12:33 +0100 Subject: [PATCH 66/82] vscode counter --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index e375b64c..3e9ecabd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .localhistory/* +.VSCodeCounter # User-specific files *.suo *.user From 9ce933878872361903c89c73cbfba3cfb10df950 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Mon, 29 Nov 2021 10:44:02 +0100 Subject: [PATCH 67/82] wip --- Issue259/CslyNullIssue/CslyNullIssue.csproj | 13 +++ Issue259/CslyNullIssue/ExpressionParser.cs | 111 ++++++++++++++++++++ Issue259/CslyNullIssue/ExpressionToken.cs | 68 ++++++++++++ Issue259/CslyNullIssue/ParserSubclass.cs | 35 ++++++ Issue259/Tests/Issue259Tests.cs | 56 ++++++++++ Issue259/Tests/Tests.csproj | 28 +++++ sly.sln | 16 +++ sly/parser/parser/Parser.cs | 11 +- sly/parser/parser/SyntaxParseResult.cs | 4 + 9 files changed, 339 insertions(+), 3 deletions(-) create mode 100644 Issue259/CslyNullIssue/CslyNullIssue.csproj create mode 100644 Issue259/CslyNullIssue/ExpressionParser.cs create mode 100644 Issue259/CslyNullIssue/ExpressionToken.cs create mode 100644 Issue259/CslyNullIssue/ParserSubclass.cs create mode 100644 Issue259/Tests/Issue259Tests.cs create mode 100644 Issue259/Tests/Tests.csproj diff --git a/Issue259/CslyNullIssue/CslyNullIssue.csproj b/Issue259/CslyNullIssue/CslyNullIssue.csproj new file mode 100644 index 00000000..9667f59a --- /dev/null +++ b/Issue259/CslyNullIssue/CslyNullIssue.csproj @@ -0,0 +1,13 @@ + + + + Library + net5.0 + CslyNull259Issue + + + + + + + diff --git a/Issue259/CslyNullIssue/ExpressionParser.cs b/Issue259/CslyNullIssue/ExpressionParser.cs new file mode 100644 index 00000000..bc5e8482 --- /dev/null +++ b/Issue259/CslyNullIssue/ExpressionParser.cs @@ -0,0 +1,111 @@ +using sly.lexer; +using sly.parser; +using sly.parser.generator; +using System; +using System.Globalization; +using System.Linq; + +namespace CslyNullIssue +{ + public abstract class ExpressionParser + { + [Operand] + [Production("logical_literal: OFF")] + [Production("logical_literal: ON")] + public string LiteralBool(Token token) + { + return token.Value; + } + + [Operand] + [Production("primary: HEX_NUMBER")] + public string NumericExpressionFromLiteralNumber(Token offsetToken) + { + return offsetToken.Value; + } + + [Operand] + [Production("primary: DECIMAL_NUMBER")] + public string NumericExpressionFromDecimalNumber(Token offsetToken) + { + var text = offsetToken.Value; + var value = double.Parse(text, CultureInfo.InvariantCulture); + return value.ToString(CultureInfo.InvariantCulture); + } + + [Infix((int)ExpressionToken.PLUS, Associativity.Left, 14)] + [Infix((int)ExpressionToken.MINUS, Associativity.Left, 14)] + [Infix((int)ExpressionToken.TIMES, Associativity.Left, 15)] + [Infix((int)ExpressionToken.DIVIDE, Associativity.Left, 15)] + [Infix((int)ExpressionToken.BITWISE_AND, Associativity.Left, 10)] + [Infix((int)ExpressionToken.BITWISE_OR, Associativity.Left, 8)] + public string NumberExpression(string lhs, Token token, string rhs) + { + return $"({lhs} {token.Value} {rhs})"; + } + + [Infix((int)ExpressionToken.LOGICAL_AND, Associativity.Left, 7)] + [Infix((int)ExpressionToken.LOGICAL_OR, Associativity.Left, 6)] + public string LogicalExpression(string lhs, Token token, string rhs) + { + return $"({lhs} {token.Value} {rhs})"; + } + + [Prefix((int)ExpressionToken.MINUS, Associativity.Right, 17)] + public string NumericExpression(Token _, string child) + { + return $"-{child}"; + } + + // We want NOT to to bind tighter than AND/OR but looser than numeric comparison operations + [Prefix((int)ExpressionToken.NOT, Associativity.Right, 11)] + public string LogicalExpression(Token _, string child) + { + return $"(NOT {child})"; + } + + [Infix((int)ExpressionToken.COMPARISON, Associativity.Left, 12)] + public string Comparison(string lhs, Token token, string rhs) + { + return $"({lhs} {token.Value} {rhs})"; + } + + private static Parser cachedParser; + + public static string Parse(string expression) where T : ExpressionParser, new() + { + if (cachedParser == null) + { + var startingRule = $"{typeof(T).Name}_expressions"; + var parserInstance = new T(); + var builder = new ParserBuilder(); + var parser = builder.BuildParser(parserInstance, ParserType.EBNF_LL_RECURSIVE_DESCENT, startingRule); + if (parser.IsError) + { + throw new Exception($"Could not create parser. BNF is not valid. {parser.Errors[0]}"); + } + cachedParser = parser.Result; + } + + // To simplify an ambiguous lexer which would result from having both && and & as well as || and |, we'll + // simplify the incoming expression by turning && into AND and || into OR: + expression = expression.Replace("&&", " AND "); + expression = expression.Replace("||", " OR "); + + var parseResult = cachedParser.Parse(expression); + if (parseResult.IsError) + { + if (parseResult.Errors.Any()) + { + throw new Exception(parseResult.Errors[0].ErrorMessage); + } + else + { + throw new Exception("unknwon error "); + } + } + + return parseResult.Result; + } + } +} \ No newline at end of file diff --git a/Issue259/CslyNullIssue/ExpressionToken.cs b/Issue259/CslyNullIssue/ExpressionToken.cs new file mode 100644 index 00000000..8b3cff53 --- /dev/null +++ b/Issue259/CslyNullIssue/ExpressionToken.cs @@ -0,0 +1,68 @@ +using sly.lexer; + +namespace CslyNullIssue +{ + public enum ExpressionToken + { + [Lexeme("L:[A-Za-z0-9_]+")] + LVAR = 50, + + [Lexeme("A:[:A-Za-z0-9 ]+,\\s*([A-Za-z0-9 ]+)")] + SIMVAR = 52, + + // [Lexeme("\\[[A-Z_0-9 ]+:[A-Z_0-9 ]+\\]")] + [Lexeme("\\[[A-Za-z_0-9 ]+:[A-Za-z_0-9 ]+\\]")] + DCS_VAR = 53, + + [Lexeme("OFF")] + OFF = 0, + + [Lexeme("ON")] + ON = 1, + + // Hex/decimal prefix? + [Lexeme("0[xX][0-9a-fA-F]+")] + HEX_NUMBER = 2, + + [Lexeme("[0-9]+(\\.[0-9]+)?")] + DECIMAL_NUMBER = 3, + + [Lexeme("\\+")] + PLUS = 4, + + [Lexeme("-")] + MINUS = 5, + + [Lexeme("\\*")] + TIMES = 6, + + [Lexeme("/")] + DIVIDE = 7, + + [Lexeme("\\|")] + BITWISE_OR = 8, + + [Lexeme("&")] + BITWISE_AND = 9, + + [Lexeme("[ \\t]+", isSkippable: true)] + WHITESPACE = 20, + + [Lexeme("OR")] + LOGICAL_OR = 10, + [Lexeme("AND")] + LOGICAL_AND = 11, + + [Lexeme("NOT")] + NOT = 12, + + [Lexeme("(<=?)|(==)|(!=)|(>=?)")] + COMPARISON = 13, + + [Lexeme("\\(")] + LPAREN = 30, + + [Lexeme("\\)")] + RPAREN = 31, + } +} \ No newline at end of file diff --git a/Issue259/CslyNullIssue/ParserSubclass.cs b/Issue259/CslyNullIssue/ParserSubclass.cs new file mode 100644 index 00000000..2ad6fec7 --- /dev/null +++ b/Issue259/CslyNullIssue/ParserSubclass.cs @@ -0,0 +1,35 @@ +using sly.lexer; +using sly.parser.generator; + +namespace CslyNullIssue +{ + public class ParserSubclass : ExpressionParser + { + + [Operand] + [Production("numeric_literal: LVAR")] + public string Lvar(Token token) + { + return token.Value; + } + + [Operand] + [Production("numeric_literal: SIMVAR")] + public string SimVarExpression(Token simvarToken) + { + var text = simvarToken.Value[2..]; + var bits = text.Split(","); + var varName = bits[0]; + var type = bits[1].Trim(); + return $"A:{varName}, {type}"; + } + + [Operand] + [Production("group : LPAREN ParserSubclass_expressions RPAREN")] + public string Group(Token _1, string child, Token _2) + { + return child; + } + + } +} diff --git a/Issue259/Tests/Issue259Tests.cs b/Issue259/Tests/Issue259Tests.cs new file mode 100644 index 00000000..6e1ed066 --- /dev/null +++ b/Issue259/Tests/Issue259Tests.cs @@ -0,0 +1,56 @@ +using CslyNullIssue; +using System; +using Xunit; + +namespace Tests +{ + public class Issue259Tests + { + [Theory] + [InlineData("ON", "ON")] + [InlineData("ON AND OFF", "(ON AND OFF)")] + [InlineData("ON OR OFF", "(ON OR OFF)")] + [InlineData("OFF", "OFF")] + [InlineData("A:FOO, bool < 42", "(A:FOO, bool < 42)")] + [InlineData("L:BAR == 1", "(L:BAR == 1)")] + [InlineData("3 < 4", "(3 < 4)")] + [InlineData("(1 + 3) < (3 + 4)", "((1 + 3) < (3 + 4))")] + [InlineData("3 < 4 OR 4 < 5", "((3 < 4) OR (4 < 5))")] + [InlineData("(2 + 3) < (A:FOO,bool + 12)", "((2 + 3) < (A:FOO, bool + 12))")] + [InlineData("(2 + 3) <= (A:FOO,bool + 12)", "((2 + 3) <= (A:FOO, bool + 12))")] + [InlineData("(2 + 3) >= (A:FOO,bool + 12)", "((2 + 3) >= (A:FOO, bool + 12))")] + [InlineData("(2 + 3) > (A:FOO,bool + 12)", "((2 + 3) > (A:FOO, bool + 12))")] + [InlineData("3 == 4", "(3 == 4)")] + [InlineData("3 != 4", "(3 != 4)")] + [InlineData("1 + 2 < 3 + 4", "((1 + 2) < (3 + 4))")] + [InlineData("1 + 2 * 3 < 3 * 4 - 5", "((1 + (2 * 3)) < ((3 * 4) - 5))")] + [InlineData("1<2 AND 2>3", "((1 < 2) AND (2 > 3))")] + + // Comparison operators + [InlineData("1 < 2 && 1 <= 2 && 1 == 2 && 1 >= 2 && 1 > 2 && 1 != 2 && 1 <> 2", "(((((((1 < 2) AND (1 <= 2)) AND (1 == 2)) AND (1 >= 2)) AND (1 > 2)) AND (1 != 2)) AND (1 != 2))")] + + // AND/OR precedence. (AND binds tighter) + [InlineData("ON AND OFF OR ON AND OFF", "((ON AND OFF) OR (ON AND OFF))")] + [InlineData("ON AND (OFF OR ON) AND OFF", "((ON AND (OFF OR ON)) AND OFF)")] + [InlineData("1==1 || 2==2 && 3==3 || 4==4", "(((1 == 1) OR ((2 == 2) AND (3 == 3))) OR (4 == 4))")] + + // Alternate AND/OR + [InlineData("1==1 AND 2==2 && 3==3 OR 4==4 || 5==5", "(((((1 == 1) AND (2 == 2)) AND (3 == 3)) OR (4 == 4)) OR (5 == 5))")] + + // NOT checks. (NOT binds tightly to logicals and loosely to numerics + [InlineData("NOT ON", "(NOT ON)")] + [InlineData("NOT ON AND OFF", "((NOT ON) AND OFF)")] + [InlineData("NOT ON OR OFF", "((NOT ON) OR OFF)")] + [InlineData("NOT 1 == 2", "(NOT (1 == 2))")] + [InlineData("NOT ON AND NOT OFF OR NOT ON OR NOT OFF", "((((NOT ON) AND (NOT OFF)) OR (NOT ON)) OR (NOT OFF))")] + + // Unary minus checks + [InlineData("- A:FOO, bool > 3", "(-A:FOO, bool > 3)")] + [InlineData("-(A:FOO, bool) > 3", "(-A:FOO, bool > 3)")] + public void BooleanParser(string expression, string expected) + { + var result = ExpressionParser.Parse(expression); + Assert.Equal(expected, result); + } + } +} diff --git a/Issue259/Tests/Tests.csproj b/Issue259/Tests/Tests.csproj new file mode 100644 index 00000000..0172afda --- /dev/null +++ b/Issue259/Tests/Tests.csproj @@ -0,0 +1,28 @@ + + + + net5.0 + + false + + Issue259Tests + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + + + diff --git a/sly.sln b/sly.sln index 7755d7b6..eefdb0b1 100644 --- a/sly.sln +++ b/sly.sln @@ -33,6 +33,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "indented", "samples\indente EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "indentedWhile", "samples\IndentedWhile\indentedWhile.csproj", "{B1FAADF0-208D-4A0A-A24D-D7BF4E33DCB4}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Issue259", "Issue259", "{134B62C4-0138-4B17-A1C1-FC74D6DBB604}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CslyNullIssue", "Issue259\CslyNullIssue\CslyNullIssue.csproj", "{FFE5ABA4-9356-4909-BCB3-C8657FAC04EE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests", "Issue259\Tests\Tests.csproj", "{9818D545-02DE-4157-BCEA-A904E3B3BBCD}" +EndProject Global GlobalSection(Performance) = preSolution HasPerformanceSessions = true @@ -102,6 +108,14 @@ Global {B1FAADF0-208D-4A0A-A24D-D7BF4E33DCB4}.Debug|Any CPU.Build.0 = Debug|Any CPU {B1FAADF0-208D-4A0A-A24D-D7BF4E33DCB4}.Release|Any CPU.ActiveCfg = Release|Any CPU {B1FAADF0-208D-4A0A-A24D-D7BF4E33DCB4}.Release|Any CPU.Build.0 = Release|Any CPU + {FFE5ABA4-9356-4909-BCB3-C8657FAC04EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FFE5ABA4-9356-4909-BCB3-C8657FAC04EE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FFE5ABA4-9356-4909-BCB3-C8657FAC04EE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FFE5ABA4-9356-4909-BCB3-C8657FAC04EE}.Release|Any CPU.Build.0 = Release|Any CPU + {9818D545-02DE-4157-BCEA-A904E3B3BBCD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9818D545-02DE-4157-BCEA-A904E3B3BBCD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9818D545-02DE-4157-BCEA-A904E3B3BBCD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9818D545-02DE-4157-BCEA-A904E3B3BBCD}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -115,6 +129,8 @@ Global {FFCA5A16-0388-4A8E-8B40-0D1FDA5D4B7B} = {36ED7F1A-2E81-4A71-81FE-A357E5840A33} {7C6C4A13-2AE5-4070-A2E1-05B6A83DC97C} = {36ED7F1A-2E81-4A71-81FE-A357E5840A33} {B1FAADF0-208D-4A0A-A24D-D7BF4E33DCB4} = {36ED7F1A-2E81-4A71-81FE-A357E5840A33} + {FFE5ABA4-9356-4909-BCB3-C8657FAC04EE} = {134B62C4-0138-4B17-A1C1-FC74D6DBB604} + {9818D545-02DE-4157-BCEA-A904E3B3BBCD} = {134B62C4-0138-4B17-A1C1-FC74D6DBB604} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {43254130-CF3E-480E-952F-E50CA5D2E417} diff --git a/sly/parser/parser/Parser.cs b/sly/parser/parser/Parser.cs index 5e6b5fa3..380774e3 100644 --- a/sly/parser/parser/Parser.cs +++ b/sly/parser/parser/Parser.cs @@ -119,9 +119,14 @@ public ParseResult ParseWithContext(IList> tokens, object par var errors = new List(); foreach (var expecting in byEnding) { - var expectingTokens = expecting.SelectMany(x => x.ExpectedTokens).Distinct(); - var expected = new UnexpectedTokenSyntaxError(expecting.First().UnexpectedToken, I18n,expectingTokens.ToArray()); - errors.Add(expected); + var expectingTokens = expecting.SelectMany(x => (x.ExpectedTokens ?? new List())).Distinct(); + var expectedTokens = (expectingTokens != null && expectingTokens.Any()) ? expectingTokens?.ToArray() : null; + if (expectedTokens != null) + { + var expected = new UnexpectedTokenSyntaxError(expecting.First().UnexpectedToken, I18n, + expectedTokens); + errors.Add(expected); + } } result.Errors.AddRange(errors); diff --git a/sly/parser/parser/SyntaxParseResult.cs b/sly/parser/parser/SyntaxParseResult.cs index 81bab0ff..64a6238e 100644 --- a/sly/parser/parser/SyntaxParseResult.cs +++ b/sly/parser/parser/SyntaxParseResult.cs @@ -30,6 +30,10 @@ public void AddExpecting(IN expected) public void AddExpectings(IEnumerable expected) { + if (expected == null) + { + return; + } if (Expecting == null) { Expecting = new List(); From df154a30e5ef612bca3521897ff199ca67fa8b6f Mon Sep 17 00:00:00 2001 From: b3b00 Date: Mon, 29 Nov 2021 16:36:01 +0100 Subject: [PATCH 68/82] bugfix #259 --- Issue259/CslyNullIssue/CslyNullIssue.csproj | 13 ----- Issue259/Tests/Issue259Tests.cs | 56 ------------------- Issue259/Tests/Tests.csproj | 28 ---------- .../Issue259/Issue259ExpressionParser.cs | 50 +++++++++-------- .../Issue259/Issue259ExpressionToken.cs | 2 +- .../Issue259/Issue259ParserSubclass.cs | 10 ++-- ParserTests/Issue259/Issue259Tests.cs | 16 ++++++ sly/parser/generator/NonTerminal.cs | 3 +- .../llparser/RecursiveDescentSyntaxParser.cs | 1 + 9 files changed, 52 insertions(+), 127 deletions(-) delete mode 100644 Issue259/CslyNullIssue/CslyNullIssue.csproj delete mode 100644 Issue259/Tests/Issue259Tests.cs delete mode 100644 Issue259/Tests/Tests.csproj rename Issue259/CslyNullIssue/ExpressionParser.cs => ParserTests/Issue259/Issue259ExpressionParser.cs (56%) rename Issue259/CslyNullIssue/ExpressionToken.cs => ParserTests/Issue259/Issue259ExpressionToken.cs (96%) rename Issue259/CslyNullIssue/ParserSubclass.cs => ParserTests/Issue259/Issue259ParserSubclass.cs (57%) create mode 100644 ParserTests/Issue259/Issue259Tests.cs diff --git a/Issue259/CslyNullIssue/CslyNullIssue.csproj b/Issue259/CslyNullIssue/CslyNullIssue.csproj deleted file mode 100644 index 9667f59a..00000000 --- a/Issue259/CslyNullIssue/CslyNullIssue.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - - Library - net5.0 - CslyNull259Issue - - - - - - - diff --git a/Issue259/Tests/Issue259Tests.cs b/Issue259/Tests/Issue259Tests.cs deleted file mode 100644 index 6e1ed066..00000000 --- a/Issue259/Tests/Issue259Tests.cs +++ /dev/null @@ -1,56 +0,0 @@ -using CslyNullIssue; -using System; -using Xunit; - -namespace Tests -{ - public class Issue259Tests - { - [Theory] - [InlineData("ON", "ON")] - [InlineData("ON AND OFF", "(ON AND OFF)")] - [InlineData("ON OR OFF", "(ON OR OFF)")] - [InlineData("OFF", "OFF")] - [InlineData("A:FOO, bool < 42", "(A:FOO, bool < 42)")] - [InlineData("L:BAR == 1", "(L:BAR == 1)")] - [InlineData("3 < 4", "(3 < 4)")] - [InlineData("(1 + 3) < (3 + 4)", "((1 + 3) < (3 + 4))")] - [InlineData("3 < 4 OR 4 < 5", "((3 < 4) OR (4 < 5))")] - [InlineData("(2 + 3) < (A:FOO,bool + 12)", "((2 + 3) < (A:FOO, bool + 12))")] - [InlineData("(2 + 3) <= (A:FOO,bool + 12)", "((2 + 3) <= (A:FOO, bool + 12))")] - [InlineData("(2 + 3) >= (A:FOO,bool + 12)", "((2 + 3) >= (A:FOO, bool + 12))")] - [InlineData("(2 + 3) > (A:FOO,bool + 12)", "((2 + 3) > (A:FOO, bool + 12))")] - [InlineData("3 == 4", "(3 == 4)")] - [InlineData("3 != 4", "(3 != 4)")] - [InlineData("1 + 2 < 3 + 4", "((1 + 2) < (3 + 4))")] - [InlineData("1 + 2 * 3 < 3 * 4 - 5", "((1 + (2 * 3)) < ((3 * 4) - 5))")] - [InlineData("1<2 AND 2>3", "((1 < 2) AND (2 > 3))")] - - // Comparison operators - [InlineData("1 < 2 && 1 <= 2 && 1 == 2 && 1 >= 2 && 1 > 2 && 1 != 2 && 1 <> 2", "(((((((1 < 2) AND (1 <= 2)) AND (1 == 2)) AND (1 >= 2)) AND (1 > 2)) AND (1 != 2)) AND (1 != 2))")] - - // AND/OR precedence. (AND binds tighter) - [InlineData("ON AND OFF OR ON AND OFF", "((ON AND OFF) OR (ON AND OFF))")] - [InlineData("ON AND (OFF OR ON) AND OFF", "((ON AND (OFF OR ON)) AND OFF)")] - [InlineData("1==1 || 2==2 && 3==3 || 4==4", "(((1 == 1) OR ((2 == 2) AND (3 == 3))) OR (4 == 4))")] - - // Alternate AND/OR - [InlineData("1==1 AND 2==2 && 3==3 OR 4==4 || 5==5", "(((((1 == 1) AND (2 == 2)) AND (3 == 3)) OR (4 == 4)) OR (5 == 5))")] - - // NOT checks. (NOT binds tightly to logicals and loosely to numerics - [InlineData("NOT ON", "(NOT ON)")] - [InlineData("NOT ON AND OFF", "((NOT ON) AND OFF)")] - [InlineData("NOT ON OR OFF", "((NOT ON) OR OFF)")] - [InlineData("NOT 1 == 2", "(NOT (1 == 2))")] - [InlineData("NOT ON AND NOT OFF OR NOT ON OR NOT OFF", "((((NOT ON) AND (NOT OFF)) OR (NOT ON)) OR (NOT OFF))")] - - // Unary minus checks - [InlineData("- A:FOO, bool > 3", "(-A:FOO, bool > 3)")] - [InlineData("-(A:FOO, bool) > 3", "(-A:FOO, bool > 3)")] - public void BooleanParser(string expression, string expected) - { - var result = ExpressionParser.Parse(expression); - Assert.Equal(expected, result); - } - } -} diff --git a/Issue259/Tests/Tests.csproj b/Issue259/Tests/Tests.csproj deleted file mode 100644 index 0172afda..00000000 --- a/Issue259/Tests/Tests.csproj +++ /dev/null @@ -1,28 +0,0 @@ - - - - net5.0 - - false - - Issue259Tests - - - - - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - - - - - - diff --git a/Issue259/CslyNullIssue/ExpressionParser.cs b/ParserTests/Issue259/Issue259ExpressionParser.cs similarity index 56% rename from Issue259/CslyNullIssue/ExpressionParser.cs rename to ParserTests/Issue259/Issue259ExpressionParser.cs index bc5e8482..2f174af6 100644 --- a/Issue259/CslyNullIssue/ExpressionParser.cs +++ b/ParserTests/Issue259/Issue259ExpressionParser.cs @@ -7,83 +7,87 @@ namespace CslyNullIssue { - public abstract class ExpressionParser + public abstract class Issue259ExpressionParser { [Operand] [Production("logical_literal: OFF")] [Production("logical_literal: ON")] - public string LiteralBool(Token token) + public string LiteralBool(Token token) { return token.Value; } [Operand] [Production("primary: HEX_NUMBER")] - public string NumericExpressionFromLiteralNumber(Token offsetToken) + public string NumericExpressionFromLiteralNumber(Token offsetToken) { return offsetToken.Value; } [Operand] [Production("primary: DECIMAL_NUMBER")] - public string NumericExpressionFromDecimalNumber(Token offsetToken) + public string NumericExpressionFromDecimalNumber(Token offsetToken) { var text = offsetToken.Value; var value = double.Parse(text, CultureInfo.InvariantCulture); return value.ToString(CultureInfo.InvariantCulture); } - [Infix((int)ExpressionToken.PLUS, Associativity.Left, 14)] - [Infix((int)ExpressionToken.MINUS, Associativity.Left, 14)] - [Infix((int)ExpressionToken.TIMES, Associativity.Left, 15)] - [Infix((int)ExpressionToken.DIVIDE, Associativity.Left, 15)] - [Infix((int)ExpressionToken.BITWISE_AND, Associativity.Left, 10)] - [Infix((int)ExpressionToken.BITWISE_OR, Associativity.Left, 8)] - public string NumberExpression(string lhs, Token token, string rhs) + [Infix((int)Issue259ExpressionToken.PLUS, Associativity.Left, 14)] + [Infix((int)Issue259ExpressionToken.MINUS, Associativity.Left, 14)] + [Infix((int)Issue259ExpressionToken.TIMES, Associativity.Left, 15)] + [Infix((int)Issue259ExpressionToken.DIVIDE, Associativity.Left, 15)] + [Infix((int)Issue259ExpressionToken.BITWISE_AND, Associativity.Left, 10)] + [Infix((int)Issue259ExpressionToken.BITWISE_OR, Associativity.Left, 8)] + public string NumberExpression(string lhs, Token token, string rhs) { return $"({lhs} {token.Value} {rhs})"; } - [Infix((int)ExpressionToken.LOGICAL_AND, Associativity.Left, 7)] - [Infix((int)ExpressionToken.LOGICAL_OR, Associativity.Left, 6)] - public string LogicalExpression(string lhs, Token token, string rhs) + [Infix((int)Issue259ExpressionToken.LOGICAL_AND, Associativity.Left, 7)] + [Infix((int)Issue259ExpressionToken.LOGICAL_OR, Associativity.Left, 6)] + public string LogicalExpression(string lhs, Token token, string rhs) { return $"({lhs} {token.Value} {rhs})"; } - [Prefix((int)ExpressionToken.MINUS, Associativity.Right, 17)] - public string NumericExpression(Token _, string child) + [Prefix((int)Issue259ExpressionToken.MINUS, Associativity.Right, 17)] + public string NumericExpression(Token _, string child) { return $"-{child}"; } // We want NOT to to bind tighter than AND/OR but looser than numeric comparison operations - [Prefix((int)ExpressionToken.NOT, Associativity.Right, 11)] - public string LogicalExpression(Token _, string child) + [Prefix((int)Issue259ExpressionToken.NOT, Associativity.Right, 11)] + public string LogicalExpression(Token _, string child) { return $"(NOT {child})"; } - [Infix((int)ExpressionToken.COMPARISON, Associativity.Left, 12)] - public string Comparison(string lhs, Token token, string rhs) + [Infix((int)Issue259ExpressionToken.COMPARISON, Associativity.Left, 12)] + public string Comparison(string lhs, Token token, string rhs) { return $"({lhs} {token.Value} {rhs})"; } - private static Parser cachedParser; + private static Parser cachedParser; - public static string Parse(string expression) where T : ExpressionParser, new() + public static string Parse(string expression) where T : Issue259ExpressionParser, new() { if (cachedParser == null) { var startingRule = $"{typeof(T).Name}_expressions"; var parserInstance = new T(); - var builder = new ParserBuilder(); + var builder = new ParserBuilder(); var parser = builder.BuildParser(parserInstance, ParserType.EBNF_LL_RECURSIVE_DESCENT, startingRule); if (parser.IsError) { throw new Exception($"Could not create parser. BNF is not valid. {parser.Errors[0]}"); } + + var dump = parser.Result.Configuration.Dump(); + Console.WriteLine(dump); + cachedParser = parser.Result; } diff --git a/Issue259/CslyNullIssue/ExpressionToken.cs b/ParserTests/Issue259/Issue259ExpressionToken.cs similarity index 96% rename from Issue259/CslyNullIssue/ExpressionToken.cs rename to ParserTests/Issue259/Issue259ExpressionToken.cs index 8b3cff53..44da3030 100644 --- a/Issue259/CslyNullIssue/ExpressionToken.cs +++ b/ParserTests/Issue259/Issue259ExpressionToken.cs @@ -2,7 +2,7 @@ namespace CslyNullIssue { - public enum ExpressionToken + public enum Issue259ExpressionToken { [Lexeme("L:[A-Za-z0-9_]+")] LVAR = 50, diff --git a/Issue259/CslyNullIssue/ParserSubclass.cs b/ParserTests/Issue259/Issue259ParserSubclass.cs similarity index 57% rename from Issue259/CslyNullIssue/ParserSubclass.cs rename to ParserTests/Issue259/Issue259ParserSubclass.cs index 2ad6fec7..72456c17 100644 --- a/Issue259/CslyNullIssue/ParserSubclass.cs +++ b/ParserTests/Issue259/Issue259ParserSubclass.cs @@ -3,19 +3,19 @@ namespace CslyNullIssue { - public class ParserSubclass : ExpressionParser + public class Issue259ParserSubclass : Issue259ExpressionParser { [Operand] [Production("numeric_literal: LVAR")] - public string Lvar(Token token) + public string Lvar(Token token) { return token.Value; } [Operand] [Production("numeric_literal: SIMVAR")] - public string SimVarExpression(Token simvarToken) + public string SimVarExpression(Token simvarToken) { var text = simvarToken.Value[2..]; var bits = text.Split(","); @@ -25,8 +25,8 @@ public string SimVarExpression(Token simvarToken) } [Operand] - [Production("group : LPAREN ParserSubclass_expressions RPAREN")] - public string Group(Token _1, string child, Token _2) + [Production("group : LPAREN Issue259ParserSubclass_expressions RPAREN")] + public string Group(Token _1, string child, Token _2) { return child; } diff --git a/ParserTests/Issue259/Issue259Tests.cs b/ParserTests/Issue259/Issue259Tests.cs new file mode 100644 index 00000000..23a5f07e --- /dev/null +++ b/ParserTests/Issue259/Issue259Tests.cs @@ -0,0 +1,16 @@ +using System; +using Xunit; + +namespace CslyNullIssue +{ + public class Issue259Tests + { + [Fact] + public static void Issue259Test() + { + var expression = "1 < 2 && 1 <= 2 && 1 == 2 && 1 >= 2 && 1 > 2 && 1 != 2 && 1 <> 2"; + var exception = Assert.Throws(() => Issue259ExpressionParser.Parse(expression)); + Assert.True(exception.Message.Contains(@"COMPARISON [<] @line 1, column 79")); + } + } +} \ No newline at end of file diff --git a/sly/parser/generator/NonTerminal.cs b/sly/parser/generator/NonTerminal.cs index 119aa51c..614c6070 100644 --- a/sly/parser/generator/NonTerminal.cs +++ b/sly/parser/generator/NonTerminal.cs @@ -33,7 +33,8 @@ public string Dump() foreach (var rule in Rules) { - dump.Append(Name).Append(" : "); + + dump.Append(Name).Append(rule.IsInfixExpressionRule ? " (*) ":"").Append(" : "); foreach (IClause clause in rule.Clauses) { dump.Append(clause.Dump()).Append(" "); diff --git a/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs b/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs index d0a5b03f..1d79382a 100644 --- a/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs +++ b/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs @@ -239,6 +239,7 @@ public SyntaxParseResult ParseTerminal(IList> tokens, TerminalClau token.Discarded = terminal.Discarded; result.Root = new SyntaxLeaf(token, terminal.Discarded); result.HasByPassNodes = false; + result.Errors.Add(new UnexpectedTokenSyntaxError(token,I18n,terminal.ExpectedToken)); result.AddExpecting(terminal.ExpectedToken); return result; } From 76341edcf98fb7b1b8598b3d17835aba34312f9c Mon Sep 17 00:00:00 2001 From: b3b00 Date: Mon, 29 Nov 2021 16:41:38 +0100 Subject: [PATCH 69/82] bugfix #259 --- sly.sln | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/sly.sln b/sly.sln index eefdb0b1..7755d7b6 100644 --- a/sly.sln +++ b/sly.sln @@ -33,12 +33,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "indented", "samples\indente EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "indentedWhile", "samples\IndentedWhile\indentedWhile.csproj", "{B1FAADF0-208D-4A0A-A24D-D7BF4E33DCB4}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Issue259", "Issue259", "{134B62C4-0138-4B17-A1C1-FC74D6DBB604}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CslyNullIssue", "Issue259\CslyNullIssue\CslyNullIssue.csproj", "{FFE5ABA4-9356-4909-BCB3-C8657FAC04EE}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests", "Issue259\Tests\Tests.csproj", "{9818D545-02DE-4157-BCEA-A904E3B3BBCD}" -EndProject Global GlobalSection(Performance) = preSolution HasPerformanceSessions = true @@ -108,14 +102,6 @@ Global {B1FAADF0-208D-4A0A-A24D-D7BF4E33DCB4}.Debug|Any CPU.Build.0 = Debug|Any CPU {B1FAADF0-208D-4A0A-A24D-D7BF4E33DCB4}.Release|Any CPU.ActiveCfg = Release|Any CPU {B1FAADF0-208D-4A0A-A24D-D7BF4E33DCB4}.Release|Any CPU.Build.0 = Release|Any CPU - {FFE5ABA4-9356-4909-BCB3-C8657FAC04EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FFE5ABA4-9356-4909-BCB3-C8657FAC04EE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FFE5ABA4-9356-4909-BCB3-C8657FAC04EE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FFE5ABA4-9356-4909-BCB3-C8657FAC04EE}.Release|Any CPU.Build.0 = Release|Any CPU - {9818D545-02DE-4157-BCEA-A904E3B3BBCD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9818D545-02DE-4157-BCEA-A904E3B3BBCD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9818D545-02DE-4157-BCEA-A904E3B3BBCD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9818D545-02DE-4157-BCEA-A904E3B3BBCD}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -129,8 +115,6 @@ Global {FFCA5A16-0388-4A8E-8B40-0D1FDA5D4B7B} = {36ED7F1A-2E81-4A71-81FE-A357E5840A33} {7C6C4A13-2AE5-4070-A2E1-05B6A83DC97C} = {36ED7F1A-2E81-4A71-81FE-A357E5840A33} {B1FAADF0-208D-4A0A-A24D-D7BF4E33DCB4} = {36ED7F1A-2E81-4A71-81FE-A357E5840A33} - {FFE5ABA4-9356-4909-BCB3-C8657FAC04EE} = {134B62C4-0138-4B17-A1C1-FC74D6DBB604} - {9818D545-02DE-4157-BCEA-A904E3B3BBCD} = {134B62C4-0138-4B17-A1C1-FC74D6DBB604} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {43254130-CF3E-480E-952F-E50CA5D2E417} From a1f11c8b070a8f84aa2035afce18fd54497fcfc0 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Mon, 29 Nov 2021 16:43:57 +0100 Subject: [PATCH 70/82] cleaning --- ParserTests/Issue259/Issue259ExpressionParser.cs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/ParserTests/Issue259/Issue259ExpressionParser.cs b/ParserTests/Issue259/Issue259ExpressionParser.cs index 2f174af6..017ab4a7 100644 --- a/ParserTests/Issue259/Issue259ExpressionParser.cs +++ b/ParserTests/Issue259/Issue259ExpressionParser.cs @@ -84,10 +84,6 @@ public string Comparison(string lhs, Token token, strin { throw new Exception($"Could not create parser. BNF is not valid. {parser.Errors[0]}"); } - - var dump = parser.Result.Configuration.Dump(); - Console.WriteLine(dump); - cachedParser = parser.Result; } From 4a6ddfb12a32756d270b5cbab6bc7050d8a1948a Mon Sep 17 00:00:00 2001 From: b3b00 Date: Tue, 30 Nov 2021 17:40:15 +0100 Subject: [PATCH 71/82] bugfix #259 --- ...9ExpressionParser.cs => Issue259Parser.cs} | 66 ++++++++----------- .../Issue259/Issue259ParserSubclass.cs | 35 ---------- ParserTests/Issue259/Issue259Tests.cs | 37 ++++++++++- .../generator/ExpressionRulesGenerator.cs | 3 +- .../EBNFRecursiveDescentSyntaxParser.cs | 13 +--- .../llparser/RecursiveDescentSyntaxParser.cs | 1 + 6 files changed, 64 insertions(+), 91 deletions(-) rename ParserTests/Issue259/{Issue259ExpressionParser.cs => Issue259Parser.cs} (61%) delete mode 100644 ParserTests/Issue259/Issue259ParserSubclass.cs diff --git a/ParserTests/Issue259/Issue259ExpressionParser.cs b/ParserTests/Issue259/Issue259Parser.cs similarity index 61% rename from ParserTests/Issue259/Issue259ExpressionParser.cs rename to ParserTests/Issue259/Issue259Parser.cs index 017ab4a7..ee94909f 100644 --- a/ParserTests/Issue259/Issue259ExpressionParser.cs +++ b/ParserTests/Issue259/Issue259Parser.cs @@ -1,13 +1,10 @@ -using sly.lexer; -using sly.parser; +using System.Globalization; +using sly.lexer; using sly.parser.generator; -using System; -using System.Globalization; -using System.Linq; namespace CslyNullIssue { - public abstract class Issue259ExpressionParser + public class Issue259Parser { [Operand] [Production("logical_literal: OFF")] @@ -69,43 +66,32 @@ public string Comparison(string lhs, Token token, strin { return $"({lhs} {token.Value} {rhs})"; } + - private static Parser cachedParser; - - public static string Parse(string expression) where T : Issue259ExpressionParser, new() + [Operand] + [Production("numeric_literal: LVAR")] + public string Lvar(Token token) { - if (cachedParser == null) - { - var startingRule = $"{typeof(T).Name}_expressions"; - var parserInstance = new T(); - var builder = new ParserBuilder(); - var parser = builder.BuildParser(parserInstance, ParserType.EBNF_LL_RECURSIVE_DESCENT, startingRule); - if (parser.IsError) - { - throw new Exception($"Could not create parser. BNF is not valid. {parser.Errors[0]}"); - } - cachedParser = parser.Result; - } - - // To simplify an ambiguous lexer which would result from having both && and & as well as || and |, we'll - // simplify the incoming expression by turning && into AND and || into OR: - expression = expression.Replace("&&", " AND "); - expression = expression.Replace("||", " OR "); + return token.Value; + } - var parseResult = cachedParser.Parse(expression); - if (parseResult.IsError) - { - if (parseResult.Errors.Any()) - { - throw new Exception(parseResult.Errors[0].ErrorMessage); - } - else - { - throw new Exception("unknwon error "); - } - } + [Operand] + [Production("numeric_literal: SIMVAR")] + public string SimVarExpression(Token simvarToken) + { + var text = simvarToken.Value[2..]; + var bits = text.Split(","); + var varName = bits[0]; + var type = bits[1].Trim(); + return $"A:{varName}, {type}"; + } - return parseResult.Result; + [Operand] + [Production("group : LPAREN Issue259Parser_expressions RPAREN")] + public string Group(Token _1, string child, Token _2) + { + return child; } + } -} \ No newline at end of file +} diff --git a/ParserTests/Issue259/Issue259ParserSubclass.cs b/ParserTests/Issue259/Issue259ParserSubclass.cs deleted file mode 100644 index 72456c17..00000000 --- a/ParserTests/Issue259/Issue259ParserSubclass.cs +++ /dev/null @@ -1,35 +0,0 @@ -using sly.lexer; -using sly.parser.generator; - -namespace CslyNullIssue -{ - public class Issue259ParserSubclass : Issue259ExpressionParser - { - - [Operand] - [Production("numeric_literal: LVAR")] - public string Lvar(Token token) - { - return token.Value; - } - - [Operand] - [Production("numeric_literal: SIMVAR")] - public string SimVarExpression(Token simvarToken) - { - var text = simvarToken.Value[2..]; - var bits = text.Split(","); - var varName = bits[0]; - var type = bits[1].Trim(); - return $"A:{varName}, {type}"; - } - - [Operand] - [Production("group : LPAREN Issue259ParserSubclass_expressions RPAREN")] - public string Group(Token _1, string child, Token _2) - { - return child; - } - - } -} diff --git a/ParserTests/Issue259/Issue259Tests.cs b/ParserTests/Issue259/Issue259Tests.cs index 23a5f07e..780bccb7 100644 --- a/ParserTests/Issue259/Issue259Tests.cs +++ b/ParserTests/Issue259/Issue259Tests.cs @@ -1,4 +1,6 @@ using System; +using sly.parser; +using sly.parser.generator; using Xunit; namespace CslyNullIssue @@ -8,9 +10,38 @@ public class Issue259Tests [Fact] public static void Issue259Test() { - var expression = "1 < 2 && 1 <= 2 && 1 == 2 && 1 >= 2 && 1 > 2 && 1 != 2 && 1 <> 2"; - var exception = Assert.Throws(() => Issue259ExpressionParser.Parse(expression)); - Assert.True(exception.Message.Contains(@"COMPARISON [<] @line 1, column 79")); + var expression = "1 < 2 AND 3 <= 4 AND 5 == 6 AND 7 >= 8 AND 9 > 10 AND 11 != 12 AND 13 <> 14"; + + + var startingRule = $"{typeof(Issue259Parser).Name}_expressions"; + var parserInstance = new Issue259Parser(); + var builder = new ParserBuilder("en"); + var parser = builder.BuildParser(parserInstance, ParserType.EBNF_LL_RECURSIVE_DESCENT, startingRule); + Assert.True(parser.IsOk); + Assert.NotNull(parser.Result); + + Console.WriteLine(parser.Result.Configuration.Dump()); + + var parseResult = parser.Result.Parse(expression); + + Assert.True(parseResult.IsError); + Assert.Single(parseResult.Errors); + + var error = parseResult.Errors[0]; + + var unexpectedTokenError = error as UnexpectedTokenSyntaxError; + Assert.NotNull(unexpectedTokenError); + Assert.Equal(Issue259ExpressionToken.COMPARISON, unexpectedTokenError.UnexpectedToken.TokenID); + Assert.Equal(">",unexpectedTokenError.UnexpectedToken.Value); + Assert.Contains(unexpectedTokenError.ExpectedTokens, x => x == Issue259ExpressionToken.ON); + Assert.Contains(unexpectedTokenError.ExpectedTokens, x => x == Issue259ExpressionToken.OFF); + Assert.Contains(unexpectedTokenError.ExpectedTokens, x => x == Issue259ExpressionToken.MINUS); + Assert.Contains(unexpectedTokenError.ExpectedTokens, x => x == Issue259ExpressionToken.HEX_NUMBER); + Assert.Contains(unexpectedTokenError.ExpectedTokens, x => x == Issue259ExpressionToken.DECIMAL_NUMBER); + Assert.Contains(unexpectedTokenError.ExpectedTokens, x => x == Issue259ExpressionToken.LVAR); + Assert.Contains(unexpectedTokenError.ExpectedTokens, x => x == Issue259ExpressionToken.SIMVAR); + Assert.Contains(unexpectedTokenError.ExpectedTokens, x => x == Issue259ExpressionToken.LPAREN); + } } } \ No newline at end of file diff --git a/sly/parser/generator/ExpressionRulesGenerator.cs b/sly/parser/generator/ExpressionRulesGenerator.cs index 349bf28b..35c0e928 100644 --- a/sly/parser/generator/ExpressionRulesGenerator.cs +++ b/sly/parser/generator/ExpressionRulesGenerator.cs @@ -223,7 +223,8 @@ private NonTerminal BuildPrecedenceNonTerminal(string name, string nextName, var rule = new Rule() { ExpressionAffix = Affix.InFix, - IsExpressionRule = true + IsExpressionRule = true, + NonTerminalName = name }; rule.Clauses.Add(new NonTerminalClause(nextName)); diff --git a/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs b/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs index 0c741e7e..b3667559 100644 --- a/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs +++ b/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs @@ -184,12 +184,6 @@ public virtual SyntaxParseResult ParseInfixExpressionRule(IList> t { if (firstResult.Root is SyntaxNode node) { - if (node.Name == "expr_17_MINUS") - { - ; - } - // node.IsByPassNode = true; - // node.HasByPassNodes = true; firstResult.Errors.AddRange(secondResult.Errors); firstResult.AddExpectings(secondResult.Expecting); return firstResult; @@ -225,14 +219,9 @@ public virtual SyntaxParseResult ParseInfixExpressionRule(IList> t if (third is NonTerminalClause thirdNonTerminal) { thirdResult = ParseNonTerminal(tokens, thirdNonTerminal, currentPosition); - if (thirdResult.IsError) { - if (firstResult.Root is SyntaxNode node) - { - firstResult.AddExpectings(thirdResult.Expecting); - return firstResult; - } + return thirdResult; } else { diff --git a/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs b/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs index 1d79382a..23449439 100644 --- a/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs +++ b/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs @@ -397,6 +397,7 @@ private SyntaxParseResult NoMatchingRuleError(IList> tokens, int c error.IsEnded = false; error.Errors = noRuleErrors; error.EndingPosition = currentPosition; + error.Expecting = allAcceptableTokens; return error; } From a992f339f4ffc71c696daf18d850c1fcdc2f83e7 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Wed, 1 Dec 2021 13:32:34 +0100 Subject: [PATCH 72/82] bump to 2.8.0.1 --- sly/sly.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sly/sly.csproj b/sly/sly.csproj index d02525d5..89ac9eb2 100644 --- a/sly/sly.csproj +++ b/sly/sly.csproj @@ -6,11 +6,11 @@ $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb #LY is a parser generator halfway between parser combinators and parser generator like ANTLR b3b00 - 2.8.0 + 2.8.0.1 https://github.com/b3b00/sly https://github.com/b3b00/sly https://github.com/b3b00/sly/blob/master/LICENSE - 2.8.0 + 2.8.0.1 Library From 44adaa42e2ba4204c1b04f24f241a012811721d5 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Wed, 1 Dec 2021 13:43:33 +0100 Subject: [PATCH 73/82] cleaning --- ParserTests/ExpressionGeneratorTests.cs | 4 ++-- ParserTests/Issue259/Issue259ExpressionToken.cs | 2 +- ParserTests/Issue259/Issue259Parser.cs | 2 +- ParserTests/Issue259/Issue259Tests.cs | 4 +--- sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs | 1 - 5 files changed, 5 insertions(+), 8 deletions(-) diff --git a/ParserTests/ExpressionGeneratorTests.cs b/ParserTests/ExpressionGeneratorTests.cs index af653f66..19fab4fd 100644 --- a/ParserTests/ExpressionGeneratorTests.cs +++ b/ParserTests/ExpressionGeneratorTests.cs @@ -182,12 +182,12 @@ public void TestBuild() Assert.Equal(3, nt.Rules.Count); Assert.Contains("primary_value", nt.Name); nt = nonterminals[2]; - Assert.Equal(1, nt.Rules.Count); + Assert.Single(nt.Rules); Assert.Contains("10", nt.Name); Assert.Contains("PLUS", nt.Name); Assert.Contains("MINUS", nt.Name); nt = nonterminals[3]; - Assert.Equal(1, nt.Rules.Count); + Assert.Single(nt.Rules); Assert.Contains("50", nt.Name); Assert.Contains("TIMES", nt.Name); Assert.Contains("DIVIDE", nt.Name); diff --git a/ParserTests/Issue259/Issue259ExpressionToken.cs b/ParserTests/Issue259/Issue259ExpressionToken.cs index 44da3030..f9027032 100644 --- a/ParserTests/Issue259/Issue259ExpressionToken.cs +++ b/ParserTests/Issue259/Issue259ExpressionToken.cs @@ -1,6 +1,6 @@ using sly.lexer; -namespace CslyNullIssue +namespace ParserTests.Issue259 { public enum Issue259ExpressionToken { diff --git a/ParserTests/Issue259/Issue259Parser.cs b/ParserTests/Issue259/Issue259Parser.cs index ee94909f..7447a0ee 100644 --- a/ParserTests/Issue259/Issue259Parser.cs +++ b/ParserTests/Issue259/Issue259Parser.cs @@ -2,7 +2,7 @@ using sly.lexer; using sly.parser.generator; -namespace CslyNullIssue +namespace ParserTests.Issue259 { public class Issue259Parser { diff --git a/ParserTests/Issue259/Issue259Tests.cs b/ParserTests/Issue259/Issue259Tests.cs index 780bccb7..ebdd130b 100644 --- a/ParserTests/Issue259/Issue259Tests.cs +++ b/ParserTests/Issue259/Issue259Tests.cs @@ -3,7 +3,7 @@ using sly.parser.generator; using Xunit; -namespace CslyNullIssue +namespace ParserTests.Issue259 { public class Issue259Tests { @@ -20,8 +20,6 @@ public static void Issue259Test() Assert.True(parser.IsOk); Assert.NotNull(parser.Result); - Console.WriteLine(parser.Result.Configuration.Dump()); - var parseResult = parser.Result.Parse(expression); Assert.True(parseResult.IsError); diff --git a/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs b/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs index 23449439..9a6b1d57 100644 --- a/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs +++ b/sly/parser/parser/llparser/RecursiveDescentSyntaxParser.cs @@ -348,7 +348,6 @@ public SyntaxParseResult ParseNonTerminal(IList> tokens, string no max.IsError = true; max.Root = null; max.IsEnded = false; - //max.EndingPosition = currentPosition; } var result = new SyntaxParseResult(); From ee5f0975dd245d058cbbd4376d93ef52b0204f16 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Wed, 1 Dec 2021 17:01:10 +0100 Subject: [PATCH 74/82] bugfix #261 --- ParserTests/Issue260/Issue261Lexer.cs | 10 ++++++++++ ParserTests/IssuesTests.cs | 18 ++++++++++++++++++ sly/lexer/attributes/StringAttribute.cs | 5 ++--- 3 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 ParserTests/Issue260/Issue261Lexer.cs diff --git a/ParserTests/Issue260/Issue261Lexer.cs b/ParserTests/Issue260/Issue261Lexer.cs new file mode 100644 index 00000000..6c2db258 --- /dev/null +++ b/ParserTests/Issue260/Issue261Lexer.cs @@ -0,0 +1,10 @@ +using sly.lexer; + +namespace ParserTests.Issue260 +{ + public enum Issue261Lexer + { + [String] + test = 1 + } +} \ No newline at end of file diff --git a/ParserTests/IssuesTests.cs b/ParserTests/IssuesTests.cs index 50bcc25f..de60da8a 100644 --- a/ParserTests/IssuesTests.cs +++ b/ParserTests/IssuesTests.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using ParserTests.Issue251; +using ParserTests.Issue260; using sly.buildresult; using sly.lexer; using sly.parser.generator; @@ -219,5 +220,22 @@ public static void Issue251LeftrecForBNF() { var error = bres.Errors.First(); Assert.Equal(ErrorCodes.PARSER_LEFT_RECURSIVE, error.Code); } + + [Fact] + public static void Issue261Test() + { + var buildResult = LexerBuilder.BuildLexer(); + Assert.True(buildResult.IsOk); + Assert.NotNull(buildResult.Result); + var lexer = buildResult.Result; + var lex = lexer.Tokenize(@"""test"""); + Assert.True(lex.IsOk); + var tokens = lex.Tokens; + Assert.NotNull(tokens); + Assert.Equal(2,tokens.Count); + Assert.Equal("test",tokens[0].StringWithoutQuotes); + + + } } } \ No newline at end of file diff --git a/sly/lexer/attributes/StringAttribute.cs b/sly/lexer/attributes/StringAttribute.cs index 85d52a5a..650a88e1 100644 --- a/sly/lexer/attributes/StringAttribute.cs +++ b/sly/lexer/attributes/StringAttribute.cs @@ -2,9 +2,8 @@ namespace sly.lexer { public class StringAttribute : LexemeAttribute { - public StringAttribute(string delimiter = null, string escape = null) : base(GenericToken.String, delimiter, escape) - { - + public StringAttribute(string delimiter = "\"", string escape = "\\") : base(GenericToken.String, delimiter, escape) + { } } } \ No newline at end of file From 636f2c283db145e065f7d03d24dfe5cb44557a1c Mon Sep 17 00:00:00 2001 From: b3b00 Date: Wed, 1 Dec 2021 17:02:12 +0100 Subject: [PATCH 75/82] bugfix #261 : upgrade version to 2.8.0.2 --- sly/sly.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sly/sly.csproj b/sly/sly.csproj index 89ac9eb2..7cbdafbc 100644 --- a/sly/sly.csproj +++ b/sly/sly.csproj @@ -6,11 +6,11 @@ $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb #LY is a parser generator halfway between parser combinators and parser generator like ANTLR b3b00 - 2.8.0.1 + 2.8.0.2 https://github.com/b3b00/sly https://github.com/b3b00/sly https://github.com/b3b00/sly/blob/master/LICENSE - 2.8.0.1 + 2.8.0.2 Library From 97a9ef42118c372c4decb6a05e6a8c84809dabdd Mon Sep 17 00:00:00 2001 From: Olivier Duhart <1224790+b3b00@users.noreply.github.com> Date: Fri, 10 Dec 2021 18:43:43 +0100 Subject: [PATCH 76/82] Update dotnetcore.yml --- .github/workflows/dotnetcore.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index caa27b7d..9cc7f0b7 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -54,10 +54,10 @@ jobs: reporttypes: 'HtmlInline;MarkdownSummary' verbosity: 'Info' # The verbosity level of the log messages. Values: Verbose, Info, Warning, Error, Off tag: '${{ github.run_number }}_${{ github.run_id }}' - - name: Publish coverage summary - uses: marocchino/sticky-pull-request-comment@v2 - with: - path: coveragereport/Summary.md +# - name: Publish coverage summary +# uses: marocchino/sticky-pull-request-comment@v2 +# with: +# path: coveragereport/Summary.md - name: publish nuget if: matrix.os == 'windows-latest' && env.PUBLISH_NUGET id: publish_nuget From db1649330100d325e1d81b30f8f975f41e676368 Mon Sep 17 00:00:00 2001 From: Olivier Duhart <1224790+b3b00@users.noreply.github.com> Date: Fri, 10 Dec 2021 18:49:15 +0100 Subject: [PATCH 77/82] Update dotnetcore.yml --- .github/workflows/dotnetcore.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index 9cc7f0b7..c13bc56a 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -9,6 +9,8 @@ on: pull_request: branches: - dev +permissions: + pull-requests: write jobs: build: env: From b95dfd3601e0bfd4e402a8afe679b1bf5ef5f072 Mon Sep 17 00:00:00 2001 From: Bernhard Kunnert Date: Fri, 10 Dec 2021 17:24:54 +0100 Subject: [PATCH 78/82] Test and fix for #263 --- ParserTests/Issue263/Issue263Parser.cs | 30 ++++++++ ParserTests/Issue263/Issue263Test.cs | 71 +++++++++++++++++++ ParserTests/Issue263/Issue263Token.cs | 26 +++++++ .../EBNFRecursiveDescentSyntaxParser.cs | 12 +++- 4 files changed, 138 insertions(+), 1 deletion(-) create mode 100644 ParserTests/Issue263/Issue263Parser.cs create mode 100644 ParserTests/Issue263/Issue263Test.cs create mode 100644 ParserTests/Issue263/Issue263Token.cs diff --git a/ParserTests/Issue263/Issue263Parser.cs b/ParserTests/Issue263/Issue263Parser.cs new file mode 100644 index 00000000..7bbc59e2 --- /dev/null +++ b/ParserTests/Issue263/Issue263Parser.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Text; + +using sly.lexer; +using sly.parser.generator; + +namespace ParserTests.Issue263 +{ + public class Issue263Parser + { + [Production("operation : chunklist")] + public object Operation(object chunklist) + { + return chunklist; + } + + [Production("chunklist : chunk+")] + public object ChunkList(List chunklist) + { + return null; + } + + [Production("chunk : LPARA RPARA")] // | bracketchunk | genericchunk | curlychunk + public object Chunk(Token lParaToken, Token rParaToken) + { + return null; + } + } +} diff --git a/ParserTests/Issue263/Issue263Test.cs b/ParserTests/Issue263/Issue263Test.cs new file mode 100644 index 00000000..ab08a636 --- /dev/null +++ b/ParserTests/Issue263/Issue263Test.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using System.Text; + +using sly.parser; +using sly.parser.generator; + +using Xunit; + +namespace ParserTests.Issue263 +{ + public class Issue263Test + { + [Fact] + public void OperationCanBeParsed() + { + var source = "()"; + + var commandParser = new Issue263Parser(); + var parserBuilder = new ParserBuilder(); + var buildResult = parserBuilder.BuildParser(commandParser, ParserType.EBNF_LL_RECURSIVE_DESCENT, "operation"); + + Assert.True(buildResult.IsOk); + + var parser = buildResult.Result; + var parseResult = parser.Parse(source); + + Assert.True(parseResult.IsOk); + } + + [Fact] + public void OperationCannotBeParsedAndReturnsError() + { + var source = "(]"; + + var commandParser = new Issue263Parser(); + var parserBuilder = new ParserBuilder(); + var buildResult = parserBuilder.BuildParser(commandParser, ParserType.EBNF_LL_RECURSIVE_DESCENT, "operation"); + + Assert.True(buildResult.IsOk); + + var parser = buildResult.Result; + var parseResult = parser.Parse(source); + + Assert.False(parseResult.IsOk); + Assert.Single(parseResult.Errors); + var error = parseResult.Errors[0]; + Assert.Equal(ErrorType.UnexpectedToken, error.ErrorType); + } + + [Fact] + public void OperationCannotBeParsedAndReturnsError2() + { + var source = "()()(]"; + + var commandParser = new Issue263Parser(); + var parserBuilder = new ParserBuilder(); + var buildResult = parserBuilder.BuildParser(commandParser, ParserType.EBNF_LL_RECURSIVE_DESCENT, "operation"); + + Assert.True(buildResult.IsOk); + + var parser = buildResult.Result; + var parseResult = parser.Parse(source); + + Assert.False(parseResult.IsOk); + Assert.Single(parseResult.Errors); + var error = parseResult.Errors[0]; + Assert.Equal(ErrorType.UnexpectedToken, error.ErrorType); + } + } +} diff --git a/ParserTests/Issue263/Issue263Token.cs b/ParserTests/Issue263/Issue263Token.cs new file mode 100644 index 00000000..7aac27e3 --- /dev/null +++ b/ParserTests/Issue263/Issue263Token.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Text; + +using sly.lexer; + +namespace ParserTests.Issue263 +{ + public enum Issue263Token + { + [Lexeme("\\(")] + LPARA, + + [Lexeme("\\)")] + RPARA, + + [Lexeme("a")] + IDENTIFIER, + + [Lexeme("\\[")] + LBRAC, + + [Lexeme("\\]")] + RBRAC, + } +} diff --git a/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs b/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs index b3667559..9b4dce9a 100644 --- a/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs +++ b/sly/parser/parser/llparser/EBNFRecursiveDescentSyntaxParser.cs @@ -377,6 +377,8 @@ public SyntaxParseResult ParseOneOrMore(IList> tokens, OneOrMoreCl bool hasByPasNodes = false; SyntaxParseResult firstInnerResult = null; + var innerErrors = new List>(); + if (innerClause is TerminalClause) { manyNode.IsManyTokens = true; @@ -414,17 +416,25 @@ public SyntaxParseResult ParseOneOrMore(IList> tokens, OneOrMoreCl var moreChildren = (ManySyntaxNode) nextResult.Root; manyNode.Children.AddRange(moreChildren.Children); } + if (nextResult != null) + { + innerErrors.AddRange(nextResult.Errors); + } isError = false; } - else { + if (firstInnerResult != null) + { + innerErrors.AddRange(firstInnerResult.Errors); + } isError = true; } result.EndingPosition = currentPosition; result.IsError = isError; + result.Errors = innerErrors; result.Root = manyNode; result.IsEnded = lastInnerResult != null && lastInnerResult.IsEnded; result.HasByPassNodes = hasByPasNodes; From e2052c72e943b43e957555d7084507b47517c44d Mon Sep 17 00:00:00 2001 From: Bernhard Kunnert Date: Sat, 11 Dec 2021 10:10:24 +0100 Subject: [PATCH 79/82] streamline test code --- ParserTests/Issue263/Issue263Parser.cs | 7 +++++-- ParserTests/Issue263/Issue263Test.cs | 28 ++++---------------------- 2 files changed, 9 insertions(+), 26 deletions(-) diff --git a/ParserTests/Issue263/Issue263Parser.cs b/ParserTests/Issue263/Issue263Parser.cs index 7bbc59e2..3495bc89 100644 --- a/ParserTests/Issue263/Issue263Parser.cs +++ b/ParserTests/Issue263/Issue263Parser.cs @@ -10,18 +10,21 @@ namespace ParserTests.Issue263 public class Issue263Parser { [Production("operation : chunklist")] + [System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0060:Remove unused parameter", Justification = "Not used in test code")] public object Operation(object chunklist) { - return chunklist; + return null; } [Production("chunklist : chunk+")] + [System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0060:Remove unused parameter", Justification = "Not used in test code")] public object ChunkList(List chunklist) { return null; } - [Production("chunk : LPARA RPARA")] // | bracketchunk | genericchunk | curlychunk + [Production("chunk : LPARA RPARA")] + [System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0060:Remove unused parameter", Justification = "Not used in test code")] public object Chunk(Token lParaToken, Token rParaToken) { return null; diff --git a/ParserTests/Issue263/Issue263Test.cs b/ParserTests/Issue263/Issue263Test.cs index ab08a636..0cdd3f05 100644 --- a/ParserTests/Issue263/Issue263Test.cs +++ b/ParserTests/Issue263/Issue263Test.cs @@ -28,31 +28,11 @@ public void OperationCanBeParsed() Assert.True(parseResult.IsOk); } - [Fact] - public void OperationCannotBeParsedAndReturnsError() - { - var source = "(]"; - - var commandParser = new Issue263Parser(); - var parserBuilder = new ParserBuilder(); - var buildResult = parserBuilder.BuildParser(commandParser, ParserType.EBNF_LL_RECURSIVE_DESCENT, "operation"); - - Assert.True(buildResult.IsOk); - - var parser = buildResult.Result; - var parseResult = parser.Parse(source); - - Assert.False(parseResult.IsOk); - Assert.Single(parseResult.Errors); - var error = parseResult.Errors[0]; - Assert.Equal(ErrorType.UnexpectedToken, error.ErrorType); - } - - [Fact] - public void OperationCannotBeParsedAndReturnsError2() + [Theory] + [InlineData("([")] + [InlineData("()()(]")] + public void OperationCannotBeParsedAndReturnsError(string source) { - var source = "()()(]"; - var commandParser = new Issue263Parser(); var parserBuilder = new ParserBuilder(); var buildResult = parserBuilder.BuildParser(commandParser, ParserType.EBNF_LL_RECURSIVE_DESCENT, "operation"); From f0c8151d158d7e2c33b229d7805d0e340b065758 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Sat, 11 Dec 2021 13:43:46 +0100 Subject: [PATCH 80/82] update tests for #263. upgrade version to 2.8.0.3 --- ParserTests/Issue263/Issue263Test.cs | 15 ++++++++++++--- ...Salary_and_Bonus_Letter_FY21_22__English.pdf | Bin 0 -> 68679 bytes sly/sly.csproj | 4 ++-- 3 files changed, 14 insertions(+), 5 deletions(-) create mode 100644 logos/007937_Salary_and_Bonus_Letter_FY21_22__English.pdf diff --git a/ParserTests/Issue263/Issue263Test.cs b/ParserTests/Issue263/Issue263Test.cs index 0cdd3f05..1a144966 100644 --- a/ParserTests/Issue263/Issue263Test.cs +++ b/ParserTests/Issue263/Issue263Test.cs @@ -29,9 +29,9 @@ public void OperationCanBeParsed() } [Theory] - [InlineData("([")] - [InlineData("()()(]")] - public void OperationCannotBeParsedAndReturnsError(string source) + [InlineData("([", Issue263Token.LBRAC,Issue263Token.RPARA)] + [InlineData("()()(]", Issue263Token.RBRAC,Issue263Token.RPARA)] + public void OperationCannotBeParsedAndReturnsError(string source, Issue263Token unexpectedToken, params Issue263Token[] expectedTokens) { var commandParser = new Issue263Parser(); var parserBuilder = new ParserBuilder(); @@ -46,6 +46,15 @@ public void OperationCannotBeParsedAndReturnsError(string source) Assert.Single(parseResult.Errors); var error = parseResult.Errors[0]; Assert.Equal(ErrorType.UnexpectedToken, error.ErrorType); + Assert.IsType>(error); + var unexpected = error as UnexpectedTokenSyntaxError; + Assert.NotNull(unexpected); + Assert.Equal(unexpectedToken,unexpected.UnexpectedToken.TokenID); + Assert.Equal(expectedTokens.Length,unexpected.ExpectedTokens.Count); + for (int i = 0; i < expectedTokens.Length; i++) + { + Assert.Contains(expectedTokens[i], unexpected.ExpectedTokens); + } } } } diff --git a/logos/007937_Salary_and_Bonus_Letter_FY21_22__English.pdf b/logos/007937_Salary_and_Bonus_Letter_FY21_22__English.pdf new file mode 100644 index 0000000000000000000000000000000000000000..15da5d347fd1cea4589e977dd8e765477659f76a GIT binary patch literal 68679 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 literal 0 HcmV?d00001 diff --git a/sly/sly.csproj b/sly/sly.csproj index 7cbdafbc..655e55a2 100644 --- a/sly/sly.csproj +++ b/sly/sly.csproj @@ -6,11 +6,11 @@ $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb #LY is a parser generator halfway between parser combinators and parser generator like ANTLR b3b00 - 2.8.0.2 + 2.8.0.3 https://github.com/b3b00/sly https://github.com/b3b00/sly https://github.com/b3b00/sly/blob/master/LICENSE - 2.8.0.2 + 2.8.0.3 Library From 2420cf45c5ca58a9c146a13cb9f5d9ca63052611 Mon Sep 17 00:00:00 2001 From: b3b00 Date: Sat, 11 Dec 2021 13:52:39 +0100 Subject: [PATCH 81/82] 2.8.0.3 From 815db2277366a21f7efe67cbb90a2c59993d9f7a Mon Sep 17 00:00:00 2001 From: b3b00 Date: Wed, 29 Dec 2021 15:35:40 +0100 Subject: [PATCH 82/82] fix while bytecode generation and unit test --- ParserTests/samples/IndentedWhileTests.cs | 26 +++++++++++++++++++++++ samples/while/compiler/SemanticChecker.cs | 4 ++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/ParserTests/samples/IndentedWhileTests.cs b/ParserTests/samples/IndentedWhileTests.cs index 1c00f6c7..3965589d 100644 --- a/ParserTests/samples/IndentedWhileTests.cs +++ b/ParserTests/samples/IndentedWhileTests.cs @@ -203,6 +203,32 @@ public void TestIfThenElse() Assert.Equal("world", (elseAssign.Value as StringConstant).Value); } + [Fact] + public void TestNestedIfThenElse() + { + var program = @" +# TestIfThenElse +a := -111 +if true then + if true then + a := 1 + else + a := 2 +else + a := 3 + b := ""world"" +return a +"; + var compiler = new IndentedWhileCompiler(); + var func = compiler.CompileToFunction(program,true); + Assert.NotNull(func); + var f = func(); + Assert.Equal(1, f); + + + } + + [Fact] public void TestInfiniteWhile() { diff --git a/samples/while/compiler/SemanticChecker.cs b/samples/while/compiler/SemanticChecker.cs index 39f7e725..09f9380f 100644 --- a/samples/while/compiler/SemanticChecker.cs +++ b/samples/while/compiler/SemanticChecker.cs @@ -80,11 +80,11 @@ private void SemanticCheck(IfStatement ast, CompilerContext context) ast.CompilerScope = context.CurrentScope; context.OpenNewScope(); - SemanticCheck(ast.ThenStmt); + SemanticCheck(ast.ThenStmt,context); context.CloseScope(); context.OpenNewScope(); - SemanticCheck(ast.ElseStmt); + SemanticCheck(ast.ElseStmt,context); context.CloseScope(); }

    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