FsYacc - chyba rubrika: Programování: .Net

7 xxar3s
položil/-a 29.6.2019

Ahojte robím si programovací jazyk, doteraz fungovalo všetko ale akonáhle som pridal pattertnmatching (niečo ako statement switch len o len to má omnoho vačšie možnosti použitia) tak mi to hádže chybu a neviem prísť na to, že prečo. Nebudem tu vypisovať celý zdroják pre fsyacc len podstatné časti.. v časti expression (expr_main) mám toto:

expr_main:
...
| KW_MATCH expr COLON optBar matchingList { Match($2, $5) }
...
 
optBar:
| { }
| BAR { }
 
matching: 
| expr RARROW expr { ($1, $3) }
 
matchingList:
| matching BAR matchingList { $1 :: $3 }
| matching { [$1] }

a ešte vypíšem tokeny:

KW_MATCH je "match"
COLON je ":"
BAR je "|"
RARROW je "->"

a kód v mojom jazyku ktorý pasujem by mal vyzerať napr. nejako takto:

match field:
| "name" -> "Sandra Belková"
| "age" -> "29"

Neviem v čom mám chybu pravdepodobne som si len nevšimol nejakú banalitu ale zakysol som pri tom a neviem sa ponúť ďalej.

Komentáře

  • xxar3s : Tak som si nechal vipísať tokeny a uvedomil som si že rovnakú hodnotu "|" používam pre 2 tokeny na jedenj strane token BAR a na druhej OP_BITWISE_OR. Takže budem musieť pre OP_BITWISE_OR použiť inú hodnotu ako "|" pretože by sa mohli biť. Problém vyriešený. 29.6.2019

Pro plný přístup na Devel.cz se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.