首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为Alex指定选项卡宽度?

如何为Alex指定选项卡宽度?
EN

Stack Overflow用户
提问于 2014-07-12 15:31:52
回答 1查看 104关注 0票数 1

说:文档(第5章)

您可能希望Alex跟踪输入文本中的行号和列号,或者您可能希望自己进行跟踪(例如,您可能使用与标准8列不同的选项卡宽度)。

但是在亚历克斯位置跟踪器中,将标签宽度从8更改到4是很难的。这方面的代码隐藏在Alex生成的例程中:

代码语言:javascript
复制
-- this function is used by `alexGetByte`, which is used by `alex_scan_tkn`, which is 
-- used by `alexScanUser` and `alexRightContext`,
-- which is used by `alex_accept` etc etc...
alexMove :: AlexPosn -> Char -> AlexPosn
alexMove (AlexPn a l c) '\t' = AlexPn (a+1)  l     (((c+7) `div` 8)*8+1)
alexMove (AlexPn a l c) '\n' = AlexPn (a+1) (l+1)   1
alexMove (AlexPn a l c) _    = AlexPn (a+1)  l     (c+1)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-12 16:15:14

一个想法是创建您自己的包装器,它以您想要的方式定义alexMove

我的Mac包装器安装在/Library/Haskell/ghc-7.6.3/lib/alex-3.0.5/share/中。

查找名为"AlexWrapper-monad“、"AlexWrapper-monad-bytestring”的文件.驻留在您的系统中。

"-t“命令行选项告诉亚历克斯在哪里查找模板,但它也可能属于包装器,因为包装器和模板似乎驻留在同一个目录中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24714454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档