本文整理汇总了C#中TokenData.BuildTerminalNode方法的典型用法代码示例。如果您正苦于以下问题:C# TokenData.BuildTerminalNode方法的具体用法?C# TokenData.BuildTerminalNode怎么用?C# TokenData.BuildTerminalNode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TokenData
的用法示例。
在下文中一共展示了TokenData.BuildTerminalNode方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ParseData
public static void ParseData(ParseNode node)
{
var tokenData = node.Children.First();
var defineText = tokenData.Content.Remove(0, "#property ".Length);
var lexer = new Mq4Lexer();
var defineTokens = lexer.BuildTextTokens(defineText);
var nodes = defineTokens.Select(token => token.BuildTerminalNode()).ToList();
var states = new CleanupAstNodeStates(nodes);
var assemblyOfAttributes = typeof(indicator_color1Attribute).Assembly;
var fullTypeName = string.Format("Mql2Fdk.Attributes.{0}Attribute", states[0].Content);
var fullTypeNameReduced = string.Format("Mql2Fdk.Attributes.{0}", states[0].Content);
var getTypeofAttribute =
assemblyOfAttributes.GetType(fullTypeName)
?? assemblyOfAttributes.GetType(fullTypeNameReduced);
bool needsQuotes = false;
var typeName = getTypeofAttribute!=null
? ComputeTypenameFromReflection(getTypeofAttribute, states, ref needsQuotes)
: ComputeTypeFromStatements(states, ref needsQuotes);
var variableToken = states.MappedNodes[0];
var valueToken = states.Count != 1
? states.MappedNodes[1]
: new TokenData(0, 0, TokenKind.Int, "1").BuildTerminalNode();
if (needsQuotes)
{
var finalTokenData = valueToken.GetTokenData();
finalTokenData.Token = TokenKind.QuotedString;
finalTokenData.Content = string.Format("\"{0}\"", finalTokenData.Content);
}
node.Children.Clear();
var insertTokenType = new TokenData(0, 0, TokenKind.TypeName, typeName);
var buildTerminalToken = insertTokenType.BuildTerminalNode();
node.Add(buildTerminalToken);
node.AddTerminalToken(new TokenData(0, 0, TokenKind.Space, " "));
node.Add(variableToken);
node.AddTerminalToken(new TokenData(0, 0, TokenKind.Assign, "="));
node.Add(valueToken);
var colon = new TokenData(0, 0, TokenKind.SemiColon, ";").BuildTerminalNode();
node.Children.Add(colon);
}
示例2: AddTerminalToken
public static ParseNode AddTerminalToken(this ParseNode parentNode, TokenData tokenData)
{
var assignToken = tokenData.BuildTerminalNode();
parentNode.Add(assignToken);
return assignToken;
}