所以我有一个terraform apply在目录中运行的应用程序,然后也可以运行terraform destroy. 我正在测试该应用程序,并且在运行时意外中断了进程apply
现在它似乎被困在一个部分创建的实例中,它识别我正在创建/销毁的实例的名称,当我尝试时apply它说该名称的实例已经存在。但随后destroy又说没有什么可以破坏的。所以我也做不到。有什么办法可以解决这个问题吗?
所以我试图转换一种在编程语言中定义变量定义的语法.这是我的第一个每个序言,它与典型的语言非常不同,所以我很困惑.语法如下:
S - > TS | Ť
T - > char F分号| int F分号
F - > id | id G.
G - >逗号F.
因此,对于像"char id semicolon"或"int id comma id semicolon char id semicolon"这样的东西,它会有效地返回.
我试图把它变成一个prolog程序来识别这个语法.到目前为止我所拥有的是:
type([char|T],T).
type([int|T],T).
def([id|T], T).
com([comma|T], T).
semi([semicolon|T], T).
vardef(L,S) :-
type(L,S1),
def(S1,S2),
comma(S2,S3),
def(S3,S4),
semi(S4,S).
variable_definition(L) :-
vardef(L,[]).
Run Code Online (Sandbox Code Playgroud)
但是,这显然只能识别出特定的"int/char id逗号分号".我不知道怎么做它所以它在分号之前有一个可变数量的"id逗号id",或者甚至在第一个之后有一个全新的变量定义.关于同一件事,在这个网站上的其他问题通常必须处理像这样设置的语法,而不是那些可以有可变数量输入的语法.
编辑:所以问题是双重的.首先,我如何使它识别两个不同的变量定义,一个接一个.我想我必须改变最后一行才能完成这个,但我不确定如何.
其次,如何让它识别可变数量的"id",后跟逗号.因此,如果我希望它识别"char id semicolon"以及"char id comma id semicolon".