/// <summary> /// </summary> /// <returns></returns> /// <remarks> /// /// See http://www.dmtf.org/sites/default/files/standards/documents/DSP0221_3.0.0a.pdf /// A.14 Complex type value /// /// complexTypeValue = complexValue / complexValueArray /// /// </remarks> internal static ComplexTypeValueAst Parse(ParserStream stream, QualifierListAst qualifiers) { var node = default(ComplexTypeValueAst); var peek = stream.Peek(); if (peek is BlockOpenToken) { // complexValueArray node = ComplexValueArrayAst.Parse(stream); } else if (peek is IdentifierToken) { // complexValue node = ComplexValueAst.Parse(stream); } else { throw new UnexpectedTokenException(peek); } node.Qualifiers = qualifiers; return(node); }
/// <summary> /// </summary> /// <returns></returns> /// <remarks> /// /// See http://www.dmtf.org/sites/default/files/standards/documents/DSP0221_3.0.0a.pdf /// A.14 Complex type value /// /// complexValueArray = "{" [ complexValue *( "," complexValue) ] "}" /// /// </remarks> internal new static ComplexValueArrayAst Parse(ParserStream stream) { // complexValueArray = var node = new ComplexValueArrayAst(); // "{" stream.Read <BlockOpenToken>(); // [ complexValue node.Values.Add(ComplexValueAst.Parse(stream)); // *( "," complexValue) ] while (stream.Peek <CommaToken>() != null) { stream.Read <CommaToken>(); node.Values.Add(ComplexValueAst.Parse(stream)); } // "}" stream.Read <BlockCloseToken>(); // return the result return(node); }