的内容如下:
检查子程序体的顺序。如果字母o出现在-gnaty之后的字符串中,那么给定范围内的所有子程序体(例如包体)都必须按字母顺序排列。排序规则使用普通的Ada规则来比较字符串,忽略字母大小写,但如果有尾随的数字后缀,则在排序中使用这个后缀的值(例如,Junk2放在Junk10之前)。
我认为,Junk2为Junk10而来,是对另一种奇怪风格的强制执行的实际启发。但是有什么例子说明了一些真正触发它的代码呢?我无法使用这个选项来抱怨无序的函数定义或任务主体。例如,在用gnat make -gnatyo编译以下内容时,我没有收到任何抱怨
procedure Disordered is
我有一个VHDL包,它定义一个函数(前向声明)和一个常量。常数的值由该函数计算,该函数的主体位于包体中。
到目前为止,ModelSim/QuestaSim是唯一不喜欢这段代码的工具。它需要两个包,所以在常量声明之前对主体进行了解析。
package test is
function mytest(param : boolean ) return boolean;
constant value : boolean := mytest(TRUE);
end package;
package body test is
function mytest(param : boolean )
我正在尝试使用GNATdoc工具为我的Ada项目生成文档信息。GNATdoc能够生成所有包的信息,除了那些标记为子单元的包(使用单独的标识符)。示例:
package body A is
x : Integer;
package B is
y : Natural;
end B;
package body B is separate;
end A;
--------------------------------
separate (A)
package body B is
b1 : Float;
b2 : Character;
end B;
对于上
我完全是VHDL的初学者,我完全不知道为什么我会遇到错误。如果我删除这个函数,一切都可以正常编译,但是当我把它放回原处时,我得到了以下错误:
"function“附近的语法错误。
"begin“附近的语法错误。
"when“附近的语法错误。
"when“附近的语法错误。
你就明白我的意思了。
下面是上帝遗弃的函数:
function decod ( x : in integer range 0 to 9)
return STD_LOGIC_VECTOR is
variable temp : in STD_LOGIC_VECTOR (6 downto 0
这是Ada中一个非常基本的受保护的有界缓冲区,就像它在任何地方都存在一样,甚至在教科书中也是如此。(这是一个更大的东西的一部分,但我将代码简化到最低限度,在那里它重现了行为)。如果我有一个任务给它吃,并且“主体”正在读取它,那么它似乎工作得很好。但是如果我使用两个任务-- Putter和Getter,它会在第一个Get阻塞,如下所示。
with Ada.Text_IO;use Ada.Text_IO;
procedure test_buffer is
maxItems : constant Positive := 10;
type Index is mod maxItems;
我完全不明白为什么当我去编译这个我正在工作的Ada程序时,我得到了一个未定义的错误。我看了一遍又一遍...没有拼写错误或任何类似的东西。下面是我得到的结果,后面是我得到的错误。
Get_Score(CandidateVotes, CurrentCandidate);
end loop;
end Get_Input;
procedure Get_Score(CandVotes: in CurrentCandidate_Votes;
Candidate: in Character) is
-- get the score
当我加载这个文件时,我的程序出现了这个问题:
hanoi :: Integer -> Peg -> Peg -> Peg -> [Move]
hanoi 0 _ _ _ = []
hanoi n a b c =
let
step1move = hanoi (n-1) a c b
step2move = (a,b)
step3move = hanoi (n-1) c b a
in
step1move ++ [step2move] ++ step3move`
hanoi4 :: Integer -> Peg -> Peg -> Peg -> Pe
@echo off
for /f "tokens=1,2,3 delims=," %%a in (%1) do (
echo %%a %%b %%c
call :periodic_file_deletion %%a %%b %%c
)
:periodic_file_deletion
set deletion_path=%1
set search_mask=%2
set timegap=%3
echo %deletion_path% %search_mask% %timegap%
%1是输入文件param.txt,它包含
C:\script\periodic_file_del
下面是VASP的代码框架。我的工作是在一个新的平台上移植它。当我使用那个平台的编译器时,我得到了错误。如果我注释掉了use m,并且我还得到了“,它必须有一个指定的显式接口。”,我只想做一个最小的修改,以避免在程序的其他部分产生错误。
module m
interface
subroutine a
end subroutine
end interface
interface
subroutine b
end subroutine
end interface
end module
subroutine a
use m
call b
end subroutine
我在Notepad++中做了一个基本的UDL,以符合我编写伪代码的方式。但是,我需要的一个功能是何时编写:
BEGIN Main
ExampleSub
END
BEGIN SUBPROGRAM ExampleSub
Display something...
END SUBPROGRAM ExampleSub
我想让Notepad++高亮显示ExampleSub,以便我知道它是一个子程序(有点像它如何突出显示在ExampleSub中声明的变量)。
谢谢!