Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SmaCC_Elixir Missing identifiers #33

Closed
mariari opened this issue Oct 28, 2024 · 3 comments
Closed

SmaCC_Elixir Missing identifiers #33

mariari opened this issue Oct 28, 2024 · 3 comments

Comments

@mariari
Copy link
Contributor

mariari commented Oct 28, 2024

The Elixir source isn't great at explaining what all the identifiers are in the source. Thus a lot of them go undefined.

The code to properly understand it can be seen here:

https://github.com/elixir-lang/elixir/blob/f38895cebba0fa06f686e1dd9b74e5729aebcb45/lib/elixir/src/elixir_tokenizer.erl

What is missing are:

  1. <op_identifier>
  2. <bracket_identifier>
  3. <paren_identifier>
  4. <do_identifier>
  5. <dot_call_op>

in #28 I define dot_call_op properly However I fail to properly address 1-4.

2-3 are easy enough as they just need to either peek ahead, or reset the stream to being 1 character back while dropping their parsed ( or [.

4-5 I'm unsure how to handle.

@j-brant
Copy link
Owner

j-brant commented Oct 29, 2024

If you look at ElixirParser>>#actionsForCurrentToken, you can see that they are defined.

@mariari
Copy link
Contributor Author

mariari commented Nov 3, 2024

If you look at ElixirParser>>#actionsForCurrentToken, you can see that they are defined.

Thanks I somehow missed that when looking over things.

Are there good ways for testing when rules for this go off (I'm going to just invoke a DNE message in where it applies to see it in action)? I may have found an issue with it (Commented in #32).

@mariari
Copy link
Contributor Author

mariari commented Nov 27, 2024

A good explanation can be seen here:

#37 (comment)

@mariari mariari closed this as completed Nov 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants