这是我的主文件(触发错误的文件):
/**********************************************************
**
** LOGRAMM
** Interpreter
**
** (c) 2009-2014, Dr.Kameleon
**
**********************************************************
** expression.d
**********************************************************/
module expression;
//================================================
// Imports
//================================================
import std.stdio;
import std.conv;
import components.argument;
//================================================
// C Interface for Bison
//================================================
extern (C)
{
void* Expression_new(Expression l, char* op, Expression r) { return cast(void*)(new Expression(l,to!string(op),r)); }
void* Expression_newFromArgument(Argument a) { return cast(void*)(new Expression(a)); }
}
//================================================
// Functions
//================================================
class Expression
{
Expression left;
string operator;
Expression right;
Argument arg;
this(Expression l, string op, Expression r)
{
left = l;
operator = op;
right = r;
arg = null;
}
this(Argument a)
{
arg = a;
}
void print()
{
writeln("Expression: ");
if (!arg)
{
writeln("\t | Operator: " ~ operator ~ ", Left: ");
left.print();
writeln("Right: ");
right.print();
}
else
{
writeln("\t | Argument: ");
arg.print();
}
}
}
这就是我得到的错误(有20个不同的模块,这是我第一次遇到这种类型的错误): / p>
components/expression.d(21): Error: module argument from file components/argument.d must be imported as module 'argument'
(21是开头的import...
行)
知道这里发生了什么吗?
P.S。
我已经连续编写了近15个小时,所以我想它可能是真的显而易见的,我无法发现......
我也尝试了import argument;
- 但这无论如何都没有太大区别,因为argument.d
中的components
文件 包,就像我在其他地方导入的任何其他文件一样......
答案 0 :(得分:2)
尝试通过import argument;
导入模块。或者,打开argument.d
模块并将其模块声明添加或更改为:module components.argument;
。