小编Ast*_*tor的帖子

ANTLR实现python的简单方法是什么,如缩进依赖语法?

我正在尝试实现python,如缩进依赖语法.

来源示例:

ABC QWE
  CDE EFG
  EFG CDE
    ABC 
  QWE ZXC
Run Code Online (Sandbox Code Playgroud)

正如我所看到的,我需要的是实现两个令牌INDENT和DEDENT,所以我可以这样写:

grammar mygrammar;
text: (ID | block)+;
block: INDENT (ID|block)+ DEDENT;
INDENT: ????;
DEDENT: ????;
Run Code Online (Sandbox Code Playgroud)

有没有简单的方法来实现这个使用ANTLR?

(如果可能的话,我更愿意使用标准的ANTLR词法分析器.)

antlr indentation lexer

20
推荐指数
3
解决办法
6441
查看次数

如何在不处理Windows消息的情况下允许表单接受文件丢弃?

在Delphi XE中,我可以允许我的表单接受文件"拖放"但不必处理裸窗口消息吗?

delphi drag-and-drop delphi-xe

17
推荐指数
2
解决办法
7170
查看次数

Qt4如何在小部件内绘制?

Qt4,QtCreator

我想在Widget中绘制:

void Widget::on_pushButton_clicked()
{
    QPainter painter;

    painter.begin(ui->label);

    QRectF rectangle(10.0, 20.0, 80.0, 60.0);
     int startAngle = 30 * 16;
     int spanAngle = 120 * 16;
     painter.drawArc(rectangle, startAngle, spanAngle);

    painter.end();
}
Run Code Online (Sandbox Code Playgroud)

但是当我按下按钮时没有任何反应.

怎么做正确的方法?

graphics qt qt4 qt-creator

14
推荐指数
1
解决办法
4万
查看次数

如何从命令行打开TortoiseGit日志窗口?

如何从命令行显示存储库或存储库中指定文件的标准TortoiseGit日志窗口?

tortoisegit

14
推荐指数
2
解决办法
3944
查看次数

如何修改TList <record>值?

Delphi 2010如何修改TList <record>值?

type TTest = record a,b,c:Integer end;
var List:TList<TTest>;
    A:TTest;
    P:Pointer;
....
....

List[10] := A;  <- OK
List[10].a:=1;  <- Here compiler error : Left side cannot be assined to
P:=@List[10];   <- Error: Variable requied
Run Code Online (Sandbox Code Playgroud)

delphi generics

11
推荐指数
2
解决办法
4129
查看次数

从String中的char位置获取行号的最简单方法是什么?

从C#中的字符串中的char位置获取行号的最简单方法是什么?(或获取行的位置(第一个字符串))是否有内置函数?如果没有这样的功能,那么编写扩展名的好方法就像:

public static class StringExt {
    public static int LineFromPos(this String S, int Pos) { 
        int Res = 1;
        for (int i = 0; i <= Pos - 1; i++)
            if (S[i] == '\n') Res++;
        return Res;                
    }

    public static int PosFromLine(this String S, int Pos) { .... }

}
Run Code Online (Sandbox Code Playgroud)

编辑:添加方法PosFromLine

c# string

8
推荐指数
3
解决办法
6920
查看次数

什么是在delphi中从数组数据中播放声音的最简单方法

有什么简单的功能吗?我正在寻找类似的东西

播放(@data,44000,100 {时间});

delphi audio multimedia

7
推荐指数
2
解决办法
3771
查看次数

如何在Delphi中实现并行循环?

如何在Delphi(Delphi 200X,Delphi XE)中实现并行循环?怎么做这个最好的方法?有没有通用的解决方案?

请举例说明.

delphi parallel-processing delphi-xe

7
推荐指数
1
解决办法
6323
查看次数

如何检查`IEnumerable <T1>`covariant到`IEnumerable <T2>`?

检查是否IEnumerable<T1>协变的常见规则是什么IEnumerable<T2>

我做了一些实验:


1.

Object Obj = "Test string";
IEnumerable<Object> Objs = new String[100];
Run Code Online (Sandbox Code Playgroud)

因为IEnumerable<out T>协变和String继承而起作用Object.

2.

interface MyInterface{}
struct MyStruct:MyInterface{}
.....
Object V = new MyStruct();
Console.WriteLine(new MyStruct() is Object); // Output: True. 
IEnumerable<Object> Vs = new MyStruct[100]; // Compilation error here
Run Code Online (Sandbox Code Playgroud)

MyStruct实际上是一个Object,但它不起作用,因为Object是引用类型,MyStruct是值类型.好的,我在这看到一些逻辑.

3.

Console.WriteLine(new MyStruct() is ValueType); // Output: "True"
ValueType V2 = new MyStruct();
IEnumerable<ValueType> Vs2 = new MyStruct[100]; // Compilation …
Run Code Online (Sandbox Code Playgroud)

c# ienumerable covariance

7
推荐指数
1
解决办法
130
查看次数

德尔福标准输入输出代码页面

Delphi 2010

当使用readLn过程从文件读取时,默认情况下我从代码页1251(windows的代码页)转换unicode字符串.

如何在1252或UTF16中更改此内容并从其他代码页中的文件中读取?

delphi codepages text-files

5
推荐指数
1
解决办法
1598
查看次数