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)); }
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); }
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); }