Avatar
matesax
Redaktor
Avatar
matesax:

Dobrý den,
mám mapu (slovník) šablon kódů a jsem schopen dostat základní výraz. Ten však nemusí odpovídat žádné ze šablon, jelikož nechci limitovat whitespace, taby, dokonce ani nové řádky. Tímto patternem jsem schopen dostat jednotlivé prvky šablony:

"\w+|=+|>"

Kdyby se v C# dala porovnávat pole, stačilo by:

Dictionary<pole, typVýrazu> onaMapa

Problém je v tom, že Regex dokáže jen vyhledat shodu, či rozdělit do pole. Mohu samozřejmě Joinovat do stringu - z toho pole - a pak dosadit do mapy, ale už takto tam mám pár náročných akcí. Nemohl bych místo rozdělení do pole dostat podle toho patternu ("\w+|=+|>") jednotlivé sekvence rozdělené navoleným separátorem? (Místo pole to mít rovnou Joinované do jednoho stringu, který jen dosadím do mapy a dostanu typ výrazu.)
Děkuji.

Editováno 26.5.2013 8:33
 
Odpovědět 26.5.2013 8:31
Avatar
matesax
Redaktor
Avatar
matesax:

Parsuji tento syntax:

add ~/ddd, /ddd;

modifikator jmenoTridy = class >

        cns ~ mozneParametry > # nebo constructor

        snc;

        modifikator jmeno = void ~ int parametr1, bool parametr2 >

                while true >

                        < jmenoVolaneMetody;

                        < outMetoda out: promenna1, promenna 2 ~ par1, par2;

                        promenna < metodaSNavratem;

                        promenna = ddd;

                elihw;

                foreach ddd in ppp >

                hcae;

                switch ddd >

                        case eee:

                        esac;

                hctiws;

        end;

        modifikator outMetoda = void out: ddd, aaa ~ par1, par2 >

        end;

end;
 
Nahoru Odpovědět 26.5.2013 8:39
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.