Skip to content
This repository has been archived by the owner on Sep 20, 2021. It is now read-only.

Enhance context output of UnexpectedToken exception #112

Open
ohader opened this issue Oct 6, 2020 · 0 comments
Open

Enhance context output of UnexpectedToken exception #112

ohader opened this issue Oct 6, 2020 · 0 comments

Comments

@ohader
Copy link

ohader commented Oct 6, 2020

Grammar

%pragma		parser.lookahead 	0
%skip		space				\s
%token      int                 \d+
%token      div                 /           -> div
%token      div:int             [1-9]\d*    -> __shift__ * 1
%token      mul                 \*          -> mul
%token      mul:int             \d+         -> __shift__ * 1
#root:
    <int> ( ::mul:: <int> #multiply | ::div:: <int> #divide )*

// this line is superfluous
%token      mul:mul             \*

Source

1**1

Results

Parsing above scenario leads to expected exception, since lexeme * is not allowed in rules. In thrown UnexpectedToken

  • the namespace of the corresponding token could be mentioned (helpful when having multiple namespaces using same token identifiers)
Hoa\Compiler\Exception\UnexpectedToken: Unexpected token "*" (mul) at line 1 and column 3:
1**1
  ↑ in /Users/olly/Development/Packages/fluid-compiler/vendor/hoa/compiler/Llk/Parser.php on line 1

With adjustments

Hoa\Compiler\Exception\UnexpectedToken: Unexpected token "*" (mul:mul) at line 1 and column 3:
1**1
  ↑ in /Users/olly/Development/Packages/fluid-compiler/vendor/hoa/compiler/Llk/Parser.php on line 1
@ohader ohader changed the title Enhance context output of UnexpectedToken Enhance context output of UnexpectedToken exception Oct 6, 2020
ohader added a commit to ohader/Compiler that referenced this issue Oct 6, 2020
* enhances `UnrecognizedToken` exception, see hoaproject#111
* enhances `UnexpectedToken` exception, see hoaproject#112

Fixes: hoaproject#111, hoaproject#112
ohader added a commit to ohader/Compiler that referenced this issue Oct 6, 2020
* enhances `UnrecognizedToken` exception, see hoaproject#111
* enhances `UnexpectedToken` exception, see hoaproject#112

Fixes: hoaproject#111, hoaproject#112
sanmai added a commit to sanmai/hoa-compiler that referenced this issue Oct 7, 2020
[TASK] Add more context to exceptions

* enhances `UnrecognizedToken` exception, see hoaproject/Compiler#111
* enhances `UnexpectedToken` exception, see hoaproject/Compiler#112

[BUGFIX] Allow colons in PCRE part of default namespace

See: hoaproject/Compiler#113
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Development

No branches or pull requests

1 participant