小编Jac*_*ack的帖子

我如何实现解析?

我正在用C设计一个编译器.我想知道我应该使用哪种技术,自上而下或自下而上?我只使用自下而上实现了运算符优先级.我已应用以下规则:

E:=E+E
E:=E-E
E:=E/E
E:=E*E
E:=E^E
Run Code Online (Sandbox Code Playgroud)

我想知道我马上去了吗?如果我想包含if-else,循环,数组,函数,我是否需要实现解析?如果是,我该如何实施呢?任何人都可以只实现令牌收集和运算符优先级.接下来的步骤是什么?

c compiler-construction parsing

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

Java中的var-arg语法

private void setUuid(int.. uuid)  
{
  // method stuff
}  
Run Code Online (Sandbox Code Playgroud)

当我尝试使用上面的语法时,Java 6编译器会抱怨.上面的var-arg不是有效的吗?

java

0
推荐指数
2
解决办法
248
查看次数

在C++中std :: function <void(Ref*)>的含义是什么?

我遇到了这个函数的麻烦,我不知道它的含义是什么:

menuItem1->setCallback([&](cocos2d::Ref *sender)
Run Code Online (Sandbox Code Playgroud)

输入函数,参数是ccMenuCallback&:

    /** set the callback to the menu item
    * @code
    * In js,can contain two params,the second param is jsptr
    * @endcode
    * @lua NA
    */
    void setCallback(const ccMenuCallback& callback);
Run Code Online (Sandbox Code Playgroud)

typedef std::function<void(Ref*)> ccMenuCallback;
Run Code Online (Sandbox Code Playgroud)

c++ lambda cocos2d-x c++11

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

C++数组存储错误的值

我试着输入两个数组,A和B.但每次我输入最后一个B数,除了它改变了B [i + n]的值,它还替换了A [0]的值.这是代码:

#include <iostream>

    using namespace std;

    /*
     * 
     */
    int main(int argc, char** argv) {
        int a[] = {};
        int b[] = {};
        int t, i;

        cout << "Amount of numbers: ";
        cin >> t;

        for (i = 0; i < t; i++) {
            cout << "Enter number for A" << i+1 << ": ";
            cin >> a[i];
            cout << "Enter number for B" << i+1 << ": ";
            cin >> b[i];
        }

        for (i = …
Run Code Online (Sandbox Code Playgroud)

c++ arrays numbers

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

在Java中,传递的变量数量是否可以小于对象类中的变量数量?

这是Oracle Java教程网站的摘录.它没有显示实际的.java文件,但我猜"Rectangle"是一个类.但是如果你注意到,rectOne和rectTwo传递的参数(按值?)是不同的.(一个有原点变量而两个没有)

如果对象有一定数量的参数,实际传递的数值是否可以小于?我假设它默认情况下不能更多.

此外,我搜索了答案,但找不到.

// Declare and create a point object and two rectangle objects.
Point originOne = new Point(23, 94);
Rectangle rectOne = new Rectangle(originOne, 100, 200);
Rectangle rectTwo = new Rectangle(50, 100);
Run Code Online (Sandbox Code Playgroud)

java

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

标签 统计

c++ ×2

java ×2

arrays ×1

c ×1

c++11 ×1

cocos2d-x ×1

compiler-construction ×1

lambda ×1

numbers ×1

parsing ×1