code: function parseFunctionCall(name) {
                      var token, expr, args = [];
  
                      token = lexer.next();
                      if (!matchOp(token, '(')) {
                          throw new SyntaxError('Expecting ( in a function call "' + name + '"');
                      }
  
                      token = lexer.peek();
                      if (!matchOp(token, ')')) {
                          args = parseArgumentList();
                      }
  
                      token = lexer.next();
                      if (!matchOp(token, ')')) {
                          throw new SyntaxError('Expecting ) in a function call "' + name + '"');
                      }
  
                      expr = new MathLib.Expression({
                          subtype: 'functionCall',
                          value: name,
                          content: args
                      });
  
                      if (name in MathLib && MathLib[name].type === 'functn') {
                          if (MathLib[name].expression.content[0].hasOwnProperty('cdgroup')) {
                              expr.cdgroup = MathLib[name].expression.content[0].cdgroup;
                          }
  
                          if (MathLib[name].expression.content[0].hasOwnProperty('contentMathMLName')) {
                              expr.contentMathMLName = MathLib[name].expression.content[0].contentMathMLName;
                          }
  
                          if (MathLib[name].expression.content[0].hasOwnProperty('toContentMathML')) {
                              expr.toContentMathML = MathLib[name].expression.content[0].toContentMathML;
                          }
  
                          if (MathLib[name].expression.content[0].hasOwnProperty('toLaTeX')) {
                              expr.toLaTeX = MathLib[name].expression.content[0].toLaTeX;
                          }
  
                          if (MathLib[name].expression.content[0].hasOwnProperty('toMathML')) {
                              expr.toMathML = MathLib[name].expression.content[0].toMathML;
                          }
  
                          if (MathLib[name].expression.content[0].hasOwnProperty('toString')) {
                              expr.toString = MathLib[name].expression.content[0].toString;
                          }
                      }
  
                      return expr;
                  }
docs: FunctionCall ::= Identifier '(' ')' || Identifier '(' ArgumentList ')'