Beispiel #1
0
 public void RecognisesLetStatementWithMoreComplexExpression()
 {
     classUnderTest.AddToSymbolTable("y", IdentifierKind.Var, null);
     classUnderTest.AddToSymbolTable("x", IdentifierKind.Field, null);
     classUnderTest.AddToSymbolTable("finished", IdentifierKind.Field, null);
     classUnderTest.ParseLetStatement()
     .ShouldGenerateXml(@"
                     <letStatement>
                       <keyword>let</keyword>
                       <identifier kind='var' isDefinition='false' number='0'>y</identifier>
                       <symbol>[</symbol>
                       <expression>
                         <term>
                           <identifier kind='field' isDefinition='false' number='0'>x</identifier>
                         </term>
                         <symbol>+</symbol>
                         <term>
                           <integerConstant>1</integerConstant>
                         </term>
                       </expression>
                       <symbol>]</symbol>
                       <symbol>=</symbol>
                       <expression>
                         <term>
                           <symbol>~</symbol>
                           <term>
                             <identifier kind='field' isDefinition='false' number='1'>finished</identifier>
                           </term>
                         </term>
                       </expression>
                       <symbol>;</symbol>
                     </letStatement>
         ");
 }
 public void RecognisesLetStatementWithMoreComplexExpression()
 {
     classUnderTest.ParseLetStatement()
     .ShouldGenerateXml(@"
                     <letStatement>
                       <keyword>let</keyword>
                       <identifier>y</identifier>
                       <symbol>[</symbol>
                       <expression>
                         <term>
                           <identifier>x</identifier>
                         </term>
                         <symbol>+</symbol>
                         <term>
                           <integerConstant>1</integerConstant>
                         </term>
                       </expression>
                       <symbol>]</symbol>
                       <symbol>=</symbol>
                       <expression>
                         <term>
                           <symbol>~</symbol>
                           <term>
                             <identifier>finished</identifier>
                           </term>
                         </term>
                       </expression>
                       <symbol>;</symbol>
                     </letStatement>
         ");
 }
Beispiel #3
0
 public void RecognisesLetStatementWithSimpleExpression()
 {
     classUnderTest.ParseLetStatement().ShouldGenerateXml(@"
         <letStatement>
             <keyword>let</keyword>
             <identifier kind='var' isDefinition='false' number='0'>x</identifier>
             <symbol>=</symbol>
             <expression>
             <term>
                 <integerConstant>1234</integerConstant>
             </term>
             </expression>
             <symbol>;</symbol>
         </letStatement>
     ");
 }