public static void ComposeNamespace(AstContext context, ParseTreeNode treeNode) { //Console.Out.WriteLine("Duh"); var token = new Token(treeNode.Token.ValueString); var astNode = new NamespaceBlock(token); treeNode.AstNode = astNode; }
// internal void ParseNamespace(Token tok) { Advance(); //past 'namespace NamespaceBlock def = new NamespaceBlock(CurrentToken); Advance(); //past name ParseLines(def); CurrentNode.AddChild(def); }
internal void ParseUsing(NamespaceBlock parent) { Advance(); //past 'using Token name = CurrentToken; Advance(); //past name UsingDef def = new UsingDef(name); parent.AddChild(def); }
/// <summary> /// Visits the specified namespace block. /// </summary> /// <param name="namespaceBlock">The namespace block.</param> public override void Visit(NamespaceBlock namespaceBlock) { WriteLinkLine(namespaceBlock); Write("namespace ").Write(namespaceBlock.Name); OpenBrace(); foreach (Node node in namespaceBlock.Body) { VisitDynamic(node); } CloseBrace(); }
protected virtual void Visit(NamespaceBlock namespaceBlock) { WriteLinkLine(namespaceBlock); Write("namespace ").Write(namespaceBlock.Name); OpenBrace(); foreach (Node node in namespaceBlock.Body) { VisitDynamic(node); } CloseBrace(); }
private void FixShaderClassTypeWithNoNameSpace() { for (int i = 0; i < shader.Declarations.Count; i++) { var node = shader.Declarations[i]; if (node is ShaderClassType) { var nameSpaceBlock = new NamespaceBlock(DefaultNameSpace); nameSpaceBlock.Body.Add(node); shader.Declarations[i] = nameSpaceBlock; } } }
public static CspFile Find(string str) { Match match = Is.MatchesAll(str); if (match == null) { return(null); } var block = NamespaceBlock.Find(match.Groups["FileNamespaceBlock"].ToString()); if (block == null) { return(null); } return(new CspFile() { namespaceUsing = NamespaceUsing.Find(match.Groups["FileNamespaceUsing"].ToString()), namespaceBlock = block }); }
public ICodeBlock Translate(ICodeBlock parent = null, int start = 0, int finish = -1) { if (finish == -1) { finish = Code.Count; } ICodeBlock result; if (parent != null) { result = new ComplexBlock(parent); } else { result = new NamespaceBlock(null); } var interpreted = new List <ICodeBlock>(); var startPlainBlock = start; for (var i = start; i < finish; i++) { if (Empty.IsMatch(Code[i]) || Comment.IsMatch(Code[i])) { continue; } var match = Condition.Match(Code[i]); if (match.Success) { CheckForPlain(result, startPlainBlock, i, interpreted); interpreted.Add(TranslateCondition(result, match.Groups["condition"].ToString(), i, out i)); startPlainBlock = i; continue; } match = WhileCycle.Match(Code[i]); if (match.Success) { CheckForPlain(result, startPlainBlock, i, interpreted); interpreted.Add(TranslateWhile(result, match.Groups["condition"].ToString(), i, out i)); startPlainBlock = i + 1; continue; } } CheckForPlain(result, startPlainBlock, finish, interpreted); if (interpreted.Count == 1 && parent != null) { result = interpreted[0]; result.ParentBlock = parent; } else if (result is ComplexBlock complexBlock) { complexBlock.Code = interpreted; } else { ((NamespaceBlock)result).Code = interpreted; } return(result); }
static Regex GetIs(string FileNamespaceUsing = "FileNamespaceUsing", string FileNamespaceBlock = "FileNamespaceBlock", string UsingNamespaceName = "UsingNamespaceName") { return(new Regex( $"(?<{FileNamespaceUsing}>{NamespaceUsing.GetIs(UsingNamespaceName)}){FileSign.NextLine}(?<{FileNamespaceBlock}>{NamespaceBlock.GetIs()})")); }