Axiom.Compiler.Framework.PrologCodeParser.Parse C# (CSharp) Метод

Parse() публичный Метод

public Parse ( TextReader input ) : PrologCodeUnit
input System.IO.TextReader
Результат Axiom.Compiler.CodeObjectModel.PrologCodeUnit
        public PrologCodeUnit Parse(TextReader input)
        {
            _scanner = new PrologScanner(input);
            _errors.Clear();

            PrologCodeTerm term = null;
            while(true)
            {

                term = ReadTerm(1200);
                if (_scanner.Next().Kind != PrologToken.DOT)
                {
                    _errors.Add(new PrologCompilerError("P0001", "Unexpected end of term", "", false, _scanner.Current.Line, _scanner.Current.Column));
                    break;
                }
                if (term is PrologCodeHeadlessClause)
                {
                    ProcessHeadlessClause(term);
                }
                else
                {
                    _codeUnit.Terms.Add(term);
                }
                if (_scanner.Lookahead.Kind == PrologToken.EOF)
                    break;

            }
            return _codeUnit;
        }

Usage Example

Пример #1
0
        protected virtual PrologCompilerResults FromFile(PrologCompilerParameters options, string fileName)
        {
            PrologCompilerResults results = new PrologCompilerResults();
            PrologCodeParser      parser  = new PrologCodeParser();
            PrologCodeUnit        unit    = new PrologCodeUnit();

            try
            {
                StreamReader reader = new StreamReader(fileName);
                unit = parser.Parse(reader);
            }
            catch (FileNotFoundException)
            {
                results.Errors.Add(new PrologCompilerError("P0008", "Input file not found.", fileName, false, 0, 0));
                return(results);
            }
            return(FromUnit(options, unit));
        }
All Usage Examples Of Axiom.Compiler.Framework.PrologCodeParser::Parse