예제 #1
0
 public static IEnumerable<Token> Scan(string source)
 {
     var se = new SymbolsEnumerator(source);
     var result = new Scanner(se).Scan();
     se.Dispose();
     return result;
 }
예제 #2
0
 public void ResetShouldSetPositionAsMinusOne()
 {
     var s = new SymbolsEnumerator("Elemar");
     s.MoveNext();
     s.Position.Should().Be(0);
     s.Reset();
     s.Position.Should().Be(-1);
 }
예제 #3
0
 //[ExpectedException(typeof(InvalidOperationException))]        
 public void CurrentFromIEnumeratorShouldThowsInvalidOperationExceptionWhenMoveNextWasNotCalled()
 {
     var s = new SymbolsEnumerator("Elemar");
     object c;
     Executing
         .This(() => c = ((IEnumerator)s).Current)
         .Should().Throw<InvalidOperationException>();
 }
예제 #4
0
 public void Initialization()
 {
     Assert.Throws<InvalidOperationException>(() =>
     {
         var s = new SymbolsEnumerator("Elemar");
         var c = s.Current;
         s.Dispose();
     });
 }
예제 #5
0
 public Scanner(SymbolsEnumerator symbols)
 {
     _symbols = symbols;
 }
예제 #6
0
 public void CanRecognizeIdentifier(string input, bool result)
 {
     var symbols = new SymbolsEnumerator(input);
     symbols.MoveNext();
     symbols.CurrentPosCouldBeAnIdentifier().Should().Be(result);
 }
예제 #7
0
 public void CurrentFromIEnumeratorShouldReturnSameAsRegularCurrent()
 {
     var s = new SymbolsEnumerator("Elemar");
     s.MoveNext();
     s.Current.Should().Be(((IEnumerator)s).Current);
 }