|
using System;
using System.Text;
using Irony.Compiler;
namespace FreightLanguageCompiler.Nodes
{
internal class StatementNode : AstNode, IJavascriptGenerator
{
/// <summary>
/// A statement has a single child: either SetVariable, IfStatement, OrderLoop, or Expression.
/// </summary>
private AstNode Child
{
get
{
return (AstNode)ChildNodes[0];
}
}
public StatementNode(AstNodeArgs args)
: base(args)
{
}
public void GenerateScript(StringBuilder builder)
{
IJavascriptGenerator child = (IJavascriptGenerator)Child;
child.GenerateScript(builder);
// if the statement is just an expression, then there will be no semicolon at the end
if (child is ExpressionNode)
{
builder.AppendLine(";");
}
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Daniel has a Bachelor of Science with First Class Honours from the University of Auckland, and has designed and developed software in companies large and small.