public ParameterDeclaration(ILineContext context, ASTType type, string internalName, string externalName) : base(context)
 {
     Type = type;
     InternalName = internalName;
     ExternalName = externalName;
     DefaultValue = null;
     InOut = false;
     NoConstant = false;
 }
 public ParameterDeclaration(ILineContext context, ASTType type, string name, bool sameInternalExternalName) : base(context)
 {
     Type = type;
     InternalName = name;
     if (sameInternalExternalName)
         ExternalName = name;
     else
         ExternalName = null;
     DefaultValue = null;
     InOut = false;
     NoConstant = false;
 }
 public TupleElement(ILineContext context, ASTType type, string name) : base(context)
 {
     Type = type;
     Name = name;
 }
 public TupleElement(ILineContext context, ASTType type) : base(context)
 {
     Type = type;
     Name = null;
 }
 public ConstantSymbol(string name, ASTType type, Exp value) : base(name)
 {
     Type = type;
     Value = value;
 }
 public VariableSymbol(string name, ASTType type) : base(name)
 {
     Type = type;
 }