小编rap*_*ard的帖子

在同一个xpath查询中结合使用前后兄弟

我有一个非常简单的问题,但我似乎无法解决它.假设我有以下代码:

<a>
    <b property="p1">zyx</b>
    <b>wvu</b>
    <b>tsr</b>
    <b property="p2">qpo</b>
    <b>qcs</b>
</a>
Run Code Online (Sandbox Code Playgroud)

我想选择b拥有a property="p1"b节点和拥有的节点之间的节点property="p2".我可以用前面的兄弟和下面的兄弟轴做任何一个,但我似乎无法找到如何将两者结合起来.

xpath

20
推荐指数
2
解决办法
1万
查看次数

Lua整数类型

我真的需要在Lua中有一个整数类型.

我所说的整数类型是一个定义通常运算符(/*+ etc)的类型,其行为类似于整数,内部表示无关紧要.

用表做这样的事情非常简单,问题是,我试过,而且性能非常差(当然).这是我的部分实现:

function num_op(a, b, calc_func)
    local atype = pytype(a)
    local btype = pytype(b)
    local a_val, b_val

    a_val = (atype == "Integer" or atype == "Double") and a[1] or a
    b_val = (btype == "Integer" or btype == "Double") and b[1] or b
    val = calc_func(a_val, b_val)

    if atype == "Integer" and btype == "Integer" then
        return Integer:create(val)
    else
        return Double:create(val)
    end
end

numeric_mt = { 
    __add = function(a, b)
        return num_op(a, b, function(a,b) return a + b …
Run Code Online (Sandbox Code Playgroud)

lua integer

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

F#:高级使用活动模式

这是我的问题:我正在尝试编写一个利用F#中活动模式的强大功能的解析器.解析函数的基本签名如下

LazyList<Token> -> 'a * LazyList<Token>
Run Code Online (Sandbox Code Playgroud)

这意味着它需要一个惰性的标记列表,并在解析后返回解析的结果和新的标记列表,以便遵循功能设计.

现在,作为下一步,我可以定义活动模式,这将帮助我直接在匹配表达式中匹配一些构造

let inline (|QualName|_|) token_stream =
    match parse_qualified_name token_stream with
        | Some id_list, new_stream -> Some (id_list, new_stream)
        | None, new_stream -> None

let inline (|Tok|_|) token_stream = 
    match token_stream with
        | Cons (token, tail) -> Some(token.variant, tail)
        | _ -> None
Run Code Online (Sandbox Code Playgroud)

然后以这种方式以高级方式匹配解析结果

let parse_subprogram_profile  = function
    | Tok (Kw (KwProcedure | KwFunction),
           QualName(qual_name, 
                    Tok (Punc (OpeningPar), stream_tail))) as token_stream ->
        // some code
    | token_stream -> None, token_stream
Run Code Online (Sandbox Code Playgroud)

我对此代码的问题是每个新匹配的构造都是嵌套的,这是不可读的,特别是如果你有一长串的结果要匹配.我希望能够定义一个匹配的运算符,例如:: operator for list,这将使我能够执行以下操作: …

f# pattern-matching

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

单声道的Websharper

简单的问题:是否可以在单声道上托管websharper应用程序.如果没有,有没有计划支持这样的功能?

.net f# websharper

5
推荐指数
0
解决办法
316
查看次数

是否有符合POSIX标准的方式获取我的计算机的本地网络IP地址?

我知道这个问题已经以一种或另一种形式被问了一百万次,但毫无疑问,这给了我一个POSIX兼容的方式.

我需要获取我的计算机的本地网络地址,而不使用getifaddrs或任何其他非POSIX兼容的访问接口的方式.那可能吗 ?

c posix

3
推荐指数
1
解决办法
2619
查看次数

MFC/CCriticalSection:简单锁定情况挂起

我必须使用MFC/C++编写一个简单的线程程序来进行单一分配.

我有一个简单的场景,我有一个工作线程,它执行以下行的功能:

UINT createSchedules(LPVOID param)
{
  genProgThreadVal* v = (genProgThreadVal*) param;
  // v->searcherLock is of type CcriticalSection*
  while(1)
  {
    if(v->searcherLock->Lock())
    {
      //do the stuff, access shared object , exit clause etc..
      v->searcherLock->Unlock();
    }
  }
  PostMessage(v->hwnd, WM_USER_THREAD_FINISHED , 0,0);
  delete v;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

在我的主UI类中,我有一个CListControl,我希望能够访问共享对象(类型为std :: List).因此锁定的东西.所以这个CList有一个处理函数,如下所示:

void Ccreationprogramme::OnLvnItemchangedList5(NMHDR *pNMHDR, LRESULT *pResult)
{
  LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
  if((pNMLV->uChanged & LVIF_STATE) 
    && (pNMLV->uNewState & LVNI_SELECTED))
  {    
    searcherLock.Lock();
    // do the stuff on shared object
    searcherLock.Unlock();

    // do some more stuff
  }
  *pResult …
Run Code Online (Sandbox Code Playgroud)

c++ winapi mfc multithreading locking

0
推荐指数
1
解决办法
1931
查看次数

FParsec - 如何从标准输入流解析

我似乎无法使用FParsec成功解析标准输入流.我把我的情况简化为这个非常简单的代码:

match (runParserOnStream (pstring "test" .>> FParsec.CharParsers.newline) () "stdin" (Console.OpenStandardInput ()) Console.InputEncoding) with
    | Success(result, _, _)   -> printfn "Success: %A" result
    | Failure(errorMsg, perr, _) -> printfn "Failure: %s" errorMsg
Run Code Online (Sandbox Code Playgroud)

但是,当我运行程序时,输入字符串测试,然后按Enter,它挂起,我似乎无法弄清楚为什么..

什么是解决方案?

.net f# parsing fparsec

0
推荐指数
1
解决办法
463
查看次数

标签 统计

f# ×3

.net ×2

c ×1

c++ ×1

fparsec ×1

integer ×1

locking ×1

lua ×1

mfc ×1

multithreading ×1

parsing ×1

pattern-matching ×1

posix ×1

websharper ×1

winapi ×1

xpath ×1