Esempio n. 1
0
        /// <summary>
        /// Define a new primitive language operator for this language
        /// </summary>
        /// <param name="opName">The operator name</param>
        /// <param name="opSymbolString">The operator symbol</param>
        /// <returns></returns>
        public OperatorPrimitive DefineLanguageOperatorPrimitive(string opName, string opSymbolString)
        {
            if (OperatorPrimitiveDictionary.ContainsKey(opName))
            {
                return(OperatorPrimitiveDictionary[opName]);
            }

            var newOp = OperatorPrimitive.Create(opName, opSymbolString);

            OperatorPrimitiveDictionary.Add(opName, newOp);

            return(newOp);
        }
Esempio n. 2
0
            internal static OperatorToken ReadOperator(TokenCollection stream)
            {
                if (stream.NextIsEndOfLine)
                {
                    throw new HspLogicalLineException("演算子:読み込み中にスタックが空になった");
                }
                //変数プリティブ読み込み
                OperatorPrimitive token = stream.GetNextToken() as OperatorPrimitive;

                if (token == null)
                {
                    throw new HspLogicalLineException("演算子:不適切な要素を検出");
                }
                return(new OperatorToken(token));
            }
Esempio n. 3
0
        /// <summary>
        /// Define a new primitive language operator for this language
        /// </summary>
        /// <param name="opName">The operator name</param>
        /// <returns></returns>
        public OperatorPrimitive DefineLanguageOperatorPrimitive(string opName)
        {
            if (OperatorPrimitiveDictionary.ContainsKey(opName))
            {
                return(OperatorPrimitiveDictionary[opName]);
            }

            var newOp = OperatorPrimitive.Create(opName);

            OperatorPrimitiveDictionary.Add(opName, newOp);

            //if (EnableLogger)
            //    _Logger.AddFullLine("Defining language role " + new_op.OperatorName);

            return(newOp);
        }
Esempio n. 4
0
 public static BasicBinary CreatePrimitive(ILanguageType exprType, OperatorPrimitive langOp, ILanguageExpressionAtomic operand1, ILanguageExpressionAtomic operand2)
 {
     return(new BasicBinary(exprType, langOp, operand1, operand2));
 }
Esempio n. 5
0
 internal OperatorToken(OperatorPrimitive source)
 {
     primitive = source;
 }