示例#1
0
    public static UssStyleCondition[] ParseConditions(string src)
    {
        src += " "; // padding
        var p = new UssParser();

        p.ParseAll(UssLexer.Parse(src));
        return(p.conditions.ToArray());
    }
示例#2
0
 public void InvalidToken_WrongHexColor()
 {
     Assert.Throws <UssInvalidTokenException>(() => {
         UssLexer.ParseOne("#..zuzu..");
     });
     Assert.DoesNotThrow(() => {
         UssLexer.ParseOne("#ABABAB");
     });
 }
示例#3
0
    public void ParseOne_Number()
    {
        var parsed = UssLexer.ParseOne("1234");

        Assert.AreEqual(UssTokenType.Int, parsed.type);

        parsed = UssLexer.ParseOne("123.4");
        Assert.AreEqual(UssTokenType.Float, parsed.type);
    }
示例#4
0
    public void ParseAll()
    {
        var tokens = UssLexer.Parse("corgi{color:#ABABAB;}");

        Assert.AreEqual(UssTokenType.Id, tokens[0].type);
        Assert.AreEqual(UssTokenType.LeftBracket, tokens[1].type);
        Assert.AreEqual(UssTokenType.Colon, tokens[3].type);
        Assert.AreEqual(UssTokenType.HexColor, tokens[4].type);
        Assert.AreEqual(UssTokenType.SemiColon, tokens[5].type);
        Assert.AreEqual(UssTokenType.RightBracket, tokens[6].type);
    }
示例#5
0
    public void InvalidToken_LongNumber()
    {
        // INTEGER
        Assert.Throws <UssInvalidTokenException>(() => {
            UssLexer.ParseOne("123412341234213124123214123124213");
        });
        Assert.DoesNotThrow(() => {
            UssLexer.ParseOne("1234");
        });

        // FLOAT
        Assert.Throws <UssInvalidTokenException>(() => {
            UssLexer.ParseOne("12341234123.4213124123214123124213");
        });
        Assert.DoesNotThrow(() => {
            UssLexer.ParseOne("123.4");
        });
    }
示例#6
0
 public static UssParsingResult Parse(string src)
 {
     return(new UssParser().ParseAll(UssLexer.Parse(src)));
 }
示例#7
0
    public void ParseOne()
    {
        var parsed = UssLexer.ParseOne("#ABABAB");

        Assert.AreEqual(UssTokenType.HexColor, parsed.type);
    }
示例#8
0
    public void ParseOne_ValueRef()
    {
        var parsed = UssLexer.ParseOne("@asdf");

        Assert.AreEqual(UssTokenType.ValueRef, parsed.type);
    }