InglesPransesEspanyol

Ad


OnWorks favicon

ragel - Online sa Cloud

Patakbuhin ang ragel sa OnWorks na libreng hosting provider sa Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

Ito ang command ragel na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

PROGRAMA:

NAME


ragel - mag-compile ng mga regular na wika sa mga executable na makina ng estado

SINOPSIS


ragel [pagpipilian] file

DESCRIPTION


Ang Ragel ay nag-compile ng mga executable na may hangganang state machine mula sa mga regular na wika. Kaya ni Ragel
bumuo ng C, C++, Objective-C, D, Go, o Java code. Ang mga makina ng estado ng Ragel ay hindi lamang magagawa
kilalanin ang mga byte na pagkakasunud-sunod tulad ng ginagawa ng mga regular na expression machine, ngunit maaari ring magsagawa ng code sa
arbitraryong mga punto sa pagkilala sa isang regular na wika. Ang user code ay naka-embed gamit ang
mga inline na operator na hindi nakakaabala sa regular na syntax ng wika.

Ang pangunahing wika ay binubuo ng mga karaniwang operator ng regular na expression, tulad ng unyon,
concatenation at kleene star, na sinamahan ng mga operator ng pag-embed ng aksyon. Pati si Ragel
nagbibigay ng mga operator na hinahayaan kang kontrolin ang anumang non-determinism na iyong nilikha, gagawa
mga scanner na gumagamit ng pinakamahabang tugmang paradigm, at bumuo ng mga state machine gamit ang statechart
modelo. Posible rin na maimpluwensyahan ang pagpapatupad ng isang makina ng estado mula sa loob ng isang
naka-embed na aksyon sa pamamagitan ng pagtalon o pagtawag sa iba pang bahagi ng makina at muling pagproseso
input.

Nagbibigay ang Ragel ng napaka-flexible na interface sa host language na sumusubok na ilagay
kaunting mga paghihigpit sa kung paano ginagamit at isinama ang nabuong code sa
aplikasyon. Ang nabuong code ay walang dependencies.

Opsyon


-h, -H, -?, - Tumulong
Ipakita ang tulong at lumabas.

-v I-print ang impormasyon ng bersyon at lumabas.

-o file
Isulat ang output sa file. Kung -o ay hindi ibinigay, ang isang default na pangalan ng file ay pipiliin ng
pinapalitan ang extension ng file ng input file. Para sa mga source file na nagtatapos sa .rh the
ginagamit ang panlapi na .h. Para sa lahat ng iba pang source file, isang suffix batay sa output na wika
ay ginagamit (.c, .cpp, .m, atbp.). Kung -o ay hindi ibinigay para sa Graphviz output ang nabuo
dot file ay nakasulat sa karaniwang output.

-s Mag-print ng ilang istatistika sa karaniwang error.

--error-format=gnu
Mag-print ng mga mensahe ng error gamit ang format na "file:line:column:" (default)

--error-format=msvc
Mag-print ng mga mensahe ng error gamit ang format na "file(line, column):"

-d Huwag alisin ang mga duplicate na aksyon mula sa mga listahan ng aksyon.

-I dir
Magdagdag ng dir sa listahan ng mga direktoryo upang maghanap ng mga kasama at na-import na mga file

-n Huwag magsagawa ng state minimization.

-m Magsagawa ng pag-minimize nang isang beses, sa pagtatapos ng compilation ng state machine.

-l I-minimize pagkatapos ng halos bawat operasyon. Ang mga listahan ng mga katulad na operasyon gaya ng mga unyon ay
nabawasan nang isang beses sa dulo. Ito ang default na opsyon sa pag-minimize.

-e I-minimize pagkatapos ng bawat operasyon.

-x I-compile ang mga state machine at naglalabas ng XML na representasyon ng host data at ng
machine.

-V Bumuo ng isang tuldok na file para sa Graphviz.

-p Ipakita ang mga napi-print na character sa mga label.

-S
Detalye ng FSM sa output.

-M
Depinisyon ng makina/instantiation sa output.

-C Ang wika ng host ay C, C++, Obj-C o Obj-C++. Ito ang default na wika ng host
pagpipilian.

-D Ang wika ng host ay D.

-J Ang host language ay Java.

-Z Ang wika ng host ay Go.

-R Ang host language ay Ruby.

-L Pigilan ang pagsulat ng #line na mga direktiba.

-T0 (C/D/Java/Ruby/C#/Go) Bumuo ng FSM na pinapaandar ng talahanayan. Ito ang default na istilo ng code.
Ang FSM na hinimok ng talahanayan ay kumakatawan sa makina ng estado bilang static na data. May mga mesa
ng mga estado, transition, indicies at aksyon. Ang kasalukuyang estado ay naka-imbak sa a
variable. Ang execution ay isang loop na mukhang ibinigay sa kasalukuyang estado at
hinahanap ng kasalukuyang karakter na ipoproseso ang paglipat na gagawin gamit ang isang binary na paghahanap,
nagsasagawa ng anumang mga aksyon at lumilipat sa target na estado. Sa pangkalahatan, ang talahanayan hinimok
Gumagawa ang FSM ng mas maliit na binary at nangangailangan ng mas murang host language compile
ngunit nagreresulta sa mas mabagal na pagpapatakbo ng code. Ang table driven na FSM ay angkop para sa anumang FSM.

-T1 (C/D/Ruby/C#/Go) Bumuo ng mas mabilis na table driven na FSM sa pamamagitan ng pagpapalawak ng mga listahan ng aksyon sa
ang aksyon execute code.

-F0 (C/D/Ruby/C#/Go) Bumuo ng flat table na pinapatakbo ng FSM. Ang mga transition ay kinakatawan bilang
isang array na na-index ng kasalukuyang alphabet character. Tinatanggal nito ang pangangailangan para sa a
binary na paghahanap upang mahanap ang mga transition at gumawa ng mas mabilis na code, gayunpaman ito ay lamang
angkop para sa maliliit na alpabeto.

-F1 (C/D/Ruby/C#/Go) Bumuo ng mas mabilis na flat table na hinimok ng FSM sa pamamagitan ng pagpapalawak ng mga listahan ng aksyon
sa aksyon execute code.

-G0 (C/D/C#/Go) Bumuo ng FSM na hinimok ng goto. Ang goto driven na FSM ay kumakatawan sa estado
machine bilang isang serye ng mga pahayag ng goto. Habang nasa makina, ang kasalukuyang estado ay
na naka-imbak sa pamamagitan ng pagtuturo pointer ng processor. Ang execution ay isang flat function
kung saan ipinapasa ang kontrol mula sa estado patungo sa estado gamit ang gotos. Sa pangkalahatan, ang goto FSM
gumagawa ng mas mabilis na code ngunit nagreresulta sa mas malaking binary at mas mahal na host
pagsasama-sama ng wika.

-G1 (C/D/C#/Go) Bumuo ng mas mabilis na goto driven na FSM sa pamamagitan ng pagpapalawak ng mga listahan ng aksyon sa
aksyon execute code.

-G2 (C/D/Go) Bumuo ng napakabilis na goto driven na FSM sa pamamagitan ng pag-embed ng mga listahan ng aksyon sa
code ng kontrol ng makina ng estado.

-P (C/D) Ang N-Way Split ay talagang mabilis na goto-driven na FSM.

RAGEL INPUT


TANDAAN: Ito ay isang napakaikling paglalarawan ng Ragel input. Inilarawan si Ragel nang mas detalyado
sa gabay sa gumagamit na makukuha mula sa homepage (tingnan sa ibaba).

Karaniwang ipinapasa ni Ragel ang mga file ng input nang diretso sa output. Kapag nakakita ito ng FSM
espesipikasyon na naglalaman ng mga instantiation ng makina na itinitigil nito upang buuin ang makina ng estado.
Kung mayroong mga write statement (tulad ng "write exec") pagkatapos ay ipapalabas ni ragel ang katumbas
code. Maaaring mayroong anumang bilang ng mga detalye ng FSM sa isang input file. Isang multi-line na FSM
ang pagtutukoy ay nagsisimula sa '%%{' at nagtatapos sa '}%%'. Isang solong linya na detalye ng FSM
nagsisimula sa %% at nagtatapos sa unang bagong linya.

FSM Mga pahayag


Makina pangalan:
Itakda ang pangalan ng makina. Kung ibinigay, ito ay dapat na ang unang pahayag.

Alpabeto Uri:
Itakda ang uri ng data ng alpabeto.

GetKey:
Tukuyin kung paano kunin ang karakter ng alpabeto mula sa uri ng elemento.

Isama ang:
Isama ang isang makina na kapareho ng pangalan ng kasalukuyang o ng ibang pangalan sa alinman sa
kasalukuyang file o ibang file.

aksyon Kahulugan:
Tukuyin ang isang aksyon na maaaring i-invoke ng FSM.

Fsm Kahulugan Instantiation at Pinakahaba Tumugma Instantiation:
Ginamit upang bumuo ng mga FSM. Paglalarawan ng syntax sa susunod na ilang seksyon.

Access:
Tukuyin kung paano i-access ang patuloy na mga variable ng state machine.

Isulat: Sumulat ng ilang bahagi ng makina.

Variable:
I-override ang mga default na pangalan ng variable (p, pe, cs, act, atbp).

BATAYANG MACHINES


Ang mga pangunahing makina ay ang mga base operand ng mga regular na expression ng wika.

'Kamusta'
Concat literal. Gumagawa ng pagsasama-sama ng mga character sa string. Mga sumusuporta
escape sequence na may '\'. Ang resulta ay magkakaroon ng panimulang estado at isang paglipat sa
isang bagong estado para sa bawat karakter sa string. Ang huling estado sa sequence ay
gawing pangwakas. Upang gawing case-insensitive ang string, magdagdag ng 'i' sa string, bilang
sa 'cmd'i.

"Kamusta"
Kapareho ng isang bersyon ng quote.

[Kamusta]
O literal. Gumagawa ng isang unyon ng mga character. Sinusuportahan ang mga hanay ng character na may '-',
tinatanggihan ang kahulugan ng unyon na may inisyal na '^' at mga escape sequence na may '\'.
Ang resulta ay magkakaroon ng dalawang estado na may paglipat sa pagitan ng mga ito para sa bawat karakter
o saklaw.

TANDAAN: Ang '', "", at [] ay gumagawa ng mga null na FSM. Ang mga null machine ay may isang estado na parehong panimula
estado at panghuling estado at tumugma sa zero length string. Maaaring gumawa ng null machine
gamit ang null builtin machine.

kabuuan
Gumagawa ng dalawang state machine na may isang transition sa ibinigay na integer number.

hex Gumagawa ng dalawang state machine na may isang transition sa ibinigay na hexidecimal number.

/simple_regex/
Isang simpleng regular na expression. Sinusuportahan ang notation na '.', '*' at '[]', character
mga saklaw na may '-', tinatanggihan ang kahulugan ng isang OR expression na may at inisyal na '^' at
escape sequence na may '\'. Sinusuportahan din ang isang sumusunod na bandila: i. Gamitin ito upang makabuo ng a
case-insensitive na regular na expression, tulad ng sa /GET/i.

kama .. kama
Tinutukoy ang isang saklaw. Ang pinahihintulutang upper at lower bounds ay concat literals ng
haba ng isa at numero ng mga makina. Halimbawa, ang 0x10..0x20, 0..63, at 'a'..'z' ay
wastong mga saklaw.

variable_name
Tinutukoy ang kahulugan ng makina na itinalaga sa ibinigay na pangalan ng variable.

builtin_machine
Mayroong ilang mga builtin na makina na magagamit. Lahat sila ay dalawang makina ng estado para sa
ang layunin ng pagtutugma ng mga karaniwang klase ng mga character. Sila ay:

anumang Anumang karakter sa alpabeto.

ASCII Mga character na Ascii 0..127.

palawigin Ascii extended character. Ito ang hanay na -128..127 para sa mga pinirmahang alpabeto
at ang hanay na 0..255 para sa mga unsigned alphabets.

alpha Mga alphabetic na character /[A-Za-z]/.

tambilang Mga Digit /[0-9]/.

alnum Mga alpha numeric /[0-9A-Za-z]/.

ibaba Mga maliliit na character /[az]/.

itaas Mga malalaking titik /[AZ]/.

xdigit Hexidecimal digit /[0-9A-Fa-f]/.

cntrl Kontrolin ang mga character 0..31.

talangguhit Mga graphical na character /[!-~]/.

i-print Mga napi-print na character /[ -~]/.

punt Bantas. Mga graphical na character na hindi alpha-numeric
/[!-/:-@\[-`{-~]/.

puwang Whitespace /[\t\v\f\n\r ]/.

walang halaga Walang haba na string. Katumbas ng '', "" at [].

walang laman Walang laman na set. Walang tugma.

MABILIS OPERATOR Sanggunian


Ang mga operator ay pinagsama-sama ayon sa precedence, ang pangkat 1 ang pinakamababa at ang pangkat 6 ang pinakamataas.

GROUP 1:

ipahayag , ipahayag
Pagsamahin ang mga makina nang walang pagguhit ng anumang mga transition, pagse-set up ng estado ng pagsisimula o
anumang huling estado. Ang estado ng pagsisimula ay dapat na tahasang tinukoy na may label na "pagsisimula."
Ang mga panghuling estado ay maaaring tukuyin sa isang epsilon na mga transition sa implicitly
nilikha ang "panghuling" estado.

GROUP 2:

ipahayag | ipahayag
Gumagawa ng makina na tumutugma sa anumang string sa machine one o machine two.

ipahayag & ipahayag
Gumagawa ng makina na tumutugma sa anumang string na nasa machine one at machine
dalawa.

ipahayag - ipahayag
Gumagawa ng machine na tumutugma sa anumang string na nasa machine one ngunit hindi sa
dalawang makina.

ipahayag -- ipahayag
Malakas na pagbabawas. Tumutugma sa anumang string sa machine na walang anumang string
sa machine two bilang isang substring.

GROUP 3:

ipahayag . ipahayag
Gumagawa ng makina na tumutugma sa lahat ng mga string sa makina na sinusundan ng lahat ng
mga string sa machine two.

ipahayag :> ipahayag
Entry-Guarded Concatenation: tinatapos ang machine isa sa pagpasok sa machine two.

ipahayag :>> ipahayag
Finish-Guarded Concatenation: tinatapos ang isa sa makina kapag natapos na ang dalawang makina.

ipahayag <: ipahayag
Left-Guarded Concatenation: nagbibigay ng mas mataas na priyoridad sa machine one.

TANDAAN: Ang concatenation ay ang default na operator. Dalawang makina sa tabi ng isa't isa na may no
operator sa pagitan ng mga ito ay nagreresulta sa operasyon ng pagsasama-sama.

GROUP 4:

label: ipahayag
Naglalagay ng label sa isang expression. Maaaring gamitin ang mga label ng mga epsilon transition at
fgoto at fcall na mga pahayag sa mga aksyon. Tandaan din na ang pagtukoy ng isang makina
ang kahulugan ay nagiging sanhi ng implicit na paglikha ng label sa pamamagitan ng parehong pangalan.

GROUP 5:

ipahayag -> etiketa
Gumuhit ng epsilon transition sa estado na tinukoy ng label. Ang label ay dapat na isang pangalan sa
ang kasalukuyang saklaw. Nareresolba ang mga transition ng Epsilon kapag ang mga operator ng kuwit ay
sinusuri at nasa ugat ng expression tree ng makina
takdang-aralin/instantiation.

GROUP 6: Aksyon

Ang isang aksyon ay maaaring isang pangalan na paunang tinukoy na may isang pahayag ng aksyon o maaaring direktang tinukoy
na may '{' at '}' sa expression.

ipahayag > aksyon
Nag-embed ng pagkilos sa pagsisimula ng mga transition.

ipahayag @ aksyon
Ine-embed ang pagkilos sa mga transition na napupunta sa panghuling estado.

ipahayag $ aksyon
Nag-embed ng pagkilos sa lahat ng mga transition. Hindi kasama ang mga nakabinbing transition.

ipahayag % aksyon
Nag-embed ng pagkilos sa mga nakabinbing transition mula sa mga huling estado.

GROUP 6: EOF Aksyon

Kapag ang gawain ng pagtatapos ng isang makina ay tinatawag na ang kasalukuyang mga aksyon ng EOF ng estado ay isinasagawa.

ipahayag >/ aksyon
Mag-embed ng EOF na aksyon sa panimulang estado.

ipahayag </ aksyon
Mag-embed ng EOF na aksyon sa lahat ng estado maliban sa panimulang estado.

ipahayag $/ aksyon
Mag-embed ng EOF na pagkilos sa lahat ng estado.

ipahayag %/ aksyon
Mag-embed ng pagkilos ng EOF sa mga huling estado.

ipahayag @/ aksyon
I-embed ang isang aksyon ng EOF sa lahat ng mga estado na hindi pinal.

ipahayag <>/ aksyon
Mag-embed ng EOF na aksyon sa lahat ng estado na hindi ang panimulang estado at hindi
pangwakas (gitnang estado).

GROUP 6: Global pagkakamali Aksyon

Ang mga pandaigdigang pagkilos ng error ay iniimbak sa mga estado hanggang sa ganap na ang panghuling makina ng estado
itinayo. Pagkatapos ay ililipat sila sa mga paglilipat ng error, na nagbibigay ng epekto ng a
default na pagkilos.

ipahayag >! aksyon
Mag-embed ng isang pandaigdigang pagkilos ng error sa estado ng pagsisimula.

ipahayag <! aksyon
Mag-embed ng pandaigdigang pagkilos ng error sa lahat ng estado maliban sa panimulang estado.

ipahayag $! aksyon
Mag-embed ng pandaigdigang pagkilos ng error sa lahat ng estado.

ipahayag %! aksyon
I-embed ang isang pandaigdigang pagkilos ng error sa mga huling estado.

ipahayag @! aksyon
I-embed ang isang pandaigdigang pagkilos ng error sa lahat ng mga estado na hindi pangwakas.

ipahayag <>! aksyon
I-embed ang isang pandaigdigang pagkilos ng error sa lahat ng mga estado na hindi ang panimulang estado at ngayon
hindi pangwakas (gitnang estado).

GROUP 6: Lokal pagkakamali Aksyon

Ang mga lokal na pagkilos ng error ay iniimbak sa mga estado hanggang sa ganap na mabuo ang pinangalanang makina.
Pagkatapos ay ililipat ang mga ito sa mga paglilipat ng error, na nagbibigay ng epekto ng isang default na pagkilos para sa
isang seksyon ng kabuuang makina. Tandaan na ang pangalan ay maaaring tanggalin, kung saan ang
ang aksyon ay ililipat sa mga pagkilos ng error sa paggawa ng kasalukuyang makina.

ipahayag >^ aksyon
Mag-embed ng isang lokal na pagkilos ng error sa estado ng pagsisimula.

ipahayag <^ aksyon
Mag-embed ng isang lokal na pagkilos ng error sa lahat ng mga estado maliban sa estado ng pagsisimula.

ipahayag $^ aksyon
Mag-embed ng isang lokal na pagkilos ng error sa lahat ng mga estado.

ipahayag %^ aksyon
Mag-embed ng isang lokal na pagkilos ng error sa mga huling estado.

ipahayag @^ aksyon
I-embed ang isang lokal na pagkilos ng error sa lahat ng mga estado na hindi pangwakas.

ipahayag <>^ aksyon
I-embed ang isang lokal na pagkilos ng error sa lahat ng mga estado na hindi ang panimulang estado at ngayon
hindi pangwakas (gitnang estado).

GROUP 6: Sabihin Aksyon

Ang mga aksyon sa estado ay iniimbak sa mga estado at isinasagawa anumang oras na lumipat ang makina sa a
estado. Kabilang dito ang mga regular na paglipat, at paglilipat ng kontrol gaya ng fgoto. Tandaan
na nagtatakda ng kasalukuyang estado mula sa labas ng makina (halimbawa sa panahon ng
pagsisimula) ay hindi binibilang bilang isang paglipat sa isang estado.

ipahayag >~ aksyon
Mag-embed ng pagkilos na pagkilos sa estado sa panimulang estado.

ipahayag <~ aksyon
Mag-embed ng pagkilos sa estado sa lahat ng estado maliban sa panimulang estado.

ipahayag $~ aksyon
Mag-embed ng pagkilos sa estado sa lahat ng estado.

ipahayag %~ aksyon
Mag-embed ng pagkilos sa estado sa mga huling estado.

ipahayag @~ aksyon
Mag-embed ng pagkilos sa estado sa lahat ng estado na hindi pangwakas.

ipahayag <>~ aksyon
Mag-embed ng pagkilos sa estado sa lahat ng estado na hindi ang panimulang estado at hindi
pangwakas (gitnang estado).

GROUP 6: Mula sa Estado Aksyon

Ang mga aksyon mula sa estado ay isinasagawa kapag ang isang estado ay nagsasagawa ng paglipat sa isang karakter. Ito
kasama ang paglipat ng error at paglipat sa sarili.

ipahayag >* aksyon
Mag-embed ng pagkilos mula sa estado sa panimulang estado.

ipahayag <* aksyon
Mag-embed ng pagkilos mula sa estado sa bawat estado maliban sa panimulang estado.

ipahayag $* aksyon
Mag-embed ng pagkilos mula sa estado sa lahat ng estado.

ipahayag %* aksyon
Mag-embed ng pagkilos mula sa estado sa mga huling estado.

ipahayag @* aksyon
Mag-embed ng pagkilos mula sa estado sa lahat ng estado na hindi pangwakas.

ipahayag <>* aksyon
Mag-embed ng aksyon mula sa estado sa lahat ng estado na hindi ang panimulang estado at hindi
pangwakas (gitnang estado).

GROUP 6: Karapatang mauna Trabaho

Ang mga priyoridad ay itinalaga sa mga pangalan sa loob ng mga transition. Ang mga priyoridad lamang sa parehong pangalan ay
pinapayagang makipag-ugnayan. Sa unang anyo ng mga priyoridad ang pangalan ay default sa pangalan ng
kahulugan ng makina kung saan nakatalaga ang priyoridad. Walang default ang mga transition
mga prayoridad

ipahayag > int
Itinalaga ang priority int sa lahat ng transition na umaalis sa start state.

ipahayag @ int
Itinalaga ang priority int sa lahat ng transition na napupunta sa panghuling estado.

ipahayag $ int
Itinalaga ang priority int sa lahat ng kasalukuyang transition.

ipahayag % int
Itinatalaga ang priority int sa lahat ng nakabinbing transition.

Ang pangalawang anyo ng priority assignment ay nagpapahintulot sa programmer na tukuyin ang pangalan kung saan
ang priyoridad ay itinalaga, na nagpapahintulot sa mga pakikipag-ugnayan na tumawid sa mga hangganan ng kahulugan ng makina.

ipahayag > (pangalan, int)
Itinatalaga ang priority int sa pangalan sa lahat ng transition na umaalis sa start state.

ipahayag @ (pangalan, int)
Itinatalaga ang priority int sa pangalan sa lahat ng transition na napupunta sa panghuling estado.

ipahayag $ (pangalan, int)
Itinatalaga ang priority int sa pangalan sa lahat ng kasalukuyang transition.

ipahayag % (pangalan, int)
Itinatalaga ang priority int sa pangalan sa lahat ng nakabinbing transition.

GROUP 7:

ipahayag * Gumagawa ng kleene star ng isang makina. Tumutugma sa zero o higit pang mga pag-uulit ng
machine.

ipahayag **
Pinakamahabang Tugma na Kleene Star. Ang bersyon na ito ng kleene star ay naglalagay ng mas mataas na priyoridad
manatili sa makina sa paglipas ng pagbabalot at pagsisimula muli. Ang operator na ito ay
katumbas ng ( ( expr ) $0 %1 )*.

ipahayag ? Gumagawa ng makina na tumatanggap sa ibinigay na makina o sa null string. Ang operator na ito
ay katumbas ng ( expr | '' ).

ipahayag + Gumagawa ng makina na pinagsama sa mismong kleen star. Tumutugma sa isa o
mas maraming pag-uulit ng makina. Ang operator na ito ay katumbas ng ( expr . expr* ).

ipahayag {n}
Gumagawa ng makina na eksaktong tumutugma sa n pag-uulit ng expr.

ipahayag {,n}
Gumagawa ng makina na tumutugma saanman mula sa zero hanggang n pag-uulit ng expr.

ipahayag {n,}
Gumagawa ng makina na tumutugma sa n o higit pang mga pag-uulit ng expr.

ipahayag {n,m}
Gumagawa ng makina na tumutugma sa n sa m pag-uulit ng expr.

GROUP 8:

! ipahayag Gumagawa ng makina na tumutugma sa anumang string na hindi tumugma sa ibinigay na makina. Ito
operator ay katumbas ng ( *extend - expr ).

^ ipahayag Pagwawalang-bahala sa Antas ng Karakter. Tumutugma sa anumang solong karakter na hindi tumugma sa solong
character machine expr.

GROUP 9:

( ipahayag )
Puwersa ang nangunguna sa mga operator.

Mga halaga MAGAGAMIT IN CODE Mga BLOCKS


fc Ang kasalukuyang karakter. Katumbas ng *p.

fpc Isang pointer sa kasalukuyang karakter. Katumbas ng p.

fcurs Isang integer na halaga na kumakatawan sa kasalukuyang estado.

ftargs Isang integer na halaga na kumakatawan sa target na estado.

fentry( )
Isang integer value na kumakatawan sa entry point .

Mga pahayag MAGAGAMIT IN CODE Mga BLOCKS


fhold; Huwag isulong ang kasalukuyang karakter. Katumbas ng --p;.

fexec ;
Itinatakda ang kasalukuyang karakter sa ibang bagay. Katumbas ng p = ( )-1;

fgoto ;
Tumalon sa makina na tinukoy ng .

fgoto * ;
Tumalon sa entry point na ibinigay ni . Ang expression ay dapat suriin sa isang integer
halaga na kumakatawan sa isang estado.

susunod ;
Itakda ang susunod na estado upang maging entry point na tinukoy ng . Ang susunod na pahayag
hindi agad tumalon sa tinukoy na estado. Anumang code ng pagkilos na sumusunod sa
ipinatupad ang pahayag.

susunod * ;
Itakda ang susunod na estado upang maging entry point na ibinigay ni . Ang ekspresyon ay dapat
suriin sa isang integer na halaga na kumakatawan sa isang estado.

fcall ;
Tawagan ang makina na tinukoy ng . Ang susunod na fret ay tumalon sa target ng
transition kung saan hinihimok ang aksyon.

fcall * ;
Tawagan ang entry point na ibinigay ni . Ang susunod na fret ay tumalon sa target ng
transition kung saan hinihimok ang aksyon.

mabalisa; Bumalik sa target na estado ng transition kung saan ginawa ang huling fcall.

fbreak;
I-save ang kasalukuyang estado at agad na lumabas sa makina.

CREDITS


Si Ragel ay isinulat ni Adrian Thurston[protektado ng email]>. Output ng Layunin-C
kontribusyon ni Erich Ocean. D output na iniambag ni Alan West. Ruby output na iniambag ni
Victor Hugo Borja. C Sharp code generation na iniambag ni Daniel Tang. Mga kontribusyon sa
Pagbuo ng Java code ni Colin Fleming. Go code generation na iniambag ni Justine Tunney.

Gamitin ang ragel online gamit ang mga serbisyo ng onworks.net


Mga Libreng Server at Workstation

Mag-download ng Windows at Linux apps

  • 1
    KompoZer
    KompoZer
    Ang KompoZer ay isang wysiwyg HTML editor gamit ang
    ang Mozilla Composer codebase. Bilang
    Nahinto ang pag-unlad ni Nvu
    noong 2005, inaayos ng KompoZer ang maraming mga bug at
    nagdadagdag ng f...
    I-download ang KompoZer
  • 2
    Libreng Manga Downloader
    Libreng Manga Downloader
    Ang Libreng Manga Downloader (FMD) ay isang
    open source application na nakasulat sa
    Object-Pascal para sa pamamahala at
    pag-download ng manga mula sa iba't ibang mga website.
    Isa itong salamin...
    I-download ang Libreng Manga Downloader
  • 3
    Aetbootin
    Aetbootin
    Hinahayaan ka ng UNetbootin na lumikha ng bootable
    Mga live na USB drive para sa Ubuntu, Fedora, at
    iba pang mga pamamahagi ng Linux nang wala
    nagsusunog ng CD. Gumagana ito sa Windows, Linux,
    at ...
    I-download ang UNetbootin
  • 4
    Dolibar ERP - CRM
    Dolibar ERP - CRM
    Dolibarr ERP - Ang CRM ay isang madaling gamitin
    ERP at CRM open source software package
    (tumatakbo gamit ang isang web php server o bilang
    standalone na software) para sa mga negosyo,
    mga pundasyon...
    I-download ang Dolibar ERP - CRM
  • 5
    SQuirreL SQL Client
    SQuirreL SQL Client
    Ang SQuirreL SQL Client ay isang graphical na SQL
    client na nakasulat sa Java na magpapahintulot
    mong tingnan ang istraktura ng isang JDBC
    sumusunod na database, i-browse ang data sa
    mga mesa...
    I-download ang SQuirreL SQL Client
  • 6
    Bracket
    Bracket
    Ang mga bracket ay isang libre, modernong open-source
    text editor na ginawa lalo na para sa Web
    Pag-unlad. Nakasulat sa HTML, CSS, at
    JavaScript na may mga nakatutok na visual na tool at
    prepr...
    I-download ang Mga Bracket
  • Marami pa »

Linux command

Ad