コード例 #1
0
        IExpression parse_expression(String code)
        {
            OCleverParser   parser  = new OCleverParser(code);
            IParseTree      tree    = parser.expression();
            OPromptoBuilder builder = new OPromptoBuilder(parser);
            ParseTreeWalker walker  = new ParseTreeWalker();

            walker.Walk(builder, tree);
            return(builder.GetNodeValue <IExpression>(tree));
        }
コード例 #2
0
        public void canParseAndTranslateCss()
        {
            String        css    = "s2 = {color:#999;};";
            OCleverParser parser = new OCleverParser(css);
            IStatement    stmt   = parser.doParse <AssignInstanceStatement>(parser.assign_instance_statement);

            Assert.IsNotNull(stmt);
            CodeWriter writer = new CodeWriter(Dialect.O, Context.newGlobalsContext());

            stmt.ToDialect(writer);
            String result = writer.ToString() + ";";

            Assert.AreEqual(css, result);
        }
コード例 #3
0
        public void canParseAndTranslateMultilineAttributes()
        {
            String          jsx    = "return <a \n\tx=\"abc\"\n\ty=\"def\"\n\tz=\"stuff\" />;";
            OCleverParser   parser = new OCleverParser(jsx);
            ReturnStatement stmt   = parser.doParse <ReturnStatement>(parser.return_statement);

            Assert.IsNotNull(stmt.getExpression());
            CodeWriter writer = new CodeWriter(Dialect.O, Context.newGlobalsContext());

            stmt.ToDialect(writer);
            writer.append(";");
            String result = writer.ToString();

            Assert.AreEqual(jsx, result);
        }