예제 #1
0
 public ScannedToken(SheepTokenType type, BetterString text, int line)
 {
     Type     = type;
     Position = text.Position;
     Line     = line;
     Text     = text;
 }
예제 #2
0
        private void addToTokens(SheepTokenType type, bool isRegex, string text)
        {
            SheepToken token;

            token.Type    = type;
            token.IsRegex = isRegex;
            token.Text    = text;

            if (isRegex)
            {
                token.Regex = new Regex(text);
                _regexTokens.Add(token);
            }
            else
            {
                token.Regex = null;
                _normalTokens.Add(token);
            }
        }
예제 #3
0
        private float getFloatFromLiteralToken(SheepTokenType type, BetterString text)
        {
            if (type == SheepTokenType.LiteralFloat)
            {
                float data;
                if (text.TryParseFloat(out data))
                {
                    return(data);
                }
            }
            else if (type == SheepTokenType.LiteralInteger)
            {
                int data;
                if (text.TryParseInt(out data))
                {
                    return((float)data);
                }
            }

            throw new SheepCompilerException();
        }
예제 #4
0
 public SheepToken2(SheepTokenType type, string text)
 {
     Type = type;
     Text = text;
 }