mirror of
https://github.com/Cekis/SWG-ScriptConverter.git
synced 2026-01-16 22:04:29 -05:00
26 lines
773 B
C#
26 lines
773 B
C#
using System.Linq;
|
|
using ScriptConverter.Ast.Expressions;
|
|
|
|
namespace ScriptConverter.Parser.Parselets.Expressions
|
|
{
|
|
class CallParselet : IInfixParselet
|
|
{
|
|
public int Precedence { get { return (int)PrecedenceValue.Suffix; } }
|
|
|
|
public Expression Parse(ScriptParser parser, Expression left, ScriptToken token)
|
|
{
|
|
var parameters = parser.ParseSeparatedBy(ScriptTokenType.Comma, (_, first) =>
|
|
{
|
|
if (first && parser.Match(ScriptTokenType.RightParen))
|
|
return null;
|
|
|
|
return parser.ParseExpression();
|
|
}).ToList();
|
|
|
|
parser.Take(ScriptTokenType.RightParen);
|
|
|
|
return new CallExpression(parser.Previous, left, parameters);
|
|
}
|
|
}
|
|
}
|