blocage sur appel de fonction
Bonjour tout le monde ,
je vous présente mon script qui contient plusieurs fonctions :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
function expr {
" je suis dans EXPR..."
facteur
while (1) {
switch -regex ($ligne[$script:i]) {
[-+] { accepter;facteur;$script:result += $_ }
default { "je sors de EXPR.";return }
}
}
}
function accepter {
$script:i++
}
function refuser {
$script:i--
}
function facteur {
"je suis dans FACTEUR..."
switch -regex (analex) {
'(' { $_;accepter;expr;')';accepter }
'nb' { $script:result += $script:lexeme.valeur }
default { "ERREUR" }
}
"je sors de FACTEUR."
}
function analex {
"je suis dans ANALEX..."
$script:lexeme.id='NA'
$script:lexeme.valeur=0
switch -regex ($ligne[$script:i]) {
[0-9] {
$script:lexeme.id='nb'
while(1) {
$script:lexeme.valeur *= 10+$_;accepter
switch -regex ($ligne[$script:i]) {
[0-9] { accepter;continue }
default { break }
}
}
return $script:lexeme
}
'`n`t' { accepter;continue }
' ' { accepter;continue }
'(' { return $($script:lexeme.id=$_) }
default { return $script:lexeme }
}
}
foreach($ligne in $input) {
$script:lexeme=@{}
$script:result=""
$script:i=0
expr
$script:result
} |
lorsque je lance ce script voila ce que j'obtiens :
je suis dans EXPR...
je suis dans FACTEUR...
On dirais qu'il ne veut pas entrer dans la fonction "analex" !? pourquoi ??
PS : en plus je dois breaké pour retrouver la console ....