小编Mar*_*oij的帖子

BNF 处理转义序列

我使用这个 BNF 来解析我的脚本:

{identset} = {ASCII} - {"\{\}};     //<--all ascii charset except '\"' '{' and '}'
{strset}   = {ASCII} - {"};
ident      = {identset}*;
str        = {strset}*;
node     ::= ident "{" nodes "}" |  //<--entry point
             "\"" str "\"" | 
             ident;
nodes    ::= node nodes |
             node;
Run Code Online (Sandbox Code Playgroud)

它可以正确地将以下文本解析为树结构

doc {
    title { "some title goes here" }
    refcode { "SDS-1" }
    rev { "1.0" }
    revdate { "04062010" }
    body {  
        "this is the body of the document
         all text …
Run Code Online (Sandbox Code Playgroud)

grammar parsing escaping bnf

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

Ruby读取Samba共享

我正在寻找一种从桑巴共享中读取的方法.我想像Dir类一样使用它,例如打开和读取目​​录.这可能在Ruby中吗?

ruby smb samba

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

从我的Ruby on Rails Gem渲染视图

我为Ruby on Rails创建了一个简单的Gem; 我的想法是它为我在我的几个应用程序中使用的常见操作(索引/显示/等)提供了一些代码/视图.我想在宝石中"干掉它".

创建关注点没有问题,但是,我似乎无法在我的应用程序中呈现视图.

例如,在我的工作中lib/rails_default_actions/rails_default_actions.rb:

module RailsDefaultActions
  module DefaultActions
    extend ActiveSupport::Concern
      respond_to do |format|
        format.html { render 'default/index' }
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

但是提出了一个错误:

Missing template default/index with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :slim, :haml]}. Searched in:
  * "/home/martin/myapp/app/views"
  * "/home/martin/myapp/vendor/bundle/ruby/2.1.0/gems/devise-3.2.4/app/views"
  * "/home/martin/myapp"
Run Code Online (Sandbox Code Playgroud)

我最终设法破解了这个错误,但它感觉非常kludgey并且在某些情况下不起作用.在gem中包含视图的正确方法是什么?

我看过创建一个引擎,但这似乎有些过分,因为我只是有一个问题和一些观点.

ruby gem ruby-on-rails ruby-on-rails-4

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

使用Python在sudo之后获取父用户

我希望在Python中的命令后获取用户sudo例如,从shell我可以做到:

# Shows root; *undesired* output
$ sudo whoami
root

# Shows parent user sjcipher, desired output
$ sudo who am i
sjcipher
Run Code Online (Sandbox Code Playgroud)

如何在不使用外部程序的情况下在Python中执行此操作?

python unix

5
推荐指数
2
解决办法
2881
查看次数

如何使用gdk_device_get_position()?

我试图在Gdk屏幕上找到指针位置并找到gdk_display_get_pointer(),它工作正常,但它被标记为已弃用并且gdk_device_get_position()现在指的是.

但是我该如何使用这个功能呢?我不能得到一个GdkDevice,因为没有工厂,也没有构造函数.

gtk position glib cursor gdk

5
推荐指数
2
解决办法
926
查看次数

什么是POSIX shell相当于bash <<<

我有一个看起来像这样的变量:

msg="newton apple tree"
Run Code Online (Sandbox Code Playgroud)

我想将每个单词分配到单独的变量中.这在bash中很容易做到:

read a b c <<< $msg
Run Code Online (Sandbox Code Playgroud)

在POSIX shell中是否有一种紧凑,可读的方法?

bash sh

5
推荐指数
3
解决办法
786
查看次数

QApplication实例已存在

我在3Dsmax 2015上做了一些简单的PySide.

这是我的错误:

python.ExecuteFile "C:\Program Files\Autodesk\3ds Max 2015\scripts\Python\demoUniTest.py"
-- Runtime error:  Line 32  <module>()
  <type 'exceptions.RuntimeError'> A QApplication instance already exists.
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

import sys
from PySide.QtCore import *
from PySide.QtGui import *
from math import *

class Form(QDialog):
def __init__(self,parent=None):
    super(Form,self).__init__(parent)

    self.browser = QTextBrowser()
    self.lineedit = QLineEdit("Type an expression and press Enter")
    self.lineedit.selectAll()

    layout = QVBoxLayout()
    layout.addWidget(self.browser)
    layout.addWidget(self.lineedit)
    self.setLayout(layout)

    self.lineedit.setFocus()

    self.connect(self.lineedit, SIGNAL("returnPressed()"),self.updateUi)
    self.setWindowTitle("Calculate")

def updateUi(self):
    try:
        text = self.lineedit.text()
        self.browser.append("%s = <b>%s</b>" % (text,eval(text)))
    except:
        self.browser.append("<font color=red>%s is invalid</font>" %text) …
Run Code Online (Sandbox Code Playgroud)

python maxscript pyside

5
推荐指数
2
解决办法
9470
查看次数

在l命令结尾处加上额外的字符

我正在尝试使用cshell中的sed替换配置文件中的值.

但是它给了我错误:

sed: 1: "/usr/local/etc/raddb/mo ...": extra characters at the end of l command
Run Code Online (Sandbox Code Playgroud)

我正在尝试以下命令:

sed -i "s/private_key_password = .*/private_key_password = test/" /usr/local/etc/raddb/mods-available/eap
Run Code Online (Sandbox Code Playgroud)

我已经看过sed这样做的例子,但它们看起来与我正在做的相似,这里出了什么问题?

freebsd sed

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

如何判断golang的零值反映

package main

import (
    "fmt"
    "reflect"
)

func main() {
    var p1 *string = nil
    var v interface{} = p1
    val := reflect.Indirect(reflect.ValueOf(v))
    if v == nil {
        fmt.Printf("NULL")
    } else {
        if val.CanInterface() {
            fmt.Printf("if is %v\n", val.Interface())
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

该程序的输出是:

···

panic: reflect: call of reflect.Value.CanInterface on zero Value

goroutine 1 [running]:
panic(0xd65a0, 0xc82005e000)
    /usr/local/go/src/runtime/panic.go:464 +0x3e6
reflect.Value.CanInterface(0x0, 0x0, 0x0, 0x0)
    /usr/local/go/src/reflect/value.go:897 +0x62

···
Run Code Online (Sandbox Code Playgroud)

怎么了?为什么v == nil会这样false

reflection zero go

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

如何在 vim 中将 &lt;TAB&gt; 显示为条形

我想知道是否可以显示<tab> as | (bars) 像这样在 vim 中编码时 图片 有什么方法可以展示它们。

请除set listcharsand之外的任何解决方案,set list因为它会影响 eol 和空格。

vi vim

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

标签 统计

python ×2

ruby ×2

bash ×1

bnf ×1

cursor ×1

escaping ×1

freebsd ×1

gdk ×1

gem ×1

glib ×1

go ×1

grammar ×1

gtk ×1

maxscript ×1

parsing ×1

position ×1

pyside ×1

reflection ×1

ruby-on-rails ×1

ruby-on-rails-4 ×1

samba ×1

sed ×1

sh ×1

smb ×1

unix ×1

vi ×1

vim ×1

zero ×1