<html>
<script>
/*
expr ::= term + expr | term
term ::= factor * term | factor
factor ::= (expr) | id | const
*/
var p = "(5+6)*2";
var j = 0;
function expr () {
var x;
var y = 0;
x = term ();
if (p [j] == '+') {
j++;
y = expr ();
}
return x+y;
}
function term () {
var x;
var y = 1;
x = factor ();
if (p [j] == '*') {
j++;
y = term ();
}
return x*y;
}
function factor () {
var x;
if (p [j] == '(') {
j++;
x = expr ();
if (p [j] != ')') {
alert ("Error");
}
j++;
}
if ((p [j] >= '0') \&\& (p [j] <= '9')) {
x = parseInt (p [j]);
j++;
}
return x;
}
alert (expr ());
</script>
</html>