Exemple #1
0
 public TokenInfo(TokenKind kind, int prec, int assoc, TokenAction action)
     : this(kind, TokenCategory.None, null)
 {
     Action = action;
     Prec   = prec;
     Assoc  = assoc;
 }
Exemple #2
0
 //
 void ParseLine()
 {
     while (CurrentToken != null)
     {
         Token       tok    = CurrentToken;
         TokenAction action = CurrentDialect.GetAction(tok);
         action(tok);
     }
 }
Exemple #3
0
 public TokenInfo(TokenKind kind, TokenCategory category, string pattern, TokenAction action, TokenAction action2)
 {
     Kind     = kind;
     Category = category;
     Pattern  = pattern;
     Action   = action;
     Action2  = action2;
     Prec     = 0;
     Assoc    = 0;
 }
Exemple #4
0
        public async Task AddUsage(string id, TokenAction action)
        {
            var token = await _tokens.Find(token => token.Id == id).FirstOrDefaultAsync();

            token.Usages.Add(action);

            var filter = Builders <Token> .Filter.Eq("_id", ObjectId.Parse(id));

            var update = Builders <Token> .Update.Set("usages", token.Usages);

            await _tokens.UpdateOneAsync(filter, update);
        }
        protected virtual bool HandleTokensReceived(TokenAction action)
        {
            if (this.TokenManagersToBalances.ContainsKey(action.Origin))
            {
                this.TokenManagersToBalances[action.Origin] += action.Tokens.TotalBalance;
            }
            else
            {
                this.TokenManagersToBalances.Add(action.Origin, action.Tokens.TotalBalance);
            }

            return(true);
        }
Exemple #6
0
        private bool TokensReceived(
            TokenAction action,
            ref SortedDictionary <Address, ITokensReceivedStrategy> addressToStrategy)
        {
            if (!addressToStrategy.ContainsKey(action.Sender))
            {
                throw new NotRegisteredReceivedStrategyException(action, this.Address);
            }

            foreach ((IComparable key, BigInteger value) in action.Tokens)
            {
                var result = addressToStrategy[action.Sender]
                             .Execute(value, action.Sender, this.Address, key);
                foreach (Action curAction in result)
                {
                    this.OnSend(curAction);
                }
            }

            return(true);
        }
Exemple #7
0
 public TokenInfo(TokenKind kind, TokenCategory category, string pattern, TokenAction action)
     : this(kind, category, pattern, action, null)
 {
 }
Exemple #8
0
 //
 public TokenInfo(TokenKind kind, TokenAction action)
     : this(kind, 0, 0, action)
 {
 }