Mercurial > projects > dil
changeset 583:af16adf500f4
Moved dil.Semantics to dil.semantic.Analysis.
author | Aziz K?ksal <aziz.koeksal@gmail.com> |
---|---|
date | Sat, 05 Jan 2008 22:38:01 +0100 |
parents | 724603deed37 |
children | 556bfb18dff8 |
files | trunk/src/dil/Declarations.d trunk/src/dil/Semantics.d trunk/src/dil/Statements.d trunk/src/dil/semantic/Analysis.d |
diffstat | 4 files changed, 74 insertions(+), 74 deletions(-) [+] |
line wrap: on
line diff
--- a/trunk/src/dil/Declarations.d Sat Jan 05 22:30:50 2008 +0100 +++ b/trunk/src/dil/Declarations.d Sat Jan 05 22:38:01 2008 +0100 @@ -12,7 +12,7 @@ import dil.Enums; import dil.Scope; import dil.IdTable; -import dil.Semantics; +import dil.semantic.Analysis; import dil.Symbols; import dil.TypeSystem; import dil.Messages;
--- a/trunk/src/dil/Semantics.d Sat Jan 05 22:30:50 2008 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,72 +0,0 @@ -/++ - Author: Aziz Köksal - License: GPL3 -+/ -module dil.Semantics; - -import dil.ast.Node; -import dil.Expressions; -import dil.Token; -import dil.Scope; -import dil.IdTable; -import common; - -/// Common semantics for pragma declarations and statements. -void pragmaSemantic(Scope scop, Token* pragmaLoc, - Identifier* ident, - Expression[] args) -{ - if (ident is Ident.msg) - pragma_msg(scop, pragmaLoc, args); - else if (ident is Ident.lib) - pragma_lib(scop, pragmaLoc, args); - // else - // scop.error(begin, "unrecognized pragma"); -} - -/// Evaluates a msg pragma. -void pragma_msg(Scope scop, Token* pragmaLoc, Expression[] args) -{ - if (args.length == 0) - return /*scop.error(pragmaLoc, "expected expression arguments to pragma")*/; - - foreach (arg; args) - { - auto e = arg.evaluate(); - if (e is null) - { - // scop.error(e.begin, "expression is not evaluatable at compile time"); - } - else if (auto stringExpr = TryCast!(StringExpression)(e)) - // Print string to standard output. - Stdout(stringExpr.getString()); - else - { - // scop.error(e.begin, "expression must evaluate to a string"); - } - } - // Print a newline at the end. - Stdout('\n'); -} - -/// Evaluates a lib pragma. -void pragma_lib(Scope scop, Token* pragmaLoc, Expression[] args) -{ - if (args.length != 1) - return /*scop.error(pragmaLoc, "expected one expression argument to pragma")*/; - - auto e = args[0].evaluate(); - if (e is null) - { - // scop.error(e.begin, "expression is not evaluatable at compile time"); - } - else if (auto stringExpr = TryCast!(StringExpression)(e)) - { - // TODO: collect library paths in Module? - // scop.modul.addLibrary(stringExpr.getString()); - } - else - { - // scop.error(e.begin, "expression must evaluate to a string"); - } -}
--- a/trunk/src/dil/Statements.d Sat Jan 05 22:30:50 2008 +0100 +++ b/trunk/src/dil/Statements.d Sat Jan 05 22:38:01 2008 +0100 @@ -11,7 +11,7 @@ import dil.Token; import dil.IdTable; import dil.Scope; -import dil.Semantics; +import dil.semantic.Analysis; abstract class Statement : Node {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/trunk/src/dil/semantic/Analysis.d Sat Jan 05 22:38:01 2008 +0100 @@ -0,0 +1,72 @@ +/++ + Author: Aziz Köksal + License: GPL3 ++/ +module dil.semantic.Analysis; + +import dil.ast.Node; +import dil.Expressions; +import dil.Token; +import dil.Scope; +import dil.IdTable; +import common; + +/// Common semantics for pragma declarations and statements. +void pragmaSemantic(Scope scop, Token* pragmaLoc, + Identifier* ident, + Expression[] args) +{ + if (ident is Ident.msg) + pragma_msg(scop, pragmaLoc, args); + else if (ident is Ident.lib) + pragma_lib(scop, pragmaLoc, args); + // else + // scop.error(begin, "unrecognized pragma"); +} + +/// Evaluates a msg pragma. +void pragma_msg(Scope scop, Token* pragmaLoc, Expression[] args) +{ + if (args.length == 0) + return /*scop.error(pragmaLoc, "expected expression arguments to pragma")*/; + + foreach (arg; args) + { + auto e = arg.evaluate(); + if (e is null) + { + // scop.error(e.begin, "expression is not evaluatable at compile time"); + } + else if (auto stringExpr = TryCast!(StringExpression)(e)) + // Print string to standard output. + Stdout(stringExpr.getString()); + else + { + // scop.error(e.begin, "expression must evaluate to a string"); + } + } + // Print a newline at the end. + Stdout('\n'); +} + +/// Evaluates a lib pragma. +void pragma_lib(Scope scop, Token* pragmaLoc, Expression[] args) +{ + if (args.length != 1) + return /*scop.error(pragmaLoc, "expected one expression argument to pragma")*/; + + auto e = args[0].evaluate(); + if (e is null) + { + // scop.error(e.begin, "expression is not evaluatable at compile time"); + } + else if (auto stringExpr = TryCast!(StringExpression)(e)) + { + // TODO: collect library paths in Module? + // scop.modul.addLibrary(stringExpr.getString()); + } + else + { + // scop.error(e.begin, "expression must evaluate to a string"); + } +}