Web - Amazon

We provide Linux to the World

ON AMAZON:


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Ajuda:Funció Parser - Viquipèdia

Ajuda:Funció Parser

De Viquipèdia

Benvinguda
AJUDA
Manteniment
Comunitat
Polítiques
Consultar
Editar
Manteniment i organització
Establir contacte
Edita

Les funcions d'anàlisi sintàctic (parser) tenen la següent sintaxi:

{{{{#nomfunció: argument 1 | argument 2 | argument 3...}}

Taula de continguts

[edita] Funcions

Aquest mòdul defineix actualment cinc funcions: expr, if, ifeq, ifexpr, i switch.

[edita] #expr:

La funció expr calcula expressions matemàtiques. La sintaxi és:

{{ #expr: expressió }}

Els operadors que es poden fer servir són:

Operador Operació Exemple
* Multiplicació {{#expr: 30 * 7}} = 210
/ o div Divisió {{#expr: 30 / 7}} = 4.2857142857143
+ Suma {{#expr: 30 + 7}} = 37
- Resta (o signe negatiu) {{#expr: 30 - 7}} = 23
mod Mòdul, dóna com a resultat el residu de la divisió {{#expr: 30 mod 7}} = 2
round Arrodoneix el nombre de l'esquerra al nombre especificat de dígits després del punt decimal, cap a la dreta {{#expr: 30 / 7 round 7}} = 4.2857143
= Igualtat {{#expr: 30 = 7}} = 0
<> or != Desigualtat (o és diferent) {{#expr: 30 <> 7}} = 1
< Menor que {{#expr: 30 < 7}} = 0
> Major que {{#expr: 30 > 7}} = 1
<= Menor o igual que {{#expr: 30 <= 7}} = 0
>= Major o igual que {{#expr: 30 >= 7}} = 1
and 'I' lògic {{#expr: 30 and 7}} = 1
or 'O' lògic {{#expr: 30 or 7}} = 1
not 'NO ÉS' lògic {{#expr: not 7}} = 0
( ) Operadors d'agrupació {{#expr: (30 + 7) * 7 }} = 259


Els operadors booleans (cert/fals) consideren el 0 com a fals i l'1 com a cert. Els nombres es donen en decimals des del punt decimal ".". No es pot fer servir la sintaxi d'estil FORTRAN.

Exemple:

{{ #expr: (100 - 32) / 9 * 5 round 0 }}

dóna com a resultat:

38


[edita] #if:

La funció if segueix l'estructura de if-then-else. (si - aleshores - en cas contrari). La sintaxi és:

{{ #if: <condició> | <text then> | <text else> }}

Si es compleix la condició aleshores s'aplica la funció (o el text) del then. En cas que no es compleixi aleshores s'aplica la funció else.


Si la condició és una cadena buida o només té espais en blanc, aleshores es considera falsa, i la funció dóna com a resultat el text else. En cas contrari, el resultat que retorna és el text then. El text else es podria ometre, de manera que si la condició és falsa el resultat seria en blanc.

Un exemple:

                {{Plantilla|paràmetre=alguna cosa}} {{Plantilla}}  {{Plantilla|paràmetre=}}
                                  |                      |             |
                                  |                      |             |
                                  |                      |             |
{{ #if: {{{parameter|}}} | Paràmetre definit. | Paràmetre indefinit, o buit }}


Cal tenir present que la funció if no accepta signes de "=" o expressions matemàtiques. {{#if: 1 = 2|sí|no}} dóna com a resultat "sí", perque la cadena "1 = 2" no és en blanc. Té la consideració d'estructura "if definida". Per a comparar cadenes, s'ha de fer servir ifeq. Per a comparar nombres, s'ha de fer servir ifexpr.

[edita] #ifeq:

ifeq compara dues cadenes, i dóna com a resultat una altra cadena en funció del resultat d'aquesta comparació. La sintaxi és:

{{ #ifeq: <text de comparació 1> | <text de comparació 2> | <text igual> | <text desigual> }}

[edita] #ifexpr:

ifexpr evalua una expressió matemàtica i dóna com a resultat una cadena entre dues possibles en funció de la comparació.

{{ #ifexpr: <expressió> | <text then> | <text else> }}

Si l'expressió evalua zero, aleshores dóna com a resultat el text else, i en cas contrari aleshores el resultat és el text then. La sintaxi de l'expressió és la mateixa que la de expr.

[edita] #switch:

switch compara un únic valor amb altres diversos, donant com a resultat una cadena si troba un valor igual. La sintaxi és bàsicament:

{{ #switch: <valor de comparació>
| <valor1> = <resultat1>
| <valor2> = <resultat2>
| ...
| <valorn> = <resultatn>
| <resultat per defecte>
}}

switch cercarà en cadascun dels valors donats fins que en trobi un d'igual. Un cop trobat, la funció dóna el resultat corresponent (la cadena de text trobada després del signe d'igual). Si no en troba cap d'igual, però el darrer element no té un signe igual, aleshores dóna el resultat per defecte (default). Si el resultat per defecte "ha de tenir" un signe d'igual, es pot fer servir l'etiqueta #default:

{{ #switch: <valor de comparació>
| <valor> = <resultat>
| #default = <resultat per defecte>
}}

S'ha de tenir en compte que també és possible tenir valors "permeables" (reduïnt així la necessitat de duplicar resultats). Per exemple:

{{ #switch: <valor de comparació>
| <valor1>
| <valor2>
| <valor3> = <resultat3>
| ...
| <valorn> = <resultatn>
| <resultat per defecte>
}}

També s'ha de tenir en compte que valor1 i valor2 no tenen un signe igual. Si coincideixen en la comparació, s'obté el resultat de valor3 (és a dir, qualsevol cosa que hi hagi com a resultat3)

[edita] Sustitució

Vegeu també: m:Help:Substitution.

Aplicant "subst:" a una Funció d'Anàlisi Sintàctic sí funciona, sempre que no hi hagi espais entre "subst:" i "#".

Cal observar que a no ser que es faci servir una tècnica com la sustitució recursiva opcional, substituir una plantilla (template) que faci servir una Funció d'Anàlisi Sintàctic no substitueix aquesta función amb el seu resultat. Això s'ha d'evitar. Vegeu a meta:bugzilla:2777 una proposta ("substall:") que podria solucionar-ho.

[edita] Advertiments

[edita] Taules

Actualment la sintaxi de taules tipus pipe no funciona dins de condicionals. Existeixen dues maneres de contrarrestar-ho.

  • amagar el pipe de les funcions d'anàlisi sintàctic posant-lo en una plantilla. Per exemple: Template:! (talk, backlinks) com a w:en:
  • fer servir la sintaxi d'una taula d'estil html en comptes d'aquesta.

[edita] Problemes Coneguts

  1. #ifeq: compara números com a números si s'aplica, vegeu mediazilla:5693
  2. Les funcions #if poden corrompre la forma literal de paràmetres indefinits, en especial {{{1}}}

[edita] Instal.lació

Descarregueu ambdós fitxers i poseu-los en un directori nou anomenat ParserFunctions del vostre directori d' extensions

Després afegiu el següent al final del vostre LocalSettings.php:

require_once( "$IP/extensions/ParserFunctions/ParserFunctions.php" );

També es pot veure l'arbre de codi aquí:

[edita] 1.6

A MediaWiki 1.6, la sintaxi de les Funcions d'Anàlisi Sintàctic no té el caràcter '#'. Si voleu fer servir el caràcter '#', s'ha de canviar el codi de Parser.php tal com es mostra a continuació:

 $wgParser->setFunctionHook( 'expr', array( &$wgExtParserFunctions, 'expr' ) );
 to
 $wgParser->setFunctionHook( '#expr', array( &$wgExtParserFunctions, 'expr' ) );

 $wgParser->setFunctionHook( 'if', array( &$wgExtParserFunctions, 'ifHook' ) );
 to
 $wgParser->setFunctionHook( '#if', array( &$wgExtParserFunctions, 'ifHook' ) );

 $wgParser->setFunctionHook( 'ifeq', array( &$wgExtParserFunctions, 'ifeq' ) );
 to
 $wgParser->setFunctionHook( '#ifeq', array( &$wgExtParserFunctions, 'ifeq' ) );

 $wgParser->setFunctionHook( 'ifexpr', array( &$wgExtParserFunctions, 'ifexpr' ) );
 to
 $wgParser->setFunctionHook( '#ifexpr', array( &$wgExtParserFunctions, 'ifexpr' ) );

 $wgParser->setFunctionHook( 'switch', array( &$wgExtParserFunctions, 'switchHook' ) );
 to
 $wgParser->setFunctionHook( '#switch', array( &$wgExtParserFunctions, 'switchHook' ) );

[edita] Vegeu també

[edita] Enllaços externs

Static Wikipedia 2008 (March - no images)

aa - ab - als - am - an - ang - ar - arc - as - bar - bat_smg - bi - bug - bxr - cho - co - cr - csb - cv - cy - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - jbo - jv - ka - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nn - -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -
https://www.classicistranieri.it - https://www.ebooksgratis.com - https://www.gutenbergaustralia.com - https://www.englishwikipedia.com - https://www.wikipediazim.com - https://www.wikisourcezim.com - https://www.projectgutenberg.net - https://www.projectgutenberg.es - https://www.radioascolto.com - https://www.debitoformativo.it - https://www.wikipediaforschools.org - https://www.projectgutenbergzim.com