本文整理汇总了C#中Token.GetLocation方法的典型用法代码示例。如果您正苦于以下问题:C# Token.GetLocation方法的具体用法?C# Token.GetLocation怎么用?C# Token.GetLocation使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Token
的用法示例。
在下文中一共展示了Token.GetLocation方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Parse
public IExpression Parse(Parser parser, Token<TokenType> token)
{
var name = parser.TakeExpression<CallExpression>(Predecence.Prefix);
if (!name.GetArguments().All(a => a is NameExpression)) // TODO: should this constraint be handled by the parser?
throw new ParseException(token.GetLocation(), "All arguments in function's name must be NameExpressions");
List<IExpression> inner = new List<IExpression>();
while (true)
{
var innerToken = parser.PeekToken();
if (innerToken.Identifier == TokenType.End)
{
parser.TakeToken(); // consume the token we peeked
break;
}
if (innerToken.Identifier == TokenType.EOF)
throw new ParseException(innerToken.GetLocation(), "EOF token reached before End was found");
inner.Add(parser.TakeExpression(Predecence.Prefix));
}
return new FunctionExpression(name, inner, token);
}
示例2: Parse
public IExpression Parse(Parser parse, Token<TokenType> token)
{
double value;
if (!double.TryParse(token.Value, out value))
throw new ParseException(token.GetLocation(), String.Format("Invalid value for NumeralExpression: {0}", token.Value));
return new NumeralExpression(value, token);
}
示例3: Parse
public IExpression Parse(Parser parser, Token<TokenType> token)
{
bool value;
if (!Boolean.TryParse(token.Value, out value))
throw new ParseException(token.GetLocation(), String.Format("Invalid value for BooleanExpression: {0}", token.Value));
return new BooleanExpression(value, token);
}