示例#1
0
 public void Write(OMCLNone none)
 {
     _writer.WriteLine("none");
 }
示例#2
0
        public OMCLItem ParseItem()
        {
            var tags = ParseTags();

            SkipNewlines();

            var next = PeekToken();

            switch (next.Type)
            {
            case TokenType.OpenBrace:
                return(DoParseObject(tags));

            case TokenType.OpenBracket:
                return(DoParseArray(tags));

            case TokenType.String: {
                NextToken();

                var sb = new StringBuilder();
                sb.Append(next.value as string);

                while (true)
                {
                    next = PeekToken();
                    if (next.Type == TokenType.String)
                    {
                        sb.Append(next.value as string);
                        NextToken();
                    }
                    else
                    {
                        break;
                    }
                }

                OMCLItem result = sb.ToString();
                result.Tags = tags;
                return(result);
            }

            case TokenType.KwFalse: goto case TokenType.KwTrue;

            case TokenType.KwTrue: {
                NextToken();
                OMCLItem result = next.Type == TokenType.KwTrue;
                result.Tags = tags;
                return(result);
            }

            case TokenType.KwNone: {
                NextToken();
                OMCLItem result = new OMCLNone();
                result.Tags = tags;
                return(result);
            }

            case TokenType.Int: {
                NextToken();
                OMCLItem result = (long)next.value;
                result.Tags = tags;
                return(result);
            }

            case TokenType.Float: {
                NextToken();
                OMCLItem result = (double)next.value;
                result.Tags = tags;
                return(result);
            }
            }

            throw new NotImplementedException(nameof(ParseItem));
        }