public ValidationEntry(ValidationEntrySource source, ValidationEntryLevel level, string message, SpiceLineInfo lineInfo = null)
 {
     Source   = source;
     Level    = level;
     Message  = message;
     LineInfo = lineInfo;
 }
 private static string CreateExceptionMessage(string message, SpiceLineInfo lineInfo)
 {
     return(lineInfo != null ?
            (lineInfo.FileName != null
             ? $"{message} (at line {lineInfo?.LineNumber}, start column = {lineInfo?.StartColumnIndex}, end column = {lineInfo?.EndColumnIndex} from file {lineInfo.FileName})"
             : $"{message} (at line {lineInfo?.LineNumber}, start column = {lineInfo?.StartColumnIndex}, end column = {lineInfo?.EndColumnIndex})") : $"{message}");
 }
        /// <summary>
        /// Returns new instance of <see cref="Control"/>
        /// from the values of children nodes of <see cref="Symbols.Control"/> parse tree node.
        /// </summary>
        /// <returns>
        /// A new instance of <see cref="Control"/>.
        /// </returns>
        private SpiceObject CreateControl(ParseTreeNodeEvaluationValues values)
        {
            Control       control;
            SpiceLineInfo lineInfo = new SpiceLineInfo(values);

            switch (values.GetLexem(0).ToLower())
            {
            case ".endl":
                control = new Control("endl", new ParameterCollection(), lineInfo);
                break;

            case ".if":
                control = new Control(
                    "if",
                    new ParameterCollection(
                        new List <Parameter>()
                {
                    new ExpressionParameter(values.GetLexem(1), lineInfo),
                }),
                    lineInfo);

                break;

            case ".elseif":
                control = new Control(
                    "elseif",
                    new ParameterCollection(
                        new List <Parameter>()
                {
                    new ExpressionParameter(values.GetLexem(1), lineInfo),
                }),
                    lineInfo);
                break;

            case ".else":
                control = new Control("else", new ParameterCollection(new List <Parameter>()), lineInfo);
                break;

            case ".endif":
                control = new Control("endif", new ParameterCollection(new List <Parameter>()), lineInfo);
                break;

            default:
                control = new Control(values.GetLexem(1), values.GetSpiceObject <ParameterCollection>(2), lineInfo);
                break;
            }

            return(control);
        }
 public PointValues(SpiceLineInfo lineInfo) : base(lineInfo)
 {
     Items = new List <SingleParameter>();
 }
 public PointValues(List <SingleParameter> items, SpiceLineInfo lineInfo) : base(lineInfo)
 {
     Items = items;
 }
 public CommentLine(string text, SpiceLineInfo lineInfo) : base(lineInfo)
 {
     Text = text;
 }
 public AssignmentParameter(string name, List <string> arguments, List <string> values, bool hasFunctionSyntax, SpiceLineInfo lineInfo) : base(lineInfo)
 {
     Name              = name;
     Arguments         = arguments;
     Values            = values;
     HasFunctionSyntax = hasFunctionSyntax;
 }
 public SubCircuit(string name, Statements statements, List <string> pins, SpiceLineInfo lineInfo) : base(lineInfo)
 {
     Name       = name;
     Statements = statements;
     Pins       = pins;
 }
Beispiel #9
0
 public StringParameter(string rawString, SpiceLineInfo lineInfo)
     : base(rawString, lineInfo)
 {
 }
 public LexerException(string message, Exception inner, SpiceLineInfo lineInfo)
     : base(message, inner, lineInfo)
 {
 }
 public WordParameter(string word, SpiceLineInfo lineInfo) : base(word, lineInfo)
 {
 }
Beispiel #12
0
 public PointParameter(PointValues values, SpiceLineInfo lineInfo)
     : base(lineInfo)
 {
     Values = values;
 }
 protected SpiceObject(SpiceLineInfo lineInfo)
 {
     LineInfo = lineInfo;
 }
 public ValueParameter(string value, SpiceLineInfo lineInfo)
     : base(value, lineInfo)
 {
 }
Beispiel #15
0
 public ExpressionParameter(string expression, SpiceLineInfo lineInfo)
     : base(expression, lineInfo)
 {
 }
 public Points(List <PointParameter> values, SpiceLineInfo lineInfo) : base(lineInfo)
 {
     Values = values;
 }
Beispiel #17
0
 public ExpressionEqualParameter(string expression, Points points, SpiceLineInfo lineInfo)
     : base(lineInfo)
 {
     Expression = expression;
     Points     = points;
 }
Beispiel #18
0
 public Component(string name, ParameterCollection pinsAndParameters, SpiceLineInfo lineInfo)
     : base(lineInfo)
 {
     Name = name;
     PinsAndParameters = pinsAndParameters;
 }
Beispiel #19
0
        private IComponentGenerator GetComponentGenerator(ICircuitContext context, string componentName, SpiceLineInfo lineInfo, out string componentType)
        {
            foreach (var map in Mapper)
            {
                if (componentName.StartsWith(map.Key, context.CaseSensitivity.IsEntityNameCaseSensitive ? StringComparison.CurrentCulture : StringComparison.CurrentCultureIgnoreCase))
                {
                    componentType = map.Key;
                    return(map.Value);
                }
            }
            context.Result.Validation.Add(new ValidationEntry(ValidationEntrySource.Reader, ValidationEntryLevel.Warning, $"Unsupported component {componentName}", lineInfo));

            componentType = null;
            return(null);
        }
 protected Parameter(SpiceLineInfo lineInfo) : base(lineInfo)
 {
 }
Beispiel #21
0
 public SubCircuit(string name, Statements statements, ParameterCollection pins, SpiceLineInfo lineInfo)
     : base(lineInfo)
 {
     Name       = name;
     Statements = statements;
     Pins       = pins;
 }
 public SpiceSharpParserException(string message, Exception innerException, SpiceLineInfo lineInfo)
     : base(CreateExceptionMessage(message, lineInfo), innerException)
 {
     LineInfo = lineInfo;
 }
 public Model(string name, ParameterCollection parameters, SpiceLineInfo lineInfo) : base(lineInfo)
 {
     Name       = name;
     Parameters = parameters;
 }
Beispiel #24
0
 public ReferenceParameter(string reference, SpiceLineInfo lineInfo)
     : base(reference, lineInfo)
 {
     Name     = reference.Substring(1, reference.IndexOf('[') - 1);
     Argument = reference.Substring(reference.IndexOf('[') + 1).TrimEnd(']');
 }
 protected Statement(SpiceLineInfo lineInfo) : base(lineInfo)
 {
 }
Beispiel #26
0
 protected SingleParameter(string rawString, SpiceLineInfo lineInfo)
     : base(lineInfo)
 {
     _rawString = rawString;
 }
 public IdentifierParameter(string identifier, SpiceLineInfo lineInfo)
     : base(identifier, lineInfo)
 {
 }
Beispiel #28
0
 public PercentParameter(string value, SpiceLineInfo lineInfo)
     : base(value, lineInfo)
 {
 }