Pārlūkot izejas kodu

Eberon methods in process.

Vladislav Folts 11 gadi atpakaļ
vecāks
revīzija
b5d2eb3254
3 mainītis faili ar 26 papildinājumiem un 3 dzēšanām
  1. 2 0
      src/context.js
  2. 20 0
      src/eberon/eberon_context.js
  3. 4 3
      src/eberon/eberon_grammar.js

+ 2 - 0
src/context.js

@@ -1893,3 +1893,5 @@ exports.Context = Class.extend({
         return this.__moduleResolver ? this.__moduleResolver(name) : undefined;
     }
 });
+
+exports.Chained = ChainedContext;

+ 20 - 0
src/eberon/eberon_context.js

@@ -0,0 +1,20 @@
+"use strict";
+
+var Context = require("context.js");
+
+var MethodId = Context.Chained.extend({
+    init: function EberonContext$MethodId(parent){
+        Context.Chained.prototype.init.call(this, parent);
+    },
+    handleIdent: function(id){
+
+    },
+    handleLiteral: function(){
+
+    },
+    handleIdentdef: function(id){
+        this.parent().handleIdentdef(id);
+    }
+});
+
+exports.MethodId = MethodId;

+ 4 - 3
src/eberon/eberon_grammar.js

@@ -1,6 +1,7 @@
 "use strict";
 
 var Context = require("context.js");
+var EbContext = require("eberon/eberon_context.js");
 var Grammar = require("grammar.js");
 var Parser = require("parser.js");
 
@@ -8,9 +9,9 @@ var and = Parser.and;
 var context = Parser.context;
 var optional = Parser.optional;
 
-var procedureHeading = and("PROCEDURE"
-                         , and(optional(and(Grammar.ident, ".")), Grammar.identdef)
-                         , context(optional(Grammar.formalParameters), Context.FormalParametersProcDecl));
+var procedureHeading = and("PROCEDURE",
+                           context(and(optional(and(Grammar.ident, ".")), Grammar.identdef), EbContext.MethodId),
+                           context(optional(Grammar.formalParameters), Context.FormalParametersProcDecl));
 
 function makeProcedureDeclaration(procedureBody){
     return Grammar.makeProcedureDeclaration(procedureHeading, procedureBody);