/** * generated by Xtext 2.14.0 */ package com.minres.rdl.tests; import com.google.inject.Inject; import com.minres.rdl.rdl.Root; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.xtend2.lib.StringConcatenation; import org.eclipse.xtext.testing.InjectWith; import org.eclipse.xtext.testing.XtextRunner; import org.eclipse.xtext.testing.util.ParseHelper; import org.eclipse.xtext.xbase.lib.Exceptions; import org.eclipse.xtext.xbase.lib.IterableExtensions; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; @RunWith(XtextRunner.class) @InjectWith(RDLInjectorProvider.class) @SuppressWarnings("all") public class RDLParsingTest { @Inject private ParseHelper parseHelper; @Test public void loadModel() { try { StringConcatenation _builder = new StringConcatenation(); _builder.append("regfile uart_regs {"); _builder.newLine(); _builder.append("\t"); _builder.append("reg {"); _builder.newLine(); _builder.append("\t\t"); _builder.append("name=\"txdata\";"); _builder.newLine(); _builder.append("\t\t"); _builder.append("desc=\"Transmit data register\";"); _builder.newLine(); _builder.append("\t\t"); _builder.append("field {} data[7:0];"); _builder.newLine(); _builder.append("\t\t"); _builder.append("field {} full[31:31];"); _builder.newLine(); _builder.append("\t"); _builder.append("} txdata @0x00;"); _builder.newLine(); _builder.append("\t"); _builder.append("reg {"); _builder.newLine(); _builder.append("\t\t"); _builder.append("name=\"rxdata\";"); _builder.newLine(); _builder.append("\t\t"); _builder.append("desc=\"Receive data register\";"); _builder.newLine(); _builder.append("\t\t"); _builder.append("field {} data[7:0];"); _builder.newLine(); _builder.append("\t\t"); _builder.append("field {} empty[31:31];"); _builder.newLine(); _builder.append("\t"); _builder.append("}rxdata @0x04;"); _builder.newLine(); _builder.append("\t"); _builder.append("reg {"); _builder.newLine(); _builder.append("\t\t"); _builder.append("name=\"txctrl\";"); _builder.newLine(); _builder.append("\t\t"); _builder.append("desc=\"Transmit control register\";"); _builder.newLine(); _builder.append("\t\t"); _builder.append("field {} txen[1];"); _builder.newLine(); _builder.append("\t\t"); _builder.append("field {} nstop[1];"); _builder.newLine(); _builder.append("\t\t"); _builder.append("field {} txcnt[18:16];"); _builder.newLine(); _builder.append("\t"); _builder.append("}txctrl @0x08;"); _builder.newLine(); _builder.append("\t"); _builder.append("reg {"); _builder.newLine(); _builder.append("\t\t"); _builder.append("name=\"rxctrl\";"); _builder.newLine(); _builder.append("\t\t"); _builder.append("desc=\"Receive control register\";"); _builder.newLine(); _builder.append("\t\t"); _builder.append("field {} rxen[1];"); _builder.newLine(); _builder.append("\t\t"); _builder.append("field {} rxcnt[18:16];"); _builder.newLine(); _builder.append("\t"); _builder.append("}rxctrl @0x0C;"); _builder.newLine(); _builder.append("\t"); _builder.append("reg {"); _builder.newLine(); _builder.append("\t\t"); _builder.append("name=\"ie\";"); _builder.newLine(); _builder.append("\t\t"); _builder.append("desc=\"UART interrupt enable\";"); _builder.newLine(); _builder.append("\t\t"); _builder.append("field{} txwm[1];"); _builder.newLine(); _builder.append("\t\t"); _builder.append("field{} rxwm[1];"); _builder.newLine(); _builder.append("\t"); _builder.append("}ie @0x10;"); _builder.newLine(); _builder.append("\t"); _builder.append("reg {"); _builder.newLine(); _builder.append("\t\t"); _builder.append("name=\"ip\";"); _builder.newLine(); _builder.append("\t\t"); _builder.append("desc=\"UART Interrupt pending\";"); _builder.newLine(); _builder.append("\t\t"); _builder.append("field{} txwm[1];"); _builder.newLine(); _builder.append("\t\t"); _builder.append("field{} rxwm[1];"); _builder.newLine(); _builder.append("\t"); _builder.append("} ip @0x14;"); _builder.newLine(); _builder.append("\t"); _builder.append("reg {"); _builder.newLine(); _builder.append("\t\t"); _builder.append("name=\"div\";"); _builder.newLine(); _builder.append("\t\t"); _builder.append("desc=\"Baud rate divisor\";"); _builder.newLine(); _builder.append("\t\t"); _builder.append("field{} div[16];"); _builder.newLine(); _builder.append("\t"); _builder.append("} div @0x18;"); _builder.newLine(); _builder.append("};"); _builder.newLine(); final Root result = this.parseHelper.parse(_builder); Assert.assertNotNull(result); final EList errors = result.eResource().getErrors(); StringConcatenation _builder_1 = new StringConcatenation(); _builder_1.append("Unexpected errors: "); String _join = IterableExtensions.join(errors, ", "); _builder_1.append(_join); Assert.assertTrue(_builder_1.toString(), errors.isEmpty()); } catch (Throwable _e) { throw Exceptions.sneakyThrow(_e); } } }