本文整理汇总了C#中Reader.peek方法的典型用法代码示例。如果您正苦于以下问题:C# Reader.peek方法的具体用法?C# Reader.peek怎么用?C# Reader.peek使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Reader
的用法示例。
在下文中一共展示了Reader.peek方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: read_form
public static MalVal read_form(Reader rdr)
{
string token = rdr.peek();
if (token == null) { throw new MalContinue(); }
MalVal form = null;
switch (token) {
case "'": rdr.next();
return new MalList(new MalSymbol("quote"),
read_form(rdr));
case "`": rdr.next();
return new MalList(new MalSymbol("quasiquote"),
read_form(rdr));
case "~":
rdr.next();
return new MalList(new MalSymbol("unquote"),
read_form(rdr));
case "[email protected]":
rdr.next();
return new MalList(new MalSymbol("splice-unquote"),
read_form(rdr));
case "^": rdr.next();
MalVal meta = read_form(rdr);
return new MalList(new MalSymbol("with-meta"),
read_form(rdr),
meta);
case "@": rdr.next();
return new MalList(new MalSymbol("deref"),
read_form(rdr));
case "(": form = read_list(rdr, new MalList(), '(' , ')'); break;
case ")": throw new ParseError("unexpected ')'");
case "[": form = read_list(rdr, new MalVector(), '[' , ']'); break;
case "]": throw new ParseError("unexpected ']'");
case "{": form = read_hash_map(rdr); break;
case "}": throw new ParseError("unexpected '}'");
default: form = read_atom(rdr); break;
}
return form;
}
示例2: read_list
public static MalVal read_list(Reader rdr, MalList lst, char start, char end)
{
string token = rdr.next();
if (token[0] != start) {
throw new ParseError("expected '" + start + "'");
}
while ((token = rdr.peek()) != null && token[0] != end) {
lst.conj_BANG(read_form(rdr));
}
if (token == null) {
throw new ParseError("expected '" + end + "', got EOF");
}
rdr.next();
return lst;
}