123456789101112131415161718192021222324252627282930313233343536373839 |
- MODULE FoxCSharpFrontend; (** AUTHOR "fof"; PURPOSE "Oberon Compiler: CSharp frontend module"; **)
- IMPORT
- Streams, Diagnostics, SyntaxTree := FoxSyntaxTree, Parser := FoxCSharpParser, Scanner := FoxCSharpScanner, FoxFrontend;
- TYPE
- Frontend* = OBJECT (FoxFrontend.Frontend)
- VAR
- scanner: Scanner.Scanner;
- parser: Parser.Parser;
-
- PROCEDURE Initialize*(diagnostics: Diagnostics.Diagnostics; flags: SET; reader: Streams.Reader; CONST fileName: ARRAY OF CHAR; pos: LONGINT);
- BEGIN
- Initialize^(diagnostics, flags, reader, fileName, pos);
- scanner := Scanner.NewScanner(fileName, reader, pos, diagnostics);
- parser := Parser.NewParser( scanner, diagnostics );
- END Initialize;
-
- PROCEDURE Parse*(): SyntaxTree.Module;
- BEGIN
- RETURN parser.Module();
- END Parse;
-
- PROCEDURE Error(): BOOLEAN;
- BEGIN
- RETURN parser.error;
- END Error;
-
- END Frontend;
- PROCEDURE Get*():FoxFrontend.Frontend;
- VAR frontend: Frontend;
- BEGIN
- NEW(frontend);
- RETURN frontend;
- END Get;
- END FoxCSharpFrontend.
|