コード例 #1
0
ファイル: StateMachine.cs プロジェクト: mkapolka/syllogisms
 private Parser.Binding GetBindingWithStream(string line, Stream stream)
 {
     Parser.Binding initial = Parser.GetBinding(line);
     Parser.Token[] tokens  = new Parser.Token[initial.tokens.Length];
     string[]       walked  = this.WalkTokens(initial.tokens, stream);
     for (int i = 0; i < tokens.Length; i++)
     {
         tokens[i]       = new Parser.Token();
         tokens[i].type  = walked[i] == null ? Parser.TokenType.Variable : Parser.TokenType.String;
         tokens[i].value = walked[i];
     }
     initial.tokens = tokens;
     return(initial);
 }
コード例 #2
0
ファイル: StateMachine.cs プロジェクト: mkapolka/syllogisms
 private string[] WalkTokens(Parser.Token[] tokens, Stream stream)
 {
     string[] output = new string[tokens.Length];
     for (int i = 0; i < tokens.Length; i++)
     {
         Parser.Token token      = tokens[i];
         string       tokenValue = token.value;
         if (token.type == Parser.TokenType.Variable)
         {
             tokenValue = stream.Walk(token.value);
         }
         output[i] = tokenValue;
     }
     return(output);
 }
コード例 #3
0
ファイル: StateMachine.cs プロジェクト: mkapolka/syllogisms
 private static Pair[] TokenToPairs(Parser.Token[] tokens)
 {
     Pair[] output = new Pair[tokens.Length];
     for (int i = 0; i < output.Length; i++)
     {
         Parser.Token token = tokens[i];
         if (token.type == Parser.TokenType.Variable)
         {
             output[i] = Pair.Variable(token.value);
         }
         else
         {
             output[i] = Pair.Value(token.value);
         }
     }
     return(output);
 }