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

Проблемы грамматики #36

Closed
ForNeVeR opened this issue Nov 5, 2012 · 4 comments
Closed

Проблемы грамматики #36

ForNeVeR opened this issue Nov 5, 2012 · 4 comments
Assignees
Labels
Milestone

Comments

@ForNeVeR
Copy link
Collaborator

ForNeVeR commented Nov 5, 2012

Решил завести одну задачу для грамматики, и все проблемы писать сюда.

Итак, номер первый. Есть такой вот пример кода:

a = (1 + 2).someShit

В соответствии с текущей грамматикой, он не может быть распарсен. .someShit - это accessor_expr, а в соответствии с грамматикой, accessor_expr идёт только после статических или локальных идентификаторов:

lvalue              = ( type "::" identifier | identifier ) { accessor_expr }
accessor_expr       = "." identifier | "[" line_expr "]"

Сходу не могу придумать, как решить эту проблему.

@ghost ghost assigned impworks Nov 5, 2012
@impworks
Copy link
Owner

impworks commented Nov 5, 2012

Предлагаю такой вариант:

lvalue = ( [ type "::" ] identifier { accessor_expr } | "(" expr ")" accessor_expr { accessor_expr } )

@ForNeVeR
Copy link
Collaborator Author

ForNeVeR commented Nov 5, 2012

Предлагаю такой вариант:

Думаю, сойдёт.

@ForNeVeR
Copy link
Collaborator Author

ForNeVeR commented Jan 4, 2013

Эти изменения так и не внесены в грамматику. @impworks, примите меры!

@ForNeVeR
Copy link
Collaborator Author

Закрываю, чтоб не мешалось.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants