--- /dev/null
+--------------------------------------------------------------------------------
+-- Copyright (c) 2006-2014 Fabien Fleutot and others.
+--
+-- All rights reserved.
+--
+-- This program and the accompanying materials are made available
+-- under the terms of the Eclipse Public License v1.0 which
+-- accompanies this distribution, and is available at
+-- http://www.eclipse.org/legal/epl-v10.html
+--
+-- This program and the accompanying materials are also made available
+-- under the terms of the MIT public license which accompanies this
+-- distribution, and is available at http://www.lua.org/license.html
+--
+-- Contributors:
+-- Fabien Fleutot - API and implementation
+--
+--------------------------------------------------------------------------------
+
+----------------------------------------------------------------------
+-- Generate a new lua-specific lexer, derived from the generic lexer.
+----------------------------------------------------------------------
+
+local generic_lexer = require 'metalua.grammar.lexer'
+
+return function()
+ local lexer = generic_lexer.lexer :clone()
+
+ local keywords = {
+ "and", "break", "do", "else", "elseif",
+ "end", "false", "for", "function",
+ "goto", -- Lua5.2
+ "if",
+ "in", "local", "nil", "not", "or", "repeat",
+ "return", "then", "true", "until", "while",
+ "...", "..", "==", ">=", "<=", "~=",
+ "::", -- Lua5,2
+ "+{", "-{" } -- Metalua
+
+ for _, w in ipairs(keywords) do lexer :add (w) end
+
+ return lexer
+end
\ No newline at end of file