Ito ang command nowweave na maaaring patakbuhin sa OnWorks free 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
notangle, nowweave, nountangle - noweb, isang literate-programming tool
SINOPSIS
notangle [-Rrootname ...] [-filter utos] [-L[format]] [file] ...
nountangle [-ml|-m3|-c|-c++|-awk|-tex|-f77|-f90|-lisp|-matlab] [-Rrootname ...] [-filter
utos] [-wlapad] [file] ...
ngayon weave [mga pagpipilian] [file] ...
DESCRIPTION
Noweb ay isang literate-programming tool tulad ng kay Knuth WEB, mas simple lang. A noweb file
naglalaman ng source code ng program na may kasamang dokumentasyon. Kailan notangle ay binibigyan a
noweb file, isinusulat nito ang programa sa karaniwang output. Kailan ngayon weave ay binibigyan a noweb file,
binabasa nito ang noweb pinagmulan at gumagawa, sa karaniwang output, LaTeX, TeX, troff, O HTML
pinagmulan para sa dokumentasyon ng typeset. nountangle ginagawang ordinaryo ang isang literate na programa
programa sa pamamagitan ng paggawa ng interleaved na dokumentasyon sa mga komento. Ang pangalan ng file na `-' ay tumutukoy sa
karaniwang input.
FORMAT OF NOWEB MGA FILE
A noweb Ang file ay isang pagkakasunod-sunod ng mga chunks, na maaaring lumitaw sa anumang pagkakasunud-sunod. Maaaring naglalaman ang isang tipak
code o dokumentasyon. Ang mga tipak ng dokumentasyon ay nagsisimula sa isang linya na nagsisimula sa isang at sign
(@) na sinusundan ng isang puwang o bagong linya. Wala silang mga pangalan. Ang mga code chunks ay nagsisimula sa
<<tipak pangalan>> =
sa isang linya mismo. Ang double left angle bracket (<<) ay dapat nasa unang column.
Ang mga tipak ay winakasan sa simula ng isa pang tipak, o sa pagtatapos ng file. Kung ang una
linya sa file ay hindi minarkahan ang simula ng isang tipak, ito ay ipinapalagay na ang una
linya ng isang tipak ng dokumentasyon.
Ang mga tipak ng dokumentasyon ay naglalaman ng teksto na hindi pinapansin ng notangle at kinopya ang verbatim sa
karaniwang output sa pamamagitan ng ngayon weave (maliban sa sinipi na code). ngayon weave maaaring makipagtulungan sa LaTeX, payak
TeX, troff or HTML. Na may plain TeX, naglalagay ito ng reference sa a TeX macro package, nwmac,
na tumutukoy sa mga utos tulad ng \kabanata at \seksyon.
Ang mga code chunks ay naglalaman ng program source code at mga reference sa iba pang code chunks. Ilang code
chunks ay maaaring magkaroon ng parehong pangalan; notangle pinagsasama-sama ang kanilang mga kahulugan upang makabuo ng isang solong
tipak, tulad ng ginagawa pagbuhul-buhulin(1). Ang mga kahulugan ng chunk ng code ay tulad ng mga macro definition;
notangle kinukuha ang isang programa sa pamamagitan ng pagpapalawak ng isang tipak (bilang default, ang tipak na pinangalanang <<*>>).
Ang kahulugan ng tipak na iyon ay naglalaman ng mga sanggunian sa iba pang mga tipak, na sila mismo
pinalawak, at iba pa. notangleNababasa ang output ni; pinapanatili nito ang indentation ng
pinalawak na mga tipak na may paggalang sa mga tipak kung saan lumilitaw ang mga ito.
Maaaring sipiin ang code sa loob ng mga tipak ng dokumentasyon sa pamamagitan ng paglalagay ng mga double square bracket ([[...]])
sa paligid nito. Ang mga double square bracket na ito ay hindi pinapansin ng notangle, ngunit maaari silang gamitin ng
ngayon weave para bigyan ang code ng espesyal na typographic treatment, hal, hypertext links. Kung sinipi
nagtatapos ang code sa tatlo o higit pang square bracket, ngayon weave pinipili ang pinakatamang pares, upang,
Halimbawa, [[a[i]]] ay na-parse nang tama. Ang mga pangalan ng mga code chunks ay maaaring lumitaw sa loob
naka-quote na code maliban kung ang naka-quote na code na iyon ay bahagi mismo ng pangalan ng isang code chunk.
Sa code, tinatrato ng noweb ang hindi ipinares na double left o right angle bracket bilang literal << at >>.
Upang pilitin ang anumang ganoong mga bracket, kahit na ipinares na mga bracket o bracket sa dokumentasyon, na maging
itinuturing bilang literal, gumamit ng nauuna sa tanda (hal @<).
Ang ilang programming o formatting language ay maaaring mangailangan ng isa @ mag-sign in sa unang column.
Maaaring makamit ng mga user ng Noweb ang epektong ito sa pamamagitan ng paglalagay ng doble @@ sa unang hanay; dito sa
posisyon lamang, ito ay kumakatawan sa isang solong @ tanda.
TANGLING
notangle at nountangle tanggapin ang parehong hanay ng mga opsyon, bagama't may mga epekto ang ilang opsyon
lamang sa isa o sa iba pa. Ang mga pagpipilian ay:
-Rpangalan Palawakin ang <<pangalan>> tipak ng code. Ang -R ang pagpipilian ay maaaring ulitin, kung saan ang bawat isa
chunk ay nakasulat sa output. Kung hindi -R ang pagpipilian ay ibinigay, palawakin ang tipak na pinangalanan
<<*>>.
-Lformat
Maglabas ng mga indikasyon ng numero ng linya sa mga hangganan ng tipak. Isang indikasyon ng numero ng linya
kinikilala ang pinagmulan ng linyang kasunod nito. Sa format, %F nagpapahiwatig ng
pangalan ng source file, %L ay nagpapahiwatig ng numero ng linya ng source file, %N
ay nagpapahiwatig ng isang bagong linya, at %% ay nagpapahiwatig ng isang tanda ng porsyento. Ang isang senyas at digit ay maaaring
ipinasok sa pagitan ng percent sign at ng `L', kung saan ang numero ng linya ay
iakma sa halagang iyon. Kung format ay tinanggal, ang default na format ay iyon
tinanggap ng C preprocessor: `#linya %L "%F"%N'. Kapag ginagamit ang -Lformat pagpipilian,
notangle Tinitiyak na ang lahat ng teksto ay lilitaw sa parehong column sa input at output.
nountangle binabalewala ang opsyong ito.
Kasama sa mga karaniwang string ng format ang:
C -L'#line %L "%F"%N'
Araw FORTRAN -L'\# %L "%F"%N'
Icon -L'#line %-1L "%F"%N'
Modula-3 -L'<*LINE %L "%F" *>%N'
SML/NJ -L'(*#line %L "%F"*)'
Upang malutas ang kabaligtaran na problema, iyon ay, upang makakuha ng noweb na gumawa ng isang bagay na makatwiran
#linya sa input nito, tingnan ang sharpline filter sa direktoryo ng mga halimbawa.
-tk Kopyahin ang mga tab na hindi ginalaw mula sa input hanggang sa output, at gumamit ng mga tab para sa indentation, sa pag-aakalang
tumitigil sa bawat k mga hanay. Bilang default, pinalawak ang mga tab sa mga puwang na may mga hinto tuwing ika-8
mga haligi.
-filter cmd
Salain ang noweb pinagmulan sa pamamagitan ng cmd pagkatapos i-convert ito sa tool form at bago
pagkagusot. notangle hinahanap para sa cmd una sa gumagamit PATH, pagkatapos ay sa /usr/lib/noweb.
Maaaring gamitin ang mga naturang filter upang magdagdag ng mga feature sa notangle; para sa isang halimbawa tingnan
/usr/lib/noweb/emptydefn. Para sa mga eksperto lamang.
-markup pares
paggamit pares para i-parse ang input file. Pinapagana ang paggamit ng mga tool sa noweb sa mga file sa iba pa
mga format; halimbawa, ang numarkup naiintindihan ng parser nuweb(1) format. Tingnan mo
walangwebfilters(7) para sa karagdagang impormasyon. Para sa mga eksperto lamang.
-awk | -c | -icn | - icon | -ml | -m3 | -pascal | -f77 | -f90 | -tex
Kailan nountangle binabago ang mga tipak ng dokumentasyon sa mga komento, gamitin ang komento
format ng wikang pinangalanan. -c ay ang default. notangle binabalewala ang mga opsyong ito.
-wn Kailan nountangle binabago ang mga tipak ng dokumentasyon sa mga komento, lumikha ng mga komento sa
mga linya ng lapad n. notangle binabalewala ang opsyong ito.
PAGHAHAHAP
Output mula sa ngayon weave maaaring magamit sa TeX mga dokumento na \input nwmac, in LaTeX dokumento
na ginagamit ang noweb pakete (tingnan nowebstyle(1)), at sa HTML mga dokumentong dapat i-browse
MosaikNa (1). Noweave tinatrato ang mga chunks ng code na medyo katulad LaTeX listahan mga kapaligiran. Kung ang ``@
'' na nagtatapos sa isang tipak ng code ay sinusundan kaagad ng teksto, ang tekstong iyon ay sumusunod sa
code chunk nang walang pahinga ng talata. Kung blangko ang natitirang bahagi ng linya, ngayon weave naglalagay TeX
sa ``vertical mode,'' at magsisimula ang text sa ibang pagkakataon ng bago at naka-indent na talata.
Walang mga page break na nagaganap sa gitna ng mga code chunks maliban kung kinakailangan upang maiwasan ang labis na pagkapuno
vbox. Ang documentation chunk na kaagad na nauuna sa isang code chunk ay lalabas sa parehong page
bilang tipak ng code na iyon maliban kung ang paggawa nito ay lalabag sa nakaraang panuntunan.
Noweave walang dagdag na bagong linya sa loob nito TeX output, kaya ibinigay ang mga numero ng linya TeX
ang mga mensahe ng error ay pareho sa mga nasa input file.
ngayon weave may mga opsyon na nagdidikta ng pagpili ng formatter at sumusuporta sa iba't ibang pag-format
idyoma at kasangkapan. Ang mga pangunahing opsyon ay inilarawan dito; mga opsyon na nauugnay sa index at cross-
reference na impormasyon ay inilarawan sa INDEXING AT CROSS-REFERENCE na seksyon.
-latex Ilabas ang LaTeX, kasama ang wrapper in artikulo istilo kasama ang noweb pakete at pahina
istilo. (Default)
-tex Maglabas ng plain TeX, kasama ang wrapper na may nwmac mga macro.
-html Ilabas ang HTML, gamit ang HTML wrapper. Ang output ay hindi kawili-wili kung wala -index or -x.
Ang mga tag at , sa mga linyang mag-isa, gumagawa ng listahan ng
chunks at isang index ng mga identifier, ayon sa pagkakabanggit. Kung wala ang mga tag na ito,
ang listahan at index ay inilalagay sa dulo ng file.
-latex+html
Ipagpalagay na ang mga documentation chunks ay LaTeX, ngunit bumuo ng HTML para sa code chunks, naaangkop
minarkahan kaya conversion na may latex2html(1) nagbubunga ng makatwirang output. Isang LaTeX wrapper
ay ipinahiwatig, ngunit maaaring i-off gamit ang -n. paggamit of ito opsyon is hindi na ginagamit; gamitin
-html sa -filter l2h sa halip.
-troff Magbigay troff(1) markup (na walang balot). Ang resulta ay dapat iproseso sa
noroff(1). Mga ulat ng bug para sa -troff kay Aaron Robbins <arnold@gnu.org>.
-n Huwag gumamit ng anumang wrapper (header o trailer). Ang pagpipiliang ito ay kapaki-pakinabang kapag ngayon weave's
magiging bahagi ng mas malaking dokumento ang output. Tingnan din -antala.
-filter cmd
Sinasala ang noweb pinagmulan sa pamamagitan ng cmd pagkatapos i-convert ito sa tool form at bago
nagko-convert sa TeX. ngayon weave hinahanap para sa cmd una sa gumagamit DAAN, pagkatapos ay sa
/usr/lib/noweb. Maaaring gamitin ang mga naturang filter upang magdagdag ng mga feature sa ngayonweave; para sa isang
halimbawa, tingnan /usr/lib/noweb/noxref.krom. Noweave sumusuporta hanggang sa apat na mga filter; isa
maaaring makakuha ng higit pa sa pamamagitan ng shell trickery, halimbawa, -filter "icon.filter | noix". ang
-autodefs, -x, -index, at -index mula sa ang mga opsyon ay ipinatupad bilang mga filter. Mga filter
ay pinaandar gamit ang shell's eval utos, kaya cmd dapat na banggitin nang naaayon.
-markup pares
paggamit pares para i-parse ang input file. Pinapagana ang paggamit ng mga tool sa noweb sa mga file sa iba pa
mga format; halimbawa, ang numarkup naiintindihan ng parser nuweb(1) format. Tingnan mo
walangwebfilters(7) para sa karagdagang impormasyon. Para sa mga eksperto lamang.
-pagpipilian opt
Nagdadagdag \noweboptions{opt} sa LaTeX header. Tingnan mo nowebstyle(1) para sa mga halaga ng opt.
Karaniwang kapaki-pakinabang lamang sa -latex pagpipilian, ngunit -pagpipilian longxref gumagana ang black magic
sa -html.
-antala Sa pamamagitan ng default, ngayon weave naglalagay ng file-name at iba pang impormasyon sa output bago ang
unang bahagi ng programa. -antala inaantala ang impormasyong iyon hanggang matapos ang una
tipak ng dokumentasyon, ginagawang medyo katulad ng WEB ``limbo.'' Ang opsyon ay
karaniwang ginagamit upang paganahin ang isang gumagamit na maglagay ng isang dalubhasa LaTeX \documentclass utos
at iba pang preamble material sa unang bahagi ng dokumentasyon (ibig sabihin, bago ang
unang @ tanda). Pinipilit din ng opsyong ito na i-trailing ang cross-referencing na impormasyon sa
mailabas bago ang huling tipak, sa halip na sa dulo ng dokumento; ang
inaasahang maglalaman ang huling tipak \end{document}. Ang -antala ang opsyon ay nagpapahiwatig ng
-n pagpipilian.
-tk Palawakin ang mga tab na may mga paghinto bawat k mga hanay. (Default ay palawakin ang bawat 8 column.)
-t Kopyahin ang mga tab sa output.
-v I-print ang pipeline at impormasyon ng RCS sa karaniwang error.
PAG-INDEKS AT CROSS-SANGGUNIAN
Kapag ginamit sa LaTeX, troff, O HTML, ngayon weave maaaring magbigay ng pag-index at cross-reference
impormasyon para sa mga tipak at para sa mga pagkakakilanlan ng wikang programming. Mga kahulugan ng identifier
maaaring markahan ng kamay gamit ang mga backticks (`); ang -filter btdefn kinikilala ng opsyon ang mga ito
mga marka. Para sa ilang wika, ang mga kahulugan ay maaaring awtomatikong matagpuan gamit ang -autodefs
opsyon. Inilalarawan ng seksyong ito ang mga opsyon sa pag-index at cross-reference; maaaring ito ay mabuti
nilaktawan sa unang pagbasa.
-x para LaTeX, magdagdag ng page number sa bawat chunk name na nagpapakilala sa lokasyon niyon
kahulugan ng tipak, at naglalabas ng cross-reference na impormasyon na may kaugnayan sa mga kahulugan at
gamit. Para sa HTML, lumikha ng mga hypertext na link sa pagitan ng mga gamit at kahulugan ng mga chunks.
Kailan ngayon weave -x ay ginagamit sa LaTeX, ang control sequence \nowebchunks lumalawak sa a
pinagsunod-sunod na listahan ng lahat ng code chunks.
-index Bumuo ng cross-reference na impormasyon (o mga hypertext link) para sa mga tinukoy na identifier.
Ang mga kahulugan ay ang mga matatagpuan sa mga input file ni -autodefs wika o sa pamamagitan ng
-filterbtdefn. Nangangailangan LaTeX or Html. -index nagpapahiwatig -x; kasama ang parehong kalooban
bumuo ng kakaibang hitsura. ngayon weave hindi bumubuo ng mga cross-reference sa
mga identifier na lumalabas sa naka-quote na code (@[[...@]]), ngunit ito ay bumubuo ng hypertext
mga link. Kailan ngayon weave -index ay ginagamit sa LaTeX, ang control sequence \nowebindex
lumalawak sa isang index ng mga identifier.
-index mula sa index
katulad -index, ngunit ang mga identifier na mai-index ay kinuha mula sa file index. Tingnan
noindexNa (1).
-autodefs lang
Awtomatikong tumuklas ng mga kahulugan ng identifier. Ang code sa mga tipak ay dapat nasa wika
lang. Pinahihintulutan langs iba-iba ngunit maaaring kasama tex or icon. Walang silbi kung wala -index,
na dapat pangunahan.
-showautodefs
Ipakita ang mga halaga ng lang magagamit sa -autodefs.
ERROR MENSAHE
If notangle or ngayon weave nakatagpo ng isang tipak na pangalan sa loob ng dokumentasyon, ipinapalagay nito na ito
ay nagpapahiwatig ng error, kadalasang maling spelling ``< >=''. Ang iba pang mga mensahe ng error ay dapat na
nagpapaliwanag sa sarili.
Hindi tama na sumangguni sa isang tipak na hindi kailanman tinukoy, ngunit OK lang para sa mga tipak
tinukoy at hindi ginagamit.
HALIMBAWA
Kung nahihirapan kang i-digest ang man page na ito, hindi ka nag-iisa. Narito ang ilang mga halimbawa sa
simulan mo na. Ipagpalagay ko na mayroon kang isang foo.nw file na may isang C program sa tipak < >
at isang header file sa tipak < >, at ang iyong dokumentasyon ay namarkahan gamit ang
LaTeX(1). Ipapakita ko sa iyo kung paano bumuo ng mga bagay gamit ang pinakakaraniwang mga opsyon.
Upang muling buuin ang iyong C source, subukan
notangle -L -Rfoo.c foo.nw > foo.c
Upang muling buuin ang iyong header file, subukan
notangle -Rfoo.h foo.nw | cpif foo.h
Mayroong dalawang kompromiso dito. Tinatanggal -L nagpapanatili #linya mula sa iyong header file, at
paggamit cpif pinipigilan ang utos mula sa muling pagsusulat foo.h maliban kung ang mga nilalaman ay nagbago.
Kaya, ito ay magandang code upang ilagay sa isang panuntunan ng Makefile.
Upang bumuo ng isang naka-print na dokumento, tumakbo
ngayon weave -autodefs c -index foo.nw > foo.tex
Kung mayroon kang sariling preamble, na naglalaman ng \documentclass at lahat, kakailanganin mo rin ang
-antala pagpipilian.
Upang bumuo ng isang web page, tumakbo
ngayon weave -filter l2h -autodefs c -index -html foo.nw | htmltoc > foo.html
Maging masaya!
Gamitin ang nowweave online gamit ang mga serbisyo ng onworks.net